diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 4b050d42..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: 2.1 - - -jobs: - build-docs: - docker: - - image: cimg/python:3.13-node - steps: - - checkout - - - run: - name: Install Python dependencies - command: | - python -m pip install --upgrade pip tox - - - run: - name: Build documentation - no_output_timeout: 5m - environment: - # Ensure this is same as store_artifacts path below - DOCS_PATH: _build/html - command: | - export BASE_URL="/output/job/$CIRCLE_WORKFLOW_JOB_ID/artifacts/0/$DOCS_PATH" - export OMP_NUM_THREADS=1 - python -m tox -e py313-buildhtml - - - store_artifacts: - path: _build/html - -workflows: - version: 2 - build-and-docs: - jobs: - - build-docs diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 8db2976b..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: ".github/workflows" - schedule: - interval: "monthly" - groups: - actions: - patterns: - - "*" - labels: - - "infrastructure" diff --git a/.github/workflows/ci_publish.yml b/.github/workflows/ci_publish.yml deleted file mode 100644 index 80f86dea..00000000 --- a/.github/workflows/ci_publish.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Build and Publish HTML and deployed_notebooks - -on: - push: - branches: - - main - schedule: - - cron: '0 5 * * 1' - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -env: - # `BASE_URL` determines, relative to the root of the domain, the URL that your site is served from. - # E.g., if your site lives at `https://mydomain.org/myproject`, set `BASE_URL=/myproject`. - # If, instead, your site lives at the root of the domain, at `https://mydomain.org`, set `BASE_URL=''`. - BASE_URL: /${{ github.event.repository.name }} - -jobs: - - publish_html: - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} - name: Publish HTML - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd #v6.0.2 - - - name: Setup Python - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 #v6.2.0 - with: - python-version: '3.12' - - - name: Install dependencies - run: python -m pip install --upgrade tox - - - name: Execute notebooks while building HTMLs - run: tox -e py312-buildhtml - - - name: Publish - uses: peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e # v4.0.0 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./_build/html/ - commit_message: ${{ github.event.head_commit.message }} diff --git a/.github/workflows/ci_tests_run_notebooks.yml b/.github/workflows/ci_tests_run_notebooks.yml deleted file mode 100644 index b2b6dafb..00000000 --- a/.github/workflows/ci_tests_run_notebooks.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: Test notebooks - -on: - push: - branches: - - main - pull_request: - branches: - - main - schedule: - - cron: '0 5 * * 1' - workflow_dispatch: - -jobs: - tests: - name: ${{ matrix.os }} ${{ matrix.name }} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - # Run all supported OS for one Python version, then add a few extra scenarios - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ['3.13'] - toxenv: [py313-test] - name: ['with Python 3.13',] - - include: - - python-version: '3.10' - toxenv: py310-test-oldestdeps - name: with Python 3.10 and oldest versioned dependencies - os: ubuntu-latest - - - python-version: '3.11' - toxenv: py311-test - name: with Python 3.11 and latest released version of dependencies - os: ubuntu-latest - - - python-version: '3.12' - toxenv: py312-test-predeps - name: with Python 3.12 and latest or pre-release version of dependencies - os: ubuntu-latest - - - python-version: '3.14-dev' - toxenv: py314-test-devdeps - name: with Python 3.14 and developer versioned dependencies - os: ubuntu-latest - - steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 #v6.2.0 - with: - python-version: ${{ matrix.python-version }} - - - name: Install dependencies - run: python -m pip install --upgrade tox - - - name: Test with nbval - run: tox ${{ matrix.toxargs }} -e ${{ matrix.toxenv }} -- ${{ matrix.toxposargs }} diff --git a/.github/workflows/circleci-artifacts-redirector.yml b/.github/workflows/circleci-artifacts-redirector.yml deleted file mode 100644 index f24efe72..00000000 --- a/.github/workflows/circleci-artifacts-redirector.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Run CircleCI artifacts redirector for rendered HTML -on: [status] -jobs: - circleci_artifacts_redirector_job: - runs-on: ubuntu-latest - name: Run CircleCI artifacts redirector - steps: - - name: GitHub Action step - uses: scientific-python/circleci-artifacts-redirector-action@5d358ff96e96429a5c64a969bb4a574555439f4f # v1.3.1 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - api-token: ${{ secrets.CIRCLE_TOKEN }} - artifact-path: 0/_build/html/index.html - circleci-jobs: build-docs - domain: circle.scientific-python.dev - job-title: "--> Rendering Preview <--" diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9108072a..00000000 --- a/.gitignore +++ /dev/null @@ -1,99 +0,0 @@ -# Editor temporary/working/backup files # -######################################### -.#* -[#]*# -*~ -*$ -*.bak -*.diff -.idea/ -*.iml -*.ipr -*.iws -*.org -.project -pmip -*.rej -.settings/ -.*.sw[nop] -.sw[nop] -*.tmp -*.vim -.vscode -tags -cscope.out -.ipynb_checkpoints -.tox - -# Compiled source # -################### -*.a -*.com -*.class -*.dll -*.exe -*.o -*.o.d -*.py[ocd] -*.so - -# Packages # -############ -# it's better to unpack these files and commit the raw source -# git has its own built in compression methods -*.7z -*.bz2 -*.bzip2 -*.dmg -*.gz -*.iso -*.jar -*.rar -*.tar -*.tbz2 -*.tgz -*.zip - -# Python files # -################ -# setup.py working directory -build -# sphinx build directory -_build -# Egg metadata -*.egg-info -MANIFEST -.cache - -# Logs and databases # -###################### -*.log - -# Patches # -########### -*.patch -*.diff - -# OS generated files # -###################### -.DS_Store* -.VolumeIcon.icns -.fseventsd -Icon? -.gdb_history -ehthumbs.db -Thumbs.db -.directory - -# pytest generated files # -########################## -/.pytest_cache - -# Things specific to this project # -################################### -# Content generated during notebook execution -content/mooreslaw_regression* -content/tutorial-x-ray-image-processing/xray_image.gif -content/video -content/*ipynb -content/x_y-squared* diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/1001.thebe-core.min.js b/1001.thebe-core.min.js new file mode 100644 index 00000000..d062cfee --- /dev/null +++ b/1001.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1001],{51001:(e,n,t)=>{t.r(n),t.d(n,{ntriples:()=>i});function r(e,n){var t,r=e.location;t=0==r&&"<"==n?1:0==r&&"_"==n?2:3==r&&"<"==n?4:5==r&&"<"==n?6:5==r&&"_"==n?7:5==r&&'"'==n?8:1==r&&">"==n||2==r&&" "==n?3:4==r&&">"==n?5:6==r&&">"==n||7==r&&" "==n||8==r&&'"'==n||9==r&&" "==n||10==r&&">"==n?11:8==r&&"@"==n?9:8==r&&"^"==n?10:" "!=n||0!=r&&3!=r&&5!=r&&11!=r?11==r&&"."==n?0:12:r,e.location=t}const i={name:"ntriples",startState:function(){return{location:0,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(e,n){var t=e.next();if("<"==t){r(n,t);var i="";return e.eatWhile((function(e){return"#"!=e&&">"!=e&&(i+=e,!0)})),n.uris.push(i),e.match("#",!1)||(e.next(),r(n,">")),"variable"}if("#"==t){var u="";return e.eatWhile((function(e){return">"!=e&&" "!=e&&(u+=e,!0)})),n.anchors.push(u),"url"}if(">"==t)return r(n,">"),"variable";if("_"==t){r(n,t);var a="";return e.eatWhile((function(e){return" "!=e&&(a+=e,!0)})),n.bnodes.push(a),e.next(),r(n," "),"builtin"}if('"'==t)return r(n,t),e.eatWhile((function(e){return'"'!=e})),e.next(),"@"!=e.peek()&&"^"!=e.peek()&&r(n,'"'),"string";if("@"==t){r(n,"@");var s="";return e.eatWhile((function(e){return" "!=e&&(s+=e,!0)})),n.langs.push(s),e.next(),r(n," "),"string.special"}if("^"==t){e.next(),r(n,"^");var o="";return e.eatWhile((function(e){return">"!=e&&(o+=e,!0)})),n.types.push(o),e.next(),r(n,">"),"variable"}" "==t&&r(n,t),"."==t&&r(n,t)}}}}]); +//# sourceMappingURL=1001.thebe-core.min.js.map \ No newline at end of file diff --git a/1066.thebe-core.min.js b/1066.thebe-core.min.js new file mode 100644 index 00000000..8d66a007 --- /dev/null +++ b/1066.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1066],{11066:(e,n,t)=>{function r(e){for(var n={},t=e.split(" "),r=0;rs});var i=r("if elsif else stop require"),u=r("true false not");function o(e,n){var t,r=e.next();if("/"==r&&e.eat("*"))return n.tokenize=a,a(e,n);if("#"===r)return e.skipToEnd(),"comment";if('"'==r)return n.tokenize=(t=r,function(e,n){for(var r,i=!1;null!=(r=e.next())&&(r!=t||i);)i=!i&&"\\"==r;return i||(n.tokenize=o),"string"}),n.tokenize(e,n);if("("==r)return n._indent.push("("),n._indent.push("{"),null;if("{"===r)return n._indent.push("{"),null;if(")"==r&&(n._indent.pop(),n._indent.pop()),"}"===r)return n._indent.pop(),null;if(","==r)return null;if(";"==r)return null;if(/[{}\(\),;]/.test(r))return null;if(/\d/.test(r))return e.eatWhile(/[\d]/),e.eat(/[KkMmGg]/),"number";if(":"==r)return e.eatWhile(/[a-zA-Z_]/),e.eatWhile(/[a-zA-Z0-9_]/),"operator";e.eatWhile(/\w/);var s=e.current();return"text"==s&&e.eat(":")?(n.tokenize=l,"string"):i.propertyIsEnumerable(s)?"keyword":u.propertyIsEnumerable(s)?"atom":null}function l(e,n){return n._multiLineString=!0,e.sol()?("."==e.next()&&e.eol()&&(n._multiLineString=!1,n.tokenize=o),"string"):(e.eatSpace(),"#"==e.peek()?(e.skipToEnd(),"comment"):(e.skipToEnd(),"string"))}function a(e,n){for(var t,r=!1;null!=(t=e.next());){if(r&&"/"==t){n.tokenize=o;break}r="*"==t}return"comment"}const s={name:"sieve",startState:function(e){return{tokenize:o,baseIndent:e||0,_indent:[]}},token:function(e,n){return e.eatSpace()?null:(n.tokenize||o)(e,n)},indent:function(e,n,t){var r=e._indent.length;return n&&"}"==n[0]&&r--,r<0&&(r=0),r*t.unit},languageData:{indentOnInput:/^\s*\}$/}}}}]); +//# sourceMappingURL=1066.thebe-core.min.js.map \ No newline at end of file diff --git a/1081.thebe-core.min.js b/1081.thebe-core.min.js new file mode 100644 index 00000000..706e5f68 --- /dev/null +++ b/1081.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1081],{71081:(e,t,n)=>{n.r(t),n.d(t,{commonmarkLanguage:()=>Ue,deleteMarkupBackward:()=>nt,insertNewlineContinueMarkup:()=>We,markdown:()=>it,markdownKeymap:()=>rt,markdownLanguage:()=>Ye});var r,s=n(14830),i=n(83173),o=n(29587),a=n(77213),l=n(79066),h=n(49913);class f{static create(e,t,n,r,s){return new f(e,t,n,r+(r<<8)+e+(t<<4)|0,s,[],[])}constructor(e,t,n,r,s,i,o){this.type=e,this.value=t,this.from=n,this.hash=r,this.end=s,this.children=i,this.positions=o,this.hashProp=[[l.uY.contextHash,r]]}addChild(e,t){e.prop(l.uY.contextHash)!=this.hash&&(e=new l.PH(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new l.PH(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,n)=>new l.PH(l.Z6.none,e,t,n,this.hashProp)})}}!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.Autolink=33]="Autolink",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeText=40]="CodeText",e[e.CodeInfo=41]="CodeInfo",e[e.LinkTitle=42]="LinkTitle",e[e.LinkLabel=43]="LinkLabel",e[e.URL=44]="URL"}(r||(r={}));class c{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class u{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return g(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let r=t;r=t.stack[n.depth+1].value+n.baseIndent)return!0;if(n.indent>=n.baseIndent+4)return!1;let s=(e.type==r.OrderedList?C:S)(n,t,!1);return s>0&&(e.type!=r.BulletList||L(n,t,!1)<0)&&n.text.charCodeAt(n.pos+s-1)==e.value}const p={[r.Blockquote]:(e,t,n)=>62==n.next&&(n.markers.push(K(r.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1)),n.moveBase(n.pos+(m(n.text.charCodeAt(n.pos+1))?2:1)),e.end=t.lineStart+n.text.length,!0),[r.ListItem]:(e,t,n)=>!(n.indent-1||(n.moveBaseColumn(n.baseIndent+e.value),0)),[r.OrderedList]:d,[r.BulletList]:d,[r.Document]:()=>!0};function m(e){return 32==e||9==e||10==e||13==e}function g(e,t=0){for(;tn&&m(e.charCodeAt(t-1));)t--;return t}function x(e){if(96!=e.next&&126!=e.next)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length&&t.parser.leafBlockParsers.indexOf($.SetextHeading)>-1||r<3?-1:1}function A(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return!0;return!1}function S(e,t,n){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!m(e.text.charCodeAt(e.pos+1))||!(!n||A(t,r.BulletList)||e.skipSpace(e.pos+2)=48&&i<=57;){if(s++,s==e.text.length)return-1;i=e.text.charCodeAt(s)}return s==e.pos||s>e.pos+9||46!=i&&41!=i||se.pos+1||49!=e.next)?-1:s+1-e.pos}function w(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t6?-1:n}function y(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,B=/\?>/,E=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(s);if(o)return e.append(K(r.Comment,n,n+1+o[0].length));let a=/^\?[^]*?\?>/.exec(s);if(a)return e.append(K(r.ProcessingInstruction,n,n+1+a[0].length));let l=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(s);return l?e.append(K(r.HTMLTag,n,n+1+l[0].length)):-1},Emphasis(e,t,n){if(95!=t&&42!=t)return-1;let r=n+1;for(;e.char(r)==t;)r++;let s=e.slice(n-1,n),i=e.slice(r,r+1),o=re.test(s),a=re.test(i),l=/\s|^$/.test(s),h=/\s|^$/.test(i),f=!h&&(!a||l||o),c=!l&&(!o||h||a),u=f&&(42==t||!c||o),d=c&&(42==t||!f||a);return e.append(new ne(95==t?J:W,n,r,(u?1:0)|(d?2:0)))},HardBreak(e,t,n){if(92==t&&10==e.char(n+1))return e.append(K(r.HardBreak,n,n+2));if(32==t){let t=n+1;for(;32==e.char(t);)t++;if(10==e.char(t)&&t>=n+2)return e.append(K(r.HardBreak,n,t+1))}return-1},Link:(e,t,n)=>91==t?e.append(new ne(ee,n,n+1,1)):-1,Image:(e,t,n)=>33==t&&91==e.char(n+1)?e.append(new ne(te,n,n+2,1)):-1,LinkEnd(e,t,n){if(93!=t)return-1;for(let t=e.parts.length-1;t>=0;t--){let s=e.parts[t];if(s instanceof ne&&(s.type==ee||s.type==te)){if(!s.side||e.skipSpace(s.to)==n&&!/[(\[]/.test(e.slice(n+1,n+2)))return e.parts[t]=null,-1;let i=e.takeContent(t),o=e.parts[t]=ie(e,i,s.type==ee?r.Link:r.Image,s.from,n+1);if(s.type==ee)for(let n=0;nt?K(r.URL,t+n,i+n):i==e.length&&null}}function ae(e,t,n){let s=e.charCodeAt(t);if(39!=s&&34!=s&&40!=s)return!1;let i=40==s?41:s;for(let s=t+1,o=!1;s=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,r,s){return this.append(new ne(e,t,n,(r?1:0)|(s?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof ne&&(t.type==ee||t.type==te))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let t=e;t=e;o--){let e=this.parts[o];if(e instanceof ne&&1&e.side&&e.type==n.type&&!(s&&(1&n.side||2&e.side)&&(e.to-e.from+i)%3==0&&((e.to-e.from)%3||i%3))){r=e;break}}if(!r)continue;let a=n.type.resolve,l=[],h=r.from,f=n.to;if(s){let e=Math.min(2,r.to-r.from,i);h=r.to-e,f=n.from+e,a=1==e?"Emphasis":"StrongEmphasis"}r.type.mark&&l.push(this.elt(r.type.mark,h,r.to));for(let e=o+1;e=0;t--){let n=this.parts[t];if(n instanceof ne&&n.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return g(this.text,e-this.offset)+this.offset}elt(e,t,n,r){return"string"==typeof e?K(this.parser.getNodeType(e),t,n,r):new G(e,t)}}function fe(e,t){if(!t.length)return e;if(!e.length)return t;let n=e.slice(),r=0;for(let e of t){for(;r(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;e>0&&"\n"!=this.input.read(e-1,e);)e--;this.fragmentEnd=e?e-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let r=e+this.fragment.offset;for(;n.to<=r;)if(!n.parent())return!1;for(;;){if(n.from>=r)return this.fragment.from<=t;if(!n.childAfter(r))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(l.uY.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,s=this.fragmentEnd-(this.fragment.openEnd?1:0),i=e.absoluteLineStart,o=i,a=e.block.children.length,h=o,f=a;for(;;){if(t.to-n>s){if(t.type.isAnonymous&&t.firstChild())continue;break}let i=de(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,i);else{let n=new l.PH(e.parser.nodeSet.types[r.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(n,t.tree),e.addNode(n,i)}if(t.type.is("Block")&&(ce.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=h,a=f,h=t.to-n,f=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-i}}function de(e,t){let n=e;for(let r=1;rP[e])),Object.keys(P).map((e=>$[e])),Object.keys(P),R,p,Object.keys(se).map((e=>se[e])),Object.keys(se),[]);function ge(e,t,n){let r=[];for(let s=e.firstChild,i=t;;s=s.nextSibling){let e=s?s.from:n;if(e>i&&r.push({from:i,to:e}),!s)break;i=s.to}return r}const ke={resolve:"Strikethrough",mark:"StrikethroughMark"},xe={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":h._A.strikethrough}},{name:"StrikethroughMark",style:h._A.processingInstruction}],parseInline:[{name:"Strikethrough",parse(e,t,n){if(126!=t||126!=e.char(n+1)||126==e.char(n+2))return-1;let r=e.slice(n-1,n),s=e.slice(n+2,n+3),i=/\s|^$/.test(r),o=/\s|^$/.test(s),a=re.test(r),l=re.test(s);return e.addDelimiter(ke,n,n+2,!o&&(!l||i||a),!i&&(!a||o||l))},after:"Emphasis"}]};function be(e,t,n=0,r,s=0){let i=0,o=!0,a=-1,l=-1,h=!1,f=()=>{r.push(e.elt("TableCell",s+a,s+l,e.parser.parseInline(t.slice(a,l),s+a)))};for(let c=n;c-1)&&i++,o=!1,r&&(a>-1&&f(),r.push(e.elt("TableDelimiter",c+s,c+s+1))),a=l=-1),h=!h&&92==n}return a>-1&&(i++,r&&f()),i}function Le(e,t){for(let n=t;nLe(t.content,0)?new Se:null,endLeaf(e,t,n){if(n.parsers.some((e=>e instanceof Se))||!Le(t.text,t.basePos))return!1;let r=e.scanLine(e.absoluteLineEnd+1).text;return Ae.test(r)&&be(e,t.text,t.basePos)==be(e,r,t.basePos)},before:"SetextHeading"}]};class we{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const ye={defineNodes:[{name:"Task",block:!0,style:h._A.list},{name:"TaskMarker",style:h._A.atom}],parseBlock:[{name:"TaskList",leaf:(e,t)=>/^\[[ xX]\][ \t]/.test(t.content)&&"ListItem"==e.parentType().name?new we:null,after:"SetextHeading"}]},Ie=/(www\.)|(https?:\/\/)|([\w.+-]+@)|(mailto:|xmpp:)/gy,Te=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,Be=/[\w-]+\.[\w-]+($|\/)/,Ee=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,He=/\/[a-zA-Z\d@.]+/gy;function Me(e,t,n,r){let s=0;for(let i=t;i-1)return-1;let r=t+n[0].length;for(;;){let n,s=e[r-1];if(/[?!.,:*_~]/.test(s)||")"==s&&Me(e,t,r,")")>Me(e,t,r,"("))r--;else{if(";"!=s||!(n=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(e.slice(t,r))))break;r=t+n.index}}return r}(e.text,r+s[0].length),i>-1&&e.hasOpenLink&&(i=r+/([^\[\]]|\[[^\]]*\])*/.exec(e.text.slice(r,i))[0].length)):s[3]?i=ve(e.text,r):(i=ve(e.text,r+s[0].length),i>-1&&"xmpp:"==s[0]&&(He.lastIndex=i,s=He.exec(e.text),s&&(i=s.index+s[0].length))),i<0?-1:(e.addElement(e.elt("URL",n,i+e.offset)),i+e.offset)):-1}}]}];function _e(e,t,n){return(r,s,i)=>{if(s!=e||r.char(i+1)==e)return-1;let o=[r.elt(n,i,i+1)];for(let s=i+1;s!e.is("Block")||e.is("Document")||null!=De(e)||function(e){return"OrderedList"==e.name||"BulletList"==e.name}(e)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),ze.add(De),o.Oh.add({Document:()=>null}),o.iB.add({Document:Xe})]});function De(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function qe(e,t){let n=e;for(;;){let e,r=n.nextSibling;if(!r||null!=(e=De(r.type))&&e<=t)break;n=r}return n.to}const je=o.t.of(((e,t,n)=>{for(let r=(0,o.mv)(e).resolveInner(n,-1);r&&!(r.fromn)return{from:n,to:t}}return null}));function Ze(e){return new o.TM(Xe,e,[je],"markdown")}const Ue=Ze(Fe),Ye=Ze(Fe.configure([Pe,Ne,Oe,$e,{props:[o.b_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]));class Qe{constructor(e,t,n,r,s,i,o){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=s,this.type=i,this.item=o}blank(e,t=!0){let n=this.spaceBefore+("Blockquote"==this.node.name?">":"");if(null!=e){for(;n.length0;e--)n+=" ";return n+(t?this.spaceAfter:"")}marker(e,t){let n="OrderedList"==this.node.name?String(+Ge(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function Ve(e,t){let n=[];for(let t=e;t&&"Document"!=t.name;t=t.parent)"ListItem"!=t.name&&"Blockquote"!=t.name&&"FencedCode"!=t.name||n.push(t);let r=[];for(let e=n.length-1;e>=0;e--){let s,i=n[e],o=t.lineAt(i.from),a=i.from-o.from;if("FencedCode"==i.name)r.push(new Qe(i,a,a,"","","",null));else if("Blockquote"==i.name&&(s=/^ *>( ?)/.exec(o.text.slice(a))))r.push(new Qe(i,a,a+s[0].length,"",s[1],">",null));else if("ListItem"==i.name&&"OrderedList"==i.parent.name&&(s=/^( *)\d+([.)])( *)/.exec(o.text.slice(a)))){let e=s[3],t=s[0].length;e.length>=4&&(e=e.slice(0,e.length-4),t-=4),r.push(new Qe(i.parent,a,a+t,s[1],e,s[2],i))}else if("ListItem"==i.name&&"BulletList"==i.parent.name&&(s=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(o.text.slice(a)))){let e=s[4],t=s[0].length;e.length>4&&(e=e.slice(0,e.length-4),t-=4);let n=s[2];s[3]&&(n+=s[3].replace(/[xX]/," ")),r.push(new Qe(i.parent,a,a+t,s[1],e,n,i))}}return r}function Ge(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function Ke(e,t,n,r=0){for(let s=-1,i=e;;){if("ListItem"==i.name){let e=Ge(i,t),o=+e[2];if(s>=0){if(o!=s+1)return;n.push({from:i.from+e[1].length,to:i.from+e[0].length,insert:String(s+2+r)})}s=o}let e=i.nextSibling;if(!e)break;i=e}}function Je(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||"\t"!=t.facet(o.Xt))return e;let r="";for(let t=(0,s.y$)(e,4,n);t>0;)t>=4?(r+="\t",t-=4):(r+=" ",t--);return r+e.slice(n)}const We=({state:e,dispatch:t})=>{let n=(0,o.mv)(e),{doc:r}=e,i=null,a=e.changeByRange((t=>{if(!t.empty||!Ye.isActiveAt(e,t.from))return i={range:t};let o=t.from,a=r.lineAt(o),l=Ve(n.resolveInner(o,-1),r);for(;l.length&&l[l.length-1].from>o-a.from;)l.pop();if(!l.length)return i={range:t};let h=l[l.length-1];if(h.to-h.spaceAfter.length>o-a.from)return i={range:t};let f=o>=h.to-h.spaceAfter.length&&!/\S/.test(a.text.slice(h.to));if(h.item&&f){let t=h.node.firstChild,n=h.node.getChild("ListItem","ListItem");if(t.to>=o||n&&n.to0&&!/[^\s>]/.test(r.lineAt(a.from-1).text)){let e,t=l.length>1?l[l.length-2]:null,n="";t&&t.item?(e=a.from+t.from,n=t.marker(r,1)):e=a.from+(t?t.to:0);let i=[{from:e,to:o,insert:n}];return"OrderedList"==h.node.name&&Ke(h.item,r,i,-2),t&&"OrderedList"==t.node.name&&Ke(t.item,r,i),{range:s.OF.cursor(e+n.length),changes:i}}{let t=tt(l,e,a);return{range:s.OF.cursor(o+t.length+1),changes:{from:a.from,insert:t+e.lineBreak}}}}if("Blockquote"==h.node.name&&f&&a.from){let n=r.lineAt(a.from-1),s=/>\s*$/.exec(n.text);if(s&&s.index==h.from){let r=e.changes([{from:n.from+s.index,to:n.to},{from:a.from+h.from,to:a.to}]);return{range:t.map(r),changes:r}}}let c=[];"OrderedList"==h.node.name&&Ke(h.item,r,c);let u=h.item&&h.item.from]*/.exec(a.text)[0].length>=h.to)for(let e=0,t=l.length-1;e<=t;e++)d+=e!=t||u?l[e].blank(ea.from&&/\s/.test(a.text.charAt(p-a.from-1));)p--;return d=Je(d,e),function(e,t){if("OrderedList"!=e.name&&"BulletList"!=e.name)return!1;let n=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return!1;let s=t.lineAt(n.to),i=t.lineAt(r.from),o=/^[\s>]*$/.test(s.text);return s.number+(o?0:1){let n=(0,o.mv)(e),r=null,i=e.changeByRange((t=>{let i=t.from,{doc:o}=e;if(t.empty&&Ye.isActiveAt(e,t.from)){let t=o.lineAt(i),r=Ve(function(e,t){let n=e.resolveInner(t,-1),r=t;et(n)&&(r=n.from,n=n.parent);for(let e;e=n.childBefore(r);)if(et(e))r=e.from;else{if("OrderedList"!=e.name&&"BulletList"!=e.name)break;n=e.lastChild,r=n.to}return n}(n,i),o);if(r.length){let n=r[r.length-1],o=n.to-n.spaceAfter.length+(n.spaceAfter?1:0);if(i-t.from>o&&!/\S/.test(t.text.slice(o,i-t.from)))return{range:s.OF.cursor(t.from+o),changes:{from:t.from+o,to:i}};if(i-t.from==o&&(!n.item||t.from<=n.item.from||!/\S/.test(t.text.slice(0,n.to)))){let r=t.from+n.from;if(n.item&&n.node.from{if(e&&m){let t=null;if(e=/\S*/.exec(e)[0],t="function"==typeof m?m(e):o.t$.matchLanguageName(m,e,!0),t instanceof o.t$)return t.support?t.support.language.parser:o.nq.getSkippingParser(t.load());if(t)return t.parser}return g?g.parser:null}):void 0;var m,g;u.push(function(e){let{codeParser:t,htmlParser:n}=e,s=(0,l.$g)(((e,s)=>{let i=e.type.id;if(!t||i!=r.CodeBlock&&i!=r.FencedCode){if(n&&(i==r.HTMLBlock||i==r.HTMLTag))return{parser:n,overlay:ge(e.node,e.from,e.to)}}else{let n="";if(i==r.FencedCode){let t=e.node.getChild(r.CodeInfo);t&&(n=s.read(t.from,t.to))}let o=t(n);if(o)return{parser:o,overlay:e=>e.type.id==r.CodeText}}return null}));return{wrap:s}}({codeParser:p,htmlParser:st.language.parser})),a&&d.push(s.Nb.high(i.w4.of(rt)));let k=Ze(h.configure(u));return f&&d.push(k.data.of({autocomplete:ot})),new o.Yy(k,d)}function ot(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let s=(0,o.mv)(t).resolveInner(n,-1);for(;s&&!s.type.isTop;){if("CodeBlock"==s.name||"FencedCode"==s.name||"ProcessingInstructionBlock"==s.name||"CommentBlock"==s.name||"Link"==s.name||"Image"==s.name)return null;s=s.parent}return{from:n-r[0].length,to:n,options:lt(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let at=null;function lt(){if(at)return at;let e=(0,Re.htmlCompletionSource)(new a._5(s.$t.create({extensions:st}),0,!0));return at=e?e.options:[]}}}]); +//# sourceMappingURL=1081.thebe-core.min.js.map \ No newline at end of file diff --git a/1302.thebe-core.min.js b/1302.thebe-core.min.js new file mode 100644 index 00000000..d3291251 --- /dev/null +++ b/1302.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1302],{31302:(O,Q,$)=>{$.r(Q),$.d(Q,{java:()=>l,javaLanguage:()=>s});var P=$(73643),i=$(49913);const a=(0,i.pn)({null:i._A.null,instanceof:i._A.operatorKeyword,this:i._A.self,"new super assert open to with void":i._A.keyword,"class interface extends implements enum var":i._A.definitionKeyword,"module package import":i._A.moduleKeyword,"switch while for if else case default do break continue return try catch finally throw":i._A.controlKeyword,"requires exports opens uses provides public private protected static transitive abstract final strictfp synchronized native transient volatile throws":i._A.modifier,IntegerLiteral:i._A.integer,FloatingPointLiteral:i._A.float,"StringLiteral TextBlock":i._A.string,CharacterLiteral:i._A.character,LineComment:i._A.lineComment,BlockComment:i._A.blockComment,BooleanLiteral:i._A.bool,PrimitiveType:i._A.standard(i._A.typeName),TypeName:i._A.typeName,Identifier:i._A.variableName,"MethodName/Identifier":i._A.function(i._A.variableName),Definition:i._A.definition(i._A.variableName),ArithOp:i._A.arithmeticOperator,LogicOp:i._A.logicOperator,BitOp:i._A.bitwiseOperator,CompareOp:i._A.compareOperator,AssignOp:i._A.definitionOperator,UpdateOp:i._A.updateOperator,Asterisk:i._A.punctuation,Label:i._A.labelName,"( )":i._A.paren,"[ ]":i._A.squareBracket,"{ }":i._A.brace,".":i._A.derefOperator,", ;":i._A.separator}),r={__proto__:null,true:34,false:34,null:42,void:46,byte:48,short:48,int:48,long:48,char:48,float:48,double:48,boolean:48,extends:62,super:64,class:76,this:78,new:84,public:100,protected:102,private:104,abstract:106,static:108,final:110,strictfp:112,default:114,synchronized:116,native:118,transient:120,volatile:122,throws:150,implements:160,interface:166,enum:176,instanceof:238,open:267,module:269,requires:274,transitive:276,exports:278,to:280,opens:282,uses:284,provides:286,with:288,package:292,import:296,if:308,else:310,while:314,for:318,var:325,assert:332,switch:336,case:342,do:346,break:350,continue:354,return:358,throw:364,try:368,catch:372,finally:380},e=P.U1.deserialize({version:14,states:"##jQ]QPOOQ$wQPOOO(bQQO'#H^O*iQQO'#CbOOQO'#Cb'#CbO*pQPO'#CaO*xOSO'#CpOOQO'#Hc'#HcOOQO'#Cu'#CuO,eQPO'#D_O-OQQO'#HmOOQO'#Hm'#HmO/gQQO'#HhO/nQQO'#HhOOQO'#Hh'#HhOOQO'#Hg'#HgO1rQPO'#DUO2PQPO'#GnO4wQPO'#D_O5OQPO'#DzO*pQPO'#E[O5qQPO'#E[OOQO'#DV'#DVO7SQQO'#HaO9^QQO'#EeO9eQPO'#EdO9jQPO'#EfOOQO'#Hb'#HbO7jQQO'#HbO:pQQO'#FhO:wQPO'#ExO:|QPO'#E}O:|QPO'#FPOOQO'#Ha'#HaOOQO'#HY'#HYOOQO'#Gh'#GhOOQO'#HX'#HXO<^QPO'#FiOOQO'#HW'#HWOOQO'#Gg'#GgQ]QPOOOOQO'#Hs'#HsOQQPO'#GSO>]QPO'#GUO=kQPO'#GWO:|QPO'#GXO>dQPO'#GZO?QQQO'#HiO?mQQO'#CuO?tQPO'#HxO@SQPO'#D_O@rQPO'#DpO?wQPO'#DqO@|QPO'#HxOA_QPO'#DpOAgQPO'#IROAlQPO'#E`OOQO'#Hr'#HrOOQO'#Gm'#GmQ$wQPOOOAtQPO'#HsOOQO'#H^'#H^OCsQQO,58{OOQO'#H['#H[OOOO'#Gi'#GiOEfOSO,59[OOQO,59[,59[OOQO'#Hi'#HiOFVQPO,59eOGXQPO,59yOOQO-E:f-E:fO*pQPO,58zOG{QPO,58zO*pQPO,5;}OHQQPO'#DQOHVQPO'#DQOOQO'#Gk'#GkOIVQQO,59jOOQO'#Dm'#DmOJqQPO'#HuOJ{QPO'#DlOKZQPO'#HtOKcQPO,5<_OKhQPO,59^OLRQPO'#CxOOQO,59c,59cOLYQPO,59bOLeQQO'#H^ONgQQO'#CbO!!iQPO'#D_O!#nQQO'#HmO!$OQQO,59pO!$VQPO'#DvO!$eQPO'#H|O!$mQPO,5:`O!$rQPO,5:`O!%YQPO,5;nO!%eQPO'#ITO!%pQPO,5;eO!%uQPO,5=YOOQO-E:l-E:lOOQO,5:f,5:fO!']QPO,5:fO!'dQPO,5:vO?tQPO,5<_O*pQPO,5:vO_,5>_O!*sQPO,5:gO!+RQPO,5:qO!+ZQPO,5:lO!+fQPO,5>[O!$VQPO,5>[O!'iQPO,59UO!+qQQO,58zO!+yQQO,5;}O!,RQQO,5gQPO,5gQPO,5<}O!2mQPO,59jO!2zQPO'#HuO!3RQPO,59xO!3WQPO,5>dO?tQPO,59xO!3cQPO,5:[OAlQPO,5:zO!3kQPO'#DrO?wQPO'#DrO!3vQPO'#HyO!4OQPO,5:]O?tQPO,5>dO!(hQPO,5>dOAgQPO,5>mOOQO,5:[,5:[O!$rQPO'#DtOOQO,5>m,5>mO!4TQPO'#EaOOQO,5:z,5:zO!7UQPO,5:zO!(hQPO'#DxOOQO-E:k-E:kOOQO,5:y,5:yO*pQPO,58}O!7ZQPO'#ChOOQO1G.k1G.kOOOO-E:g-E:gOOQO1G.v1G.vO!+qQQO1G.fO*pQPO1G.fO!7eQQO1G1iOOQO,59l,59lO!7mQPO,59lOOQO-E:i-E:iO!7rQPO,5>aO!8ZQPO,5:WO`OOQO1G1y1G1yOOQO1G.x1G.xO!8{QPO'#CyO!9kQPO'#HmO!9uQPO'#CzO!:TQPO'#HlO!:]QPO,59dOOQO1G.|1G.|OLYQPO1G.|O!:sQPO,59eO!;QQQO'#H^O!;cQQO'#CbOOQO,5:b,5:bOhOOQO1G/z1G/zO!oOOQO1G1P1G1POOQO1G0Q1G0QO!=oQPO'#E]OOQO1G0b1G0bO!>`QPO1G1yO!'dQPO1G0bO!*sQPO1G0RO!+RQPO1G0]O!+ZQPO1G0WOOQO1G/]1G/]O!>eQQO1G.pO9eQPO1G0jO*pQPO1G0jOgQPO'#GaOOQO1G2a1G2aO#2zQPO1G2iO#6xQPO,5>gOOQO1G/d1G/dOOQO1G4O1G4OO#7ZQPO1G/dOOQO1G/v1G/vOOQO1G0f1G0fO!7UQPO1G0fOOQO,5:^,5:^O!(hQPO'#DsO#7`QPO,5:^O?wQPO'#GrO#7kQPO,5>eOOQO1G/w1G/wOAgQPO'#H{O#7sQPO1G4OO?tQPO1G4OOOQO1G4X1G4XO!#YQPO'#DvO!!iQPO'#D_OOQO,5:{,5:{O#8OQPO,5:{O#8OQPO,5:{O#8VQQO'#HaO#9hQQO'#HbO#9rQQO'#EbO#9}QPO'#EbO#:VQPO'#IOOOQO,5:d,5:dOOQO1G.i1G.iO#:bQQO'#EeO#:rQQO'#H`O#;SQPO'#FTOOQO'#H`'#H`O#;^QPO'#H`O#;{QPO'#IWO#WOOQO1G/O1G/OOOQO7+$h7+$hOOQO1G/{1G/{O#=cQQO1G/{OOQO1G/}1G/}O#=hQPO1G/{OOQO1G/|1G/|OdQPO,5:wOOQO,5:w,5:wOOQO7+'e7+'eOOQO7+%|7+%|OOQO7+%m7+%mO!KqQPO7+%mO!KvQPO7+%mO!LOQPO7+%mOOQO7+%w7+%wO!LnQPO7+%wOOQO7+%r7+%rO!MmQPO7+%rO!MrQPO7+%rOOQO7+&U7+&UOOQO'#Ee'#EeO9eQPO7+&UO9eQPO,5>[O#?TQPO7+$[OOQO7+&T7+&TOOQO7+&W7+&WO:|QPO'#GlO#?cQPO,5>]OOQO1G/_1G/_O:|QPO7+&lO#?nQQO,59eO#@tQPO,59vOOQO,59v,59vOOQO,5:h,5:hOOQO'#EP'#EPOOQO,5:i,5:iO#@{QPO'#EYOgQPO,5jO#M{QPO,59TO#NSQPO'#IVO#N[QPO,5;oO*pQPO'#G{O#NaQPO,5>rOOQO1G.n1G.nOOQO<Z,5>ZOOQO,5=U,5=UOOQO-E:h-E:hO#NvQPO7+%gOOQO7+%g7+%gOOQO7+%i7+%iOOQO<kO$%tQPO'#EZOOQO1G0_1G0_O$%{QPO1G0_O?tQPO,5:pOOQO-E:s-E:sOOQO1G0Z1G0ZOOQO1G0n1G0nO$&QQQO1G0nOOQO<qOOQO1G1Z1G1ZO$+dQPO'#FUOOQO,5=g,5=gOOQO-E:y-E:yO$+iQPO'#GoO$+vQPO,5>cOOQO1G/u1G/uOOQO<sAN>sO!KqQPOAN>sOOQOAN>xAN>xOOQOAN?[AN?[O9eQPOAN?[OOQO1G0`1G0`O$,_QPO1G0`OOQO,5=b,5=bOOQO-E:t-E:tO$,mQPO,5:uOOQO7+%y7+%yOOQO7+&Y7+&YOOQO1G1`1G1`O$,tQQO1G1`OOQO-E:{-E:{O$,|QQO'#IYO$,wQPO1G1`O$&gQPO1G1`O*pQPO1G1`OOQOAN@]AN@]O$-XQQO<tO$.qQPO7+&zO$.vQQO'#IZOOQOAN@nAN@nO$/RQQOAN@nOOQOAN@jAN@jO$/YQPOAN@jO$/_QQO<uOOQOG26YG26YOOQOG26UG26UOOQO<lOWiXuiX%}iX&PiX&RiX&_iX~OZ!aX~P?XOu#OO%}TO&P#SO&R#SO~O%}TO~P3gOg^Oh^Ov#pO!u#rO!z#qO&_!hO&t#oO~O&P!cO&R!dO~P@ZOg^Oh^O%}TO&P!cO&R!dO~O}cO!P%aO~OZ%bO~O}%dO!m%gO~O}cOg&gXh&gXv&gX!S&gX!T&gX!U&gX!V&gX!W&gX!X&gX!Y&gX!Z&gX!]&gX!^&gX!_&gX!u&gX!z&gX%}&gX&P&gX&R&gX&_&gX&t&gX~OW%jOZ%kOgTahTa%}Ta&PTa&RTa~OvTa!STa!TTa!UTa!VTa!WTa!XTa!YTa!ZTa!]Ta!^Ta!_Ta!uTa!zTa#yTa#zTa$WTa$hTa&tTa&_TauTaYTaqTa|Ta!PTa~PC[O&W%nO&Y!tO~Ou#OO%}TOqma&^maYma&nma!Pma~O&vma}ma!rma~PEnO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!ZzO!]yO!^yO!_yO~Og!Rah!Rav!Ra!u!Ra!z!Ra$h!Ra&P!Ra&R!Ra&t!Ra&_!Ra~PFdO#z%pO~Os%rO~Ou%sO%}TO~Ou#OO%}ra&Pra&Rra&vraYrawra&nra&qra!Pra&^raqra~OWra#_ra#ara#bra#dra#era#fra#gra#hra#ira#kra#ora#rra&_ra#prasra|ra~PH_Ou#OO%}TOq&iX!P&iX!b&iX~OY&iX#p&iX~PJ`O!b%vOq!`X!P!`XY!`X~Oq%wO!P&hX~O!P%yO~Ov%zO~Og^Oh^O%}0oO&P!wO&RWO&b%}O~O&^&`P~PKmO%}TO&P!wO&RWO~OW&QXYiXY!aXY&QXZ&QXq!aXu&QXwiX!b&QX#]&QX#_&QX#a&QX#b&QX#d&QX#e&QX#f&QX#g&QX#h&QX#i&QX#k&QX#o&QX#r&QX&^&QX&_&QX&niX&n&QX&qiX&viX&v&QX&x!aX~P?XOWUXYUXY!aXY&]XZUXq!aXuUXw&]X!bUX#]UX#_UX#aUX#bUX#dUX#eUX#fUX#gUX#hUX#iUX#kUX#oUX#rUX&^UX&_UX&nUX&n&]X&q&]X&vUX&v&]X&x!aX~P>lOg^Oh^O%}TO&P!wO&RWOg!RXh!RX&P!RX&R!RX~PFdOu#OOw&XO%}TO&P&UO&R&TO&q&WO~OW#XOY&aX&n&aX&v&aX~P!#YOY&ZO~P9oOg^Oh^O&P!wO&RWO~Oq&]OY&pX~OY&_O~Og^Oh^O%}TO&P!wO&RWOY&pP~PFdOY&dO&n&bO&v#vO~Oq&eO&x$ZOY&wX~OY&gO~O%}TOg%bah%bav%ba!S%ba!T%ba!U%ba!V%ba!W%ba!X%ba!Y%ba!Z%ba!]%ba!^%ba!_%ba!u%ba!z%ba$h%ba&P%ba&R%ba&t%ba&_%ba~O|&hO~P]O}&iO~Op&uOw&vO&PSO&R!qO&_#YO~Oz&tO~P!'iOz&xO&PSO&R!qO&_#YO~OY&eP~P:|Og^Oh^O%}TO&P!wO&RWO~O}cO~P:|OW#XOu#OO%}TO&v&aX~O#r$WO!P#sa#_#sa#a#sa#b#sa#d#sa#e#sa#f#sa#g#sa#h#sa#i#sa#k#sa#o#sa&^#sa&_#sa&n#saY#sa#p#sas#saq#sa|#sa~Oo'_O}'^O!r'`O&_!hO~O}'eO!r'`O~Oo'iO}'hO&_!hO~OZ#xOu'mO%}TO~OW%jO}'sO~OW%jO!P'uO~OW'vO!P'wO~O$h!WO&P0qO&R0pO!P&eP~P/uO!P(SO#p(TO~P9oO}(UO~O$c(WO~O!P(XO~O!P(YO~O!P(ZO~P9oO!P(]O~P9oOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdO%Q(hO%U(iOZ$}a_$}a`$}aa$}ab$}ac$}ae$}ag$}ah$}ap$}av$}aw$}az$}a}$}a!P$}a!S$}a!T$}a!U$}a!V$}a!W$}a!X$}a!Y$}a!Z$}a![$}a!]$}a!^$}a!_$}a!u$}a!z$}a#f$}a#r$}a#t$}a#u$}a#y$}a#z$}a$W$}a$Y$}a$`$}a$c$}a$e$}a$h$}a$l$}a$n$}a$s$}a$u$}a$w$}a$y$}a$|$}a%O$}a%w$}a%}$}a&P$}a&R$}a&X$}a&t$}a|$}a$a$}a$q$}a~O}ra!rra'Ora~PH_OZ%bO~PJ`O!P(mO~O!m%gO}&la!P&la~O}cO!P(pO~Oo(tOq!fX&^!fX~Oq(vO&^&mX~O&^(xO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op)UOv{Ow)TOz!OO|)PO}cO!PvO![!`O!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&_#YO&tdO~PFdO}%dO~O})]OY&zP~P:|OW%jO!P)dO~Os)eO~Ou#OO%}TOq&ia!P&ia!b&iaY&ia#p&ia~O})fO~P:|Oq%wO!P&ha~Og^Oh^O%}0oO&P!wO&RWO~O&b)mO~P!8jOu#OO%}TOq&aX&^&aXY&aX&n&aX!P&aX~O}&aX!r&aX~P!9SOo)oOp)oOqnX&^nX~Oq)pO&^&`X~O&^)rO~Ou#OOw)tO%}TO&PSO&R!qO~OYma&nma&vma~P!:bOW&QXY!aXq!aXu!aX%}!aX~OWUXY!aXq!aXu!aX%}!aX~OW)wO~Ou#OO%}TO&P#SO&R#SO&q)yO~Og^Oh^O%}TO&P!wO&RWO~PFdOq&]OY&pa~Ou#OO%}TO&P#SO&R#SO&q&WO~OY)|O~OY*PO&n&bO~Oq&eOY&wa~Og^Oh^Ov{O|*XO!u}O%}TO&P!wO&RWO&tdO~PFdO!P*YO~OW^iZ#XXu^i!P^i!b^i#]^i#_^i#a^i#b^i#d^i#e^i#f^i#g^i#h^i#i^i#k^i#o^i#r^i&^^i&_^i&n^i&v^iY^i#p^is^iq^i|^i~OW*iO~Os*jO~P9oOz*kO&PSO&R!qO~O!P]iY]i#p]is]iq]i|]i~P9oOq*lOY&eX!P&eX~P9oOY*nO~O#f$SO#g$TO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#h$UO#i$UO~P!AmO#_#|O#d$QO#e$RO#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO&n#{O!P#^i#b#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#a#^i~P!CUO#a#}O~P!CUO#_#|O#f$SO#g$TO#h$UO#i$UO#k$YO#r$WO&^#zO&_#zO!P#^i#a#^i#b#^i#d#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O&n#^i~P!DtO&n#{O~P!DtO#f$SO#g$TO#k$YO#r$WO!P#^i#a#^i#b#^i#e#^i#o#^iY#^i#p#^is#^iq#^i|#^i~O#_#|O#d$QO#h$UO#i$UO&^#zO&_#zO&n#{O~P!FdO#k$YO#r$WO!P#^i#_#^i#a#^i#b#^i#d#^i#e#^i#f#^i#h#^i#i#^i#o#^i&^#^i&_#^i&n#^iY#^i#p#^is#^iq#^i|#^i~O#g$TO~P!G{O#g#^i~P!G{O#h#^i#i#^i~P!AmO#p*oO~P9oO#_&aX#a&aX#b&aX#d&aX#e&aX#f&aX#g&aX#h&aX#i&aX#k&aX#o&aX#r&aX&_&aX#p&aXs&aX|&aX~P!9SO!P#liY#li#p#lis#liq#li|#li~P9oO|*rO~P$wO}'^O~O}'^O!r'`O~Oo'_O}'^O!r'`O~O%}TO&P#SO&R#SO|&sP!P&sP~PFdO}'eO~Og^Oh^Ov{O|+PO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdO}'hO~Oo'iO}'hO~Os+RO~P:|Ou+TO%}TO~Ou'mO})fO%}TOW#Zi!P#Zi#_#Zi#a#Zi#b#Zi#d#Zi#e#Zi#f#Zi#g#Zi#h#Zi#i#Zi#k#Zi#o#Zi#r#Zi&^#Zi&_#Zi&n#Zi&v#ZiY#Zi#p#Zis#Ziq#Zi|#Zi~O}'^OW&diu&di!P&di#_&di#a&di#b&di#d&di#e&di#f&di#g&di#h&di#i&di#k&di#o&di#r&di&^&di&_&di&n&di&v&diY&di#p&dis&diq&di|&di~O#}+]O$P+^O$R+^O$S+_O$T+`O~O|+[O~P##nO$Z+aO&PSO&R!qO~OW+bO!P+cO~O$a+dOZ$_i_$_i`$_ia$_ib$_ic$_ie$_ig$_ih$_ip$_iv$_iw$_iz$_i}$_i!P$_i!S$_i!T$_i!U$_i!V$_i!W$_i!X$_i!Y$_i!Z$_i![$_i!]$_i!^$_i!_$_i!u$_i!z$_i#f$_i#r$_i#t$_i#u$_i#y$_i#z$_i$W$_i$Y$_i$`$_i$c$_i$e$_i$h$_i$l$_i$n$_i$s$_i$u$_i$w$_i$y$_i$|$_i%O$_i%w$_i%}$_i&P$_i&R$_i&X$_i&t$_i|$_i$q$_i~Og^Oh^O$h#sO&P!wO&RWO~O!P+hO~P:|O!P+iO~OZ`O_VO`VOaVObVOcVOeVOg^Oh^Op!POv{OwkOz!OO}cO!PvO!SyO!TyO!UyO!VyO!WyO!XyO!YyO!Z+nO![!`O!]yO!^yO!_yO!u}O!z|O#fpO#roO#tpO#upO#y!RO#z!QO$W!SO$Y!TO$`!UO$c!VO$e!XO$h!WO$l!YO$n!ZO$q+oO$s![O$u!]O$w!^O$y!_O$|!aO%O!bO%}TO&PRO&RQO&XUO&tdO~O|+mO~P#)QOW&QXY&QXZ&QXu&QX!P&QX&viX&v&QX~P?XOWUXYUXZUXuUX!PUX&vUX&v&]X~P>lOW#tOu#uO&v#vO~OW&UXY%XXu&UX!P%XX&v&UX~OZ#XX~P#.VOY+uO!P+sO~O%Q(hO%U(iOZ$}i_$}i`$}ia$}ib$}ic$}ie$}ig$}ih$}ip$}iv$}iw$}iz$}i}$}i!P$}i!S$}i!T$}i!U$}i!V$}i!W$}i!X$}i!Y$}i!Z$}i![$}i!]$}i!^$}i!_$}i!u$}i!z$}i#f$}i#r$}i#t$}i#u$}i#y$}i#z$}i$W$}i$Y$}i$`$}i$c$}i$e$}i$h$}i$l$}i$n$}i$s$}i$u$}i$w$}i$y$}i$|$}i%O$}i%w$}i%}$}i&P$}i&R$}i&X$}i&t$}i|$}i$a$}i$q$}i~OZ+xO~O%Q(hO%U(iOZ%Vi_%Vi`%Via%Vib%Vic%Vie%Vig%Vih%Vip%Viv%Viw%Viz%Vi}%Vi!P%Vi!S%Vi!T%Vi!U%Vi!V%Vi!W%Vi!X%Vi!Y%Vi!Z%Vi![%Vi!]%Vi!^%Vi!_%Vi!u%Vi!z%Vi#f%Vi#r%Vi#t%Vi#u%Vi#y%Vi#z%Vi$W%Vi$Y%Vi$`%Vi$c%Vi$e%Vi$h%Vi$l%Vi$n%Vi$s%Vi$u%Vi$w%Vi$y%Vi$|%Vi%O%Vi%w%Vi%}%Vi&P%Vi&R%Vi&X%Vi&t%Vi|%Vi$a%Vi$q%Vi~Ou#OO%}TO}&oa!P&oa!m&oa~O!P,OO~Oo(tOq!fa&^!fa~Oq(vO&^&ma~O!m%gO}&li!P&li~O|,XO~P]OW,ZO~P5xOW&UXu&UX#_&UX#a&UX#b&UX#d&UX#e&UX#f&UX#g&UX#h&UX#i&UX#k&UX#o&UX#r&UX&^&UX&_&UX&n&UX&v&UX~OZ#xO!P&UX~P#8^OW$gOZ#xO&v#vO~Op,]Ow,]O~Oq,^O}&rX!P&rX~O!b,`O#]#wOY&UXZ#XX~P#8^OY&SXq&SX|&SX!P&SX~P9oO})]O|&yP~P:|OY&SXg%[Xh%[X%}%[X&P%[X&R%[Xq&SX|&SX!P&SX~Oq,cOY&zX~OY,eO~O})fO|&kP~P:|Oq&jX!P&jX|&jXY&jX~P9oO&bTa~PC[Oo)oOp)oOqna&^na~Oq)pO&^&`a~OW,mO~Ow,nO~Ou#OO%}TO&P,rO&R,qO~Og^Oh^Ov#pO!u#rO&P!wO&RWO&t#oO~Og^Oh^Ov{O|,wO!u}O%}TO&P!wO&RWO&tdO~PFdOw-SO&PSO&R!qO&_#YO~Oq*lOY&ea!P&ea~O#_ma#ama#bma#dma#ema#fma#gma#hma#ima#kma#oma#rma&_ma#pmasma|ma~PEnO|-WO~P$wOZ#xO}'^Oq!|X|!|X!P!|X~Oq-[O|&sX!P&sX~O|-_O!P-^O~O&_!hO~P5VOg^Oh^Ov{O|-cO!P*}O!u}O!z|O%}TO&P!wO&RWO&_!hO&tdO~PFdOs-dO~P9oOs-dO~P:|O}'^OW&dqu&dq!P&dq#_&dq#a&dq#b&dq#d&dq#e&dq#f&dq#g&dq#h&dq#i&dq#k&dq#o&dq#r&dq&^&dq&_&dq&n&dq&v&dqY&dq#p&dqs&dqq&dq|&dq~O|-hO~P##nO!W-lO$O-lO&PSO&R!qO~O!P-oO~O$Z-pO&PSO&R!qO~O!b%vO#p-rOq!`X!P!`X~O!P-tO~P9oO!P-tO~P:|O!P-wO~P9oO|-yO~P#)QO![$aO#p-zO~O!P-|O~O!b-}O~OY.QOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOY.QO!P.RO~O%Q(hO%U(iOZ%Vq_%Vq`%Vqa%Vqb%Vqc%Vqe%Vqg%Vqh%Vqp%Vqv%Vqw%Vqz%Vq}%Vq!P%Vq!S%Vq!T%Vq!U%Vq!V%Vq!W%Vq!X%Vq!Y%Vq!Z%Vq![%Vq!]%Vq!^%Vq!_%Vq!u%Vq!z%Vq#f%Vq#r%Vq#t%Vq#u%Vq#y%Vq#z%Vq$W%Vq$Y%Vq$`%Vq$c%Vq$e%Vq$h%Vq$l%Vq$n%Vq$s%Vq$u%Vq$w%Vq$y%Vq$|%Vq%O%Vq%w%Vq%}%Vq&P%Vq&R%Vq&X%Vq&t%Vq|%Vq$a%Vq$q%Vq~Ou#OO%}TO}&oi!P&oi!m&oi~O&n&bOq!ga&^!ga~O!m%gO}&lq!P&lq~O|.^O~P]Op.`Ow&vOz&tO&PSO&R!qO&_#YO~O!P.aO~Oq,^O}&ra!P&ra~O})]O~P:|Oq.gO|&yX~O|.iO~Oq,cOY&za~Oq.mO|&kX~O|.oO~Ow.pO~Oq!aXu!aX!P!aX!b!aX%}!aX~OZ&QX~P#N{OZUX~P#N{O!P.qO~OZ.rO~OW^yZ#XXu^y!P^y!b^y#]^y#_^y#a^y#b^y#d^y#e^y#f^y#g^y#h^y#i^y#k^y#o^y#r^y&^^y&_^y&n^y&v^yY^y#p^ys^yq^y|^y~OY%`aq%`a!P%`a~P9oO!P#nyY#ny#p#nys#nyq#ny|#ny~P9oO}'^Oq!|a|!|a!P!|a~OZ#xO}'^Oq!|a|!|a!P!|a~O%}TO&P#SO&R#SOq%jX|%jX!P%jX~PFdOq-[O|&sa!P&sa~O|!}X~P$wO|/PO~Os/QO~P9oOW%jO!P/RO~OW%jO$Q/WO&PSO&R!qO!P&|P~OW%jO$U/XO~O!P/YO~O!b%vO#p/[Oq!`X!P!`X~OY/^O~O!P/_O~P9oO#p/`O~P9oO!b/bO~OY/cOZ$lO_VO`VOaVObVOcVOeVOg^Oh^Op!POwkOz!OO%}TO&P(_O&R(^O&XUO~PFdOW#[Ou&[X%}&[X&P&[X&R&[X'O&[X~O&_#YO~P$)QOu#OO%}TO'O/eO&P%SX&R%SX~O&n&bOq!gi&^!gi~Op/iO&PSO&R!qO~OW*iOZ#xO~O!P/kO~OY&SXq&SX~P9oO})]Oq%nX|%nX~P:|Oq.gO|&ya~O!b/nO~O})fOq%cX|%cX~P:|Oq.mO|&ka~OY/qO~O!P/rO~OZ/sO~O}'^Oq!|i|!|i!P!|i~O|!}a~P$wOW%jO!P/wO~OW%jOq/xO!P&|X~OY/|O~P9oOY0OO~OY%Xq!P%Xq~P9oO'O/eO&P%Sa&R%Sa~OY0TO~O!P0WO~Ou#OO!P0YO!Z0ZO%}TO~OY0[O~Oq/xO!P&|a~O!P0_O~OW%jOq/xO!P&}X~OY0aO~P9oOY0bO~OY%Xy!P%Xy~P9oOu#OO%}TO&P%ua&R%ua'O%ua~OY0cO~O!P0dO~Ou#OO!P0eO!Z0fO%}TO~OW%jOq%ra!P%ra~Oq/xO!P&}a~O!P0jO~Ou#OO!P0jO!Z0kO%}TO~O!P0lO~O!P0nO~O#p&QXY&QXs&QXq&QX|&QX~P&bO#pUXYUXsUXqUX|UX~P(iO`Q_P#g&Xc~",goto:"#+S'OPPPP'P'd*x.OP'dPP.d.h0PPPPPP1nP3ZPP4v7l:[WP!?[P!Ap!BW!E]3ZPPP!F|!Jm!MaPP#!P#!SP#$`#$f#&V#&f#&n#'p#(Y#)T#)^#)a#)oP#)r#*OP#*V#*^P#*aP#*lP#*o#*r#*u#*y#+PstOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y'urOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%k%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)])f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,`,u-[-^-a-r-t-}.R.V.g.m/O/[/_/b/d/n/q0R0X0Z0[0f0h0k0r#xhO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kt!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oQ#mdS&Y#`(}Q&l#oU&q#t$g,ZQ&x#vW(b%O+s.R/dU)Y%j'v+bQ)Z%kS)u&S,WU*f&s-R._Q*k&yQ,t*TQ-P*iQ.j,cR.t,uu!sT!Q!S!T!{!}$k%p+]+^+_+`-k-m/W/X/x0oT%l!r)l#{qO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k#zlO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kX(c%O+s.R/d$TVO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k$TkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0k&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rQ&Q#[Q)s&RV.T+x.X/e&O[OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.T+x.X/e&O]OPX`ceopx!O!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s,Y,^,`-^-r-t-}.R.g.m/O/[/_/b/d/n0Z0f0k0rV.U+x.X/eS#Z[.TS$f!O&tS&s#t$gQ&y#vQ)V%dQ-R*iR._,Z$kZO`copx!Y![!_!a#Y#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$_$l$m$n$o$p$q%O%d%g%k%v&b&d'_'`'i'm(O(T(U(t)Q)R)])f)o)p*P*l*o+T+d+h+i+l+o+s,Y,^,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ&O#YR,k)p&P_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0r!o#QY!e!x#R#T#`#n$]%R%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0h$SkO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ$m!UQ$n!VQ$s!ZQ$|!`R+p(WQ#yiS'q$e*hQ*e&rQ+X'rS,[)T)UQ-O*gQ-Y*vQ.b,]Q.x-QQ.{-ZQ/j.`Q/u.yR0V/iQ'a$bW*[&m'b'c'dQ+W'qU,x*]*^*_Q-X*vQ-f+XS.u,y,zS.z-Y-ZQ/t.vR/v.{]!mP!o'^*q-^/OreOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!gP!o'^*q-^/OW#b`#e%b&]Q'}$oW(d%O+s.R/dS*U&i*WS*w'e-[S*|'h+OR.X+xh#VY!W!e#n#s%V'|*T*z+f,u-aQ)j%wQ)v&WR,o)y#xnOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k^!kP!g!o'^*q-^/Ov#TY!W#`#n#s%w&W&[&`'|(`(})y*T+f+r,u.W/hQ#g`Q$b{Q$c|Q$d}W%S!e%V*z-aS%Y!h(vQ%`!iQ&m#pQ&n#qQ&o#rQ(u%ZS(y%^({Q*R&eS*v'e-[R-Z*wU)h%v)f.mR+V'p[!mP!o'^*q-^/OT*}'h+O^!iP!g!o'^*q-^/OQ'd$bQ'l$dQ*_&mQ*d&oV*{'h*|+OQ%[!hR,S(vQ(s%YR,R(u#znO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%c!kS(l%S(yR(|%`T#e`%bU#c`#e%bR)z&]Q%f!lQ(n%UQ(r%XQ,U(zR.],VrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OQ%P!bQ%a!jQ%i!pQ'[$ZQ([$|Q(k%QQ(p%WQ+z(iR.Y+yrtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OS*V&i*WT*}'h+OQ'c$bS*^&m'dR,z*_Q'b$bQ'g$cU*]&m'c'dQ*a&nS,y*^*_R.v,zQ*u'`R+Q'iQ'k$dS*c&o'lR,}*dQ'j$dU*b&o'k'lS,|*c*dR.w,}rtOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!mP!o'^*q-^/OT*}'h+OQ'f$cS*`&n'gR,{*aQ*x'eR.|-[R-`*yQ&j#mR*Z&lT*V&i*WQ%e!lS(q%X%fR,P(rR)R%dWk%O+s.R/d#{lO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0k$SiO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kU&r#t$g,ZS*g&s._Q-Q*iR.y-RT'o$e'p!_#|m#a$r$z$}&w&z&{'O'P'Q'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q!]$Pm#a$r$z$}&w&z&{'O'P'R'S'W'Z)[)g+S+g+j-T-V-e-v-{.e/Z/a/}0Q#{nO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0ka)^%k)],`.g/n0Z0f0kQ)`%kR.k,cQ't$hQ)b%oR,f)cT+Y's+ZsvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YruOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YQ$w!]R$y!^R$p!XrvOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YR(O$oR$q!XR(V$sT+k(U+lX(f%P(g(k+{R+y(hQ.W+xR/h.XQ(j%PQ+w(gQ+|(kR.Z+{R%Q!bQ(e%OV.P+s.R/dQxOQ#lcW$`x#l)Q,YQ)Q%dR,Y)RrXOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Yn!fP!o#e&]&i'^'e'h*W*q+O+x-[-^/Ol!zX!f#P#_#i$[%Z%_%{&R'n'{)O0r!j#PY!e!x#T#`#n$]%S%V%^%u%|&S&[&`'X'|(`(l({(}*T*p*z+f+r+},W,u-a.V/q0R0X0[0hQ#_`Q#ia#d$[op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%g%k%v&b&d'_'`'i'm(O(T(t)])f)o*P*l*o+T+h+i+o,^,`-r-t-}.g.m/[/_/b/n0Z0f0kS%Z!h(vS%_!i*{S%{#Y)pQ&R#[S'n$e'pY'{$o%O+s.R/dQ)O%bR0r$YQ!uUR%m!uQ)q&OR,l)q^#RY#`$]'X'|(`*px%R!e!x#n%V%^%|&S&[&`({(}*T*z+f+r,W,u-a.V0R[%t#R%R%u+}0X0hS%u#T%SQ+}(lQ0X/qR0h0[Q*m&{R-U*mQ!oPU%h!o*q/OQ*q'^R/O-^!pbOP`cx![!o#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h(U)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dY!yX!f#_'{)OT#jb!yQ.n,gR/p.nQ%x#VR)k%xQ&c#fS*O&c.[R.[,QQ(w%[R,T(wQ&^#cR){&^Q,_)WR.d,_Q+O'hR-b+OQ-]*xR.}-]Q*W&iR,v*WQ'p$eR+U'pQ&f#gR*S&fQ.h,aR/m.hQ,d)`R.l,dQ+Z'sR-g+ZQ-k+]R/T-kQ/y/US0^/y0`R0`/{Q+l(UR-x+lQ(g%PS+v(g+{R+{(kQ/f.VR0S/fQ+t(eR.S+t`wOcx#l%d)Q)R,YQ$t![Q']$_Q'y$mQ'z$nQ(Q$pQ(R$qS+k(U+lR-q+d'dsOPXY`acopx!Y![!_!a!e!f!h!i!o!x#P#T#Y#[#_#`#e#i#l#n#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$]$_$e$l$m$n$o$p$q%O%S%V%Z%^%_%b%d%g%u%v%{%|&R&S&[&]&`&b&d&i'X'^'_'`'e'h'i'm'n'p'{'|(O(T(U(`(l(t(v({(})O)Q)R)f)o)p*P*T*W*l*o*p*q*z*{+O+T+d+f+h+i+l+o+r+s+x+},W,Y,^,u-[-^-a-r-t-}.R.V.m/O/[/_/b/d/q0R0X0[0h0ra)_%k)],`.g/n0Z0f0kQ!rTQ$h!QQ$i!SQ$j!TQ%o!{Q%q!}Q'x$kQ)c%pQ)l0oS-i+]+_Q-m+^Q-n+`Q/S-kS/U-m/WQ/{/XR0]/x%uSOT`cdopx!Q!S!T!Y![!_!a!{!}#`#l#o#t#u#v#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$g$k$l$m$n$o$p$q%O%d%j%k%p%v&S&d&s&y'm'v(O(T(U(})Q)R)])f*P*T*i*l*o+T+]+^+_+`+b+d+h+i+l+o+s,W,Y,Z,`,c,u-R-k-m-r-t-}.R._.g.m/W/X/[/_/b/d/n/x0Z0f0k0oQ)a%kQ,a)]S.f,`/nQ/l.gQ0g0ZQ0i0fR0m0krmOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,YS#a`$lQ$WoQ$^pQ$r!YQ$z!_Q$}!aQ&w#uQ&z#wY&{#x$o+h-t/_Q&}#|Q'O#}Q'P$OQ'Q$PQ'R$QQ'S$RQ'T$SQ'U$TQ'V$UQ'W$VQ'Z$Z^)[%k)].g/n0Z0f0kU)g%v)f.mQ*Q&dQ+S'mQ+g(OQ+j(TQ,p*PQ-T*lQ-V*oQ-e+TQ-v+iQ-{+oQ.e,`Q/Z-rQ/a-}Q/}/[R0Q/b#xgO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o,Y,`-r-t-}.g.m/[/_/b/n0Z0f0kW(a%O+s.R/dR)S%drYOcx![#l$_$m$n$p$q%d(U)Q)R+d+l,Y[!eP!o'^*q-^/OW!xX$[%{'{Q#``Q#ne#S$]op!Y!_!a#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$l%k%v&d'm(O(T)])f*P*l*o+T+h+i+o,`-r-t-}.g.m/[/_/b/n0Z0f0kQ%V!gS%^!i*{d%|#Y%g&b'_'`'i(t)o)p,^Q&S#_Q&[#bS&`#e&]Q'X$YQ'|$oW(`%O+s.R/dQ({%_Q(}%bS*T&i*WQ*p0rS*z'h+OQ+f'}Q+r(dQ,W)OQ,u*UQ-a*|S.V+x.XR0R/e&O_OPX`ceopx!Y![!_!a!g!i!o#Y#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$l$m$n$o$p$q%O%_%b%d%g%k%v%{&]&b&d&i'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rQ$e!OQ'r$fR*h&t&ZWOPX`ceopx!O!Y![!_!a!g!i!o#Y#[#_#b#e#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Y$Z$[$_$f$l$m$n$o$p$q%O%_%b%d%g%k%v%{&R&]&b&d&i&t'^'_'`'h'i'm'{'}(O(T(U(d(t)O)Q)R)])f)o)p*P*U*W*l*o*q*{*|+O+T+d+h+i+l+o+s+x,Y,^,`-^-r-t-}.R.X.g.m/O/[/_/b/d/e/n0Z0f0k0rR&P#Y$QjOcopx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kQ#f`Q&O#YQ'Y$YU)W%g'`'iQ)}&bQ*s'_Q,Q(tQ,j)oQ,k)pR.c,^Q)n%}R,i)m$SfO`copx!Y![!_!a#l#u#w#x#|#}$O$P$Q$R$S$T$U$V$Z$_$l$m$n$o$p$q%O%d%k%v&d'm(O(T(U)Q)R)])f*P*l*o+T+d+h+i+l+o+s,Y,`-r-t-}.R.g.m/[/_/b/d/n0Z0f0kT&p#t,ZQ&|#xQ(P$oQ-u+hQ/]-tR0P/_]!nP!o'^*q-^/O#PaOPX`bcx![!f!o!y#_#e#l$_$m$n$o$p$q%O%b%d&]&i'^'e'h'{(U)O)Q)R*W*q+O+d+l+s+x,Y-[-^.R/O/dU#WY!W'|Q%T!eU&k#n#s+fQ(o%VS,s*T*zT.s,u-aj#UY!W!e#n#s%V%w&W)y*T*z,u-aU&V#`&`(}Q)x&[Q+e'|Q+q(`Q-s+fQ.O+rQ/g.WR0U/hQ)i%vQ,g)fR/o.mR,h)f`!jP!o'^'h*q+O-^/OT%W!g*|R%]!hW%U!e%V*z-aQ(z%^R,V({S#d`%bR&a#eQ)X%gT*t'`'iR*y'e[!lP!o'^*q-^/OR%X!gR#h`R,b)]R)a%kT-j+]-kQ/V-mR/z/WR/z/X",nodeNames:"⚠ LineComment BlockComment Program ModuleDeclaration MarkerAnnotation Identifier ScopedIdentifier . Annotation ) ( AnnotationArgumentList AssignmentExpression FieldAccess IntegerLiteral FloatingPointLiteral BooleanLiteral CharacterLiteral StringLiteral TextBlock null ClassLiteral void PrimitiveType TypeName ScopedTypeName GenericType TypeArguments AnnotatedType Wildcard extends super , ArrayType ] Dimension [ class this ParenthesizedExpression ObjectCreationExpression new ArgumentList } { ClassBody ; FieldDeclaration Modifiers public protected private abstract static final strictfp default synchronized native transient volatile VariableDeclarator Definition AssignOp ArrayInitializer MethodDeclaration TypeParameters TypeParameter TypeBound FormalParameters ReceiverParameter FormalParameter SpreadParameter Throws throws Block ClassDeclaration Superclass SuperInterfaces implements InterfaceTypeList InterfaceDeclaration interface ExtendsInterfaces InterfaceBody ConstantDeclaration EnumDeclaration enum EnumBody EnumConstant EnumBodyDeclarations AnnotationTypeDeclaration AnnotationTypeBody AnnotationTypeElementDeclaration StaticInitializer ConstructorDeclaration ConstructorBody ExplicitConstructorInvocation ArrayAccess MethodInvocation MethodName MethodReference ArrayCreationExpression Dimension AssignOp BinaryExpression CompareOp CompareOp LogicOp LogicOp BitOp BitOp BitOp ArithOp ArithOp ArithOp BitOp InstanceofExpression instanceof LambdaExpression InferredParameters TernaryExpression LogicOp : UpdateExpression UpdateOp UnaryExpression LogicOp BitOp CastExpression ElementValueArrayInitializer ElementValuePair open module ModuleBody ModuleDirective requires transitive exports to opens uses provides with PackageDeclaration package ImportDeclaration import Asterisk ExpressionStatement LabeledStatement Label IfStatement if else WhileStatement while ForStatement for ForSpec LocalVariableDeclaration var EnhancedForStatement ForSpec AssertStatement assert SwitchStatement switch SwitchBlock SwitchLabel case DoStatement do BreakStatement break ContinueStatement continue ReturnStatement return SynchronizedStatement ThrowStatement throw TryStatement try CatchClause catch CatchFormalParameter CatchType FinallyClause finally TryWithResourcesStatement ResourceSpecification Resource ClassContent",maxTerm:276,nodeProps:[["isolate",-4,1,2,18,19,""],["group",-26,4,47,76,77,82,87,92,145,147,150,151,153,156,158,161,163,165,167,172,174,176,178,180,181,183,191,"Statement",-25,6,13,14,15,16,17,18,19,20,21,22,39,40,41,99,100,102,103,106,118,120,122,125,127,130,"Expression",-7,23,24,25,26,27,29,34,"Type"],["openedBy",10,"(",44,"{"],["closedBy",11,")",45,"}"]],propSources:[a],skippedNodes:[0,1,2],repeatNodeCount:28,tokenData:"#$f_R!_OX%QXY'fYZ)bZ^'f^p%Qpq'fqr*|rs,^st%Qtu4euv5qvw7Rwx8ixyAQyzAnz{B[{|CQ|}Dh}!OEU!O!PFo!P!Q! i!Q!R!,_!R![!0V![!]!>g!]!^!?w!^!_!@e!_!`!BO!`!a!Br!a!b!D`!b!c!EO!c!}!Kz!}#O!MW#O#P%Q#P#Q!Mt#Q#R!Nb#R#S4e#S#T%Q#T#o4e#o#p# U#p#q# r#q#r##[#r#s##x#s#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%QS%VV&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS%qO&YSS%tVOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZS&^VOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QS&vP;=`<%l%QS&|UOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZS'cP;=`<%l&Z_'mk&YS%yZOX%QXY'fYZ)bZ^'f^p%Qpq'fqr%Qrs%qs#y%Q#y#z'f#z$f%Q$f$g'f$g#BY%Q#BY#BZ'f#BZ$IS%Q$IS$I_'f$I_$I|%Q$I|$JO'f$JO$JT%Q$JT$JU'f$JU$KV%Q$KV$KW'f$KW&FU%Q&FU&FV'f&FV;'S%Q;'S;=`&s<%lO%Q_)iY&YS%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XZ*^Y%yZX^*Xpq*X#y#z*X$f$g*X#BY#BZ*X$IS$I_*X$I|$JO*X$JT$JU*X$KV$KW*X&FU&FV*XV+TX#tP&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QU+wV#_Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT,aXOY,|YZ%lZr,|rs3Ys#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T-PXOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT-qX&YSOY-lYZ%lZr-lrs.^s#O-l#O#P.x#P;'S-l;'S;=`2|<%lO-lT.cVcPOY&ZYZ%lZr&Zrs&ys;'S&Z;'S;=`'`<%lO&ZT.}V&YSOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT/iW&YSOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0UWOY0RZr0Rrs0ns#O0R#O#P0s#P;'S0R;'S;=`1V<%lO0RP0sOcPP0vTOY0RYZ0RZ;'S0R;'S;=`1V<%lO0RP1YP;=`<%l0RT1`XOY,|YZ%lZr,|rs1{s#O,|#O#P2d#P;'S,|;'S;=`3S<%lO,|T2QUcPOY&ZYZ%lZr&Zs;'S&Z;'S;=`'`<%lO&ZT2gVOY-lYZ/dZr-lrs1]s;'S-l;'S;=`2|<%lO-lT3PP;=`<%l-lT3VP;=`<%l,|T3_VcPOY&ZYZ%lZr&Zrs3ts;'S&Z;'S;=`'`<%lO&ZT3yR&WSXY4SYZ4`pq4SP4VRXY4SYZ4`pq4SP4eO&XP_4la&PZ&YSOY%QYZ%lZr%Qrs%qst%Qtu4eu!Q%Q!Q![4e![!c%Q!c!}4e!}#R%Q#R#S4e#S#T%Q#T#o4e#o;'S%Q;'S;=`&s<%lO%QU5xX#hQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU6lV#]Q&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV7YZ&nR&YSOY%QYZ%lZr%Qrs%qsv%Qvw7{w!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QU8SV#aQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT8nZ&YSOY9aYZ%lZr9ars:osw9awx%Qx#O9a#O#P;y#P;'S9a;'S;=`@z<%lO9aT9fX&YSOY%QYZ%lZr%Qrs%qsw%Qwx:Rx;'S%Q;'S;=`&s<%lO%QT:YVbP&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT:rXOY&ZYZ%lZr&Zrs&ysw&Zwx;_x;'S&Z;'S;=`'`<%lO&ZT;dVbPOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT_YZ%lZr>_rs?Zsw>_wx;_x#O>_#O#P&Z#P;'S>_;'S;=`@t<%lO>_T>bZOY_YZ%lZr>_rs@Psw>_wx;_x#O>_#O#P&Z#P;'S>_;'S;=`@t<%lO>_P@SVOY@PZw@Pwx@ix#O@P#P;'S@P;'S;=`@n<%lO@PP@nObPP@qP;=`<%l@PT@wP;=`<%l>_T@}P;=`<%l9a_AXVZZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVAuVYR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVBeX$ZP&YS#gQOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVCXZ#fR&YSOY%QYZ%lZr%Qrs%qs{%Q{|Cz|!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QVDRV#rR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVDoVqR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QVE][#fR&YSOY%QYZ%lZr%Qrs%qs}%Q}!OCz!O!_%Q!_!`6e!`!aFR!a;'S%Q;'S;=`&s<%lO%QVFYV&xR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_FvZWY&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PGi!P!Q%Q!Q![Hw![;'S%Q;'S;=`&s<%lO%QVGnX&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!PHZ!P;'S%Q;'S;=`&s<%lO%QVHbV&qR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTIOc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![!f%Q!f!gJZ!g!hJw!h!iJZ!i#R%Q#R#SNq#S#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QTJbV&YS`POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QTJ|]&YSOY%QYZ%lZr%Qrs%qs{%Q{|Ku|}%Q}!OKu!O!Q%Q!Q![Lg![;'S%Q;'S;=`&s<%lO%QTKzX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![;'S%Q;'S;=`&s<%lO%QTLnc&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![!f%Q!f!gJZ!g!h%Q!h!iJZ!i#R%Q#R#SMy#S#W%Q#W#XJZ#X#Y%Q#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QTNOZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Lg![#R%Q#R#SMy#S;'S%Q;'S;=`&s<%lO%QTNvZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![#R%Q#R#SNq#S;'S%Q;'S;=`&s<%lO%Q_! p]&YS#gQOY%QYZ%lZr%Qrs%qsz%Qz{!!i{!P%Q!P!Q!)[!Q!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%Q_!!nX&YSOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{;'S!!i;'S;=`!'j<%lO!!i_!#`T&YSOz!#oz{!$R{;'S!#o;'S;=`!$p<%lO!#oZ!#rTOz!#oz{!$R{;'S!#o;'S;=`!$p<%lO!#oZ!$UVOz!#oz{!$R{!P!#o!P!Q!$k!Q;'S!#o;'S;=`!$p<%lO!#oZ!$pOQZZ!$sP;=`<%l!#o_!$yXOY!%fYZ!#ZZr!%frs!'psz!%fz{!(`{;'S!%f;'S;=`!)U<%lO!%f_!%iXOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{;'S!!i;'S;=`!'j<%lO!!i_!&ZZ&YSOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{!P!!i!P!Q!&|!Q;'S!!i;'S;=`!'j<%lO!!i_!'TV&YSQZOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!'mP;=`<%l!!i_!'sXOY!%fYZ!#ZZr!%frs!#osz!%fz{!(`{;'S!%f;'S;=`!)U<%lO!%f_!(cZOY!!iYZ!#ZZr!!irs!$vsz!!iz{!&U{!P!!i!P!Q!&|!Q;'S!!i;'S;=`!'j<%lO!!i_!)XP;=`<%l!%f_!)cV&YSPZOY!)[YZ%lZr!)[rs!)xs;'S!)[;'S;=`!+O<%lO!)[_!)}VPZOY!*dYZ%lZr!*drs!+Us;'S!*d;'S;=`!,X<%lO!*d_!*iVPZOY!)[YZ%lZr!)[rs!)xs;'S!)[;'S;=`!+O<%lO!)[_!+RP;=`<%l!)[_!+ZVPZOY!*dYZ%lZr!*drs!+ps;'S!*d;'S;=`!,X<%lO!*dZ!+uSPZOY!+pZ;'S!+p;'S;=`!,R<%lO!+pZ!,UP;=`<%l!+p_!,[P;=`<%l!*dT!,fu&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.y!P!Q%Q!Q![!0V![!d%Q!d!e!3a!e!f%Q!f!gJZ!g!hJw!h!iJZ!i!n%Q!n!o!1{!o!q%Q!q!r!5_!r!z%Q!z!{!7V!{#R%Q#R#S!2i#S#U%Q#U#V!3a#V#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z#`%Q#`#a!1{#a#c%Q#c#d!5_#d#l%Q#l#m!7V#m;'S%Q;'S;=`&s<%lO%QT!/Qa&YS`POY%QYZ%lZr%Qrs%qs!Q%Q!Q![Hw![!f%Q!f!gJZ!g!hJw!h!iJZ!i#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z;'S%Q;'S;=`&s<%lO%QT!0^i&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!.y!P!Q%Q!Q![!0V![!f%Q!f!gJZ!g!hJw!h!iJZ!i!n%Q!n!o!1{!o#R%Q#R#S!2i#S#W%Q#W#XJZ#X#YJw#Y#ZJZ#Z#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!2SV&YS_POY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT!2nZ&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!0V![#R%Q#R#S!2i#S;'S%Q;'S;=`&s<%lO%QT!3fY&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4U!R!S!4U!S;'S%Q;'S;=`&s<%lO%QT!4]`&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!R!4U!R!S!4U!S!n%Q!n!o!1{!o#R%Q#R#S!3a#S#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!5dX&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6P!Y;'S%Q;'S;=`&s<%lO%QT!6W_&YS_POY%QYZ%lZr%Qrs%qs!Q%Q!Q!Y!6P!Y!n%Q!n!o!1{!o#R%Q#R#S!5_#S#`%Q#`#a!1{#a;'S%Q;'S;=`&s<%lO%QT!7[_&YSOY%QYZ%lZr%Qrs%qs!O%Q!O!P!8Z!P!Q%Q!Q![!:i![!c%Q!c!i!:i!i#T%Q#T#Z!:i#Z;'S%Q;'S;=`&s<%lO%QT!8`]&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9X![!c%Q!c!i!9X!i#T%Q#T#Z!9X#Z;'S%Q;'S;=`&s<%lO%QT!9^c&YSOY%QYZ%lZr%Qrs%qs!Q%Q!Q![!9X![!c%Q!c!i!9X!i!r%Q!r!sJw!s#R%Q#R#S!8Z#S#T%Q#T#Z!9X#Z#d%Q#d#eJw#e;'S%Q;'S;=`&s<%lO%QT!:pi&YS_POY%QYZ%lZr%Qrs%qs!O%Q!O!P!<_!P!Q%Q!Q![!:i![!c%Q!c!i!:i!i!n%Q!n!o!1{!o!r%Q!r!sJw!s#R%Q#R#S!=i#S#T%Q#T#Z!:i#Z#`%Q#`#a!1{#a#d%Q#d#eJw#e;'S%Q;'S;=`&s<%lO%QT!nX#pR&YSOY%QYZ%lZr%Qrs%qs![%Q![!]!?Z!];'S%Q;'S;=`&s<%lO%QV!?bV&vR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!@OV!PR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!@lY&_Z&YSOY%QYZ%lZr%Qrs%qs!^%Q!^!_!A[!_!`+p!`;'S%Q;'S;=`&s<%lO%QU!AcX#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV!BVX!bR&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`;'S%Q;'S;=`&s<%lO%QV!ByY&^R&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`+p!`!a!Ci!a;'S%Q;'S;=`&s<%lO%QU!CpY#iQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`!a!A[!a;'S%Q;'S;=`&s<%lO%Q_!DiV&bX#oQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!EVX%}Z&YSOY%QYZ%lZr%Qrs%qs#]%Q#]#^!Er#^;'S%Q;'S;=`&s<%lO%QV!EwX&YSOY%QYZ%lZr%Qrs%qs#b%Q#b#c!Fd#c;'S%Q;'S;=`&s<%lO%QV!FiX&YSOY%QYZ%lZr%Qrs%qs#h%Q#h#i!GU#i;'S%Q;'S;=`&s<%lO%QV!GZX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!Gv#Y;'S%Q;'S;=`&s<%lO%QV!G{X&YSOY%QYZ%lZr%Qrs%qs#f%Q#f#g!Hh#g;'S%Q;'S;=`&s<%lO%QV!HmX&YSOY%QYZ%lZr%Qrs%qs#Y%Q#Y#Z!IY#Z;'S%Q;'S;=`&s<%lO%QV!I_X&YSOY%QYZ%lZr%Qrs%qs#T%Q#T#U!Iz#U;'S%Q;'S;=`&s<%lO%QV!JPX&YSOY%QYZ%lZr%Qrs%qs#V%Q#V#W!Jl#W;'S%Q;'S;=`&s<%lO%QV!JqX&YSOY%QYZ%lZr%Qrs%qs#X%Q#X#Y!K^#Y;'S%Q;'S;=`&s<%lO%QV!KeV&tR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_!LRa&RZ&YSOY%QYZ%lZr%Qrs%qst%Qtu!Kzu!Q%Q!Q![!Kz![!c%Q!c!}!Kz!}#R%Q#R#S!Kz#S#T%Q#T#o!Kz#o;'S%Q;'S;=`&s<%lO%Q_!M_VuZ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV!M{VsR&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QU!NiX#eQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`;'S%Q;'S;=`&s<%lO%QV# ]V}R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q_# {Z'OX#dQ&YSOY%QYZ%lZr%Qrs%qs!_%Q!_!`6e!`#p%Q#p#q#!n#q;'S%Q;'S;=`&s<%lO%QU#!uV#bQ&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QV##cV|R&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%QT#$PV#uP&YSOY%QYZ%lZr%Qrs%qs;'S%Q;'S;=`&s<%lO%Q",tokenizers:[0,1,2,3],topRules:{Program:[0,3],ClassContent:[1,194]},dynamicPrecedences:{27:1,232:-1,243:-1},specialized:[{term:231,get:O=>r[O]||-1}],tokenPrec:7144});var X=$(29587);const s=X.bj.define({name:"java",parser:e.configure({props:[X.Oh.add({IfStatement:(0,X.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,X.mz)({except:/^\s*({|catch|finally)\b/}),LabeledStatement:X._Y,SwitchBlock:O=>{let Q=O.textAfter,$=/^\s*\}/.test(Q),P=/^\s*(case|default)\b/.test(Q);return O.baseIndent+($?0:P?1:2)*O.unit},Block:(0,X.Ay)({closing:"}"}),BlockComment:()=>null,Statement:(0,X.mz)({except:/^{/})}),X.b_.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":X.yd,BlockComment:O=>({from:O.from+2,to:O.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function l(){return new X.Yy(s)}}}]); +//# sourceMappingURL=1302.thebe-core.min.js.map \ No newline at end of file diff --git a/132.thebe-core.min.js b/132.thebe-core.min.js new file mode 100644 index 00000000..f692d493 --- /dev/null +++ b/132.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[132],{80132:(e,t,T)=>{function n(e){for(var t={},T=e.split(" "),n=0;nR});const E={name:"ttcn-cfg",keywords:n("Yes No LogFile FileMask ConsoleMask AppendFile TimeStampFormat LogEventTypes SourceInfoFormat LogEntityName LogSourceInfo DiskFullAction LogFileNumber LogFileSize MatchingHints Detailed Compact SubCategories Stack Single None Seconds DateTime Time Stop Error Retry Delete TCPPort KillTimer NumHCs UnixSocketsEnabled LocalAddress"),fileNCtrlMaskOptions:n("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION TTCN_USER TTCN_FUNCTION TTCN_STATISTICS TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG EXECUTOR ERROR WARNING PORTEVENT TIMEROP VERDICTOP DEFAULTOP TESTCASE ACTION USER FUNCTION STATISTICS PARALLEL MATCHING DEBUG LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED DEBUG_ENCDEC DEBUG_TESTPORT DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED FUNCTION_RND FUNCTION_UNQUALIFIED MATCHING_DONE MATCHING_MCSUCCESS MATCHING_MCUNSUCC MATCHING_MMSUCCESS MATCHING_MMUNSUCC MATCHING_PCSUCCESS MATCHING_PCUNSUCC MATCHING_PMSUCCESS MATCHING_PMUNSUCC MATCHING_PROBLEM MATCHING_TIMEOUT MATCHING_UNQUALIFIED PARALLEL_PORTCONN PARALLEL_PORTMAP PARALLEL_PTC PARALLEL_UNQUALIFIED PORTEVENT_DUALRECV PORTEVENT_DUALSEND PORTEVENT_MCRECV PORTEVENT_MCSEND PORTEVENT_MMRECV PORTEVENT_MMSEND PORTEVENT_MQUEUE PORTEVENT_PCIN PORTEVENT_PCOUT PORTEVENT_PMIN PORTEVENT_PMOUT PORTEVENT_PQUEUE PORTEVENT_STATE PORTEVENT_UNQUALIFIED STATISTICS_UNQUALIFIED STATISTICS_VERDICT TESTCASE_FINISH TESTCASE_START TESTCASE_UNQUALIFIED TIMEROP_GUARD TIMEROP_READ TIMEROP_START TIMEROP_STOP TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED USER_UNQUALIFIED VERDICTOP_FINAL VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),externalCommands:n("BeginControlPart EndControlPart BeginTestCase EndTestCase"),multiLineStrings:!0};var C,N=E.keywords,r=E.fileNCtrlMaskOptions,I=E.externalCommands,i=E.multiLineStrings,o=!1!==E.indentStatements,_=/[\|]/;function A(e,t){var T,n=e.next();if('"'==n||"'"==n)return t.tokenize=(T=n,function(e,t){for(var n,E=!1,C=!1;null!=(n=e.next());){if(n==T&&!E){var N=e.peek();N&&("b"!=(N=N.toLowerCase())&&"h"!=N&&"o"!=N||e.next()),C=!0;break}E=!E&&"\\"==n}return(C||!E&&!i)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[:=]/.test(n))return C=n,"punctuation";if("#"==n)return e.skipToEnd(),"comment";if(/\d/.test(n))return e.eatWhile(/[\w\.]/),"number";if(_.test(n))return e.eatWhile(_),"operator";if("["==n)return e.eatWhile(/[\w_\]]/),"number";e.eatWhile(/[\w\$_]/);var E=e.current();return N.propertyIsEnumerable(E)?"keyword":r.propertyIsEnumerable(E)?"atom":I.propertyIsEnumerable(E)?"deleted":"variable"}function O(e,t,T,n,E){this.indented=e,this.column=t,this.type=T,this.align=n,this.prev=E}function U(e,t,T){var n=e.indented;return e.context&&"statement"==e.context.type&&(n=e.context.indented),e.context=new O(n,t,T,null,e.context)}function a(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const R={name:"ttcn",startState:function(){return{tokenize:null,context:new O(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var T=t.context;if(e.sol()&&(null==T.align&&(T.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;C=null;var n=(t.tokenize||A)(e,t);if("comment"==n)return n;if(null==T.align&&(T.align=!0),";"!=C&&":"!=C&&","!=C||"statement"!=T.type)if("{"==C)U(t,e.column(),"}");else if("["==C)U(t,e.column(),"]");else if("("==C)U(t,e.column(),")");else if("}"==C){for(;"statement"==T.type;)T=a(t);for("}"==T.type&&(T=a(t));"statement"==T.type;)T=a(t)}else C==T.type?a(t):o&&(("}"==T.type||"top"==T.type)&&";"!=C||"statement"==T.type&&"newstatement"==C)&&U(t,e.column(),"statement");else a(t);return t.startOfLine=!1,n},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=132.thebe-core.min.js.map \ No newline at end of file diff --git a/1374.thebe-core.min.js b/1374.thebe-core.min.js new file mode 100644 index 00000000..488a7276 --- /dev/null +++ b/1374.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1374],{21374:(e,t,r)=>{r.r(t),r.d(t,{pascal:()=>c});var n=function(){for(var e={},t="absolute and array asm begin case const constructor destructor div do downto else end file for function goto if implementation in inherited inline interface label mod nil not object of operator or packed procedure program record reintroduce repeat self set shl shr string then to type unit until uses var while with xor as class dispinterface except exports finalization finally initialization inline is library on out packed property raise resourcestring threadvar try absolute abstract alias assembler bitpacked break cdecl continue cppdecl cvar default deprecated dynamic enumerator experimental export external far far16 forward generic helper implements index interrupt iocheck local message name near nodefault noreturn nostackframe oldfpccall otherwise overload override pascal platform private protected public published read register reintroduce result safecall saveregisters softfloat specialize static stdcall stored strict unaligned unimplemented varargs virtual write".split(" "),r=0;r!?|\/]/;function o(e,t){var r,o=e.next();if("#"==o&&t.startOfLine)return e.skipToEnd(),"meta";if('"'==o||"'"==o)return t.tokenize=(r=o,function(e,t){for(var n,a=!1,i=!1;null!=(n=e.next());){if(n==r&&!a){i=!0;break}a=!a&&"\\"==n}return!i&&a||(t.tokenize=null),"string"}),t.tokenize(e,t);if("("==o&&e.eat("*"))return t.tokenize=l,l(e,t);if("{"==o)return t.tokenize=s,s(e,t);if(/[\[\]\(\),;\:\.]/.test(o))return null;if(/\d/.test(o))return e.eatWhile(/[\w\.]/),"number";if("/"==o&&e.eat("/"))return e.skipToEnd(),"comment";if(i.test(o))return e.eatWhile(i),"operator";e.eatWhile(/[\w\$_]/);var c=e.current();return n.propertyIsEnumerable(c)?"keyword":a.propertyIsEnumerable(c)?"atom":"variable"}function l(e,t){for(var r,n=!1;r=e.next();){if(")"==r&&n){t.tokenize=null;break}n="*"==r}return"comment"}function s(e,t){for(var r;r=e.next();)if("}"==r){t.tokenize=null;break}return"comment"}const c={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,t){return e.eatSpace()?null:(t.tokenize||o)(e,t)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}}}}]); +//# sourceMappingURL=1374.thebe-core.min.js.map \ No newline at end of file diff --git a/1405.thebe-core.min.js b/1405.thebe-core.min.js new file mode 100644 index 00000000..b403a0d6 --- /dev/null +++ b/1405.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1405],{21405:(e,t,n)=>{n.r(t),n.d(t,{scheme:()=>E});var r="comment",a="string",i="symbol",s="atom",c="number",l="bracket";function o(e){for(var t={},n=e.split(" "),r=0;rinteger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),u=o("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function m(e,t,n){this.indent=e,this.type=t,this.prev=n}function p(e,t,n){e.indentStack=new m(t,n,e.indentStack)}var f=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),h=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),g=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),x=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function b(e){return e.match(f)}function k(e){return e.match(h)}function v(e,t){return!0===t&&e.backUp(1),e.match(x)}function y(e){return e.match(g)}function w(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&"\\"==n}}const E={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,t){if(null==t.indentStack&&e.sol()&&(t.indentation=e.indentation()),e.eatSpace())return null;var n=null;switch(t.mode){case"string":w(e,{token:'"',state:t}),n=a;break;case"symbol":w(e,{token:"|",state:t}),n=i;break;case"comment":for(var o,m=!1;null!=(o=e.next());){if("#"==o&&m){t.mode=!1;break}m="|"==o}n=r;break;case"s-expr-comment":if(t.mode=!1,"("!=e.peek()&&"["!=e.peek()){e.eatWhile(/[^\s\(\)\[\]]/),n=r;break}t.sExprComment=0;default:var f=e.next();if('"'==f)t.mode="string",n=a;else if("'"==f)"("==e.peek()||"["==e.peek()?("number"!=typeof t.sExprQuote&&(t.sExprQuote=0),n=s):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=s);else if("|"==f)t.mode="symbol",n=i;else if("#"==f)if(e.eat("|"))t.mode="comment",n=r;else if(e.eat(/[tf]/i))n=s;else if(e.eat(";"))t.mode="s-expr-comment",n=r;else{var h=null,g=!1,x=!0;e.eat(/[ei]/i)?g=!0:e.backUp(1),e.match(/^#b/i)?h=b:e.match(/^#o/i)?h=k:e.match(/^#x/i)?h=y:e.match(/^#d/i)?h=v:e.match(/^[-+0-9.]/,!1)?(x=!1,h=v):g||e.eat("#"),null!=h&&(x&&!g&&e.match(/^#[ei]/i),h(e)&&(n=c))}else if(/^[-+0-9.]/.test(f)&&v(e,!0))n=c;else if(";"==f)e.skipToEnd(),n=r;else if("("==f||"["==f){for(var E,S="",q=e.column();null!=(E=e.eat(/[^\s\(\[\;\)\]]/));)S+=E;S.length>0&&u.propertyIsEnumerable(S)?p(t,q+2,f):(e.eatSpace(),e.eol()||";"==e.peek()?p(t,q+1,f):p(t,q+e.current().length,f)),e.backUp(e.current().length-1),"number"==typeof t.sExprComment&&t.sExprComment++,"number"==typeof t.sExprQuote&&t.sExprQuote++,n=l}else")"==f||"]"==f?(n=l,null!=t.indentStack&&t.indentStack.type==(")"==f?"(":"[")&&(function(e){e.indentStack=e.indentStack.prev}(t),"number"==typeof t.sExprComment&&0==--t.sExprComment&&(n=r,t.sExprComment=!1),"number"==typeof t.sExprQuote&&0==--t.sExprQuote&&(n=s,t.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=d&&d.propertyIsEnumerable(e.current())?"builtin":"variable")}return"number"==typeof t.sExprComment?r:"number"==typeof t.sExprQuote?s:n},indent:function(e){return null==e.indentStack?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}}}}]); +//# sourceMappingURL=1405.thebe-core.min.js.map \ No newline at end of file diff --git a/1408.thebe-core.min.js b/1408.thebe-core.min.js new file mode 100644 index 00000000..055ef06f --- /dev/null +++ b/1408.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1408],{61408:(e,t,n)=>{n.r(t),n.d(t,{go:()=>s});var r,i={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},a={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},o=/[+\-*&^%:=<>!|\/]/;function c(e,t){var n,l=e.next();if('"'==l||"'"==l||"`"==l)return t.tokenize=(n=l,function(e,t){for(var r,i=!1,a=!1;null!=(r=e.next());){if(r==n&&!i){a=!0;break}i=!i&&"`"!=n&&"\\"==r}return(a||!i&&"`"!=n)&&(t.tokenize=c),"string"}),t.tokenize(e,t);if(/[\d\.]/.test(l))return"."==l?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==l?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(l))return r=l,null;if("/"==l){if(e.eat("*"))return t.tokenize=u,u(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(o.test(l))return e.eatWhile(o),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var f=e.current();return i.propertyIsEnumerable(f)?("case"!=f&&"default"!=f||(r="case"),"keyword"):a.propertyIsEnumerable(f)?"atom":"variable"}function u(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=c;break}r="*"==n}return"comment"}function l(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function f(e,t,n){return e.context=new l(e.indented,t,n,null,e.context)}const s={name:"go",startState:function(e){return{tokenize:null,context:new l(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"case"==n.type&&(n.type="}")),e.eatSpace())return null;r=null;var i=(t.tokenize||c)(e,t);return"comment"==i||(null==n.align&&(n.align=!0),"{"==r?f(t,e.column(),"}"):"["==r?f(t,e.column(),"]"):"("==r?f(t,e.column(),")"):"case"==r?n.type="case":("}"==r&&"}"==n.type||r==n.type)&&function(e){if(e.context.prev){var t=e.context.type;")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}}(t),t.startOfLine=!1),i},indent:function(e,t,n){if(e.tokenize!=c&&null!=e.tokenize)return null;var r=e.context,i=t&&t.charAt(0);if("case"==r.type&&/^(?:case|default)\b/.test(t))return r.indented;var a=i==r.type;return r.align?r.column+(a?0:1):r.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); +//# sourceMappingURL=1408.thebe-core.min.js.map \ No newline at end of file diff --git a/142.thebe-core.min.js b/142.thebe-core.min.js new file mode 100644 index 00000000..a018e7cd --- /dev/null +++ b/142.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[142],{60142:(O,Q,P)=>{P.r(Q),P.d(Q,{rust:()=>_,rustLanguage:()=>Y});var $=P(73643),X=P(49913);function i(O){return O>=48&&O<=57}function e(O){return i(O)||95==O}const n=new $.Lu(((O,Q)=>{if(i(O.next)){let Q=!1;do{O.advance()}while(e(O.next));if(46==O.next)if(Q=!0,O.advance(),i(O.next))do{O.advance()}while(e(O.next));else if(46==O.next||O.next>127||/\w/.test(String.fromCharCode(O.next)))return;if(101==O.next||69==O.next){if(Q=!0,O.advance(),43!=O.next&&45!=O.next||O.advance(),!e(O.next))return;do{O.advance()}while(e(O.next))}if(102==O.next){let P=O.peek(1);if(!(51==P&&50==O.peek(2)||54==P&&52==O.peek(2)))return;O.advance(3),Q=!0}Q&&O.acceptToken(5)}else if(98==O.next||114==O.next){if(98==O.next&&O.advance(),114!=O.next)return;O.advance();let Q=0;for(;35==O.next;)Q++,O.advance();if(34!=O.next)return;O.advance();O:for(;;){if(O.next<0)return;let P=34==O.next;if(O.advance(),P){for(let P=0;P{124==O.next&&O.acceptToken(1,1)})),S=new $.Lu((O=>{60==O.next?O.acceptToken(2,1):62==O.next&&O.acceptToken(3,1)})),r=(0,X.pn)({"const macro_rules struct union enum type fn impl trait let static":X._A.definitionKeyword,"mod use crate":X._A.moduleKeyword,"pub unsafe async mut extern default move":X._A.modifier,"for if else loop while match continue break return await":X._A.controlKeyword,"as in ref":X._A.operatorKeyword,"where _ crate super dyn":X._A.keyword,self:X._A.self,String:X._A.string,Char:X._A.character,RawString:X._A.special(X._A.string),Boolean:X._A.bool,Identifier:X._A.variableName,"CallExpression/Identifier":X._A.function(X._A.variableName),BoundIdentifier:X._A.definition(X._A.variableName),"FunctionItem/BoundIdentifier":X._A.function(X._A.definition(X._A.variableName)),LoopLabel:X._A.labelName,FieldIdentifier:X._A.propertyName,"CallExpression/FieldExpression/FieldIdentifier":X._A.function(X._A.propertyName),Lifetime:X._A.special(X._A.variableName),ScopeIdentifier:X._A.namespace,TypeIdentifier:X._A.typeName,"MacroInvocation/Identifier MacroInvocation/ScopedIdentifier/Identifier":X._A.macroName,"MacroInvocation/TypeIdentifier MacroInvocation/ScopedIdentifier/TypeIdentifier":X._A.macroName,'"!"':X._A.macroName,UpdateOp:X._A.updateOperator,LineComment:X._A.lineComment,BlockComment:X._A.blockComment,Integer:X._A.integer,Float:X._A.float,ArithOp:X._A.arithmeticOperator,LogicOp:X._A.logicOperator,BitOp:X._A.bitwiseOperator,CompareOp:X._A.compareOperator,"=":X._A.definitionOperator,".. ... => ->":X._A.punctuation,"( )":X._A.paren,"[ ]":X._A.squareBracket,"{ }":X._A.brace,". DerefOp":X._A.derefOperator,"&":X._A.operator,", ; ::":X._A.separator,"Attribute/...":X._A.meta}),s={__proto__:null,self:28,super:32,crate:34,impl:46,true:72,false:72,pub:88,in:92,const:96,unsafe:104,async:108,move:110,if:114,let:118,ref:142,mut:144,_:198,else:200,match:204,as:248,return:252,await:262,break:270,continue:276,while:312,loop:316,for:320,macro_rules:327,mod:334,extern:342,struct:346,where:364,union:379,enum:382,type:390,default:395,fn:396,trait:412,use:420,static:438,dyn:476},t=$.U1.deserialize({version:14,states:"$2xQ]Q_OOP$wOWOOO&sQWO'#CnO)WQWO'#I`OOQP'#I`'#I`OOQQ'#Ie'#IeO)hO`O'#C}OOQR'#Ih'#IhO)sQWO'#IuOOQO'#Hk'#HkO)xQWO'#DpOOQR'#Iw'#IwO)xQWO'#DpO*ZQWO'#DpOOQO'#Iv'#IvO,SQWO'#J`O,ZQWO'#EiOOQV'#Hp'#HpO,cQYO'#F{OOQV'#El'#ElOOQV'#Em'#EmOOQV'#En'#EnO.YQ_O'#EkO0_Q_O'#EoO2gQWOOO4QQ_O'#FPO7hQWO'#J`OOQV'#FY'#FYO7{Q_O'#F^O:WQ_O'#FaOOQO'#F`'#F`O=sQ_O'#FcO=}Q_O'#FbO@VQWO'#FgOOQO'#J`'#J`OOQV'#Io'#IoOA]Q_O'#InOEPQWO'#InOOQV'#Fw'#FwOF[QWO'#JuOFcQWO'#F|OOQO'#IO'#IOOGrQWO'#GhOOQV'#Im'#ImOOQV'#Il'#IlOOQV'#Hj'#HjQGyQ_OOOKeQ_O'#DUOKlQYO'#CqOOQP'#I_'#I_OOQV'#Hg'#HgQ]Q_OOOLuQWO'#I`ONsQYO'#DXO!!eQWO'#JuO!!lQWO'#JuO!!vQ_O'#DfO!%]Q_O'#E}O!(sQ_O'#FWO!,ZQWO'#FZO!.^QXO'#FbO!.cQ_O'#EeO!!vQ_O'#FmO!0uQWO'#FoO!0zQWO'#FoO!1PQ^O'#FqO!1WQWO'#JuO!1_QWO'#FtO!1dQWO'#FxO!2WQWO'#JjO!2_QWO'#GOO!2_QWO'#G`O!2_QWO'#GbO!2_QWO'#GsOOQO'#Ju'#JuO!2dQWO'#GhO!2lQYO'#GpO!2_QWO'#GqO!3uQ^O'#GtO!3|QWO'#GuO!4hQWO'#HOP!4sOpO'#CcPOOO)CC})CC}OOOO'#Hi'#HiO!5OO`O,59iOOQV,59i,59iO!5ZQYO,5?aOOQO-E;i-E;iOOQO,5:[,5:[OOQP,59Z,59ZO)xQWO,5:[O)xQWO,5:[O!5oQWO,5?kO!5zQYO,5;qO!6PQYO,5;TO!6hQWO,59QO!7kQXO'#CnO!7xQXO'#I`O!9SQWO'#CoO,^QWO'#EiOOQV-E;n-E;nO!9eQWO'#FsOOQV,5WQWO,5:fOOQP,5:h,5:hO!1PQ^O,5:hO!1PQ^O,5:mO$>]QYO,5gQ_O'#HsO$>tQXO,5@QOOQV1G1i1G1iOOQP,5:e,5:eO$>|QXO,5]QYO,5=vO$LRQWO'#KRO$L^QWO,5=xOOQR,5=y,5=yO$LcQWO,5=zO$>]QYO,5>PO$>]QYO,5>POOQO1G.w1G.wO$>]QYO1G.wO$LnQYO,5=pO$LvQZO,59^OOQR,59^,59^O$>]QYO,5=wO% YQZO,5=}OOQR,5=},5=}O%#lQWO1G/_O!6PQYO1G/_O#FYQYO1G2vO%#qQWO1G2vO%$PQYO1G2vOOQV1G/i1G/iO%%YQWO,5:SO%%bQ_O1G/lO%*kQWO1G1^O%+RQWO1G1hOOQO1G1h1G1hO$>]QYO1G1hO%+iQ^O'#EgOOQV1G0k1G0kOOQV1G1s1G1sO!!vQ_O1G1sO!0zQWO1G1uO!1PQ^O1G1wO!.cQ_O1G1wOOQP,5:j,5:jO$>]QYO1G/^OOQO'#Cn'#CnO%+vQWO1G1zOOQV1G2O1G2OO%,OQWO'#CnO%,WQWO1G3TO%,]QWO1G3TO%,bQYO'#GQO%,sQWO'#G]O%-UQYO'#G_O%.hQYO'#GXOOQV1G2U1G2UO%/wQWO1G2UO%/|QWO1G2UO$ARQWO1G2UOOQV1G2f1G2fO%/wQWO1G2fO#CpQWO1G2fO%0UQWO'#GdOOQV1G2h1G2hO%0gQWO1G2hO#C{QWO1G2hO%0lQYO'#GSO$>]QYO1G2lO$AdQWO1G2lOOQV1G2y1G2yO%1xQWO1G2yO%3hQ^O'#GkO%3rQWO1G2nO#DfQWO1G2nO%4QQYO,5]QYO1G2vOOQV1G2w1G2wO%5tQWO1G2wO%5yQWO1G2wO#HXQWO1G2wOOQV1G2z1G2zO.YQ_O1G2zO$>]QYO1G2zO%6RQWO1G2zOOQO,5>l,5>lOOQO-E]QYO1G3UPOOO-E;d-E;dPOOO1G.i1G.iOOQO7+*g7+*gO%7VQYO'#IcO%7nQYO'#IfO%7yQYO'#IfO%8RQYO'#IfO%8^QYO,59eOOQO7+%b7+%bOOQP7+$a7+$aO%8cQ!fO'#JTOOQS'#EX'#EXOOQS'#EY'#EYOOQS'#EZ'#EZOOQS'#JT'#JTO%;UQWO'#EWOOQS'#E`'#E`OOQS'#JR'#JROOQS'#Hn'#HnO%;ZQ!fO,5:oOOQV,5:o,5:oOOQV'#JQ'#JQO%;bQ!fO,5:{OOQV,5:{,5:{O%;iQ!fO,5:|OOQV,5:|,5:|OOQV7+'e7+'eOOQV7+&Z7+&ZO%;pQ!fO,59TOOQO,59T,59TO%>YQWO7+$WO%>_QWO1G1yOOQV1G1y1G1yO!9SQWO1G.uO%>dQWO,5?}O%>nQ_O'#HqO%@|QWO,5?}OOQO1G1X1G1XOOQO7+&}7+&}O%AUQWO,5>^OOQO-E;p-E;pO%AcQWO7+'OO.YQ_O7+'OOOQO7+'O7+'OOOQO7+'P7+'PO%AjQWO7+'POOQO7+'W7+'WOOQP1G0V1G0VO%ArQXO1G/tO!M{QWO1G/tO%BsQXO1G0RO%CkQ^O'#HlO%C{QWO,5?eOOQP1G/u1G/uO%DWQWO1G/uO%D]QWO'#D_OOQO'#Dt'#DtO%DhQWO'#DtO%DmQWO'#I{OOQO'#Iz'#IzO%DuQWO,5:_O%DzQWO'#DtO%EPQWO'#DtOOQP1G0Q1G0QOOQP1G0S1G0SOOQP1G0X1G0XO%EXQXO1G1jO%EdQXO'#FeOOQP,5>_,5>_O!1PQ^O'#FeOOQP-E;q-E;qO$>]QYO1G1jOOQO7+'S7+'SOOQO,5]QYO7+$xOOQV7+'j7+'jO%FsQWO7+(oO%FxQWO7+(oOOQV7+'p7+'pO%/wQWO7+'pO%F}QWO7+'pO%GVQWO7+'pOOQV7+(Q7+(QO%/wQWO7+(QO#CpQWO7+(QOOQV7+(S7+(SO%0gQWO7+(SO#C{QWO7+(SO$>]QYO7+(WO%GeQWO7+(WO#HUQYO7+(cO%GjQWO7+(YO#DfQWO7+(YOOQV7+(c7+(cO%5tQWO7+(cO%5yQWO7+(cO#HXQWO7+(cOOQV7+(g7+(gO$>]QYO7+(pO%GxQWO7+(pO!1dQWO7+(pOOQV7+$v7+$vO%G}QWO7+$vO%HSQZO1G3ZO%JfQWO1G4jOOQO1G4j1G4jOOQR1G.}1G.}O#.WQWO1G.}O%JkQWO'#KQOOQO'#HW'#HWO%J|QWO'#HXO%KXQWO'#KQOOQO'#KP'#KPO%KaQWO,5=qO%KfQYO'#H[O%LrQWO'#GmO%L}QYO'#CtO%MXQWO'#GmO$>]QYO1G3ZOOQR1G3g1G3gO#7aQWO1G3ZO%M^QZO1G3bO$>]QYO1G3bO& mQYO'#IVO& }QWO,5@mOOQR1G3d1G3dOOQR1G3f1G3fO.YQ_O1G3fOOQR1G3k1G3kO&!VQYO7+$cO&!_QYO'#KOOOQQ'#J}'#J}O&!gQYO1G3[O&!lQZO1G3cOOQQ7+$y7+$yO&${QWO7+$yO&%QQWO7+(bOOQV7+(b7+(bO%5tQWO7+(bO$>]QYO7+(bO#FYQYO7+(bO&%YQWO7+(bO!.cQ_O1G/nO&%hQWO7+%WO$?[QWO7+'SO&%pQWO'#EhO&%{Q^O'#EhOOQU'#Ho'#HoO&%{Q^O,5;ROOQV,5;R,5;RO&&VQWO,5;RO&&[Q^O,5;RO!0zQWO7+'_OOQV7+'a7+'aO&&iQWO7+'cO&&qQWO7+'cO&&xQWO7+$xO&'TQ!fO7+'fO&'[Q!fO7+'fOOQV7+(o7+(oO!1dQWO7+(oO&'cQYO,5]QYO'#JrOOQO'#Jq'#JqO&*YQWO,5]QYO'#GUO&,SQYO'#JkOOQQ,5]QYO7+(YO&0SQYO'#HxO&0hQYO1G2WOOQQ1G2W1G2WOOQQ,5]QYO,5]QYO7+(fO&1dQWO'#IRO&1nQWO,5@hOOQO1G3Q1G3QOOQO1G2}1G2}OOQO1G3P1G3POOQO1G3R1G3ROOQO1G3S1G3SOOQO1G3O1G3OO&1vQWO7+(pO$>]QYO,59fO&2RQ^O'#ISO&2xQYO,5?QOOQR1G/P1G/PO&3QQ!bO,5:pO&3VQ!fO,5:rOOQS-E;l-E;lOOQV1G0Z1G0ZOOQV1G0g1G0gOOQV1G0h1G0hO&3^QWO'#JTOOQO1G.o1G.oOOQV<]O&3qQWO,5>]OOQO-E;o-E;oOOQO<WOOQO-E;j-E;jOOQP7+%a7+%aO!1PQ^O,5:`O&5cQWO'#HmO&5wQWO,5?gOOQP1G/y1G/yOOQO,5:`,5:`O&6PQWO,5:`O%DzQWO,5:`O$>]QYO,5`,5>`OOQO-E;r-E;rOOQV7+'l7+'lO&6yQWO<]QYO<]QYO<]QYO<]QYO7+(uOOQO7+*U7+*UOOQR7+$i7+$iO&8cQWO,5@lOOQO'#Gm'#GmO&8kQWO'#GmO&8vQYO'#IUO&8cQWO,5@lOOQR1G3]1G3]O&:cQYO,5=vO&;rQYO,5=XO&;|QWO,5=XOOQO,5=X,5=XOOQR7+(u7+(uO&eQZO7+(|O&@tQWO,5>qOOQO-E]QYO<]QYO,5]QYO,5@^O&D^QYO'#H|O&EsQWO,5@^OOQO1G2e1G2eO%,nQWO,5]QYO,5PO&I]QYO,5@VOOQV<]QYO,5=WO&KuQWO,5@cO&K}QWO,5@cO&MvQ^O'#IPO&KuQWO,5@cOOQO1G2q1G2qO&NTQWO,5=WO&N]QWO<oO&NvQYO,5>dO' UQYO,5>dOOQQ,5>d,5>dOOQQ-E;v-E;vOOQQ7+'r7+'rO' aQYO1G2]O$>]QYO1G2^OOQV<m,5>mOOQO-EnOOQQ,5>n,5>nO'!fQYO,5>nOOQQ-EX,5>XOOQO-E;k-E;kO!1PQ^O1G/zOOQO1G/z1G/zO'%oQWO1G/zO'%tQXO1G1kO$>]QYO1G1kO'&PQWO7+'[OOQVANA`ANA`O'&ZQWOANA`O$>]QYOANA`O'&cQWOANA`OOQVAN>OAN>OO.YQ_OAN>OO'&qQWOANAuOOQVAN@vAN@vO'&vQWOAN@vOOQVANAWANAWOOQVANAYANAYOOQVANA^ANA^O'&{QWOANA^OOQVANAiANAiO%5tQWOANAiO%5yQWOANAiO''TQWOANA`OOQVANAvANAvO.YQ_OANAvO''cQWOANAvO$>]QYOANAvOOQR<pOOQO'#HY'#HYO''vQWO'#HZOOQO,5>p,5>pOOQO-E]QYO<o,5>oOOQQ-E]QYOANAhO'(bQWO1G1rO')UQ^O1G0nO.YQ_O1G0nO'*zQWO,5;UO'+RQWO1G0nP'+WQWO'#ERP&%{Q^O'#HpOOQV7+&X7+&XO'+cQWO7+&XO&&qQWOAN@iO'+hQWOAN>OO!5oQWO,5a,5>aO'+oQWOAN@lO'+tQWOAN@lOOQS-E;s-E;sOOQVAN@lAN@lO'+|QWOAN@lOOQVANAuANAuO',UQWO1G5vO',^QWO1G2dO$>]QYO1G2dO&'|QWO,5>gOOQO,5>g,5>gOOQO-E;y-E;yO',iQWO1G5xO',qQWO1G5xO&(nQYO,5>hO',|QWO,5>hO$>]QYO,5>hOOQO-E;z-E;zO'-XQWO'#JnOOQO1G2a1G2aOOQO,5>f,5>fOOQO-E;x-E;xO&'cQYO,5iOOQO,5>i,5>iOOQO-E;{-E;{OOQQ,5>c,5>cOOQQ-E;u-E;uO'.pQWO1G2sO'/QQWO1G2rO'/]QWO1G5}O'/eQ^O,5>kOOQO'#Go'#GoOOQO,5>k,5>kO'/lQWO,5>kOOQO-E;}-E;}O$>]QYO1G2rO'/zQYO7+'xO'0VQWOANAlOOQVANAlANAlO.YQ_OANAlO'0^QWOANAvOOQS7+%x7+%xO'0eQWO7+%xO'0pQ!fO7+%xO'0}QWO7+%fO!1PQ^O7+%fO'1YQXO7+'VOOQVG26zG26zO'1eQWOG26zO'1sQWOG26zO$>]QYOG26zO'1{QWOG23jOOQVG27aG27aOOQVG26bG26bOOQVG26xG26xOOQVG27TG27TO%5tQWOG27TO'2SQWOG27bOOQVG27bG27bO.YQ_OG27bO'2ZQWOG27bOOQO1G4[1G4[OOQO7+(_7+(_OOQRANA{ANA{OOQVG27SG27SO%5tQWOG27SO&0uQWOG27SO'2fQ^O7+&YO'4PQWO7+'^O'4sQ^O7+&YO.YQ_O7+&YP.YQ_O,5;SP'6PQWO,5;SP'6UQWO,5;SOOQV<]QYO1G4SO%,nQWO'#HyO'7UQWO,5@YO'7dQWO7+(VO.YQ_O7+(VOOQO1G4T1G4TOOQO1G4V1G4VO'7nQWO1G4VO'7|QWO7+(^OOQVG27WG27WO'8XQWOG27WOOQS<e,5>eOOQO-E;w-E;wO'?rQWO<wD_DpPDvHQPPPPPPK`P! P! _PPPPP!!VP!$oP!$oPP!&oP!(rP!(w!)n!*f!*f!*f!(w!+]P!(w!.Q!.TPP!.ZP!(w!(w!(w!(wP!(w!(wP!(w!(w!.y!/dP!/dJ}J}J}PPPP!/d!.y!/sPP!$oP!0^!0a!0g!1h!1t!3t!3t!5r!7t!1t!1t!9p!;_!=O!>k!@U!Am!CS!De!1t!1tP!1tP!1t!1t!Et!1tP!Ge!1t!1tP!Ie!1tP!1t!7t!7t!1t!7t!1t!Kl!Mt!Mw!7t!1t!Mz!M}!M}!M}!NR!$oP!$oP!$oP! P! PP!N]! P! PP!Ni# }! PP! PP#!^##c##k#$Z#$_#$e#$e#$mP#&s#&s#&y#'o#'{! PP! PP#(]#(l! PP! PPP#(x#)W#)d#)|#)^! P! PP! P! P! PP#*S#*S#*Y#*`#*S#*S! P! PP#*m#*v#+Q#+Q#,x#.l#.x#.x#.{#.{5a5a5a5a5a5a5a5aP5a#/O#/U#/p#1{#2R#2b#6^#6d#6j#6|#7W#8w#9R#9b#9h#9n#9x#:S#:Y#:g#:m#:s#:}#;]#;g#=u#>R#>`#>f#>n#>u#?PPPPPPPP#?V#BaP#F^#Jx#Ls#Nr$&^P$&aPPP$)_$)h$)z$/U$1d$1m$3fP!(w$4`$7r$:i$>T$>^$>c$>fPPP$>i$A`$A|P$BaPPPPPPPPPP$BvP$EU$EX$E[$Eb$Ee$Eh$Ek$En$Et$HO$HR$HU$HX$H[$H_$Hb$He$Hh$Hk$Hn$Jt$Jw$Jz#*S$KW$K^$Ka$Kd$Kh$Kl$Ko$KrQ!tPT'V!s'Wi!SOlm!P!T$T$W$y%b)U*f/gQ'i#QR,n'l(OSOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%X%_%b&U&Y&[&b&u&z&|'P'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n+z,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1P1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:gS(z$v-oQ*p&eQ*t&hQ-k(yQ-y)ZW0Z+Q0Y4Z7UR4Y0[&w!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#r]Ofgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hb#[b#Q$y'l(b)S)U*Z-t!h$bo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m$b%k!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g!W:y!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:|%n$_%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g$e%l!Q!n$O$u%n%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g'hZOY[fgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r%_%b%i%j&U&Y&[&b&u'a'}(W(Y(d(e(f(j(o(p(r(|)i)p)q*f*i*k*l+Z+n,s,z-R-T-g-m.i.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:x$^%l!Q!n$O$u%n%o%p%q%y%{&P&p&r(q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ&j!hQ&k!iQ&l!jQ&m!kQ&s!oQ)[%QQ)]%RQ)^%SQ)_%TQ)b%WQ+`&oS,R']1ZQ.W)`S/r*u4TR4n0s+yTOY[bfgilmop!O!P!Q!T!Y!Z![!_!`!c!n!p!q!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$O$T$W$`$a$e$g$h$q$r$u$y%X%_%b%i%j%n%o%p%q%y%{&P&U&Y&[&b&o&p&r&u&z&|'P']'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(q(r(|)S)U)i)p)q)s)x)y*O*P*R*V*Z*[*^*e*f*i*k*l*n*w*x+U+V+Z+h+n+o+z+},q,s,z-R-T-g-i-m-t-v.U.`.i.p.t.x.y.}/Z/[/^/b/d/g/{/}0`0e0g0m0r0w0}1O1P1Y1Z1h1r1y1|2a2h2j2m2s2v3V3_3a3f3h3k3u3{3|4R4U4W4_4c4e4h4t4v4|5[5`5d5g5t5v6R6Y6]6a6p6v6x7S7^7c7g7m7r7{8W8X8g8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:`:a:e:f:g:t:u:xQ'[!xQ'h#PQ)l%gU)r%m*T*WR.f)kQ,T']R5P1Z#t%s!Q!n$O$u%p%q&P&p&r(q)x)y*O*R*V*[*^*e*n*w+V+h+o+}-i-v.U.`.t.x.y/Z/[/{/}0`0r0w1O1Y1y2a2h2j2m2v3V3u3{3|4U4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)x%oQ+_&oQ,U']n,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7kS.q)s2sQ/O*PQ/Q*SQ/q*uS0Q*x4RQ0a+U[0o+Z.j0g4h5y7^Q2v.pS4d0e2rQ4m0sQ5Q1ZQ6T3RQ6z4PQ7O4TQ7X4_R9Y8h&jVOfgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u']'}(W(Y(b(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1Z1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fU&g!g%P%[o,^'b'c'd,c,f,h,l/m/n1_3n3q5T5U7k$nsOfgilm!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y'}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9z9{:O:P:Q:R:S:T:U:V:W:X:Y:eS$tp9xS&O!W#bS&Q!X#cQ&`!bQ*_&RQ*a&VS*d&[:fQ*h&^Q,T']Q-j(wQ/i*jQ0p+[S2f.X0qQ3]/_Q3^/`Q3g/hQ3i/kQ5P1ZU5b2R2g4lU7o5c5e5rQ8]6dS8u7p7qS9_8v8wR9i9`i{Ob!O!P!T$y%_%b)S)U)i-thxOb!O!P!T$y%_%b)S)U)i-tW/v*v/t3w6qQ/}*wW0[+Q0Y4Z7UQ3{/{Q6x3|R8g6v!h$do!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ&d!dQ&f!fQ&n!mW&x!q%X&|1PQ'S!rQ)X$}Q)Y%OQ)a%VU)d%Y'T'UQ*s&hS+s&z'PS-Y(k1sQ-u)WQ-x)ZS.a)e)fS0x+c/sQ1S+zQ1W+{S1v-_-`Q2k.bQ3s/pQ5]1xR5h2V${sOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$zsOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR3]/_V&T!Y!`*i!i$lo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!k$^o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m!i$co!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&e^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR(l$fQ-[(kR5Y1sQ(S#|S({$v-oS-Z(k1sQ-l(yW/u*v/t3w6qS1w-_-`Q3v/vR5^1xQ'e#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,o'mk,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ'f#Or,e'b'c'd'j'p)u,c,f,h,l/m/n1_3n3q5U6fR,p'mR*g&]X/c*f/d/g3f!}aOb!O!P!T#z$v$y%_%b'}(y)S)U)i)s*f*v*w+Q+Z,s-o-t.j/b/d/g/t/{0Y0g1h2s3f3w3|4Z4h5y6a6q6v7U7^Q3`/aQ6_3bQ8Y6`R9V8Z${rOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f#nfOfglmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!T9u!Y!_!`*i*l/^3h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#rfOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h!X9u!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$srOfglmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:e:f#U#oh#d$P$Q$V$s%^&W&X'q't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b}:P&S&]/k3[6d:[:]:c:d:h:j:k:l:m:n:o:p:q:r:v:w:{#W#ph#d$P$Q$V$s%^&W&X'q'r't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b!P:Q&S&]/k3[6d:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{#S#qh#d$P$Q$V$s%^&W&X'q'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9b{:R&S&]/k3[6d:[:]:c:d:h:k:l:m:n:o:p:q:r:v:w:{#Q#rh#d$P$Q$V$s%^&W&X'q'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9by:S&S&]/k3[6d:[:]:c:d:h:l:m:n:o:p:q:r:v:w:{#O#sh#d$P$Q$V$s%^&W&X'q'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bw:T&S&]/k3[6d:[:]:c:d:h:m:n:o:p:q:r:v:w:{!|#th#d$P$Q$V$s%^&W&X'q'x'y'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bu:U&S&]/k3[6d:[:]:c:d:h:n:o:p:q:r:v:w:{!x#vh#d$P$Q$V$s%^&W&X'q'z'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bq:W&S&]/k3[6d:[:]:c:d:h:p:q:r:v:w:{!v#wh#d$P$Q$V$s%^&W&X'q'{'|(O(U([(`*b*c,r,w,y-n0z1i1l1}3P4w5V5a6^6e7R7e7h7s7y8j8q8{9[9bo:X&S&]/k3[6d:[:]:c:d:h:q:r:v:w:{$]#{h#`#d$P$Q$V$s%^&S&W&X&]'q'r's't'u'v'w'x'y'z'{'|(O(U([(`*b*c,r,w,y-n/k0z1i1l1}3P3[4w5V5a6^6d6e7R7e7h7s7y8j8q8{9[9b:[:]:c:d:h:i:j:k:l:m:n:o:p:q:r:v:w:{${jOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f$v!aOfgilmp!O!P!T!Y!Z!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ&Y![Q&Z!]R:e9{#rpOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hQ&[!^!W9x!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fR:f:zR$moR-f(rR$wqT(}$v-oQ/f*fS3d/d/gR6c3fQ3m/mQ3p/nQ6i3nR6l3qQ$zwQ)V${Q*q&fQ+f&qQ+i&sQ-w)YW.Z)b+j+k+lS/X*]+gW2b.W.[.].^U3W/Y/]0yU5o2c2d2eS6W3X3ZS7w5p5qS8Q6V6XQ8y7xS8}8R8SR9c9O^|O!O!P!T%_%b)iX)R$y)S)U-tQ&r!nQ*^&PQ*|&jQ+P&kQ+T&lQ+W&mQ+]&nQ+l&sQ-})[Q.Q)]Q.T)^Q.V)_Q.Y)aQ.^)bQ2S-uQ2e.WR4U0VU+a&o*u4TR4o0sQ+Y&mQ+k&sS.])b+l^0v+_+`/q/r4m4n7OS2d.W.^S4Q0R0SR5q2eS0R*x4RQ0a+UR7X4_U+d&o*u4TR4p0sQ*z&jQ+O&kQ+S&lQ+g&qQ+j&sS-{)[*|S.P)]+PS.S)^+TU.[)b+k+lQ/Y*]Q0X*{Q0q+[Q2X-|Q2Y-}Q2].QQ2_.TU2c.W.].^Q2g.XS3Z/]0yS5c2R4lQ5j2ZS5p2d2eQ6X3XS7q5e5rQ7x5qQ8R6VQ8v7pQ9O8SR9`8wQ0T*xR6|4RQ*y&jQ*}&kU-z)[*z*|U.O)]+O+PS2W-{-}S2[.P.QQ4X0ZQ5i2YQ5k2]R7T4YQ/w*vQ3t/tQ6r3wR8d6qQ*{&jS-|)[*|Q2Z-}Q4X0ZR7T4YQ+R&lU.R)^+S+TS2^.S.TR5l2_Q0]+QQ4V0YQ7V4ZR8l7UQ+[&nS.X)a+]S2R-u.YR5e2SQ0i+ZQ4f0gQ7`4hR8m7^Q.m)sQ0i+ZQ2p.jQ4f0gQ5|2sQ7`4hQ7}5yR8m7^Q0i+ZR4f0gX'O!q%X&|1PX&{!q%X&|1PW'O!q%X&|1PS+u&z'PR1U+z_|O!O!P!T%_%b)iQ%a!PS)h%_%bR.d)i$^%u!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ*U%yR*X%{$c%n!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gW)t%m%x*T*WQ.e)jR2{.vR.m)sR5|2sQ'W!sR,O'WQ!TOQ$TlQ$WmQ%b!P[%|!T$T$W%b)U/gQ)U$yR/g*f$b%i!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g[)n%i)p.i:`:t:xQ)p%jQ.i)qQ:`%nQ:t:aR:x:uQ!vUR'Y!vS!OO!TU%]!O%_)iQ%_!PR)i%b#rYOfgilmp!O!P!T!Z![#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i+n,s,z-m.}0}1h1|3_3a3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9hh!yY!|#U$`'a'n(d,q-R9s9|:gQ!|[b#Ub#Q$y'l(b)S)U*Z-t!h$`o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ'a!}Q'n#ZQ(d$aQ,q'oQ-R(e!W9s!Y!_!`*i*l/^3h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ9|9tR:g9}Q-U(gR1p-UQ1t-[R5Z1tQ,c'bQ,f'cQ,h'dW1`,c,f,h5UR5U1_Q/d*fS3c/d3fR3f/gfbO!O!P!T$y%_%b)S)U)i-tp#Wb'}(y.j/b/t/{0Y0g1h5y6a6q6v7U7^Q'}#zS(y$v-oQ.j)sW/b*f/d/g3fQ/t*vQ/{*wQ0Y+QQ0g+ZQ1h,sQ5y2sQ6q3wQ6v3|Q7U4ZR7^4hQ,t(OQ1g,rT1j,t1gS(X$Q([Q(^$VU,x(X(^,}R,}(`Q(s$mR-h(sQ-p)OR2P-pQ3n/mQ3q/nT6j3n3qQ)S$yS-r)S-tR-t)UQ4`0aR7Y4``0t+^+_+`+a+d/q/r7OR4q0tQ8i6zR9Z8iQ4S0TR6}4SQ3x/wQ6n3tT6s3x6nQ3}/|Q6t3zU6y3}6t8eR8e6uQ4[0]Q7Q4VT7W4[7QhzOb!O!P!T$y%_%b)S)U)i-tQ$|xW%Zz$|%f)v$b%f!Q!n$O$u%o%p%q%y%{&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR)v%nS4i0i0nS7]4f4gT7b4i7]W&z!q%X&|1PS+r&z+zR+z'PQ1Q+wR4z1QU1[,S,T,UR5R1[S3S/Q7OR6U3SQ2t.mQ5x2pT5}2t5xQ.z)zR3O.z^_O!O!P!T%_%b)iY#Xb$y)S)U-t$l#_fgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!h$io!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'j#Q'lQ-P(bR/V*Z&v!RObfgilmop!O!P!T!Y!Z![!_!`!c!p#Q#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r$y%_%b&U&Y&[&b&u'l'}(W(Y(b(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,s,z-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!{Y[#U#Z9s9tW&{!q%X&|1P['`!|!}'n'o9|9}S(c$`$aS+t&z'PU,X'a,q:gS-Q(d(eQ1T+zR1n-RS%t!Q&oQ&q!nQ(V$OQ(w$uS)w%o.pQ)z%pQ)}%qS*]&P&rQ+e&pQ,S']Q-d(qQ.l)sU.w)x)y2vS/O*O*PQ/P*RQ/T*VQ/W*[Q/]*^Q/`*eQ/l*nQ/|*wS0S*x4RQ0a+UQ0c+VQ0y+hQ0{+oQ1X+}Q1{-iQ2T-vQ2`.UQ2i.`Q2z.tQ2|.xQ2}.yQ3X/ZQ3Y/[S3z/{/}Q4^0`Q4l0rQ4s0wQ4x1OQ4}1YQ5O1ZQ5_1yQ5n2aQ5r2hQ5u2jQ5w2mQ5{2sQ6V3VQ6o3uQ6u3{Q6w3|Q7P4UQ7X4_Q7[4eQ7d4tQ7n5`Q7p5dQ7|5vQ8P6RQ8S6YQ8c6pS8f6v6xQ8o7cQ8w7rR9X8g$^%m!Q!n$O$u%o%p%q&P&o&p&r'](q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gQ)j%nQ*T%yR*W%{$y%h!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x'pWOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$x%g!Q!n$O$u%i%j%n%o%p%q%y%{&P&o&p&r'](q)p)q)s)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.i.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8g:`:a:t:u:x_&y!q%X&z&|'P+z1PR,V']$zrOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!j$]o!c!p$e$g$h$q$r&U&b&u(b(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mQ,T']R5P1Z_}O!O!P!T%_%b)i^|O!O!P!T%_%b)iQ#YbX)R$y)S)U-tbhO!O!T3_6]8W8X9U9hS#`f9uQ#dgQ$PiQ$QlQ$VmQ$spW%^!P%_%b)iU&S!Y!`*iQ&W!ZQ&X![Q&]!_Q'q#eQ'r#oS's#p:QQ't#qQ'u#rQ'v#sQ'w#tQ'x#uQ'y#vQ'z#wQ'{#xQ'|#yQ(O#zQ(U#}Q([$TQ(`$WQ*b&YQ*c&[Q,r'}Q,w(WQ,y(YQ-n(|Q/k*lQ0z+nQ1i,sQ1l,zQ1}-mQ3P.}Q3[/^Q4w0}Q5V1hQ5a1|Q6^3aQ6d3hQ6e3kQ7R4WQ7e4vQ7h4|Q7s5gQ7y5tQ8j7SQ8q7gQ8{7{Q9[8kQ9b8|Q:[9wQ:]9xQ:c9zQ:d9{Q:h:OQ:i:PQ:j:RQ:k:SQ:l:TQ:m:UQ:n:VQ:o:WQ:p:XQ:q:YQ:r:ZQ:v:eQ:w:fR:{9v^tO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6[3_Q8V6]Q9R8WQ9T8XQ9g9UR9m9hQ&V!YQ&^!`R/h*iQ$joQ&a!cQ&t!pU(g$e$g(jS(n$h0eQ(u$qQ(v$rQ*`&UQ*m&bQ+p&uQ-S(fS-b(o4cQ-c(pQ-e(rW/a*f/d/g3fQ/j*kW0f+Z0g4h7^Q1o-TQ1z-gQ3b/bQ4k0mQ5X1rQ7l5[Q8Z6aR8t7m!h$_o!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mR-P(b'qXOY[bfgilmop!O!P!T!Y!Z![!_!`!c!p!|!}#Q#U#Z#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$`$a$e$g$h$q$r$y%_%b&U&Y&[&b&u'a'l'n'o'}(W(Y(b(d(e(f(j(o(p(r(|)S)U)i*Z*f*i*k*l+Z+n,q,s,z-R-T-g-m-t.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9s9t9u9v9w9x9z9{9|9}:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f:g$zqOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$fo!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7m&d^Ofgilmop!O!P!T!Y!Z![!_!`!c!p#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W$e$g$h$q$r%_%b&U&Y&[&b&u'}(W(Y(f(j(o(p(r(|)i*f*i*k*l+Z+n,s,z-T-g-m.}/^/b/d/g0e0g0m0}1h1r1|3_3a3f3h3k4W4c4h4v4|5[5g5t6]6a7S7^7g7m7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f[!zY[$`$a9s9t['_!|!}(d(e9|9}W)o%i%j:`:aU,W'a-R:gW.h)p)q:t:uT2o.i:xQ(i$eQ(m$gR-W(jV(h$e$g(jR-^(kR-](k$znOfgilmp!O!P!T!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W%_%b&Y&['}(W(Y(|)i*i*l+n,s,z-m.}/^0}1h1|3_3a3h3k4W4v4|5g5t6]7S7g7{8W8X8k8|9U9h9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:f!i$ko!c!p$e$g$h$q$r&U&b&u(f(j(o(p(r*f*k+Z-T-g/b/d/g0e0g0m1r3f4c4h5[6a7^7mS'g#O'pj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ,m'jQ.u)uR8_6f`,b'b'c'd,c,f,h1_5UQ1e,lX3l/m/n3n3qj,a'b'c'd,c,f,h,l/m/n1_3n3q5UQ7j5TR8s7k^uO!O!P!T%_%b)i$`#afgilmp!Y!Z![!_!`#e#o#p#q#r#s#t#u#v#w#x#y#z#}$T$W&Y&['}(W(Y(|*i*l+n,s,z-m.}/^0}1h1|3a3h3k4W4v4|5g5t7S7g7{8k8|9u9v9w9x9z9{:O:P:Q:R:S:T:U:V:W:X:Y:Z:e:fQ6Z3_Q8U6]Q9Q8WQ9S8XQ9f9UR9l9hR(Q#zR(P#zQ$SlR(]$TR$ooR$noR)Q$vR)P$vQ)O$vR2O-ohwOb!O!P!T$y%_%b)S)U)i-t$l!lz!Q!n$O$u$|%f%n%o%p%q%y%{&P&o&p&r'](q)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR${xR0b+UR0W*xR0U*xR6{4PR/y*vR/x*vR0P*wR0O*wR0_+QR0^+Q%XyObxz!O!P!Q!T!n$O$u$y$|%_%b%f%n%o%p%q%y%{&P&o&p&r'](q)S)U)i)s)v)x)y*O*P*R*V*[*^*e*n*w*x+U+V+h+o+}-i-t-v.U.`.p.t.x.y/Z/[/{/}0`0r0w1O1Y1Z1y2a2h2j2m2s2v3V3u3{3|4R4U4_4e4t5`5d5v6R6Y6p6v6x7c7r8gR0k+ZR0j+ZQ'R!qQ)c%XQ+w&|R4y1PX'Q!q%X&|1PR+y&|R+x&|T/S*S4TT/R*S4TR.o)sR.n)sR){%p",nodeNames:"⚠ | < > RawString Float LineComment BlockComment SourceFile ] InnerAttribute ! [ MetaItem self Metavariable super crate Identifier ScopedIdentifier :: QualifiedScope AbstractType impl SelfType MetaType TypeIdentifier ScopedTypeIdentifier ScopeIdentifier TypeArgList TypeBinding = Lifetime String Escape Char Boolean Integer } { Block ; ConstItem Vis pub ( in ) const BoundIdentifier : UnsafeBlock unsafe AsyncBlock async move IfExpression if LetDeclaration let LiteralPattern ArithOp MetaPattern SelfPattern ScopedIdentifier TuplePattern ScopedTypeIdentifier , StructPattern FieldPatternList FieldPattern ref mut FieldIdentifier .. RefPattern SlicePattern CapturedPattern ReferencePattern & MutPattern RangePattern ... OrPattern MacroPattern ParenthesizedTokens TokenBinding Identifier TokenRepetition ArithOp BitOp LogicOp UpdateOp CompareOp -> => ArithOp BracketedTokens BracedTokens _ else MatchExpression match MatchBlock MatchArm Attribute Guard UnaryExpression ArithOp DerefOp LogicOp ReferenceExpression TryExpression BinaryExpression ArithOp ArithOp BitOp BitOp BitOp BitOp LogicOp LogicOp AssignmentExpression TypeCastExpression as ReturnExpression return RangeExpression CallExpression ArgList AwaitExpression await FieldExpression GenericFunction BreakExpression break LoopLabel ContinueExpression continue IndexExpression ArrayExpression TupleExpression MacroInvocation UnitExpression ClosureExpression ParamList Parameter Parameter ParenthesizedExpression StructExpression FieldInitializerList ShorthandFieldInitializer FieldInitializer BaseFieldInitializer MatchArm WhileExpression while LoopExpression loop ForExpression for MacroInvocation MacroDefinition macro_rules MacroRule EmptyStatement ModItem mod DeclarationList AttributeItem ForeignModItem extern StructItem struct TypeParamList ConstrainedTypeParameter TraitBounds HigherRankedTraitBound RemovedTraitBound OptionalTypeParameter ConstParameter WhereClause where LifetimeClause TypeBoundClause FieldDeclarationList FieldDeclaration OrderedFieldDeclarationList UnionItem union EnumItem enum EnumVariantList EnumVariant TypeItem type FunctionItem default fn ParamList Parameter SelfParameter VariadicParameter VariadicParameter ImplItem TraitItem trait AssociatedType LetDeclaration UseDeclaration use ScopedIdentifier UseAsClause ScopedIdentifier UseList ScopedUseList UseWildcard ExternCrateDeclaration StaticItem static ExpressionStatement ExpressionStatement GenericType FunctionType ForLifetimes ParamList VariadicParameter Parameter VariadicParameter Parameter ReferenceType PointerType TupleType UnitType ArrayType MacroInvocation EmptyType DynamicType dyn BoundedType",maxTerm:359,nodeProps:[["isolate",-4,4,6,7,33,""],["group",-42,4,5,14,15,16,17,18,19,33,35,36,37,40,51,53,56,101,107,111,112,113,122,123,125,127,128,130,132,133,134,137,139,140,141,142,143,144,148,149,155,157,159,"Expression",-16,22,24,25,26,27,222,223,230,231,232,233,234,235,236,237,239,"Type",-20,42,161,162,165,166,169,170,172,188,190,194,196,204,205,207,208,209,217,218,220,"Statement",-17,49,60,62,63,64,65,68,74,75,76,77,78,80,81,83,84,99,"Pattern"],["openedBy",9,"[",38,"{",47,"("],["closedBy",12,"]",39,"}",45,")"]],propSources:[r],skippedNodes:[0,6,7,240],repeatNodeCount:32,tokenData:"$%h_R!XOX$nXY5gYZ6iZ]$n]^5g^p$npq5gqr7Xrs9cst:Rtu;Tuv>vvwAQwxCbxy!+Tyz!,Vz{!-X{|!/_|}!0g}!O!1i!O!P!3v!P!Q!8[!Q!R!Bw!R![!Dr![!]#+q!]!^#-{!^!_#.}!_!`#1b!`!a#3o!a!b#6S!b!c#7U!c!}#8W!}#O#:T#O#P#;V#P#Q#Cb#Q#R#Dd#R#S#8W#S#T$n#T#U#8W#U#V#El#V#f#8W#f#g#Ic#g#o#8W#o#p$ S#p#q$!U#q#r$$f#r${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nU$u]'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU%uV'_Q'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&aV'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S&yVOz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`S'cVOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[S'{UOz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`S(bUOz(t{!P(t!P!Q(_!Q;'S(t;'S;=`*a<%lO(tS(wVOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)eV'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^S)}UOz(tz{)z{!P(t!Q;'S(t;'S;=`*a<%lO(tS*dP;=`<%l(tS*jP;=`<%l)^S*pP;=`<%l'`S*vP;=`<%l&[S+OO'PSU+T]'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U,R]'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nU-P]'_QOY+|YZ-xZr+|rs'`sz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|U-}V'_QOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[Q.iV'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.dQ/TO'_QQ/WP;=`<%l.dU/`]'_QOY0XYZ3uZr0Xrs(tsz0Xz{.d{!P0X!P!Q/Z!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU0^]'_QOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU1`]'_Q'PS'OSOY1VYZ2XZr1Vrs)^sz1Vz{2w{!P1V!P!Q/Z!Q#O1V#O#P)^#P;'S1V;'S;=`4g<%lO1VU2bV'_Q'PS'OSOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U2|]'_QOY0XYZ3uZr0Xrs(tsz0Xz{2w{!P0X!P!Q.d!Q#O0X#O#P(t#P;'S0X;'S;=`4a<%lO0XU3zV'_QOz)^z{)z{!P)^!P!Q(_!Q;'S)^;'S;=`*g<%lO)^U4dP;=`<%l0XU4jP;=`<%l1VU4pP;=`<%l+|U4vP;=`<%l$nU5QV'_Q'PSOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_5p]'_Q&|X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_6rV'_Q&|X'OSOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_7b_ZX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`8a!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_8j]#PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_9lV']Q'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_:[]'QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_;^i'_Q'vW'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_=Uj'_Q_X'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![<{![!c$n!c!}<{!}#O$n#O#P&[#P#R$n#R#S<{#S#T$n#T#o<{#o${$n${$|<{$|4w$n4w5b<{5b5i$n5i6S<{6S;'S$n;'S;=`4s<%lO$n_?P_(TP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_@X]#OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_AZa!qX'_Q'OSOY$nYZ%nZr$nrs&[sv$nvwB`wz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Bi]'}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Cik'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q!cE^!c!}Lp!}#OE^#O#P!!l#P#RE^#R#SLp#S#TE^#T#oLp#o${E^${$|Lp$|4wE^4w5bLp5b5iE^5i6SLp6S;'SE^;'S;=`!*}<%lOE^_Ee_'_Q'OSOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Fm]'_Q'OSsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_GmX'_Q'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]HaV'OSsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]H{X'OSOw&[wxHYxz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_Im_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{+O{!P+|!P!Q4y!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Js]'_QsXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_Kq_'_QOY+|YZ-xZr+|rs'`sw+|wxJlxz+|z{.d{!P+|!P!Q/Z!Q#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_Lyl'_Q'OS'ZXOY$nYZ%nZr$nrs&[sw$nwxFdxz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n_Nzj'_Q'OS'ZXOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![Nq![!c$n!c!}Nq!}#O$n#O#P&[#P#R$n#R#SNq#S#T$n#T#oNq#o${$n${$|Nq$|4w$n4w5bNq5b5i$n5i6SNq6S;'S$n;'S;=`4s<%lO$n]!!qZ'OSOzHvz{!#d{!PHv!P!Q!$n!Q#iHv#i#j!%Z#j#lHv#l#m!'V#m;'SHv;'S;=`!*w<%lOHv]!#gXOw'`wx!$Sxz'`z{&v{!P'`!P!Q*y!Q;'S'`;'S;=`*m<%lO'`]!$XVsXOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[]!$qWOw'`wx!$Sxz'`{!P'`!P!Q(_!Q;'S'`;'S;=`*m<%lO'`]!%`^'OSOz&[z{&v{!P&[!P!Q'x!Q![!&[![!c&[!c!i!&[!i#T&[#T#Z!&[#Z#o&[#o#p!({#p;'S&[;'S;=`*s<%lO&[]!&a['OSOz&[z{&v{!P&[!P!Q'x!Q![!'V![!c&[!c!i!'V!i#T&[#T#Z!'V#Z;'S&[;'S;=`*s<%lO&[]!'[['OSOz&[z{&v{!P&[!P!Q'x!Q![!(Q![!c&[!c!i!(Q!i#T&[#T#Z!(Q#Z;'S&[;'S;=`*s<%lO&[]!(V['OSOz&[z{&v{!P&[!P!Q'x!Q![Hv![!c&[!c!iHv!i#T&[#T#ZHv#Z;'S&[;'S;=`*s<%lO&[]!)Q['OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z;'S&[;'S;=`*s<%lO&[]!){^'OSOz&[z{&v{!P&[!P!Q'x!Q![!)v![!c&[!c!i!)v!i#T&[#T#Z!)v#Z#q&[#q#rHv#r;'S&[;'S;=`*s<%lO&[]!*zP;=`<%lHv_!+QP;=`<%lE^_!+^]}X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!,`]!PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!-`_(QX'_QOY+|YZ-xZr+|rs'`sz+|z{+O{!P+|!P!Q4y!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!.f]#OX'_QOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!/h_(PX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!0p]!eX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!1r`'gX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`!a!2t!a#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!2}]#QX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!4P^(OX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!4{!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!5U`!lX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!O$n!O!P!6W!P!Q,z!Q!_$n!_!`!7Y!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!6a]!tX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$nV!7c]'qP'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_!8c_'_Q'xXOY+|YZ-xZr+|rs'`sz+|z{!9b{!P+|!P!Q!:O!Q!_+|!_!`!._!`#O+|#O#P'`#P;'S+|;'S;=`4m<%lO+|_!9iV&}]'_QOY.dYZ/OZr.ds#O.d#P;'S.d;'S;=`/T<%lO.d_!:V]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!Aq{!P!;O!P!Q!:O!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;O_!;V]'_QUXOY!jYZ(tZz!>jz{!=x{!P!>j!P!Q!?|!Q;'S!>j;'S;=`!@e<%lO!>j]!>oXUXOY!=SYZ)^Zz!=Sz{!=x{!P!=S!P!Q!?[!Q;'S!=S;'S;=`!@k<%lO!=S]!?aXUXOY!>jYZ(tZz!>jz{!?|{!P!>j!P!Q!?[!Q;'S!>j;'S;=`!@e<%lO!>jX!@RSUXOY!?|Z;'S!?|;'S;=`!@_<%lO!?|X!@bP;=`<%l!?|]!@hP;=`<%l!>j]!@nP;=`<%l!=S_!@x]'_QUXOY!;OYZ3uZr!;Ors!>jsz!;Oz{!@q{!P!;O!P!Q!Aq!Q#O!;O#O#P!>j#P;'S!;O;'S;=`!Bk<%lO!;OZ!AxX'_QUXOY!AqYZ/OZr!Aqrs!?|s#O!Aq#O#P!?|#P;'S!Aq;'S;=`!Be<%lO!AqZ!BhP;=`<%l!Aq_!BnP;=`<%l!;O_!BtP;=`<%l!o![!c&[!c!i#>o!i#T&[#T#Z#>o#Z#o&[#o#p#A`#p;'S&[;'S;=`*s<%lO&[U#>t['OSOz&[z{&v{!P&[!P!Q'x!Q![#?j![!c&[!c!i#?j!i#T&[#T#Z#?j#Z;'S&[;'S;=`*s<%lO&[U#?o['OSOz&[z{&v{!P&[!P!Q'x!Q![#@e![!c&[!c!i#@e!i#T&[#T#Z#@e#Z;'S&[;'S;=`*s<%lO&[U#@j['OSOz&[z{&v{!P&[!P!Q'x!Q![#;}![!c&[!c!i#;}!i#T&[#T#Z#;}#Z;'S&[;'S;=`*s<%lO&[U#Ae['OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z;'S&[;'S;=`*s<%lO&[U#B`^'OSOz&[z{&v{!P&[!P!Q'x!Q![#BZ![!c&[!c!i#BZ!i#T&[#T#Z#BZ#Z#q&[#q#r#;}#r;'S&[;'S;=`*s<%lO&[U#C_P;=`<%l#;}_#Ck]XX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Dm_'{X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_#Ewl'_Q'OS!yW'TPOY$nYZ%nZr$nrs#Gosw$nwx#H]xz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$n]#GvV'OS'^XOz&[z{&v{!P&[!P!Q'x!Q;'S&[;'S;=`*s<%lO&[_#Hd_'_Q'OSOYE^YZGfZrE^rsHvswE^wxFdxzE^z{Ih{!PE^!P!QKl!Q#OE^#O#P!!l#P;'SE^;'S;=`!*}<%lOE^_#Ink'_Q'OS!yW'TPOY$nYZ%nZr$nrs&[st#Kctz$nz{+O{!P$n!P!Q,z!Q![#8W![!c$n!c!}#8W!}#O$n#O#P&[#P#R$n#R#S#8W#S#T$n#T#o#8W#o${$n${$|#8W$|4w$n4w5b#8W5b5i$n5i6S#8W6S;'S$n;'S;=`4s<%lO$nV#Kji'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$nV#Mbj'_Q'OS'TPOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q![#MX![!c$n!c!}#MX!}#O$n#O#P&[#P#R$n#R#S#MX#S#T$n#T#o#MX#o${$n${$|#MX$|4w$n4w5b#MX5b5i$n5i6S#MX6S;'S$n;'S;=`4s<%lO$n_$ ]]wX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$!_a'rX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q!_$n!_!`@O!`#O$n#O#P&[#P#p$n#p#q$#d#q;'S$n;'S;=`4s<%lO$n_$#m]'|X'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n_$$o]vX'_Q'OSOY$nYZ%nZr$nrs&[sz$nz{+O{!P$n!P!Q,z!Q#O$n#O#P&[#P;'S$n;'S;=`4s<%lO$n",tokenizers:[a,S,n,0,1,2,3],topRules:{SourceFile:[0,8]},specialized:[{term:281,get:O=>s[O]||-1}],tokenPrec:15596});var W=P(29587);const Y=W.bj.define({name:"rust",parser:t.configure({props:[W.Oh.add({IfExpression:(0,W.mz)({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:O=>O.continue(),"Statement MatchArm":(0,W.mz)()}),W.b_.add((O=>/(Block|edTokens|List)$/.test(O.name)?W.yd:"BlockComment"==O.name?O=>({from:O.from+2,to:O.to-2}):void 0))]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function _(){return new W.Yy(Y)}}}]); +//# sourceMappingURL=142.thebe-core.min.js.map \ No newline at end of file diff --git a/1524.thebe-core.min.js b/1524.thebe-core.min.js new file mode 100644 index 00000000..63159e27 --- /dev/null +++ b/1524.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1524],{11524:(e,a,t)=>{t.r(a),t.d(a,{mathematica:()=>i});var n="[a-zA-Z\\$][a-zA-Z0-9\\$]*",c="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",m="(?:`(?:`?"+c+")?)",o=new RegExp("(?:(?:\\d+)(?:\\^\\^(?:\\.\\w+|\\w+\\.\\w*|\\w+)"+m+"?(?:\\*\\^[+-]?\\d+)?))"),r=new RegExp("(?:"+c+m+"?(?:\\*\\^[+-]?\\d+)?)"),z=new RegExp("(?:`?)(?:"+n+")(?:`(?:"+n+"))*(?:`?)");function A(e,a){var t;return'"'===(t=e.next())?(a.tokenize=Z,a.tokenize(e,a)):"("===t&&e.eat("*")?(a.commentLevel++,a.tokenize=$,a.tokenize(e,a)):(e.backUp(1),e.match(o,!0,!1)||e.match(r,!0,!1)?"number":e.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string.special":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)||e.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variableName.special":e.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"character":e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":e.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variableName.constant":e.match(z,!0,!1)?"keyword":e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(e.next(),"error"))}function Z(e,a){for(var t,n=!1,c=!1;null!=(t=e.next());){if('"'===t&&!c){n=!0;break}c=!c&&"\\"===t}return n&&!c&&(a.tokenize=A),"string"}function $(e,a){for(var t,n;a.commentLevel>0&&null!=(n=e.next());)"("===t&&"*"===n&&a.commentLevel++,"*"===t&&")"===n&&a.commentLevel--,t=n;return a.commentLevel<=0&&(a.tokenize=A),"comment"}const i={name:"mathematica",startState:function(){return{tokenize:A,commentLevel:0}},token:function(e,a){return e.eatSpace()?null:a.tokenize(e,a)},languageData:{commentTokens:{block:{open:"(*",close:"*)"}}}}}}]); +//# sourceMappingURL=1524.thebe-core.min.js.map \ No newline at end of file diff --git a/1553.thebe-core.min.js b/1553.thebe-core.min.js new file mode 100644 index 00000000..81afe7a8 --- /dev/null +++ b/1553.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1553],{1553:(e,t,n)=>{n.r(t),n.d(t,{sas:()=>l});var r={},s={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"},o=/(<=|>=|!=|<>)/,a=/[=\(:\),{}.*<>+\-\/^\[\]]/;function i(e,t,n){if(n)for(var s=t.split(" "),o=0;o{function r(e){for(var t={},n=e.split(","),r=0;rg});var o,a=r("null"),l={"`":i,$:i},u=r("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor"),s=r("architecture,entity,begin,case,port,else,elsif,end,for,function,if"),c=/[&|~>{a.r(t),a.d(t,{ebnf:()=>c});const c={name:"ebnf",startState:function(){return{stringType:null,commentType:null,braced:0,lhs:!0,localState:null,stack:[],inDefinition:!1}},token:function(e,t){if(e){switch(0===t.stack.length&&('"'==e.peek()||"'"==e.peek()?(t.stringType=e.peek(),e.next(),t.stack.unshift(1)):e.match("/*")?(t.stack.unshift(0),t.commentType=0):e.match("(*")&&(t.stack.unshift(0),t.commentType=1)),t.stack[0]){case 1:for(;1===t.stack[0]&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string";case 0:for(;0===t.stack[0]&&!e.eol();)0===t.commentType&&e.match("*/")||1===t.commentType&&e.match("*)")?(t.stack.shift(),t.commentType=null):e.match(/^.[^\*]*/);return"comment";case 2:for(;2===t.stack[0]&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(".")||t.stack.shift();return"operator"}var a=e.peek();switch(a){case"[":return e.next(),t.stack.unshift(2),"bracket";case":":case"|":case";":return e.next(),"operator";case"%":if(e.match("%%"))return"header";if(e.match(/[%][A-Za-z]+/))return"keyword";if(e.match(/[%][}]/))return"bracket";break;case"/":if(e.match(/[\/][A-Za-z]+/))return"keyword";case"\\":if(e.match(/[\][a-z]+/))return"string.special";case".":if(e.match("."))return"atom";case"*":case"-":case"+":case"^":if(e.match(a))return"atom";case"$":if(e.match("$$"))return"builtin";if(e.match(/[$][0-9]+/))return"variableName.special";case"<":if(e.match(/<<[a-zA-Z_]+>>/))return"builtin"}return e.match("//")?(e.skipToEnd(),"comment"):e.match("return")?"operator":e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)?e.match(/(?=[\(.])/)?"variable":e.match(/(?=[\s\n]*[:=])/)?"def":"variableName.special":-1!=["[","]","(",")"].indexOf(e.peek())?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}}}}]); +//# sourceMappingURL=1653.thebe-core.min.js.map \ No newline at end of file diff --git a/1911.thebe-core.min.js b/1911.thebe-core.min.js new file mode 100644 index 00000000..da66c3db --- /dev/null +++ b/1911.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[1911],{71911:(e,t,r)=>{function n(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}r.r(t),r.d(t,{webIDL:()=>E});var a=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"],i=n(a),c=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"],o=n(c),l=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"],m=n(l),s=["true","false","Infinity","NaN","null"],u=n(s),f=n(["callback","dictionary","enum","interface"]),b=n(["typedef"]),d=/^[:<=>?]/,y=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,p=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,h=/^_?[A-Za-z][0-9A-Z_a-z-]*/,A=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,g=/^"[^"]*"/,k=/^\/\*.*?\*\//,D=/^\/\*.*/,C=/^.*?\*\//;const E={name:"webidl",startState:function(){return{inComment:!1,lastToken:"",startDef:!1,endDef:!1}},token:function(e,t){var r=function(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(C)?(t.inComment=!1,"comment"):(e.skipToEnd(),"comment");if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(k))return"comment";if(e.match(D))return t.inComment=!0,"comment";if(e.match(/^-?[0-9\.]/,!1)&&(e.match(y)||e.match(p)))return"number";if(e.match(g))return"string";if(t.startDef&&e.match(h))return"def";if(t.endDef&&e.match(A))return t.endDef=!1,"def";if(e.match(m))return"keyword";if(e.match(o)){var r=t.lastToken,n=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return":"===r||"implements"===r||"implements"===n||"="===n?"builtin":"type"}return e.match(i)?"builtin":e.match(u)?"atom":e.match(h)?"variable":e.match(d)?"operator":(e.next(),null)}(e,t);if(r){var n=e.current();t.lastToken=n,"keyword"===r?(t.startDef=f.test(n),t.endDef=t.endDef||b.test(n)):t.startDef=!1}return r},languageData:{autocomplete:a.concat(c).concat(l).concat(s)}}}}]); +//# sourceMappingURL=1911.thebe-core.min.js.map \ No newline at end of file diff --git a/2000.thebe-core.min.js b/2000.thebe-core.min.js new file mode 100644 index 00000000..e39e9761 --- /dev/null +++ b/2000.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2e3],{62e3:(O,a,Q)=>{Q.r(a),Q.d(a,{autoCloseTags:()=>I,completionPath:()=>q,esLint:()=>D,javascript:()=>N,javascriptLanguage:()=>G,jsxLanguage:()=>V,localCompletionSource:()=>w,scopeCompletionSource:()=>j,snippets:()=>u,tsxLanguage:()=>v,typescriptLanguage:()=>T,typescriptSnippets:()=>d});var i=Q(73643),$=Q(49913);const e=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],r=new i.Aj({start:!1,shift:(O,a)=>5==a||6==a||315==a?O:316==a,strict:!1}),Z=new i.Lu(((O,a)=>{let{next:Q}=O;(125==Q||-1==Q||a.context)&&O.acceptToken(313)}),{contextual:!0,fallback:!0}),o=new i.Lu(((O,a)=>{let Q,{next:i}=O;e.indexOf(i)>-1||(47!=i||47!=(Q=O.peek(1))&&42!=Q)&&(125==i||59==i||-1==i||a.context||O.acceptToken(312))}),{contextual:!0}),t=new i.Lu(((O,a)=>{let{next:Q}=O;if(43==Q||45==Q){if(O.advance(),Q==O.next){O.advance();let Q=!a.context&&a.canShift(1);O.acceptToken(Q?1:2)}}else 63==Q&&46==O.peek(1)&&(O.advance(),O.advance(),(O.next<48||O.next>57)&&O.acceptToken(3))}),{contextual:!0});function P(O,a){return O>=65&&O<=90||O>=97&&O<=122||95==O||O>=192||!a&&O>=48&&O<=57}const p=new i.Lu(((O,a)=>{if(60!=O.next||!a.dialectEnabled(0))return;if(O.advance(),47==O.next)return;let Q=0;for(;e.indexOf(O.next)>-1;)O.advance(),Q++;if(P(O.next,!0)){for(O.advance(),Q++;P(O.next,!1);)O.advance(),Q++;for(;e.indexOf(O.next)>-1;)O.advance(),Q++;if(44==O.next)return;for(let a=0;;a++){if(7==a){if(!P(O.next,!0))return;break}if(O.next!="extends".charCodeAt(a))break;O.advance(),Q++}}O.acceptToken(4,-Q)})),n=(0,$.pn)({"get set async static":$._A.modifier,"for while do if else switch try catch finally return throw break continue default case":$._A.controlKeyword,"in of await yield void typeof delete instanceof":$._A.operatorKeyword,"let var const using function class extends":$._A.definitionKeyword,"import export from":$._A.moduleKeyword,"with debugger as new":$._A.keyword,TemplateString:$._A.special($._A.string),super:$._A.atom,BooleanLiteral:$._A.bool,this:$._A.self,null:$._A.null,Star:$._A.modifier,VariableName:$._A.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":$._A.function($._A.variableName),VariableDefinition:$._A.definition($._A.variableName),Label:$._A.labelName,PropertyName:$._A.propertyName,PrivatePropertyName:$._A.special($._A.propertyName),"CallExpression/MemberExpression/PropertyName":$._A.function($._A.propertyName),"FunctionDeclaration/VariableDefinition":$._A.function($._A.definition($._A.variableName)),"ClassDeclaration/VariableDefinition":$._A.definition($._A.className),PropertyDefinition:$._A.definition($._A.propertyName),PrivatePropertyDefinition:$._A.definition($._A.special($._A.propertyName)),UpdateOp:$._A.updateOperator,"LineComment Hashbang":$._A.lineComment,BlockComment:$._A.blockComment,Number:$._A.number,String:$._A.string,Escape:$._A.escape,ArithOp:$._A.arithmeticOperator,LogicOp:$._A.logicOperator,BitOp:$._A.bitwiseOperator,CompareOp:$._A.compareOperator,RegExp:$._A.regexp,Equals:$._A.definitionOperator,Arrow:$._A.function($._A.punctuation),": Spread":$._A.punctuation,"( )":$._A.paren,"[ ]":$._A.squareBracket,"{ }":$._A.brace,"InterpolationStart InterpolationEnd":$._A.special($._A.brace),".":$._A.derefOperator,", ;":$._A.separator,"@":$._A.meta,TypeName:$._A.typeName,TypeDefinition:$._A.definition($._A.typeName),"type enum interface implements namespace module declare":$._A.definitionKeyword,"abstract global Privacy readonly override":$._A.modifier,"is keyof unique infer":$._A.operatorKeyword,JSXAttributeValue:$._A.attributeValue,JSXText:$._A.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":$._A.angleBracket,"JSXIdentifier JSXNameSpacedName":$._A.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":$._A.attributeName,"JSXBuiltin/JSXIdentifier":$._A.standard($._A.tagName)}),l={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,extends:54,this:58,true:66,false:66,null:78,void:82,typeof:86,super:102,new:136,delete:148,yield:157,await:161,class:166,public:229,private:229,protected:229,readonly:231,instanceof:250,satisfies:253,in:254,const:256,import:290,keyof:345,unique:349,infer:355,is:391,abstract:411,implements:413,type:415,let:418,var:420,using:423,interface:429,enum:433,namespace:439,module:441,declare:445,global:449,for:468,of:477,while:480,with:484,do:488,if:492,else:494,switch:498,case:504,try:510,catch:514,finally:518,return:522,throw:526,break:530,continue:534,debugger:538},s={__proto__:null,async:123,get:125,set:127,declare:189,public:191,private:191,protected:191,static:193,abstract:195,override:197,readonly:203,accessor:205,new:395},h={__proto__:null,"<":187},c=i.U1.deserialize({version:14,states:"$@QO%TQ^OOO%[Q^OOO'_Q`OOP(lOWOOO*zQ?NdO'#CiO+RO!bO'#CjO+aO#tO'#CjO+oO!0LbO'#D^O.QQ^O'#DdO.bQ^O'#DoO%[Q^O'#DwO0fQ^O'#EPOOQ?Mr'#EX'#EXO1PQWO'#EUOOQO'#Em'#EmOOQO'#Ih'#IhO1XQWO'#GpO1dQWO'#ElO1iQWO'#ElO3hQ?NdO'#JmO6[Q?NdO'#JnO6uQWO'#F[O6zQ&jO'#FsOOQ?Mr'#Fe'#FeO7VO,YO'#FeO7eQ7[O'#FzO9RQWO'#FyOOQ?Mr'#Jn'#JnOOQ?Mp'#Jm'#JmO9WQWO'#GtOOQU'#KZ'#KZO9cQWO'#IUO9hQ?MxO'#IVOOQU'#JZ'#JZOOQU'#IZ'#IZQ`Q^OOO`Q^OOO9pQMnO'#DsO9wQ^O'#D{O:OQ^O'#D}O9^QWO'#GpO:VQ7[O'#CoO:eQWO'#EkO:pQWO'#EvO:uQ7[O'#FdO;dQWO'#GpOOQO'#K['#K[O;iQWO'#K[O;wQWO'#GxO;wQWO'#GyO;wQWO'#G{O9^QWO'#HOOVQWO'#CeO>gQWO'#H_O>oQWO'#HeO>oQWO'#HgO`Q^O'#HiO>oQWO'#HkO>oQWO'#HnO>tQWO'#HtO>yQ?MyO'#HzO%[Q^O'#H|O?UQ?MyO'#IOO?aQ?MyO'#IQO9hQ?MxO'#ISO?lQ?NdO'#CiO@nQ`O'#DiQOQWOOO%[Q^O'#D}OAUQWO'#EQO:VQ7[O'#EkOAaQWO'#EkOAlQpO'#FdOOQU'#Cg'#CgOOQ?Mp'#Dn'#DnOOQ?Mp'#Jq'#JqO%[Q^O'#JqOOQO'#Jt'#JtOOQO'#Id'#IdOBlQ`O'#EdOOQ?Mp'#Ec'#EcOOQ?Mp'#Jx'#JxOChQ?NQO'#EdOCrQ`O'#ETOOQO'#Js'#JsODWQ`O'#JtOEeQ`O'#ETOCrQ`O'#EdPErO#@ItO'#CbPOOO)CDx)CDxOOOO'#I['#I[OE}O!bO,59UOOQ?Mr,59U,59UOOOO'#I]'#I]OF]O#tO,59UO%[Q^O'#D`OOOO'#I_'#I_OFkO!0LbO,59xOOQ?Mr,59x,59xOFyQ^O'#I`OG^QWO'#JoOI]QrO'#JoO+}Q^O'#JoOIdQWO,5:OOIzQWO'#EmOJXQWO'#KOOJdQWO'#J}OJdQWO'#J}OJlQWO,5;ZOJqQWO'#J|OOQ?Mv,5:Z,5:ZOJxQ^O,5:ZOLvQ?NdO,5:cOMgQWO,5:kONQQ?MxO'#J{ONXQWO'#JzO9WQWO'#JzONmQWO'#JzONuQWO,5;YONzQWO'#JzO!#PQrO'#JnOOQ?Mr'#Ci'#CiO%[Q^O'#EPO!#oQrO,5:pOOQQ'#Ju'#JuOOQO-EpOOQU'#Jc'#JcOOQU,5>q,5>qOOQU-EtQWO'#HTO9^QWO'#HVO!DgQWO'#HVO:VQ7[O'#HXO!DlQWO'#HXOOQU,5=m,5=mO!DqQWO'#HYO!ESQWO'#CoO!EXQWO,59PO!EcQWO,59PO!GhQ^O,59POOQU,59P,59PO!GxQ?MxO,59PO%[Q^O,59PO!JTQ^O'#HaOOQU'#Hb'#HbOOQU'#Hc'#HcO`Q^O,5=yO!JkQWO,5=yO`Q^O,5>PO`Q^O,5>RO!JpQWO,5>TO`Q^O,5>VO!JuQWO,5>YO!JzQ^O,5>`OOQU,5>f,5>fO%[Q^O,5>fO9hQ?MxO,5>hOOQU,5>j,5>jO# UQWO,5>jOOQU,5>l,5>lO# UQWO,5>lOOQU,5>n,5>nO# rQ`O'#D[O%[Q^O'#JqO# |Q`O'#JqO#!kQ`O'#DjO#!|Q`O'#DjO#%_Q^O'#DjO#%fQWO'#JpO#%nQWO,5:TO#%sQWO'#EqO#&RQWO'#KPO#&ZQWO,5;[O#&`Q`O'#DjO#&mQ`O'#ESOOQ?Mr,5:l,5:lO%[Q^O,5:lO#&tQWO,5:lO>tQWO,5;VO!A}Q`O,5;VO!BVQ7[O,5;VO:VQ7[O,5;VO#&|QWO,5@]O#'RQ(CYO,5:pOOQO-EzO+}Q^O,5>zOOQO,5?Q,5?QO#*ZQ^O'#I`OOQO-E<^-E<^O#*hQWO,5@ZO#*pQrO,5@ZO#*wQWO,5@iOOQ?Mr1G/j1G/jO%[Q^O,5@jO#+PQWO'#IfOOQO-EuQ?NdO1G0|O#>|Q?NdO1G0|O#AZQ07bO'#CiO#CUQ07bO1G1_O#C]Q07bO'#JnO#CpQ?NdO,5?WOOQ?Mp-EoQWO1G3oO$3VQ^O1G3qO$7ZQ^O'#HpOOQU1G3t1G3tO$7hQWO'#HvO>tQWO'#HxOOQU1G3z1G3zO$7pQ^O1G3zO9hQ?MxO1G4QOOQU1G4S1G4SOOQ?Mp'#G]'#G]O9hQ?MxO1G4UO9hQ?MxO1G4WO$;wQWO,5@]O!(oQ^O,5;]O9WQWO,5;]O>tQWO,5:UO!(oQ^O,5:UO!A}Q`O,5:UO$;|Q07bO,5:UOOQO,5;],5;]O$tQWO1G0qO!A}Q`O1G0qO!BVQ7[O1G0qOOQ?Mp1G5w1G5wO!ArQ?MxO1G0ZOOQO1G0j1G0jO%[Q^O1G0jO$=aQ?MxO1G0jO$=lQ?MxO1G0jO!A}Q`O1G0ZOCrQ`O1G0ZO$=zQ?MxO1G0jOOQO1G0Z1G0ZO$>`Q?NdO1G0jPOOO-EjQpO,5rQrO1G4fOOQO1G4l1G4lO%[Q^O,5>zO$>|QWO1G5uO$?UQWO1G6TO$?^QrO1G6UO9WQWO,5?QO$?hQ?NdO1G6RO%[Q^O1G6RO$?xQ?MxO1G6RO$@ZQWO1G6QO$@ZQWO1G6QO9WQWO1G6QO$@cQWO,5?TO9WQWO,5?TOOQO,5?T,5?TO$@wQWO,5?TO$(PQWO,5?TOOQO-E[OOQU,5>[,5>[O%[Q^O'#HqO%8mQWO'#HsOOQU,5>b,5>bO9WQWO,5>bOOQU,5>d,5>dOOQU7+)f7+)fOOQU7+)l7+)lOOQU7+)p7+)pOOQU7+)r7+)rO%8rQ`O1G5wO%9WQ07bO1G0wO%9bQWO1G0wOOQO1G/p1G/pO%9mQ07bO1G/pO>tQWO1G/pO!(oQ^O'#DjOOQO,5>{,5>{OOQO-E<_-E<_OOQO,5?R,5?ROOQO-EtQWO7+&]O!A}Q`O7+&]OOQO7+%u7+%uO$>`Q?NdO7+&UOOQO7+&U7+&UO%[Q^O7+&UO%9wQ?MxO7+&UO!ArQ?MxO7+%uO!A}Q`O7+%uO%:SQ?MxO7+&UO%:bQ?NdO7++mO%[Q^O7++mO%:rQWO7++lO%:rQWO7++lOOQO1G4o1G4oO9WQWO1G4oO%:zQWO1G4oOOQQ7+%z7+%zO#&wQWO<|O%[Q^O,5>|OOQO-E<`-E<`O%FwQWO1G5xOOQ?Mr<]OOQU,5>_,5>_O&8uQWO1G3|O9WQWO7+&cO!(oQ^O7+&cOOQO7+%[7+%[O&8zQ07bO1G6UO>tQWO7+%[OOQ?Mr<tQWO<`Q?NdO<pQ?NdO,5?_O&@xQ?NdO7+'zO&CWQrO1G4hO&CbQ07bO7+&^O&EcQ07bO,5=UO&GgQ07bO,5=WO&GwQ07bO,5=UO&HXQ07bO,5=WO&HiQ07bO,59rO&JlQ07bO,5tQWO7+)hO'(OQWO<`Q?NdOAN?[OOQOAN>{AN>{O%[Q^OAN?[OOQO<`Q?NdOG24vO#&wQWOLD,nOOQULD,nLD,nO!&_Q7[OLD,nO'5TQrOLD,nO'5[Q07bO7+'xO'6}Q07bO,5?]O'8}Q07bO,5?_O':}Q07bO7+'zO'kOh%VOk+aO![']O%f+`O~O!d+cOa(WX![(WX'u(WX!Y(WX~Oa%lO![XO'u%lO~Oh%VO!i%cO~Oh%VO!i%cO(O%eO~O!d#vO#h(tO~Ob+nO%g+oO(O+kO(QTO(TUO!Z)TP~O!Y+pO`)SX~O[+tO~O`+uO~O![%}O(O%eO(P!lO`)SP~Oh%VO#]+zO~Oh%VOk+}O![$|O~O![,PO~O},RO![XO~O%k%tO~O!u,WO~Oe,]O~Ob,^O(O#nO(QTO(TUO!Z)RP~Oe%{O~O%g!QO(O&WO~P=RO[,cO`,bO~OPYOQYOSfOdzOeyOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO!fuO!iZO!lYO!mYO!nYO!pvO!uxO!y]O%e}O(QTO(TUO([VO(j[O(yiO~O![!eO!r!gO$V!kO(O!dO~P!EkO`,bOa%lO'u%lO~OPYOQYOSfOd!jOe!iOmkOoYOpkOqkOwkOyYO{YO!PWO!TkO!UkO![!eO!fuO!iZO!lYO!mYO!nYO!pvO!u!hO$V!kO(O!dO(QTO(TUO([VO(j[O(yiO~Oa,hO!rwO#t!OO%i!OO%j!OO%k!OO~P!HTO!i&lO~O&Y,nO~O![,pO~O&k,rO&m,sOP&haQ&haS&haY&haa&had&hae&ham&hao&hap&haq&haw&hay&ha{&ha!P&ha!T&ha!U&ha![&ha!f&ha!i&ha!l&ha!m&ha!n&ha!p&ha!r&ha!u&ha!y&ha#t&ha$V&ha%e&ha%g&ha%i&ha%j&ha%k&ha%n&ha%p&ha%s&ha%t&ha%v&ha&S&ha&Y&ha&[&ha&^&ha&`&ha&c&ha&i&ha&o&ha&q&ha&s&ha&u&ha&w&ha's&ha(O&ha(Q&ha(T&ha([&ha(j&ha(y&ha!Z&ha&a&hab&ha&f&ha~O(O,xO~Oh!bX!Y!OX!Z!OX!d!OX!d!bX!i!bX#]!OX~O!Y!bX!Z!bX~P# ZO!d,}O#],|Oh(eX!Y#eX!Y(eX!Z#eX!Z(eX!d(eX!i(eX~Oh%VO!d-PO!i%cO!Y!^X!Z!^X~Op!nO!P!oO(QTO(TUO(`!mO~OP;POQ;POSfOdkOg'XX!Y'XX~P!+hO!Y.wOg(ka~OSfO![3uO$c3vO~O!Z3zO~Os3{O~P#.aOa$lq!Y$lq'u$lq's$lq!V$lq!h$lqs$lq![$lq%f$lq!d$lq~P!9mO!V3|O~P#.aO})zO!P){O(u%POk'ea(t'ea!Y'ea#]'ea~Og'ea#}'ea~P%)nO})zO!P){Ok'ga(t'ga(u'ga!Y'ga#]'ga~Og'ga#}'ga~P%*aO(m$YO~P#.aO!VfX!V$xX!YfX!Y$xX!d%PX#]fX~P!/gO(OQ#>g#@V#@e#@l#BR#Ba#C|#D[#Db#Dh#Dn#Dx#EO#EU#E`#Er#ExPPPPPPPPPP#FOPPPPPPP#Fs#Iz#KZ#Kb#KjPPP$!sP$!|$%t$,^$,a$,d$-P$-S$-Z$-cP$-i$-lP$.Y$.^$/U$0d$0i$1PPP$1U$1[$1`P$1c$1g$1k$2a$2x$3a$3e$3h$3k$3q$3t$3x$3|R!|RoqOXst!Z#d%k&o&q&r&t,k,p1|2PY!vQ']-]1a5eQ%rvQ%zyQ&R|Q&g!VS'T!e-TQ'c!iS'i!r!yU*e$|*V*jQ+i%{Q+v&TQ,[&aQ-Z'[Q-e'dQ-m'jQ0R*lQ1k,]R;v;T%QdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%k%r&P&h&k&o&q&r&t&x'Q'_'o(P(R(X(`(t(v(z)y+R+V,h,k,p-a-i-w-}.l.s/f0a0g0v1d1t1u1w1y1|2P2R2r2x3^5b5m5}6O6R6f8R8X8h8rS#q];Q!r)Z$Z$n'U)o,|-P.}2b3u5`6]9h9y;P;S;T;W;X;Y;Z;[;];^;_;`;a;b;c;d;f;i;v;x;y;{ < TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:376,context:r,nodeProps:[["isolate",-8,5,6,14,34,36,48,50,52,""],["group",-26,9,17,19,65,204,208,212,213,215,218,221,231,233,239,241,243,245,248,254,260,262,264,266,268,270,271,"Statement",-34,13,14,29,32,33,39,48,51,52,54,59,67,69,73,77,79,81,82,107,108,117,118,135,138,140,141,142,143,144,146,147,166,167,169,"Expression",-23,28,30,34,38,40,42,171,173,175,176,178,179,180,182,183,184,186,187,188,198,200,202,203,"Type",-3,85,100,106,"ClassItem"],["openedBy",23,"<",35,"InterpolationStart",53,"[",57,"{",70,"(",159,"JSXStartCloseTag"],["closedBy",24,">",37,"InterpolationEnd",47,"]",58,"}",71,")",164,"JSXEndTag"]],propSources:[n],skippedNodes:[0,5,6,274],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$h&j(RpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(RpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Rp(U!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$h&j(Rp(U!b'w0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(S#S$h&j'x0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$h&j(Rp(U!b'x0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$h&j!m),Q(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#u(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#u(Ch$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(Q':f$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$h&j(U!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$h&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$c`$h&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$c``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$c`$h&j(U!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(U!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$c`(U!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$h&j(Rp(U!bOY%ZYZ&cZq%Zqr`#P#o`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$h&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(U!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$h&j(RpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(RpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Rp(U!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l^!Q^$h&j!U7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!U7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!U7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c^!Ezl$h&j(U!b!U7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(U!b!U7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(U!b!U7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(U!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$h&j(U!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!^!LYP;=`<%l!KS>^!L`P;=`<%l!_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$h&j(Rp(U!bp'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!d$b$h&j#})Lv(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$h&j(Rp(U!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#O-l[O]||-1},{term:338,get:O=>s[O]||-1},{term:92,get:O=>h[O]||-1}],tokenPrec:14749});var S=Q(29587),X=Q(14830),m=Q(83173),b=Q(77213),Y=Q(79066);const u=[(0,b.Gw)("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,b.Gw)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,b.Gw)("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,b.Gw)("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,b.Gw)("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,b.Gw)("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),(0,b.Gw)("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,b.Gw)("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),(0,b.Gw)("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),(0,b.Gw)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,b.Gw)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],d=u.concat([(0,b.Gw)("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,b.Gw)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,b.Gw)("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),g=new Y.RY,R=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function f(O){return(a,Q)=>{let i=a.node.getChild("VariableDefinition");return i&&Q(i,O),!0}}const W=["FunctionDeclaration"],x={FunctionDeclaration:f("function"),ClassDeclaration:f("class"),ClassExpression:()=>!0,EnumDeclaration:f("constant"),TypeAliasDeclaration:f("type"),NamespaceDeclaration:f("namespace"),VariableDefinition(O,a){O.matchContext(W)||a(O,"variable")},TypeDefinition(O,a){a(O,"type")},__proto__:null};function _(O,a){let Q=g.get(a);if(Q)return Q;let i=[],$=!0;function e(a,Q){let $=O.sliceString(a.from,a.to);i.push({label:$,type:Q})}return a.cursor(Y.Qj.IncludeAnonymous).iterate((a=>{if($)$=!1;else if(a.name){let O=x[a.name];if(O&&O(a,e)||R.has(a.name))return!1}else if(a.to-a.from>8192){for(let Q of _(O,a.node))i.push(Q);return!1}})),g.set(a,i),i}const U=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,y=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function w(O){let a=(0,S.mv)(O.state).resolveInner(O.pos,-1);if(y.indexOf(a.name)>-1)return null;let Q="VariableName"==a.name||a.to-a.from<20&&U.test(O.state.sliceDoc(a.from,a.to));if(!Q&&!O.explicit)return null;let i=[];for(let Q=a;Q;Q=Q.parent)R.has(Q.name)&&(i=i.concat(_(O.state.doc,Q)));return{options:i,from:Q?a.from:O.pos,validFor:U}}function k(O,a,Q){var i;let $=[];for(;;){let e,r=a.firstChild;if("VariableName"==(null==r?void 0:r.name))return $.push(O(r)),{path:$.reverse(),name:Q};if("MemberExpression"!=(null==r?void 0:r.name)||"PropertyName"!=(null===(i=e=r.lastChild)||void 0===i?void 0:i.name))return null;$.push(O(e)),a=r}}function q(O){let a=a=>O.state.doc.sliceString(a.from,a.to),Q=(0,S.mv)(O.state).resolveInner(O.pos,-1);return"PropertyName"==Q.name?k(a,Q.parent,a(Q)):"."!=Q.name&&"?."!=Q.name||"MemberExpression"!=Q.parent.name?y.indexOf(Q.name)>-1?null:"VariableName"==Q.name||Q.to-Q.from<20&&U.test(a(Q))?{path:[],name:a(Q)}:"MemberExpression"==Q.name?k(a,Q,""):O.explicit?{path:[],name:""}:null:k(a,Q.parent,"")}function j(O){let a=new Map;return Q=>{let i=q(Q);if(!i)return null;let $=O;for(let O of i.path)if($=$[O],!$)return null;let e=a.get($);return e||a.set($,e=function(O,a){let Q=[],i=new Set;for(let $=0;;$++){for(let e of(Object.getOwnPropertyNames||Object.keys)(O)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(e)||i.has(e))continue;let r;i.add(e);try{r=O[e]}catch(O){continue}Q.push({label:e,type:"function"==typeof r?/^[A-Z]/.test(e)?"class":a?"function":"method":a?"variable":"property",boost:-$})}let e=Object.getPrototypeOf(O);if(!e)return Q;O=e}}($,!i.path.length)),{from:Q.pos-i.name.length,options:e,validFor:U}}}const G=S.bj.define({name:"javascript",parser:c.configure({props:[S.Oh.add({IfStatement:(0,S.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,S.mz)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:S._Y,SwitchBody:O=>{let a=O.textAfter,Q=/^\s*\}/.test(a),i=/^\s*(case|default)\b/.test(a);return O.baseIndent+(Q?0:i?1:2)*O.unit},Block:(0,S.Ay)({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,S.mz)({except:/^{/}),JSXElement(O){let a=/^\s*<\//.test(O.textAfter);return O.lineIndent(O.node.from)+(a?0:O.unit)},JSXEscape(O){let a=/\s*\}/.test(O.textAfter);return O.lineIndent(O.node.from)+(a?0:O.unit)},"JSXOpenTag JSXSelfClosingTag":O=>O.column(O.node.from)+O.unit}),S.b_.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":S.yd,BlockComment:O=>({from:O.from+2,to:O.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),z={test:O=>/^JSX/.test(O.name),facet:(0,S.p9)({commentTokens:{block:{open:"{/*",close:"*/}"}}})},T=G.configure({dialect:"ts"},"typescript"),V=G.configure({dialect:"jsx",props:[S.Q0.add((O=>O.isTop?[z]:void 0))]}),v=G.configure({dialect:"jsx ts",props:[S.Q0.add((O=>O.isTop?[z]:void 0))]},"typescript");let A=O=>({label:O,type:"keyword"});const E="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(A),M=E.concat(["declare","implements","private","protected","public"].map(A));function N(O={}){let a=O.jsx?O.typescript?v:V:O.typescript?T:G,Q=O.typescript?d.concat(M):u.concat(E);return new S.Yy(a,[G.data.of({autocomplete:(0,b.Ar)(y,(0,b.et)(Q))}),G.data.of({autocomplete:w}),O.jsx?I:[]])}function C(O,a,Q=O.length){for(let i=null==a?void 0:a.firstChild;i;i=i.nextSibling)if("JSXIdentifier"==i.name||"JSXBuiltin"==i.name||"JSXNamespacedName"==i.name||"JSXMemberExpression"==i.name)return O.sliceString(i.from,Math.min(i.to,Q));return""}const J="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),I=m.Lz.inputHandler.of(((O,a,Q,i,$)=>{if((J?O.composing:O.compositionStarted)||O.state.readOnly||a!=Q||">"!=i&&"/"!=i||!G.isActiveAt(O.state,a,-1))return!1;let e=$(),{state:r}=e,Z=r.changeByRange((O=>{var a;let Q,{head:$}=O,e=(0,S.mv)(r).resolveInner($-1,-1);if("JSXStartTag"==e.name&&(e=e.parent),r.doc.sliceString($-1,$)!=i||"JSXAttributeValue"==e.name&&e.to>$);else{if(">"==i&&"JSXFragmentTag"==e.name)return{range:O,changes:{from:$,insert:""}};if("/"==i&&"JSXStartCloseTag"==e.name){let O=e.parent,i=O.parent;if(i&&O.from==$-2&&((Q=C(r.doc,i.firstChild,$))||"JSXFragmentTag"==(null===(a=i.firstChild)||void 0===a?void 0:a.name))){let O=`${Q}>`;return{range:X.OF.cursor($+O.length,-1),changes:{from:$,insert:O}}}}else if(">"==i){let a=function(O){for(;;){if("JSXOpenTag"==O.name||"JSXSelfClosingTag"==O.name||"JSXFragmentTag"==O.name)return O;if("JSXEscape"==O.name||!O.parent)return null;O=O.parent}}(e);if(a&&"JSXOpenTag"==a.name&&!/^\/?>|^<\//.test(r.doc.sliceString($,$+2))&&(Q=C(r.doc,a,$)))return{range:O,changes:{from:$,insert:``}}}}return{range:O}}));return!Z.changes.empty&&(O.dispatch([e,r.update(Z,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}));function D(O,a){return a||(a={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},O.getRules().forEach(((O,Q)=>{O.meta.docs.recommended&&(a.rules[Q]=2)}))),Q=>{let{state:i}=Q,$=[];for(let{from:Q,to:e}of G.findRegions(i)){let r=i.doc.lineAt(Q),Z={line:r.number-1,col:Q-r.from,pos:Q};for(let r of O.verify(i.sliceDoc(Q,e),a))$.push(L(r,i.doc,Z))}return $}}function K(O,a,Q,i){return Q.line(O+i.line).from+a+(1==O?i.col-1:-1)}function L(O,a,Q){let i=K(O.line,O.column,a,Q),$={from:i,to:null!=O.endLine&&1!=O.endColumn?K(O.endLine,O.endColumn,a,Q):i,message:O.message,source:O.ruleId?"eslint:"+O.ruleId:"eslint",severity:1==O.severity?"warning":"error"};if(O.fix){let{range:a,text:e}=O.fix,r=a[0]+Q.pos-i,Z=a[1]+Q.pos-i;$.actions=[{name:"fix",apply(O,a){O.dispatch({changes:{from:a+r,to:a+Z,insert:e},scrollIntoView:!0})}}]}return $}}}]); +//# sourceMappingURL=2000.thebe-core.min.js.map \ No newline at end of file diff --git a/2293.thebe-core.min.js b/2293.thebe-core.min.js new file mode 100644 index 00000000..afd6472c --- /dev/null +++ b/2293.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2293],{82293:(i,l,e)=>{function a(i){var l=[],e="",a={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"},t={};function n(i,l){for(var e,a=!1;null!=(e=i.next());){if("/"===e&&a){l.tokenize=null;break}a="*"===e}return"comment"}return"x86"===i?(e="#",t.al="variable",t.ah="variable",t.ax="variable",t.eax="variableName.special",t.rax="variableName.special",t.bl="variable",t.bh="variable",t.bx="variable",t.ebx="variableName.special",t.rbx="variableName.special",t.cl="variable",t.ch="variable",t.cx="variable",t.ecx="variableName.special",t.rcx="variableName.special",t.dl="variable",t.dh="variable",t.dx="variable",t.edx="variableName.special",t.rdx="variableName.special",t.si="variable",t.esi="variableName.special",t.rsi="variableName.special",t.di="variable",t.edi="variableName.special",t.rdi="variableName.special",t.sp="variable",t.esp="variableName.special",t.rsp="variableName.special",t.bp="variable",t.ebp="variableName.special",t.rbp="variableName.special",t.ip="variable",t.eip="variableName.special",t.rip="variableName.special",t.cs="keyword",t.ds="keyword",t.ss="keyword",t.es="keyword",t.fs="keyword",t.gs="keyword"):"arm"!==i&&"armv6"!==i||(e="@",a.syntax="builtin",t.r0="variable",t.r1="variable",t.r2="variable",t.r3="variable",t.r4="variable",t.r5="variable",t.r6="variable",t.r7="variable",t.r8="variable",t.r9="variable",t.r10="variable",t.r11="variable",t.r12="variable",t.sp="variableName.special",t.lr="variableName.special",t.pc="variableName.special",t.r13=t.sp,t.r14=t.lr,t.r15=t.pc,l.push((function(i,l){if("#"===i)return l.eatWhile(/\w/),"number"}))),{name:"gas",startState:function(){return{tokenize:null}},token:function(i,b){if(b.tokenize)return b.tokenize(i,b);if(i.eatSpace())return null;var r,u,s=i.next();if("/"===s&&i.eat("*"))return b.tokenize=n,n(i,b);if(s===e)return i.skipToEnd(),"comment";if('"'===s)return function(i){for(var l,e=!1;null!=(l=i.next());){if('"'===l&&!e)return!1;e=!e&&"\\"===l}}(i),"string";if("."===s)return i.eatWhile(/\w/),u=i.current().toLowerCase(),(r=a[u])||null;if("="===s)return i.eatWhile(/\w/),"tag";if("{"===s)return"bracket";if("}"===s)return"bracket";if(/\d/.test(s))return"0"===s&&i.eat("x")?(i.eatWhile(/[0-9a-fA-F]/),"number"):(i.eatWhile(/\d/),"number");if(/\w/.test(s))return i.eatWhile(/\w/),i.eat(":")?"tag":(u=i.current().toLowerCase(),(r=t[u])||null);for(var c=0;ct,gasArm:()=>n});const t=a("x86"),n=a("arm")}}]); +//# sourceMappingURL=2293.thebe-core.min.js.map \ No newline at end of file diff --git a/2376.thebe-core.min.js b/2376.thebe-core.min.js new file mode 100644 index 00000000..e1a623f4 --- /dev/null +++ b/2376.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2376],{52376:(O,i,n)=>{n.r(i),n.d(i,{globalCompletion:()=>j,localCompletionSource:()=>b,python:()=>F,pythonLanguage:()=>A});var Q=n(73643),a=n(49913);const e=10,r=new Set([25,49,50,263,65,130,56,57,238,62,63,72,73,77,60,61,151,152,155,112]);function t(O){return O==e||13==O}function o(O){return O>=48&&O<=57||O>=65&&O<=70||O>=97&&O<=102}const d=new Q.Lu(((O,i)=>{let n;if(O.next<0)O.acceptToken(199);else if(i.context.flags&s)t(O.next)&&O.acceptToken(198,1);else if(((n=O.peek(-1))<0||t(n))&&i.canShift(197)){let i=0;for(;32==O.next||9==O.next;)O.advance(),i++;O.next!=e&&13!=O.next&&35!=O.next||O.acceptToken(197,-i)}else t(O.next)&&O.acceptToken(196,1)}),{contextual:!0}),T=new Q.Lu(((O,i)=>{let n=i.context;if(n.flags)return;let Q=O.peek(-1);if(Q==e||13==Q){let i=0,Q=0;for(;;){if(32==O.next)i++;else{if(9!=O.next)break;i+=8-i%8}O.advance(),Q++}i!=n.indent&&O.next!=e&&13!=O.next&&35!=O.next&&(i[O,2|i]))),h=new Q.Aj({start:P,reduce:(O,i,n,Q)=>O.flags&s&&r.has(i)||(71==i||72==i)&&2&O.flags?O.parent:O,shift:(O,i,n,Q)=>194==i?new $(O,function(O){let i=0;for(let n=0;nO.hash}),g=new Q.Lu((O=>{for(let i=0;i<5;i++){if(O.next!="print".charCodeAt(i))return;O.advance()}if(!/\w/.test(String.fromCharCode(O.next)))for(let i=0;;i++){let n=O.peek(i);if(32!=n&&9!=n)return void(40!=n&&46!=n&&n!=e&&13!=n&&35!=n&&O.acceptToken(1))}})),c=new Q.Lu(((O,i)=>{let{flags:n}=i.context,Q=n&l?34:39,a=(n&S)>0,r=!(n&p),t=(n&q)>0,o=O.pos;for(;!(O.next<0);)if(t&&123==O.next){if(123!=O.peek(1)){if(O.pos==o)return void O.acceptToken(3,1);break}O.advance(2)}else{if(r&&92==O.next){if(O.pos==o){O.advance();let i=O.next;return i>=0&&(O.advance(),X(O,i)),void O.acceptToken(2)}break}if(O.next==Q&&(!a||O.peek(1)==Q&&O.peek(2)==Q)){if(O.pos==o)return void O.acceptToken(201,a?3:1);break}if(O.next==e){if(a)O.advance();else if(O.pos==o)return void O.acceptToken(201);break}O.advance()}O.pos>o&&O.acceptToken(200)}));function X(O,i){if(111==i)for(let i=0;i<2&&O.next>=48&&O.next<=55;i++)O.advance();else if(120==i)for(let i=0;i<2&&o(O.next);i++)O.advance();else if(117==i)for(let i=0;i<4&&o(O.next);i++)O.advance();else if(85==i)for(let i=0;i<8&&o(O.next);i++)O.advance();else if(78==i&&123==O.next){for(O.advance();O.next>=0&&125!=O.next&&39!=O.next&&34!=O.next&&O.next!=e;)O.advance();125==O.next&&O.advance()}}const y=(0,a.pn)({'async "*" "**" FormatConversion FormatSpec':a._A.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":a._A.controlKeyword,"in not and or is del":a._A.operatorKeyword,"from def class global nonlocal lambda":a._A.definitionKeyword,import:a._A.moduleKeyword,"with as print":a._A.keyword,Boolean:a._A.bool,None:a._A.null,VariableName:a._A.variableName,"CallExpression/VariableName":a._A.function(a._A.variableName),"FunctionDefinition/VariableName":a._A.function(a._A.definition(a._A.variableName)),"ClassDefinition/VariableName":a._A.definition(a._A.className),PropertyName:a._A.propertyName,"CallExpression/MemberExpression/PropertyName":a._A.function(a._A.propertyName),Comment:a._A.lineComment,Number:a._A.number,String:a._A.string,FormatString:a._A.special(a._A.string),Escape:a._A.escape,UpdateOp:a._A.updateOperator,"ArithOp!":a._A.arithmeticOperator,BitOp:a._A.bitwiseOperator,CompareOp:a._A.compareOperator,AssignOp:a._A.definitionOperator,Ellipsis:a._A.punctuation,At:a._A.meta,"( )":a._A.paren,"[ ]":a._A.squareBracket,"{ }":a._A.brace,".":a._A.derefOperator,", ;":a._A.separator}),W={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},z=Q.U1.deserialize({version:14,states:"##jO`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5QQdO'#DoOOQS,5:Y,5:YO5eQdO'#HdOOQS,5:],5:]O5rQ!fO,5:]O5wQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8gQdO,59bO8lQdO,59bO8sQdO,59jO8zQdO'#HTO:QQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:iQdO,59aO'vQdO,59aO:wQdO,59aOOQS,59y,59yO:|QdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;[QdO,5:QO;aQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;rQdO,5:UO;wQdO,5:WOOOW'#Fy'#FyO;|OWO,5:aOOQS,5:a,5:aOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/RQtO1G.|O!/YQtO1G.|O1lQdO1G.|O!/uQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!/|QdO1G/eO!0^QdO1G/eO!0fQdO1G/fO'vQdO'#H[O!0kQdO'#H[O!0pQtO1G.{O!1QQdO,59iO!2WQdO,5=zO!2hQdO,5=zO!2pQdO1G/mO!2uQtO1G/mOOQS1G/l1G/lO!3VQdO,5=uO!3|QdO,5=uO0rQdO1G/qO!4kQdO1G/sO!4pQtO1G/sO!5QQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5bQdO'#HxO0rQdO'#HxO!5sQdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6RQ#xO1G2zO!6rQtO1G2zO'vQdO,5kOOQS1G1`1G1`O!7xQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!7}QdO'#FrO!8YQdO,59oO!8bQdO1G/XO!8lQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9]QdO'#GtOOQS,5jO!;QQdO,5>jO1XQdO,5>jO!;cQdO,5>iOOQS-E:R-E:RO!;hQdO1G0lO!;sQdO1G0lO!;xQdO,5>lO!lO!hO!<|QdO,5>hO!=_QdO'#EpO0rQdO1G0tO!=jQdO1G0tO!=oQgO1G0zO!AmQgO1G0}O!EhQdO,5>oO!ErQdO,5>oO!EzQtO,5>oO0rQdO1G1PO!FUQdO1G1PO4iQdO1G1UO!!sQdO1G1WOOQV,5;a,5;aO!FZQfO,5;aO!F`QgO1G1QO!JaQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JqQdO,5>pO!KOQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KWQdO'#FSO!KiQ!fO1G1WO!KqQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!KvQdO1G1]O!LOQdO'#F^OOQV1G1b1G1bO!#WQtO1G1bPOOO1G2v1G2vP!LTOSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LYQdO,5=|O!LmQdO,5=|OOQS1G/u1G/uO!LuQdO,5>PO!MVQdO,5>PO!M_QdO,5>PO!MrQdO,5>PO!NSQdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8bQdO7+$pO# uQdO1G.|O# |QdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!TQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!eQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!jQdO7+%PO#!rQdO7+%QO#!wQdO1G3fOOQS7+%X7+%XO##XQdO1G3fO##aQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##fQdO1G3aOOQS-E9q-E9qO#$]QdO7+%]OOQS7+%_7+%_O#$kQdO1G3aO#%YQdO7+%_O#%_QdO1G3gO#%oQdO1G3gO#%wQdO7+%]O#%|QdO,5>dO#&gQdO,5>dO#&gQdO,5>dOOQS'#Dx'#DxO#&xO&jO'#DzO#'TO`O'#HyOOOW1G3}1G3}O#'YQdO1G3}O#'bQdO1G3}O#'mQ#xO7+(fO#(^QtO1G2UP#(wQdO'#GOOOQS,5bQdO,5gQdO1G4OOOQS-E9y-E9yO#?QQdO1G4OOe,5>eOOOW7+)i7+)iO#?nQdO7+)iO#?vQdO1G2zO#@aQdO1G2zP'vQdO'#FuO0rQdO<mO#AtQdO,5>mOOQS1G0v1G0vOOQS<rO#KZQdO,5>rOOQS,5>r,5>rO#KfQdO,5>qO#KwQdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ WQdO<cAN>cO0rQdO1G1|O$ hQtO1G1|P$ rQdO'#FvOOQS1G2R1G2RP$!PQdO'#F{O$!^QdO7+)jO$!wQdO,5>gOOOO-E9z-E9zOOOW<tO$4dQdO,5>tO1XQdO,5vO$)VQdO,5>vOOQS1G1p1G1pO$8[QtO,5<[OOQU7+'P7+'PO$+cQdO1G/iO$)VQdO,5wO$8jQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)VQdO'#GdO$8rQdO1G4bO$8|QdO1G4bO$9UQdO1G4bOOQS7+%T7+%TO$9dQdO1G1tO$9rQtO'#FaO$9yQdO,5<}OOQS,5<},5<}O$:XQdO1G4cOOQS-E:a-E:aO$)VQdO,5<|O$:`QdO,5<|O$:eQdO7+)|OOQS-E:`-E:`O$:oQdO7+)|O$)VQdO,5m>pPP'Z'ZPP?PPP'Z'ZPP'Z'Z'Z'Z'Z?T?}'ZP@QP@WD_G{HPPHSH^Hb'ZPPPHeHn'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHtIQIYPIaIgPIaPIaIaPPPIaPKuPLOLYL`KuPIaLiPIaPLpLvPLzM`M}NhLzLzNnN{LzLzLzLz! a! g! j! o! r! |!!S!!`!!r!!x!#S!#Y!#v!#|!$S!$^!$d!$j!$|!%W!%^!%d!%n!%t!%z!&Q!&W!&^!&h!&n!&x!'O!'X!'_!'n!'v!(Q!(XPPPPPPPPPPP!(_!(b!(h!(q!({!)WPPPPPPPPPPPP!-z!/`!3`!6pPP!6x!7X!7b!8Z!8Q!8d!8j!8m!8p!8s!8{!9lPPPPPPPPPPPPPPPPP!9o!9s!9yP!:_!:c!:o!:x!;U!;l!;o!;r!;x!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[g,T,d,c,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:O=>W[O]||-1}],tokenPrec:7652});var _=n(29587),f=n(79066),v=n(77213);const R=new f.RY,k=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function x(O){return(i,n,Q)=>{if(Q)return!1;let a=i.node.getChild("VariableName");return a&&n(a,O),!0}}const u={FunctionDefinition:x("function"),ClassDefinition:x("class"),ForStatement(O,i,n){if(n)for(let n=O.node.firstChild;n;n=n.nextSibling)if("VariableName"==n.name)i(n,"variable");else if("in"==n.name)break},ImportStatement(O,i){var n,Q;let{node:a}=O,e="from"==(null===(n=a.firstChild)||void 0===n?void 0:n.name);for(let O=a.getChild("import");O;O=O.nextSibling)"VariableName"==O.name&&"as"!=(null===(Q=O.nextSibling)||void 0===Q?void 0:Q.name)&&i(O,e?"variable":"namespace")},AssignStatement(O,i){for(let n=O.node.firstChild;n;n=n.nextSibling)if("VariableName"==n.name)i(n,"variable");else if(":"==n.name||"AssignOp"==n.name)break},ParamList(O,i){for(let n=null,Q=O.node.firstChild;Q;Q=Q.nextSibling)"VariableName"!=Q.name||n&&/\*|AssignOp/.test(n.name)||i(Q,"variable"),n=Q},CapturePattern:x("variable"),AsPattern:x("variable"),__proto__:null};function U(O,i){let n=R.get(i);if(n)return n;let Q=[],a=!0;function e(i,n){let a=O.sliceString(i.from,i.to);Q.push({label:a,type:n})}return i.cursor(f.Qj.IncludeAnonymous).iterate((i=>{if(i.name){let O=u[i.name];if(O&&O(i,e,a)||!a&&k.has(i.name))return!1;a=!1}else if(i.to-i.from>8192){for(let n of U(O,i.node))Q.push(n);return!1}})),R.set(i,Q),Q}const V=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,G=["String","FormatString","Comment","PropertyName"];function b(O){let i=(0,_.mv)(O.state).resolveInner(O.pos,-1);if(G.indexOf(i.name)>-1)return null;let n="VariableName"==i.name||i.to-i.from<20&&V.test(O.state.sliceDoc(i.from,i.to));if(!n&&!O.explicit)return null;let Q=[];for(let n=i;n;n=n.parent)k.has(n.name)&&(Q=Q.concat(U(O.state.doc,n)));return{options:Q,from:n?i.from:O.pos,validFor:V}}const w=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map((O=>({label:O,type:"constant"}))).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map((O=>({label:O,type:"type"})))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map((O=>({label:O,type:"class"})))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map((O=>({label:O,type:"function"})))),Z=[(0,v.Gw)("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),(0,v.Gw)("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),(0,v.Gw)("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),(0,v.Gw)("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),(0,v.Gw)("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),(0,v.Gw)("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),(0,v.Gw)("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),(0,v.Gw)("import ${module}",{label:"import",detail:"statement",type:"keyword"}),(0,v.Gw)("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],j=(0,v.Ar)(G,(0,v.et)(w.concat(Z)));function E(O){let{node:i,pos:n}=O,Q=O.lineIndent(n,-1),a=null;for(;;){let e=i.childBefore(n);if(!e)break;if("Comment"==e.name)n=e.from;else if("Body"==e.name)O.baseIndentFor(e)+O.unit<=Q&&(a=e),i=e;else{if(!e.type.is("Statement"))break;i=e}}return a}function Y(O,i){let n=O.baseIndentFor(i),Q=O.lineAt(O.pos,-1),a=Q.from+Q.text.length;return/^\s*($|#)/.test(Q.text)&&O.node.ton?null:n+O.unit}const A=_.bj.define({name:"python",parser:z.configure({props:[_.Oh.add({Body:O=>{var i;return null!==(i=Y(O,E(O)||O.node))&&void 0!==i?i:O.continue()},IfStatement:O=>/^\s*(else:|elif )/.test(O.textAfter)?O.baseIndent:O.continue(),"ForStatement WhileStatement":O=>/^\s*else:/.test(O.textAfter)?O.baseIndent:O.continue(),TryStatement:O=>/^\s*(except |finally:|else:)/.test(O.textAfter)?O.baseIndent:O.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":(0,_.Ay)({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":(0,_.Ay)({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":(0,_.Ay)({closing:"]"}),"String FormatString":()=>null,Script:O=>{var i;let n=E(O);return null!==(i=n&&Y(O,n))&&void 0!==i?i:O.continue()}}),_.b_.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":_.yd,Body:(O,i)=>({from:O.from+1,to:O.to-(O.to==i.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function F(){return new _.Yy(A,[A.data.of({autocomplete:b}),A.data.of({autocomplete:j})])}}}]); +//# sourceMappingURL=2376.thebe-core.min.js.map \ No newline at end of file diff --git a/252.thebe-core.min.js b/252.thebe-core.min.js new file mode 100644 index 00000000..fbe6b313 --- /dev/null +++ b/252.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[252],{252:(e,r,o)=>{function t(e){var r={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},o=e.extraWords||{};for(var t in o)o.hasOwnProperty(t)&&(r[t]=e.extraWords[t]);var n=[];for(var i in r)n.push(i);function d(o,t){var n=o.next();if('"'===n)return t.tokenize=k,t.tokenize(o,t);if("{"===n&&o.eat("|"))return t.longString=!0,t.tokenize=y,t.tokenize(o,t);if("("===n&&o.match(/^\*(?!\))/))return t.commentLevel++,t.tokenize=w,t.tokenize(o,t);if("~"===n||"?"===n)return o.eatWhile(/\w/),"variableName.special";if("`"===n)return o.eatWhile(/\w/),"quote";if("/"===n&&e.slashComments&&o.eat("/"))return o.skipToEnd(),"comment";if(/\d/.test(n))return"0"===n&&o.eat(/[bB]/)&&o.eatWhile(/[01]/),"0"===n&&o.eat(/[xX]/)&&o.eatWhile(/[0-9a-fA-F]/),"0"===n&&o.eat(/[oO]/)?o.eatWhile(/[0-7]/):(o.eatWhile(/[\d_]/),o.eat(".")&&o.eatWhile(/[\d]/),o.eat(/[eE]/)&&o.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(n))return"operator";if(/[\w\xa1-\uffff]/.test(n)){o.eatWhile(/[\w\xa1-\uffff]/);var i=o.current();return r.hasOwnProperty(i)?r[i]:"variable"}return null}function k(e,r){for(var o,t=!1,n=!1;null!=(o=e.next());){if('"'===o&&!n){t=!0;break}n=!n&&"\\"===o}return t&&!n&&(r.tokenize=d),"string"}function w(e,r){for(var o,t;r.commentLevel>0&&null!=(t=e.next());)"("===o&&"*"===t&&r.commentLevel++,"*"===o&&")"===t&&r.commentLevel--,o=t;return r.commentLevel<=0&&(r.tokenize=d),"comment"}function y(e,r){for(var o,t;r.longString&&null!=(t=e.next());)"|"===o&&"}"===t&&(r.longString=!1),o=t;return r.longString||(r.tokenize=d),"string"}return{startState:function(){return{tokenize:d,commentLevel:0,longString:!1}},token:function(e,r){return e.eatSpace()?null:r.tokenize(e,r)},languageData:{autocomplete:n,commentTokens:{line:e.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}o.r(r),o.d(r,{fSharp:()=>i,oCaml:()=>n,sml:()=>d});const n=t({name:"ocaml",extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),i=t({name:"fsharp",extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),d=t({name:"sml",extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0})}}]); +//# sourceMappingURL=252.thebe-core.min.js.map \ No newline at end of file diff --git a/2681.thebe-core.min.js b/2681.thebe-core.min.js new file mode 100644 index 00000000..207ee33a --- /dev/null +++ b/2681.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2681],{62681:(e,n,t)=>{t.r(n),t.d(n,{fcl:()=>s});var r={term:!0,method:!0,accu:!0,rule:!0,then:!0,is:!0,and:!0,or:!0,if:!0,default:!0},o={var_input:!0,var_output:!0,fuzzify:!0,defuzzify:!0,function_block:!0,ruleblock:!0},i={end_ruleblock:!0,end_defuzzify:!0,end_function_block:!0,end_fuzzify:!0,end_var:!0},a={true:!0,false:!0,nan:!0,real:!0,min:!0,max:!0,cog:!0,cogs:!0},u=/[+\-*&^%:=<>!|\/]/;function c(e,n){var t=e.next();if(/[\d\.]/.test(t))return"."==t?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==t?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if("/"==t||"("==t){if(e.eat("*"))return n.tokenize=l,l(e,n);if(e.eat("/"))return e.skipToEnd(),"comment"}if(u.test(t))return e.eatWhile(u),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var c=e.current().toLowerCase();return r.propertyIsEnumerable(c)||o.propertyIsEnumerable(c)||i.propertyIsEnumerable(c)?"keyword":a.propertyIsEnumerable(c)?"atom":"variable"}function l(e,n){for(var t,r=!1;t=e.next();){if(("/"==t||")"==t)&&r){n.tokenize=c;break}r="*"==t}return"comment"}function f(e,n,t,r,o){this.indented=e,this.column=n,this.type=t,this.align=r,this.prev=o}const s={name:"fcl",startState:function(e){return{tokenize:null,context:new f(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var t=n.context;if(e.sol()&&(null==t.align&&(t.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;var r=(n.tokenize||c)(e,n);if("comment"==r)return r;null==t.align&&(t.align=!0);var a=e.current().toLowerCase();return o.propertyIsEnumerable(a)?function(e,n){e.context=new f(e.indented,n,"end_block",null,e.context)}(n,e.column()):i.propertyIsEnumerable(a)&&function(e){e.context.prev&&("end_block"==e.context.type&&(e.indented=e.context.indented),e.context=e.context.prev)}(n),n.startOfLine=!1,r},indent:function(e,n,t){if(e.tokenize!=c&&null!=e.tokenize)return 0;var r=e.context,o=i.propertyIsEnumerable(n);return r.align?r.column+(o?0:1):r.indented+(o?0:t.unit)},languageData:{commentTokens:{line:"//",block:{open:"(*",close:"*)"}}}}}}]); +//# sourceMappingURL=2681.thebe-core.min.js.map \ No newline at end of file diff --git a/2682.thebe-core.min.js b/2682.thebe-core.min.js new file mode 100644 index 00000000..5c86930a --- /dev/null +++ b/2682.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2682],{92682:(e,t,a)=>{a.r(t),a.d(t,{asterisk:()=>o});var n=["exten","same","include","ignorepat","switch"],i=["#include","#exec"],r=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];const o={name:"asterisk",startState:function(){return{blockComment:!1,extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(e,t){var a="";return e.eatSpace()?null:t.extenStart?(e.eatWhile(/[^\s]/),a=e.current(),/^=>?$/.test(a)?(t.extenExten=!0,t.extenStart=!1,"strong"):(t.extenStart=!1,e.skipToEnd(),"error")):t.extenExten?(t.extenExten=!1,t.extenPriority=!0,e.eatWhile(/[^,]/),t.extenInclude&&(e.skipToEnd(),t.extenPriority=!1,t.extenInclude=!1),t.extenSame&&(t.extenPriority=!1,t.extenSame=!1,t.extenApplication=!0),"tag"):t.extenPriority?(t.extenPriority=!1,t.extenApplication=!0,e.next(),t.extenSame?null:(e.eatWhile(/[^,]/),"number")):t.extenApplication?(e.eatWhile(/,/),","===(a=e.current())?null:(e.eatWhile(/\w/),a=e.current().toLowerCase(),t.extenApplication=!1,-1!==r.indexOf(a)?"def":null)):function(e,t){var a="",r=e.next();if(t.blockComment)return"-"==r&&e.match("-;",!0)?t.blockComment=!1:e.skipTo("--;")?(e.next(),e.next(),e.next(),t.blockComment=!1):e.skipToEnd(),"comment";if(";"==r)return e.match("--",!0)&&!e.match("-",!1)?(t.blockComment=!0,"comment"):(e.skipToEnd(),"comment");if("["==r)return e.skipTo("]"),e.eat("]"),"header";if('"'==r)return e.skipTo('"'),"string";if("'"==r)return e.skipTo("'"),"string.special";if("#"==r&&(e.eatWhile(/\w/),a=e.current(),-1!==i.indexOf(a)))return e.skipToEnd(),"strong";if("$"==r&&"{"==e.peek())return e.skipTo("}"),e.eat("}"),"variableName.special";if(e.eatWhile(/\w/),a=e.current(),-1!==n.indexOf(a)){switch(t.extenStart=!0,a){case"same":t.extenSame=!0;break;case"include":case"switch":case"ignorepat":t.extenInclude=!0}return"atom"}}(e,t)},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}}}}]); +//# sourceMappingURL=2682.thebe-core.min.js.map \ No newline at end of file diff --git a/2817.thebe-core.min.js b/2817.thebe-core.min.js new file mode 100644 index 00000000..9dcccd2b --- /dev/null +++ b/2817.thebe-core.min.js @@ -0,0 +1,3 @@ +/*! For license information please see 2817.thebe-core.min.js.LICENSE.txt */ +(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[2817],{22817:(e,t,n)=>{"use strict";n.d(t,{Component:()=>Hr});var i=n(14830),s=n(83173),r=n(29587),o=n(79066);function a(e,t){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let s=e(t,n);return!!s&&(i(n.update(s)),!0)}}const l=a(p,0),h=a(d,0),c=a(((e,t)=>d(e,t,function(e){let t=[];for(let n of e.selection.ranges){let i=e.doc.lineAt(n.from),s=n.to<=i.to?i:e.doc.lineAt(n.to),r=t.length-1;r>=0&&t[r].to>i.from?t[r].to=s.to:t.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return t}(t))),0);function u(e,t){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}const f=50;function d(e,t,n=t.selection.ranges){let i=n.map((e=>u(t,e.from).block));if(!i.every((e=>e)))return null;let s=n.map(((e,n)=>function(e,{open:t,close:n},i,s){let r,o,a=e.sliceDoc(i-f,i),l=e.sliceDoc(s,s+f),h=/\s*$/.exec(a)[0].length,c=/^\s*/.exec(l)[0].length,u=a.length-h;if(a.slice(u-t.length,u)==t&&l.slice(c,c+n.length)==n)return{open:{pos:i-h,margin:h&&1},close:{pos:s+c,margin:c&&1}};s-i<=2*f?r=o=e.sliceDoc(i,s):(r=e.sliceDoc(i,i+f),o=e.sliceDoc(s-f,s));let d=/^\s*/.exec(r)[0].length,p=/\s*$/.exec(o)[0].length,m=o.length-p-n.length;return r.slice(d,d+t.length)==t&&o.slice(m,m+n.length)==n?{open:{pos:i+d+t.length,margin:/\s/.test(r.charAt(d+t.length))?1:0},close:{pos:s-p-n.length,margin:/\s/.test(o.charAt(m-1))?1:0}}:null}(t,i[n],e.from,e.to)));if(2!=e&&!s.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>s[t]?[]:[{from:e.from,insert:i[t].open+" "},{from:e.to,insert:" "+i[t].close}])))};if(1!=e&&s.some((e=>e))){let e=[];for(let t,n=0;ns&&(e==r||r>l.from)){s=l.from;let e=/^\s*/.exec(l.text)[0].length,t=e==l.length,n=l.text.slice(e,e+a.length)==a?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:n,indent:s,empty:r,single:o}of i)!o&&r||e.push({from:t.from+s,insert:n+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&i.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:s}of i)if(n>=0){let i=t.from+n,r=i+s.length;" "==t.text[r-t.from]&&r++,e.push({from:i,to:r})}return{changes:e}}return null}const m=i.YH.define(),g=i.sj.define();class b{constructor(e,t,n,i,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=s}setSelAfter(e){return new b(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new b(e.changes&&i.VR.fromJSON(e.changes),[],e.mapped&&i.Gu.fromJSON(e.mapped),e.startSelection&&i.OF.fromJSON(e.startSelection),e.selectionsAfter.map(i.OF.fromJSON))}static fromTransaction(e,t){let n=x;for(let t of e.startState.facet(g)){let i=t(e);i.length&&(n=n.concat(i))}return!n.length&&e.changes.empty?null:new b(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,x)}static selection(e){return new b(void 0,x,void 0,void 0,e)}}function y(e,t,n,i){let s=t+1>n+20?t-n-1:0,r=e.slice(s,t);return r.push(i),r}function v(e,t){return e.length?t.length?e.concat(t):e:t}const x=[];function w(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function k(e,t){if(!e.length)return e;let n=e.length,i=x;for(;n;){let s=S(e[n-1],t,i);if(s.changes&&!s.changes.empty||s.effects.length){let t=e.slice(0,n);return t[n-1]=s,t}t=s.mapped,n--,i=s.selectionsAfter}return i.length?[b.selection(i)]:x}function S(e,t,n){let s=v(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):x,n);if(!e.changes)return b.selection(s);let r=e.changes.map(t),o=t.mapDesc(e.changes,!0),a=e.mapped?e.mapped.composeDesc(o):o;return new b(r,i.Pe.mapEffects(e.effects,t),a,e.startSelection.map(o),s)}const C=/^(input\.type|delete)($|\.)/;class A{constructor(e,t,n=0,i=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=i}isolate(){return this.prevTime?new A(this.done,this.undone):this}addChanges(e,t,n,s,r){let o=this.done,a=o[o.length-1];return o=a&&a.changes&&!a.changes.empty&&e.changes&&(!n||C.test(n))&&(!a.selectionsAfter.length&&t-this.prevTimen.push(e,t))),t.iterChangedRanges(((e,t,s,r)=>{for(let e=0;e=t&&s<=o&&(i=!0)}})),i}(a.changes,e.changes))||"input.type.compose"==n)?y(o,o.length-1,s.minDepth,new b(e.changes.compose(a.changes),v(i.Pe.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,x)):y(o,o.length,s.minDepth,e),new A(o,x,t,n)}addSelection(e,t,n,i){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:x;return s.length>0&&t-this.prevTimee.empty!=o.ranges[t].empty)).length)?this:new A(function(e,t){if(e.length){let n=e[e.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return i.length&&i[i.length-1].eq(t)?e:(i.push(t),y(e,e.length-1,1e9,n.setSelAfter(i)))}return[b.selection([t])]}(this.done,e),this.undone,t,n);var r,o}addMapping(e){return new A(k(this.done,e),k(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let i=0==e?this.done:this.undone;if(0==i.length)return null;let s=i[i.length-1],r=s.selectionsAfter[0]||t.selection;if(n&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:m.of({side:e,rest:w(i),selection:r}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let n=1==i.length?x:i.slice(0,i.length-1);return s.mapped&&(n=k(n,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:m.of({side:e,rest:n,selection:r}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}function O(e,t){return i.OF.create(e.ranges.map(t),e.mainIndex)}function M(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function _({state:e,dispatch:t},n){let i=O(e.selection,n);return!i.eq(e.selection,!0)&&(t(M(e,i)),!0)}function T(e,t){return i.OF.cursor(t?e.to:e.from)}function E(e,t){return _(e,(n=>n.empty?e.moveByChar(n,t):T(n,t)))}function N(e){return e.textDirectionAt(e.state.selection.main.head)==s.OP.LTR}A.empty=new A(x,x);const D=e=>E(e,!N(e)),P=e=>E(e,N(e));function R(e,t){return _(e,(n=>n.empty?e.moveByGroup(n,t):T(n,t)))}function j(e,t,n){if(t.type.prop(n))return!0;let i=t.to-t.from;return i&&(i>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function L(e,t,n){let s,a,l=(0,r.mv)(e).resolveInner(t.head),h=n?o.uY.closedBy:o.uY.openedBy;for(let i=t.head;;){let t=n?l.childAfter(i):l.childBefore(i);if(!t)break;j(e,t,h)?l=t:i=n?t.to:t.from}return a=l.type.prop(h)&&(s=n?(0,r.jU)(e,l.from,1):(0,r.jU)(e,l.to,-1))&&s.matched?n?s.end.to:s.end.from:n?l.to:l.from,i.OF.cursor(a,n?-1:1)}function B(e,t){return _(e,(n=>{if(!n.empty)return T(n,t);let i=e.moveVertically(n,t);return i.head!=n.head?i:e.moveToLineBoundary(n,t)}))}"undefined"!=typeof Intl&&Intl.Segmenter;const I=e=>B(e,!1),F=e=>B(e,!0);function $(e){let t,n=e.scrollDOM.clientHeightn.empty?e.moveVertically(n,t,i.height):T(n,t)));if(o.eq(r.selection))return!1;if(i.selfScroll){let t=e.coordsAtPos(r.selection.main.head),a=e.scrollDOM.getBoundingClientRect(),l=a.top+i.marginTop,h=a.bottom-i.marginBottom;t&&t.top>l&&t.bottomz(e,!1),q=e=>z(e,!0);function V(e,t,n){let s=e.lineBlockAt(t.head),r=e.moveToLineBoundary(t,n);if(r.head==t.head&&r.head!=(n?s.to:s.from)&&(r=e.moveToLineBoundary(t,n,!1)),!n&&r.head==s.from&&s.length){let n=/^\s*/.exec(e.state.sliceDoc(s.from,Math.min(s.from+100,s.to)))[0].length;n&&t.head!=s.from+n&&(r=i.OF.cursor(s.from+n))}return r}function W(e,t){let n=O(e.state.selection,(e=>{let n=t(e);return i.OF.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)}));return!n.eq(e.state.selection)&&(e.dispatch(M(e.state,n)),!0)}function G(e,t){return W(e,(n=>e.moveByChar(n,t)))}const U=e=>G(e,!N(e)),K=e=>G(e,N(e));function J(e,t){return W(e,(n=>e.moveByGroup(n,t)))}function Y(e,t){return W(e,(n=>e.moveVertically(n,t)))}const X=e=>Y(e,!1),Q=e=>Y(e,!0);function Z(e,t){return W(e,(n=>e.moveVertically(n,t,$(e).height)))}const ee=e=>Z(e,!1),te=e=>Z(e,!0),ne=({state:e,dispatch:t})=>(t(M(e,{anchor:0})),!0),ie=({state:e,dispatch:t})=>(t(M(e,{anchor:e.doc.length})),!0),se=({state:e,dispatch:t})=>(t(M(e,{anchor:e.selection.main.anchor,head:0})),!0),re=({state:e,dispatch:t})=>(t(M(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0),oe=({state:e,dispatch:t})=>{let n=e.selection,s=null;return n.ranges.length>1?s=i.OF.create([n.main]):n.main.empty||(s=i.OF.create([i.OF.cursor(n.main.head)])),!!s&&(t(M(e,s)),!0)};function ae(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:r}=e,o=r.changeByRange((s=>{let{from:r,to:o}=s;if(r==o){let i=t(s);ir&&(n="delete.forward",i=le(e,i,!0)),r=Math.min(r,i),o=Math.max(o,i)}else r=le(e,r,!1),o=le(e,o,!0);return r==o?{range:s}:{changes:{from:r,to:o},range:i.OF.cursor(r,rt(e))))i.between(t,t,((e,i)=>{et&&(t=n?i:e)}));return t}const he=(e,t,n)=>ae(e,(s=>{let o,a,l=s.from,{state:h}=e,c=h.doc.lineAt(l);if(n&&!t&&l>c.from&&lhe(e,!1,!0),ue=e=>he(e,!0,!1),fe=(e,t)=>ae(e,(n=>{let s=n.head,{state:r}=e,o=r.doc.lineAt(s),a=r.charCategorizer(s);for(let e=null;;){if(s==(t?o.to:o.from)){s==n.head&&o.number!=(t?r.doc.lines:1)&&(s+=t?1:-1);break}let l=(0,i.zK)(o.text,s-o.from,t)+o.from,h=o.text.slice(Math.min(s,l)-o.from,Math.max(s,l)-o.from),c=a(h);if(null!=e&&c!=e)break;" "==h&&s==n.head||(e=c),s=l}return s})),de=e=>fe(e,!1);function pe(e){let t=[],n=-1;for(let i of e.selection.ranges){let s=e.doc.lineAt(i.from),r=e.doc.lineAt(i.to);if(i.empty||i.to!=r.from||(r=e.doc.lineAt(i.to-1)),n>=s.number){let e=t[t.length-1];e.to=r.to,e.ranges.push(i)}else t.push({from:s.from,to:r.to,ranges:[i]});n=r.number+1}return t}function me(e,t,n){if(e.readOnly)return!1;let s=[],r=[];for(let t of pe(e)){if(n?t.to==e.doc.length:0==t.from)continue;let o=e.doc.lineAt(n?t.to+1:t.from-1),a=o.length+1;if(n){s.push({from:t.to,to:o.to},{from:t.from,insert:o.text+e.lineBreak});for(let n of t.ranges)r.push(i.OF.range(Math.min(e.doc.length,n.anchor+a),Math.min(e.doc.length,n.head+a)))}else{s.push({from:o.from,to:t.from},{from:t.to,insert:e.lineBreak+o.text});for(let e of t.ranges)r.push(i.OF.range(e.anchor-a,e.head-a))}}return!!s.length&&(t(e.update({changes:s,scrollIntoView:!0,selection:i.OF.create(r,e.selection.mainIndex),userEvent:"move.line"})),!0)}function ge(e,t,n){if(e.readOnly)return!1;let i=[];for(let t of pe(e))n?i.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):i.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const be=ve(!1),ye=ve(!0);function ve(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=t.changeByRange((n=>{let{from:s,to:a}=n,l=t.doc.lineAt(s),h=!e&&s==a&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,i=(0,r.mv)(e).resolveInner(t),s=i.childBefore(t),a=i.childAfter(t);return s&&a&&s.to<=t&&a.from>=t&&(n=s.type.prop(o.uY.closedBy))&&n.indexOf(a.name)>-1&&e.doc.lineAt(s.to).from==e.doc.lineAt(a.from).from&&!/\S/.test(e.sliceDoc(s.to,a.from))?{from:s.to,to:a.from}:null}(t,s);e&&(s=a=(a<=l.to?l:t.doc.lineAt(a)).to);let c=new r.KB(t,{simulateBreak:s,simulateDoubleBreak:!!h}),u=(0,r._v)(c,s);for(null==u&&(u=(0,i.y$)(/^\s*/.exec(t.doc.lineAt(s).text)[0],t.tabSize));al.from&&s{let r=[];for(let i=s.from;i<=s.to;){let o=e.doc.lineAt(i);o.number>n&&(s.empty||s.to>o.from)&&(t(o,r,s),n=o.number),i=o.to+1}let o=e.changes(r);return{changes:r,range:i.OF.range(o.mapPos(s.anchor,1),o.mapPos(s.head,1))}}))}const we=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(xe(e,((t,n)=>{n.push({from:t.from,insert:e.facet(r.Xt)})})),{userEvent:"input.indent"})),!0),ke=({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(xe(e,((t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let o=(0,i.y$)(s,e.tabSize),a=0,l=(0,r.EI)(e,Math.max(0,o-(0,r.tp)(e)));for(;a_(e,(t=>L(e.state,t,!N(e)))),shift:e=>W(e,(t=>L(e.state,t,!N(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>_(e,(t=>L(e.state,t,N(e)))),shift:e=>W(e,(t=>L(e.state,t,N(e))))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>me(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>ge(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>me(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>ge(e,t,!0)},{key:"Escape",run:oe},{key:"Mod-Enter",run:ye},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let n=pe(e).map((({from:t,to:n})=>i.OF.range(t,Math.min(n+1,e.doc.length))));return t(e.update({selection:i.OF.create(n),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let n=O(e.selection,(t=>{var n;for(let s=(0,r.mv)(e).resolveStack(t.from,1);s;s=s.next){let{node:e}=s;if((e.from=t.to||e.to>t.to&&e.from<=t.from)&&(null===(n=e.parent)||void 0===n?void 0:n.parent))return i.OF.range(e.to,e.from)}return t}));return t(M(e,n)),!0},preventDefault:!0},{key:"Mod-[",run:ke},{key:"Mod-]",run:we},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),i=new r.KB(e,{overrideIndentation:e=>{let t=n[e];return null==t?-1:t}}),s=xe(e,((t,s,o)=>{let a=(0,r._v)(i,t.from);if(null==a)return;/\S/.test(t.text)||(a=0);let l=/^\s*/.exec(t.text)[0],h=(0,r.EI)(e,a);(l!=h||o.from{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(pe(t).map((({from:e,to:n})=>(e>0?e--:n{let n;if(e.lineWrapping){let i=e.lineBlockAt(t.head),s=e.coordsAtPos(t.head,t.assoc||1);s&&(n=i.bottom+e.documentTop-s.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)})).map(n);return e.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,n){let s=!1,o=O(e.selection,(t=>{let o=(0,r.jU)(e,t.head,-1)||(0,r.jU)(e,t.head,1)||t.head>0&&(0,r.jU)(e,t.head-1,1)||t.head{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),i=u(e.state,n.from);return i.line?l(e):!!i.block&&c(e)}},{key:"Alt-A",run:h},{key:"Ctrl-m",mac:"Shift-Alt-m",run:e=>(e.setTabFocusMode(),!0)}].concat([{key:"ArrowLeft",run:D,shift:U,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>R(e,!N(e)),shift:e=>J(e,!N(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>_(e,(t=>V(e,t,!N(e)))),shift:e=>W(e,(t=>V(e,t,!N(e)))),preventDefault:!0},{key:"ArrowRight",run:P,shift:K,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>R(e,N(e)),shift:e=>J(e,N(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>_(e,(t=>V(e,t,N(e)))),shift:e=>W(e,(t=>V(e,t,N(e)))),preventDefault:!0},{key:"ArrowUp",run:I,shift:X,preventDefault:!0},{mac:"Cmd-ArrowUp",run:ne,shift:se},{mac:"Ctrl-ArrowUp",run:H,shift:ee},{key:"ArrowDown",run:F,shift:Q,preventDefault:!0},{mac:"Cmd-ArrowDown",run:ie,shift:re},{mac:"Ctrl-ArrowDown",run:q,shift:te},{key:"PageUp",run:H,shift:ee},{key:"PageDown",run:q,shift:te},{key:"Home",run:e=>_(e,(t=>V(e,t,!1))),shift:e=>W(e,(t=>V(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:ne,shift:se},{key:"End",run:e=>_(e,(t=>V(e,t,!0))),shift:e=>W(e,(t=>V(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:ie,shift:re},{key:"Enter",run:be},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:ce,shift:ce},{key:"Delete",run:ue},{key:"Mod-Backspace",mac:"Alt-Backspace",run:de},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>fe(e,!0)},{mac:"Mod-Backspace",run:e=>ae(e,(t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}))},{mac:"Mod-Delete",run:e=>ae(e,(t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head_(e,(t=>i.OF.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>W(e,(t=>i.OF.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>_(e,(t=>i.OF.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>W(e,(t=>i.OF.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:ue},{key:"Ctrl-h",run:ce},{key:"Ctrl-k",run:e=>ae(e,(t=>{let n=e.lineBlockAt(t.head).to;return t.head{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:i.EY.of(["",""])},range:i.OF.cursor(e.from)})));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let n=t.from,s=e.doc.lineAt(n),r=n==s.from?n-1:(0,i.zK)(s.text,n-s.from,!1)+s.from,o=n==s.to?n+1:(0,i.zK)(s.text,n-s.from,!0)+s.from;return{changes:{from:r,to:o,insert:e.doc.slice(n,o).append(e.doc.slice(r,n))},range:i.OF.cursor(o)}}));return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:q}].map((e=>({mac:e.key,run:e.run,shift:e.shift})))));var Ce=n(75764);new Ce.Token("@jupyterlab/codeeditor:IEditorServices","A service for the text editor provider\n for the application. Use this to create new text editors and host them in your\n UI elements."),new Ce.Token("@jupyterlab/codeeditor:IPositionModel","A service to handle an code editor cursor position.");const Ae="[data-jp-code-runner]";var Oe;!function(e){e.indentMoreOrInsertTab=function(e){var t;if(null===(t=e.dom.parentElement)||void 0===t?void 0:t.classList.contains("jp-mod-completer-enabled"))return!1;const n={state:e.state,dispatch:e.dispatch},i=e.state.selection.main.from;if(i!=e.state.selection.main.to)return we(n);const s=e.state.doc.lineAt(i),r=e.state.doc.slice(s.from,i).toString();return/^\s*$/.test(r)?we(n):(({state:e,dispatch:t})=>e.selection.ranges.some((e=>!e.empty))?we({state:e,dispatch:t}):(t(e.update(e.replaceSelection("\t"),{scrollIntoView:!0,userEvent:"input"})),!0))(n)},e.completerOrInsertNewLine=function(e){var t;if(null===(t=e.dom.parentElement)||void 0===t?void 0:t.classList.contains("jp-mod-completer-active"))return!1;if(e.dom.closest('[data-jp-interaction-mode="terminal"]'))return!1;const n={state:e.state,dispatch:e.dispatch};return be(n)},e.preventNewLineOnRun=function(e){return!!e.dom.closest(Ae)},e.insertBlankLineOnRun=function(e){if(e.dom.closest(Ae))return!1;{const t={state:e.state,dispatch:e.dispatch};return ye(t)}},e.simplifySelectionAndMaybeSwitchToCommandMode=function(e){const t={state:e.state,dispatch:e.dispatch},n=oe(t);return!e.dom.closest(".jp-mod-editMode .jp-Cell.jp-mod-active")&&n},e.dedentIfNotLaunchingTooltip=function(e){return!e.dom.closest(".jp-CodeMirrorEditor:not(.jp-mod-has-primary-selection):not(.jp-mod-in-leading-whitespace):not(.jp-mod-completer-active)")&&ke(e)}}(Oe||(Oe={}));var Me=n(38571),_e=n(77213),Te=n(10509);const Ee=i.sj.define({combine:e=>(0,i.QR)(e,{fontFamily:null,fontSize:null,lineHeight:null},{fontFamily:(e,t)=>null!=e?e:t,fontSize:(e,t)=>null!=e?e:t,lineHeight:(e,t)=>null!=e?e:t})});function Ne(e){const{fontFamily:t,fontSize:n,lineHeight:i}=e.state.facet(Ee);let s="";return n&&(s+=`font-size: ${n}px !important;`),t&&(s+=`font-family: ${t} !important;`),i&&(s+=`line-height: ${i.toString()} !important`),{style:s}}var De=n(49913);const Pe="InlineMathDollar",Re="InlineMathBracket",je="BlockMathDollar",Le="BlockMathBracket",Be={[Pe]:1,[Re]:3,[je]:2,[Le]:3};Object.keys(Be).reduce(((e,t)=>(e[t]={mark:`${t}Mark`,resolve:t},e)),{});const Ie="cm-rulers",Fe=s.Lz.baseTheme({[`.${Ie}`]:{borderRight:"1px dotted gray",opacity:.7}}),$e=i.sj.define({combine:e=>e.reduce(((e,t)=>e.concat(t.filter(((n,i)=>!e.includes(n)&&i==t.lastIndexOf(n))))),[])}),ze=s.Z9.fromClass(class{constructor(e){var t,n;this.rulersContainer=e.dom.appendChild(document.createElement("div")),this.rulersContainer.style.cssText="\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n pointer-events: none;\n overflow: hidden;\n ";const i=e.defaultCharacterWidth,s=e.state.facet($e),r=null!==(n=null===(t=e.scrollDOM.querySelector(".cm-gutters"))||void 0===t?void 0:t.clientWidth)&&void 0!==n?n:0;this.rulers=s.map((e=>{const t=this.rulersContainer.appendChild(document.createElement("div"));return t.classList.add(Ie),t.style.cssText=`\n position: absolute;\n left: ${r+e*i}px;\n height: 100%;\n `,t.style.width="6px",t}))}update(e){var t,n;const i=e.view.state.facet($e);if(e.viewportChanged||e.geometryChanged||!Ce.JSONExt.deepEqual(i,e.startState.facet($e))){const s=null!==(n=null===(t=e.view.scrollDOM.querySelector(".cm-gutters"))||void 0===t?void 0:t.clientWidth)&&void 0!==n?n:0,r=e.view.defaultCharacterWidth;this.rulers.forEach(((e,t)=>{e.style.left=`${s+i[t]*r}px`}))}}destroy(){this.rulers.forEach((e=>{e.remove()})),this.rulersContainer.remove()}}),He=i.sj.define({combine:e=>e[e.length-1]}),qe=i.YH.define();function Ve(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,n=arguments[1];if(n&&"object"==typeof n&&null==n.nodeType&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var s=n[i];"string"==typeof s?e.setAttribute(i,s):null!=s&&(e[i]=s)}t++}for(;t{var i;if(n.origin!==this.conf){const n=t.delta,s=[];let r=0;for(let e=0;e0&&e.transactions[0].annotation(qe)===this.conf)return;const t=this.conf.ytext;t.doc.transact((()=>{let n=0;e.changes.iterChanges(((e,i,s,r,o)=>{const a=o.sliceString(0,o.length,"\n");e!==i&&t.delete(e+n,i-e),a.length>0&&t.insert(e+n,a),n+=a.length-(i-e)}))}),this.conf)}destroy(){this._ytext.unobserve(this._observer)}});const Ge="function"==typeof String.prototype.normalize?e=>e.normalize("NFKD"):e=>e;class Ue{constructor(e,t,n=0,i=e.length,s,r){this.test=r,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,i),this.bufferStart=n,this.normalize=s?e=>s(Ge(e)):Ge,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,i.vS)(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=(0,i.MK)(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=(0,i.Fh)(e);let s=this.normalize(t);for(let e=0,i=n;;e++){let r=s.charCodeAt(e),o=this.match(r,i,this.bufferPos+this.bufferStart);if(e==s.length-1){if(o)return this.value=o,this;break}i==n&&ethis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,i=n+t[0].length;if(this.matchPos=et(this.text,i+(n==i?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(nthis.value.to)&&(!this.test||this.test(n,i,t)))return this.value={from:n,to:i,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=n||i.to<=t){let i=new Qe(t,e.sliceString(t,n));return Xe.set(e,i),i}if(i.from==t&&i.to==n)return i;let{text:s,from:r}=i;return r>t&&(s=e.sliceString(t,r)+s,r=t),i.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=et(this.text,n+(e==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Qe.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function et(e,t){if(t>=e.length)return t;let n,i=e.lineAt(t);for(;t=56320&&n<57344;)t++;return t}"undefined"!=typeof Symbol&&(Ye.prototype[Symbol.iterator]=Ze.prototype[Symbol.iterator]=function(){return this});const tt=i.sj.define({combine:e=>(0,i.QR)(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Et(e),scrollToMatch:e=>s.Lz.scrollIntoView(e)})});class nt{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,Je),!0}catch(e){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new ht(this):new rt(this)}getCursor(e,t=0,n){let s=e.doc?e:i.$t.create({doc:e});return null==n&&(n=s.doc.length),this.regexp?ot(this,s,t,n):st(this,s,t,n)}}class it{constructor(e){this.spec=e}}function st(e,t,n,s){return new Ue(t.doc,e.unquoted,n,s,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?(r=t.doc,o=t.charCategorizer(t.selection.main.head),(e,t,n,s)=>((s>e||s+n.length=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=st(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}}function ot(e,t,n,s){return new Ye(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?(r=t.charCategorizer(t.selection.main.head),(e,t,n)=>!n[0].length||(r(at(n.input,n.index))!=i.Je.Word||r(lt(n.input,n.index))!=i.Je.Word)&&(r(lt(n.input,n.index+n[0].length))!=i.Je.Word||r(at(n.input,n.index+n[0].length))!=i.Je.Word)):void 0},n,s);var r}function at(e,t){return e.slice((0,i.zK)(e,t,!1),t)}function lt(e,t){return e.slice(t,(0,i.zK)(e,t))}class ht extends it{nextMatch(e,t,n){let i=ot(this.spec,e,n,e.doc.length).next();return i.done&&(i=ot(this.spec,e,0,t).next()),i.done?null:i.value}prevMatchInRange(e,t,n){for(let i=1;;i++){let s=Math.max(t,n-1e4*i),r=ot(this.spec,e,s,n),o=null;for(;!r.next().done;)o=r.value;if(o&&(s==t||o.from>s+10))return o;if(s==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((t,n)=>"$"==n?"$":"&"==n?e.match[0]:"0"!=n&&+n=t)return null;i.push(n.value)}return i}highlight(e,t,n,i){let s=ot(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!s.next().done;)i(s.value.from,s.value.to)}}const ct=i.Pe.define(),ut=i.Pe.define(),ft=i.sU.define({create:e=>new dt(At(e).create(),null),update(e,t){for(let n of t.effects)n.is(ct)?e=new dt(n.value.create(),e.panel):n.is(ut)&&(e=new dt(e.query,n.value?Ct:null));return e},provide:e=>s.S7.from(e,(e=>e.panel))});class dt{constructor(e,t){this.query=e,this.panel=t}}const pt=s.NZ.mark({class:"cm-searchMatch"}),mt=s.NZ.mark({class:"cm-searchMatch cm-searchMatch-selected"}),gt=s.Z9.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(ft))}update(e){let t=e.state.field(ft);(t!=e.startState.field(ft)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight({query:e,panel:t}){if(!t||!e.spec.valid)return s.NZ.none;let{view:n}=this,r=new i.vB;for(let t=0,i=n.visibleRanges,s=i.length;ti[t+1].from-500;)a=i[++t].to;e.highlight(n.state,o,a,((e,t)=>{let i=n.state.selection.ranges.some((n=>n.from==e&&n.to==t));r.add(e,t,i?mt:pt)}))}return r.finish()}},{decorations:e=>e.decorations});function bt(e){return t=>{let n=t.state.field(ft,!1);return n&&n.query.spec.valid?e(t,n):_t(t)}}const yt=bt(((e,{query:t})=>{let{to:n}=e.state.selection.main,s=t.nextMatch(e.state,n,n);if(!s)return!1;let r=i.OF.single(s.from,s.to),o=e.state.facet(tt);return e.dispatch({selection:r,effects:[Rt(e,s),o.scrollToMatch(r.main,e)],userEvent:"select.search"}),Mt(e),!0})),vt=bt(((e,{query:t})=>{let{state:n}=e,{from:s}=n.selection.main,r=t.prevMatch(n,s,s);if(!r)return!1;let o=i.OF.single(r.from,r.to),a=e.state.facet(tt);return e.dispatch({selection:o,effects:[Rt(e,r),a.scrollToMatch(o.main,e)],userEvent:"select.search"}),Mt(e),!0})),xt=bt(((e,{query:t})=>{let n=t.matchAll(e.state,1e3);return!(!n||!n.length||(e.dispatch({selection:i.OF.create(n.map((e=>i.OF.range(e.from,e.to)))),userEvent:"select.search.matches"}),0))})),wt=({state:e,dispatch:t})=>{let n=e.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:s,to:r}=n.main,o=[],a=0;for(let t=new Ue(e.doc,e.sliceDoc(s,r));!t.next().done;){if(o.length>1e3)return!1;t.value.from==s&&(a=o.length),o.push(i.OF.range(t.value.from,t.value.to))}return t(e.update({selection:i.OF.create(o,a),userEvent:"select.search.matches"})),!0},kt=bt(((e,{query:t})=>{let{state:n}=e,{from:r,to:o}=n.selection.main;if(n.readOnly)return!1;let a=t.nextMatch(n,r,r);if(!a)return!1;let l,h,c=[],u=[];if(a.from==r&&a.to==o&&(h=n.toText(t.getReplacement(a)),c.push({from:a.from,to:a.to,insert:h}),a=t.nextMatch(n,a.from,a.to),u.push(s.Lz.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(r).number)+"."))),a){let t=0==c.length||c[0].from>=a.to?0:a.to-a.from-h.length;l=i.OF.single(a.from-t,a.to-t),u.push(Rt(e,a)),u.push(n.facet(tt).scrollToMatch(l.main,e))}return e.dispatch({changes:c,selection:l,effects:u,userEvent:"input.replace"}),!0})),St=bt(((e,{query:t})=>{if(e.state.readOnly)return!1;let n=t.matchAll(e.state,1e9).map((e=>{let{from:n,to:i}=e;return{from:n,to:i,insert:t.getReplacement(e)}}));if(!n.length)return!1;let i=e.state.phrase("replaced $ matches",n.length)+".";return e.dispatch({changes:n,effects:s.Lz.announce.of(i),userEvent:"input.replace.all"}),!0}));function Ct(e){return e.state.facet(tt).createPanel(e)}function At(e,t){var n,i,s,r,o;let a=e.selection.main,l=a.empty||a.to>a.from+100?"":e.sliceDoc(a.from,a.to);if(t&&!l)return t;let h=e.facet(tt);return new nt({search:(null!==(n=null==t?void 0:t.literal)&&void 0!==n?n:h.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(i=null==t?void 0:t.caseSensitive)&&void 0!==i?i:h.caseSensitive,literal:null!==(s=null==t?void 0:t.literal)&&void 0!==s?s:h.literal,regexp:null!==(r=null==t?void 0:t.regexp)&&void 0!==r?r:h.regexp,wholeWord:null!==(o=null==t?void 0:t.wholeWord)&&void 0!==o?o:h.wholeWord})}function Ot(e){let t=(0,s.ld)(e,Ct);return t&&t.dom.querySelector("[main-field]")}function Mt(e){let t=Ot(e);t&&t==e.root.activeElement&&t.select()}const _t=e=>{let t=e.state.field(ft,!1);if(t&&t.panel){let n=Ot(e);if(n&&n!=e.root.activeElement){let i=At(e.state,t.query.spec);i.valid&&e.dispatch({effects:ct.of(i)}),n.focus(),n.select()}}else e.dispatch({effects:[ut.of(!0),t?ct.of(At(e.state,t.query.spec)):i.Pe.appendConfig.of(Lt)]});return!0},Tt=e=>{let t=e.state.field(ft,!1);if(!t||!t.panel)return!1;let n=(0,s.ld)(e,Ct);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:ut.of(!1)}),!0};class Et{constructor(e){this.view=e;let t=this.query=e.state.field(ft).query.spec;function n(e,t,n){return Ve("button",{class:"cm-button",name:e,onclick:t,type:"button"},n)}this.commit=this.commit.bind(this),this.searchField=Ve("input",{value:t.search,placeholder:Nt(e,"Find"),"aria-label":Nt(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=Ve("input",{value:t.replace,placeholder:Nt(e,"Replace"),"aria-label":Nt(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=Ve("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=Ve("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=Ve("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=Ve("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,n("next",(()=>yt(e)),[Nt(e,"next")]),n("prev",(()=>vt(e)),[Nt(e,"previous")]),n("select",(()=>xt(e)),[Nt(e,"all")]),Ve("label",null,[this.caseField,Nt(e,"match case")]),Ve("label",null,[this.reField,Nt(e,"regexp")]),Ve("label",null,[this.wordField,Nt(e,"by word")]),...e.state.readOnly?[]:[Ve("br"),this.replaceField,n("replace",(()=>kt(e)),[Nt(e,"replace")]),n("replaceAll",(()=>St(e)),[Nt(e,"replace all")])],Ve("button",{name:"close",onclick:()=>Tt(e),"aria-label":Nt(e,"close"),type:"button"},["×"])])}commit(){let e=new nt({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:ct.of(e)}))}keydown(e){(0,s.TS)(this.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?vt:yt)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),kt(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(ct)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(tt).top}}function Nt(e,t){return e.state.phrase(t)}const Dt=30,Pt=/[\s\.,:;?!]/;function Rt(e,{from:t,to:n}){let i=e.state.doc.lineAt(t),r=e.state.doc.lineAt(n).to,o=Math.max(i.from,t-Dt),a=Math.min(r,n+Dt),l=e.state.sliceDoc(o,a);if(o!=i.from)for(let e=0;el.length-Dt;e--)if(!Pt.test(l[e-1])&&Pt.test(l[e])){l=l.slice(0,e);break}return s.Lz.announce.of(`${e.state.phrase("current match")}. ${l} ${e.state.phrase("on line")} ${i.number}.`)}const jt=s.Lz.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Lt=[ft,i.Nb.low(gt),jt];class Bt{constructor({baseConfiguration:e,config:t,defaultExtensions:n}={}){this._configChanged=new Me.Signal(this),this._disposed=new Me.Signal(this),this._isDisposed=!1,this._immutables=new Set,this._baseConfig=null!=e?e:{},this._config=null!=t?t:{},this._configurableBuilderMap=new Map(n);const i=Object.keys(this._config).concat(Object.keys(this._baseConfig));this._immutables=new Set([...this._configurableBuilderMap.keys()].filter((e=>!i.includes(e))))}get configChanged(){return this._configChanged}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(),Me.Signal.clearData(this))}getOption(e){var t;return null!==(t=this._config[e])&&void 0!==t?t:this._baseConfig[e]}hasOption(e){return Object.keys(this._config).includes(e)||Object.keys(this._baseConfig).includes(e)}setOption(e,t){this._config[e]!==t&&(this._config[e]=t,this._configChanged.emit({[e]:t}))}setBaseOptions(e){const t=this._getChangedOptions(e,this._baseConfig);if(t.length>0){this._baseConfig=e;const n=Object.keys(this._config),i=t.filter((e=>!n.includes(e)));i.length>0&&this._configChanged.emit(i.reduce(((e,t)=>(e[t]=this._baseConfig[t],e)),{}))}}setOptions(e){const t=this._getChangedOptions(e,this._config);t.length>0&&(this._config={...e},this._configChanged.emit(t.reduce(((e,t)=>{var n;return e[t]=null!==(n=this._config[t])&&void 0!==n?n:this._baseConfig[t],e}),{})))}reconfigureExtension(e,t,n){const i=this.getEffect(e.state,t,n);i&&e.dispatch({effects:[i]})}reconfigureExtensions(e,t){const n=Object.keys(t).filter((e=>this.has(e))).map((n=>this.getEffect(e.state,n,t[n])));e.dispatch({effects:n.filter((e=>null!==e))})}injectExtension(e,t){e.dispatch({effects:i.Pe.appendConfig.of(t)})}getInitialExtensions(){const e={...this._baseConfig,...this._config},t=[...this._immutables].map((e=>{var t;return null===(t=this.get(e))||void 0===t?void 0:t.instance(void 0)})).filter((e=>e));for(const n of Object.keys(e)){const i=this.get(n);if(i){const s=e[n];t.push(i.instance(s))}}return t}get(e){return this._configurableBuilderMap.get(e)}has(e){return this._configurableBuilderMap.has(e)}getEffect(e,t,n){var i;const s=this.get(t);return null!==(i=null==s?void 0:s.reconfigure(n))&&void 0!==i?i:null}_getChangedOptions(e,t){const n=new Array,i=new Array;for(const[s,r]of Object.entries(e))i.push(s),t[s]!==r&&n.push(s);return n.push(...Object.keys(t).filter((e=>!i.includes(e)))),n}}class It{constructor(){this.configurationBuilder=new Map,this.configurationSchema={},this.defaultOptions={},this.handlers=new Set,this.immutableExtensions=new Set,this._baseConfiguration={}}get baseConfiguration(){return{...this.defaultOptions,...this._baseConfiguration}}set baseConfiguration(e){if(!Ce.JSONExt.deepEqual(e,this._baseConfiguration)){this._baseConfiguration=e;for(const e of this.handlers)e.setBaseOptions(this.baseConfiguration)}}get defaultConfiguration(){return Object.freeze({...this.defaultOptions})}get settingsSchema(){return Object.freeze(Ce.JSONExt.deepCopy(this.configurationSchema))}addExtension(e){var t;if(this.configurationBuilder.has(e.name))throw new Error(`Extension named ${e.name} is already registered.`);this.configurationBuilder.set(e.name,e),void 0!==e.default&&(this.defaultOptions[e.name]=e.default),e.schema&&(this.configurationSchema[e.name]={default:null!==(t=e.default)&&void 0!==t?t:null,...e.schema},this.defaultOptions[e.name]=this.configurationSchema[e.name].default)}createNew(e){const t=new Array;for(const[n,i]of this.configurationBuilder.entries()){const s=i.factory(e);s&&t.push([n,s])}const n=new Bt({baseConfiguration:this.baseConfiguration,config:e.config,defaultExtensions:t});return this.handlers.add(n),n.disposed.connect((()=>{this.handlers.delete(n)})),n}}var Ft;!function(e){class t{constructor(e){this._compartment=new i.xx,this._builder=e}instance(e){return this._compartment.of(this._builder(e))}reconfigure(e){return this._compartment.reconfigure(this._builder(e))}}class n{constructor(e){this._extension=e}instance(){return this._extension}reconfigure(){return null}}function o(e){return new t(e)}function a(e,n=[]){return new t((t=>t?e:n))}function l(e){return new n(e)}e.createConfigurableExtension=o,e.createConditionalExtension=a,e.createImmutableExtension=l,e.getDefaultExtensions=function(e={}){const{themes:t,translator:n}=e,h=(null!=n?n:Te.wK).load("jupyterlab"),c=[Object.freeze({name:"autoClosingBrackets",default:!1,factory:()=>a((0,_e.wm)()),schema:{type:"boolean",title:h.__("Auto Closing Brackets")}}),Object.freeze({name:"codeFolding",default:!1,factory:()=>a((0,r.Lv)()),schema:{type:"boolean",title:h.__("Code Folding")}}),Object.freeze({name:"cursorBlinkRate",default:1200,factory:()=>o((e=>(0,s.VH)({cursorBlinkRate:e}))),schema:{type:"number",title:h.__("Cursor blinking rate"),description:h.__("Half-period in milliseconds used for cursor blinking. The default blink rate is 1200ms. By setting this to zero, blinking can be disabled.")}}),Object.freeze({name:"highlightActiveLine",default:!1,factory:()=>a((0,s.dz)()),schema:{type:"boolean",title:h.__("Highlight the active line")}}),Object.freeze({name:"highlightSpecialCharacters",default:!0,factory:()=>a((0,s.N$)()),schema:{type:"boolean",title:h.__("Highlight special characters")}}),Object.freeze({name:"highlightTrailingWhitespace",default:!1,factory:()=>a((0,s.wu)()),schema:{type:"boolean",title:h.__("Highlight trailing white spaces")}}),Object.freeze({name:"highlightWhitespace",default:!1,factory:()=>a((0,s.Yq)()),schema:{type:"boolean",title:h.__("Highlight white spaces")}}),Object.freeze({name:"indentUnit",default:"4",factory:()=>o((e=>"Tab"==e?r.Xt.of("\t"):r.Xt.of(" ".repeat(parseInt(e,10))))),schema:{type:"string",title:h.__("Indentation unit"),description:h.__("The indentation is a `Tab` or the number of spaces. This defaults to 4 spaces."),enum:["Tab","1","2","4","8"]}}),Object.freeze({name:"keymap",default:[{key:"Mod-Enter",run:Oe.insertBlankLineOnRun},{key:"Enter",run:Oe.completerOrInsertNewLine},{key:"Escape",run:Oe.simplifySelectionAndMaybeSwitchToCommandMode},...Se.filter((e=>!["Mod-Enter","Shift-Mod-k","Mod-/","Alt-A","Escape","Enter"].includes(e.key))),{key:"Tab",run:Oe.indentMoreOrInsertTab,shift:Oe.dedentIfNotLaunchingTooltip}],factory:()=>o((e=>s.w4.of(e)))}),Object.freeze({name:"lineNumbers",default:!0,factory:()=>a((0,s.$K)()),schema:{type:"boolean",title:h.__("Line Numbers")}}),Object.freeze({name:"lineWrap",factory:()=>a(s.Lz.lineWrapping),default:!0,schema:{type:"boolean",title:h.__("Line Wrap")}}),Object.freeze({name:"matchBrackets",default:!0,factory:()=>a([(0,r.SG)(),i.Nb.high(s.w4.of(_e.Bc))]),schema:{type:"boolean",title:h.__("Match Brackets")}}),Object.freeze({name:"rectangularSelection",default:!0,factory:()=>a([(0,s.D4)(),(0,s.HJ)()]),schema:{type:"boolean",title:h.__("Rectangular selection"),description:h.__("Rectangular (block) selection can be created by dragging the mouse pointer while holding the left mouse button and the Alt key. When the Alt key is pressed, a crosshair cursor will appear, indicating that the rectangular selection mode is active.")}}),Object.freeze({name:"readOnly",default:!1,factory:()=>o((e=>[i.$t.readOnly.of(e),e?s.Lz.editorAttributes.of({class:"jp-mod-readOnly"}):[]]))}),Object.freeze({name:"rulers",default:[],factory:()=>o((e=>e.length>0?function(e){return[Fe,$e.of(e),ze]}(e):[])),schema:{type:"array",title:h.__("Rulers"),items:{type:"number",minimum:0}}}),Object.freeze({name:"extendSelection",default:!0,factory:()=>a(s.w4.of([{key:"Mod-Shift-l",run:wt,preventDefault:!0}]))}),Object.freeze({name:"searchWithCM",default:!1,factory:()=>a(s.w4.of([{key:"Mod-f",run:_t,scope:"editor search-panel"},{key:"F3",run:yt,shift:vt,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:yt,shift:vt,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:Tt,scope:"editor search-panel"}]))}),Object.freeze({name:"scrollPastEnd",default:!1,factory:e=>e.inline?null:a((0,s.BE)())}),Object.freeze({name:"smartIndent",default:!0,factory:()=>a((0,r.WD)()),schema:{type:"boolean",title:h.__("Smart Indentation")}}),Object.freeze({name:"tabFocusable",default:!0,factory:()=>a(s.Lz.contentAttributes.of({tabIndex:"0"}),s.Lz.contentAttributes.of({tabIndex:"-1"}))}),Object.freeze({name:"tabSize",default:4,factory:()=>o((e=>i.$t.tabSize.of(e))),schema:{type:"number",title:h.__("Tab size")}}),Object.freeze({name:"tooltips",factory:()=>l((0,s.vX)({position:"absolute",parent:document.body}))}),Object.freeze({name:"allowMultipleSelections",default:!0,factory:()=>o((e=>i.$t.allowMultipleSelections.of(e))),schema:{type:"boolean",title:h.__("Multiple selections")}}),Object.freeze({name:"customStyles",factory:()=>o((e=>function(e){return[Ee.of(e),s.Lz.editorAttributes.of(Ne)]}(e))),default:{fontFamily:null,fontSize:null,lineHeight:null},schema:{title:h.__("Custom editor styles"),type:"object",properties:{fontFamily:{type:["string","null"],title:h.__("Font Family")},fontSize:{type:["number","null"],minimum:1,maximum:100,title:h.__("Font Size")},lineHeight:{type:["number","null"],title:h.__("Line Height")}},additionalProperties:!1}})];return t&&c.push(Object.freeze({name:"theme",default:"jupyter",factory:()=>o((e=>t.getTheme(e))),schema:{type:"string",title:h.__("Theme"),description:h.__("CodeMirror theme")}})),n&&c.push(Object.freeze({name:"translation",default:{"Control character":h.__("Control character"),"Selection deleted":h.__("Selection deleted"),"Folded lines":h.__("Folded lines"),"Unfolded lines":h.__("Unfolded lines"),to:h.__("to"),"folded code":h.__("folded code"),unfold:h.__("unfold"),"Fold line":h.__("Fold line"),"Unfold line":h.__("Unfold line"),"Go to line":h.__("Go to line"),go:h.__("go"),Find:h.__("Find"),Replace:h.__("Replace"),next:h.__("next"),previous:h.__("previous"),all:h.__("all"),"match case":h.__("match case"),replace:h.__("replace"),"replace all":h.__("replace all"),close:h.__("close"),"current match":h.__("current match"),"replaced $ matches":h.__("replaced $ matches"),"replaced match on line $":h.__("replaced match on line $"),"on line":h.__("on line"),Completions:h.__("Completions"),Diagnostics:h.__("Diagnostics"),"No diagnostics":h.__("No diagnostics")},factory:()=>o((e=>i.$t.phrases.of(e)))})),c}}(It||(It={})),(Ft||(Ft={})).defaultMimeType="text/plain";var $t=n(88925),zt=n(73643);class Ht{constructor(e){this.start=e}}class qt extends Ht{constructor(e,t,n,i,s,r,o,a,l,h,c,u,f,d,p){super(e),this.rules=t,this.topRules=n,this.tokens=i,this.localTokens=s,this.context=r,this.externalTokens=o,this.externalSpecializers=a,this.externalPropSources=l,this.precedences=h,this.mainSkip=c,this.scopedSkip=u,this.dialects=f,this.externalProps=d,this.autoDelim=p}toString(){return Object.values(this.rules).join("\n")}}class Vt extends Ht{constructor(e,t,n,i,s){super(e),this.id=t,this.props=n,this.params=i,this.expr=s}toString(){return this.id.name+(this.params.length?`<${this.params.join()}>`:"")+" -> "+this.expr}}class Wt extends Ht{constructor(e,t){super(e),this.items=t}}class Gt extends Ht{constructor(e,t){super(e),this.items=t}}class Ut extends Ht{constructor(e,t,n){super(e),this.a=t,this.b=n}}class Kt extends Ht{constructor(e,t,n,i,s){super(e),this.precedences=t,this.conflicts=n,this.rules=i,this.literals=s}}class Jt extends Ht{constructor(e,t,n,i){super(e),this.precedences=t,this.rules=n,this.fallback=i}}class Yt extends Ht{constructor(e,t,n){super(e),this.literal=t,this.props=n}}class Xt extends Ht{constructor(e,t,n){super(e),this.id=t,this.source=n}}class Qt extends Ht{constructor(e,t,n,i){super(e),this.id=t,this.source=n,this.tokens=i}}class Zt extends Ht{constructor(e,t,n,i,s,r){super(e),this.type=t,this.token=n,this.id=i,this.source=s,this.tokens=r}}class en extends Ht{constructor(e,t,n){super(e),this.id=t,this.source=n}}class tn extends Ht{constructor(e,t,n,i){super(e),this.id=t,this.externalID=n,this.source=i}}class nn extends Ht{constructor(e,t){super(e),this.name=t}toString(){return this.name}}class sn extends Ht{walk(e){return e(this)}eq(e){return!1}}sn.prototype.prec=10;class rn extends sn{constructor(e,t,n){super(e),this.id=t,this.args=n}toString(){return this.id.name+(this.args.length?`<${this.args.join()}>`:"")}eq(e){return this.id.name==e.id.name&&vn(this.args,e.args)}walk(e){let t=mn(this.args,e);return e(t==this.args?this:new rn(this.start,this.id,t))}}class on extends sn{constructor(e,t,n,i,s){super(e),this.type=t,this.props=n,this.token=i,this.content=s}toString(){return`@${this.type}[${this.props.join(",")}]<${this.token}, ${this.content}>`}eq(e){return this.type==e.type&&xn.eqProps(this.props,e.props)&&yn(this.token,e.token)&&yn(this.content,e.content)}walk(e){let t=this.token.walk(e),n=this.content.walk(e);return e(t==this.token&&n==this.content?this:new on(this.start,this.type,this.props,t,n))}}class an extends sn{constructor(e,t){super(e),this.rule=t}toString(){let e=this.rule;return`${e.id}${e.props.length?`[${e.props.join(",")}]`:""} { ${e.expr} }`}eq(e){let t=this.rule,n=e.rule;return yn(t.expr,n.expr)&&t.id.name==n.id.name&&xn.eqProps(t.props,n.props)}walk(e){let t=this.rule,n=t.expr.walk(e);return e(n==t.expr?this:new an(this.start,new Vt(t.start,t.id,t.props,[],n)))}}class ln extends sn{constructor(e,t){super(e),this.exprs=t}toString(){return this.exprs.map((e=>kn(e,this))).join(" | ")}eq(e){return vn(this.exprs,e.exprs)}walk(e){let t=mn(this.exprs,e);return e(t==this.exprs?this:new ln(this.start,t))}}ln.prototype.prec=1;class hn extends sn{constructor(e,t,n,i=!1){super(e),this.exprs=t,this.markers=n,this.empty=i}toString(){return this.empty?"()":this.exprs.map((e=>kn(e,this))).join(" ")}eq(e){return vn(this.exprs,e.exprs)&&this.markers.every(((t,n)=>{let i=e.markers[n];return t.length==i.length&&t.every(((e,t)=>e.eq(i[t])))}))}walk(e){let t=mn(this.exprs,e);return e(t==this.exprs?this:new hn(this.start,t,this.markers,this.empty&&!t.length))}}hn.prototype.prec=2;class cn extends Ht{constructor(e,t,n){super(e),this.id=t,this.type=n}toString(){return("ambig"==this.type?"~":"!")+this.id.name}eq(e){return this.id.name==e.id.name&&this.type==e.type}}class un extends sn{constructor(e,t,n){super(e),this.expr=t,this.kind=n}toString(){return kn(this.expr,this)+this.kind}eq(e){return yn(this.expr,e.expr)&&this.kind==e.kind}walk(e){let t=this.expr.walk(e);return e(t==this.expr?this:new un(this.start,t,this.kind))}}un.prototype.prec=3;class fn extends sn{constructor(e,t){super(e),this.value=t}toString(){return JSON.stringify(this.value)}eq(e){return this.value==e.value}}class dn extends sn{constructor(e,t,n){super(e),this.ranges=t,this.inverted=n}toString(){return`[${this.inverted?"^":""}${this.ranges.map((([e,t])=>String.fromCodePoint(e)+(t==e+1?"":"-"+String.fromCodePoint(t))))}]`}eq(e){return this.inverted==e.inverted&&this.ranges.length==e.ranges.length&&this.ranges.every((([t,n],i)=>{let[s,r]=e.ranges[i];return t==s&&n==r}))}}class pn extends sn{constructor(e){super(e)}toString(){return"_"}eq(){return!0}}function mn(e,t){let n=null;for(let i=0;iyn(e,t[n])))}class xn extends Ht{constructor(e,t,n,i){super(e),this.at=t,this.name=n,this.value=i}eq(e){return this.name==e.name&&this.value.length==e.value.length&&this.value.every(((t,n)=>t.value==e.value[n].value&&t.name==e.value[n].name))}toString(){let e=(this.at?"@":"")+this.name;if(this.value.length){e+="=";for(let{name:t,value:n}of this.value)e+=t?`{${t}}`:/[^\w-]/.test(n)?JSON.stringify(n):n}return e}static eqProps(e,t){return e.length==t.length&&e.every(((e,n)=>e.eq(t[n])))}}class wn extends Ht{constructor(e,t,n){super(e),this.value=t,this.name=n}}function kn(e,t){return e.prec0}get eof(){return(4&this.flags)>0}get error(){return"error"in this.props}get top(){return(2&this.flags)>0}get interesting(){return this.flags>0||null!=this.nodeName}get repeated(){return(16&this.flags)>0}set preserve(e){this.flags=e?8|this.flags:-9&this.flags}get preserve(){return(8&this.flags)>0}set inline(e){this.flags=e?32|this.flags:-33&this.flags}get inline(){return(32&this.flags)>0}cmp(e){return this.hash-e.hash}}class Mn{constructor(){this.terms=[],this.names=Object.create(null),this.tops=[],this.eof=this.term("␄",null,5),this.error=this.term("⚠","⚠",8)}term(e,t,n=0,i={}){let s=new On(e,n,t,i);return this.terms.push(s),this.names[e]=s,s}makeTop(e,t){const n=this.term("@top",e,2,t);return this.tops.push(n),n}makeTerminal(e,t,n={}){return this.term(e,t,1,n)}makeNonTerminal(e,t,n={}){return this.term(e,t,0,n)}makeRepeat(e){return this.term(e,null,16)}uniqueName(e){for(let t=0;;t++){let n=t?`${e}-${t}`:e;if(!this.names[n])return n}}finish(e){for(let t of e)t.name.rules.push(t);this.terms=this.terms.filter((t=>t.terminal||t.preserve||e.some((e=>e.name==t||e.parts.includes(t)))));let t={},n=[this.error];this.error.id=0;let i=1;for(let e of this.terms)e.id<0&&e.nodeType&&!e.repeated&&(e.id=i++,n.push(e));let s=i;for(let e of this.terms)e.repeated&&(e.id=i++,n.push(e));this.eof.id=i++;for(let e of this.terms)e.id<0&&(e.id=i++),e.name&&(t[e.id]=e.name);if(i>=65534)throw new Sn("Too many terms");return{nodeTypes:n,names:t,minRepeatTerm:s,maxTerm:i-1}}}function _n(e,t,n){if(e.length!=t.length)return e.length-t.length;for(let i=0;iet?1:0))||this.cut-e.cut}}function Nn(e,t){if(0==e.length||e==t)return t;if(0==t.length)return e;let n=e.slice();for(let i of t)e.includes(i)||n.push(i);return n.sort()}En.none=new En(0);let Dn=0;class Pn{constructor(e,t,n,i){this.name=e,this.parts=t,this.conflicts=n,this.skip=i,this.id=Dn++}cmp(e){return this.id-e.id}cmpNoName(e){return this.parts.length-e.parts.length||this.skip.hash-e.skip.hash||this.parts.reduce(((t,n,i)=>t||n.cmp(e.parts[i])),0)||_n(this.conflicts,e.conflicts,((e,t)=>e.cmp(t)))}toString(){return this.name+" -> "+this.parts.join(" ")}get isRepeatWrap(){return this.name.repeated&&2==this.parts.length&&this.parts[0]==this.name}sameReduce(e){return this.name==e.name&&this.parts.length==e.parts.length&&this.isRepeatWrap==e.isRepeatWrap}}class Rn{constructor(e,t,n){this.from=e,this.to=t,this.target=n}toString(){return`-> ${this.target.id}[label=${JSON.stringify(this.from<0?"ε":jn(this.from)+(this.to>this.from+1?"-"+jn(this.to-1):""))}]`}}function jn(e){return e>65535?"∞":10==e?"\\n":13==e?"\\r":e<32||e>=55296&&e<57343?"\\u{"+e.toString(16)+"}":String.fromCharCode(e)}function Ln(e,t,n){if(e.edges.length!=t.edges.length)return!1;for(let i=0;iNn(e,t.accepting)),[]),n++),o=[];for(let e of s)for(let t of e.edges)t.from>=0&&o.push(t);let a=function(e){let t=[],n=[];for(let n of e)t.includes(n.from)||t.push(n.from),t.includes(n.to)||t.push(n.to);t.sort(((e,t)=>e-t));for(let i=1;is&&t.from65535==e.from&&65535==e.to));if(i.length){let e=[];for(let t of i)for(let n of t.target.closure())e.includes(n)||e.push(n);e.length&&n.push(new qn(65535,65535,e))}return n}(o);for(let e of a){let n=e.targets.sort(((e,t)=>e.id-t.id));r.edge(e.from,e.to,t[Hn(n)]||i(n))}return r}(this.closure().sort(((e,t)=>e.id-t.id)));return function(e,t){let n=Object.create(null),i=Object.create(null);for(let t of e){let e=Hn(t.accepting),s=i[e]||(i[e]=[]);s.push(t),n[t.id]=s}for(;;){let i=!1,s=Object.create(null);for(let t of e){if(s[t.id])continue;let e=n[t.id];if(1==e.length){s[e[0].id]=e;continue}let r=[];e:for(let t of e){for(let e of r)if(Ln(t,e[0],n)){e.push(t);continue e}r.push([t])}r.length>1&&(i=!0);for(let e of r)for(let t of e)s[t.id]=e}if(!i)return Bn(e,t,n);n=s}}(Object.values(t),i)}closure(){let e=[],t=Object.create(null);return function n(i){if(!t[i.id]){t[i.id]=!0,(i.edges.some((e=>e.from>=0))||i.accepting.length>0&&!i.edges.some((e=>function(e,t){if(e.length!=t.length)return!1;for(let n=0;nt.a==e&&t.b==n));o?o.soft!=i&&(o.soft=0):t.push(new $n(e,n,i,zn(s),r&&zn(r)))}return this.reachable(((t,s)=>{if(0!=t.accepting.length){for(let e=0;e{if(r!=t)for(let a of r.accepting){let r=n.includes(a);for(let l of t.accepting)a!=l&&i(a,l,r||n.includes(l)||!e(a,l)?0:1,s,s.concat(o))}}))}})),t}cycleTerms(){let e=[];this.reachable((t=>{for(let{target:n}of t.edges)e.push(t,n)}));let t=new Map,n=[];for(let i=0;i{t.accepting.length&&(e+=` ${t.id} [label=${JSON.stringify(t.accepting.join())}];\n`);for(let n of t.edges)e+=` ${t.id} ${n};\n`})),e+"}"}toArray(e,t){let n=[],i=[];this.reachable((s=>{let r=i.length,o=r+3+2*s.accepting.length;n[s.id]=r,i.push(s.stateMask(e),o,s.edges.length),s.accepting.sort(((e,n)=>t.indexOf(e.id)-t.indexOf(n.id)));for(let t of s.accepting)i.push(t.id,e[t.id]||65535);for(let e of s.edges)i.push(e.from,e.to,-e.target.id-1)}));for(let e=0;eMath.pow(2,16))throw new Sn("Tokenizer tables too big to represent with 16-bit offsets.");return Uint16Array.from(i)}stateMask(e){let t=0;return this.reachable((n=>{for(let i of n.accepting)t|=e[i.id]||65535})),t}},$n=class{constructor(e,t,n,i,s){this.a=e,this.b=t,this.soft=n,this.exampleA=i,this.exampleB=s}};function zn(e){let t="";for(let n=0;n-1&&i-1){let e=this.lineInfo(t);n+=(n?" ":"")+e.line+":"+e.ch}return n?e+` (${n})`:e}raise(e,t=-1){throw new Sn(this.message(e,t))}match(e,t){let n=t.exec(this.string.slice(e));return n?e+n[0].length:-1}next(){let e=this.match(this.end,/^(\s|\/\/.*|\/\*[^]*?\*\/)*/);if(e==this.string.length)return this.set("eof",null,e,e);let t=this.string[e];if('"'==t){let t=this.match(e+1,/^(\\.|[^"\\])*"/);return-1==t&&this.raise("Unterminated string literal",e),this.set("string",mi(this.string.slice(e+1,t-1)),e,t)}if("'"==t){let t=this.match(e+1,/^(\\.|[^'\\])*'/);return-1==t&&this.raise("Unterminated string literal",e),this.set("string",mi(this.string.slice(e+1,t-1)),e,t)}if("@"==t){Vn.lastIndex=e+1;let t=Vn.exec(this.string);return t?this.set("at",t[0],e,e+1+t[0].length):this.raise("@ without a name",e)}if("$"!=t&&"!"!=t||"["!=this.string[e+1]){if(/[\[\]()!~+*?{}<>\.,|:$=]/.test(t))return this.set(t,null,e,e+1);{Vn.lastIndex=e;let n=Vn.exec(this.string);return n?this.set("id",n[0],e,e+n[0].length):this.raise("Unexpected character "+JSON.stringify(t),e)}}{let t=this.match(e+2,/^(?:\\.|[^\]\\])*\]/);return-1==t&&this.raise("Unterminated character set",e),this.set("set",this.string.slice(e+2,t-1),e,t)}}set(e,t,n,i){this.type=e,this.value=t,this.start=n,this.end=i}eat(e,t=null){return this.type==e&&(null==t||this.value===t)&&(this.next(),!0)}unexpected(){return this.raise(`Unexpected token '${this.string.slice(this.start,this.end)}'`,this.start)}expect(e,t=null){let n=this.value;return(this.type!=e||null!=t&&n!==t)&&this.unexpected(),this.next(),n}parse(){return function(e){let t=e.start,n=[],i=null,s=null,r=[],o=null,a=[],l=[],h=null,c=[],u=[],f=[],d=[],p=[],m=!1,g=!1;for(;"eof"!=e.type;){let t=e.start;if(e.eat("at","top"))"id"!=e.type&&e.raise("Top rules must have a name",e.start),p.push(Un(e,si(e))),m=!0;else if("at"==e.type&&"tokens"==e.value)s?e.raise("Multiple @tokens declaractions",e.start):s=oi(e);else if(e.eat("at","local"))e.expect("id","tokens"),r.push(ai(e,t));else if(e.eat("at","context")){h&&e.raise("Multiple @context declarations",t);let n=si(e);e.expect("id","from");let i=e.expect("string");h=new Xt(t,n,i)}else if(e.eat("at","external"))e.eat("id","tokens")?c.push(ui(e,t)):e.eat("id","prop")?f.push(pi(e,t)):e.eat("id","extend")?u.push(fi(e,"extend",t)):e.eat("id","specialize")?u.push(fi(e,"specialize",t)):e.eat("id","propSource")?d.push(di(e,t)):e.unexpected();else if(e.eat("at","dialects")){e.expect("{");for(let t=!0;!e.eat("}");t=!1)t||e.eat(","),l.push(si(e))}else if("at"==e.type&&"precedence"==e.value)i&&e.raise("Multiple precedence declarations",e.start),i=ri(e);else if(e.eat("at","detectDelim"))g=!0;else if(e.eat("at","skip")){let t=Yn(e);if("{"==e.type){e.next();let n=[],i=[];for(;!e.eat("}");)e.eat("at","top")?(i.push(Un(e,si(e))),m=!0):n.push(Un(e));a.push({expr:t,topRules:i,rules:n})}else o&&e.raise("Multiple top-level skip declarations",e.start),o=t}else n.push(Un(e))}return m?new qt(t,n,p,s,r,h,c,u,d,i,o,a,l,f,g):e.raise("Missing @top declaration")}(this)}}function Un(e,t){let n=t?t.start:e.start,i=t||si(e),s=Kn(e),r=[];if(e.eat("<"))for(;!e.eat(">");)r.length&&e.expect(","),r.push(si(e));let o=Yn(e);return new Vt(n,i,s,r,o)}function Kn(e){if("["!=e.type)return Wn;let t=[];for(e.expect("[");!e.eat("]");)t.length&&e.expect(","),t.push(Jn(e));return t}function Jn(e){let t=e.start,n=[],i=e.value,s="at"==e.type;if(e.eat("at")||e.eat("id")||e.unexpected(),e.eat("="))for(;;)if("string"==e.type||"id"==e.type)n.push(new wn(e.start,e.value,null)),e.next();else if(e.eat("."))n.push(new wn(e.start,".",null));else{if(!e.eat("{"))break;n.push(new wn(e.start,null,e.expect("id"))),e.expect("}")}return new xn(t,s,i,n)}function Yn(e){e.expect("{");let t=ii(e);return e.expect("}"),t}const Xn="﷚";function Qn(e){let t=e.start;if(e.eat("(")){if(e.eat(")"))return new hn(t,Wn,[Wn,Wn]);let n=ii(e);return e.expect(")"),n}if("string"==e.type){let n=e.value;return e.next(),0==n.length?new hn(t,Wn,[Wn,Wn]):new fn(t,n)}if(e.eat("id","_"))return new pn(t);if("set"==e.type){let n=e.value,i="!"==e.string[e.start],s=mi(n.replace(/\\.|-|"/g,(e=>"-"==e?Xn:'"'==e?'\\"':e))),r=[];for(let t=0;t65535?2:1,t65535?3:2,ie[0]-t[0])),i)}if("at"!=e.type||"specialize"!=e.value&&"extend"!=e.value){if("at"==e.type&&gn.hasOwnProperty(e.value)){let t=new bn(e.start,e.value);return e.next(),t}if("["==e.type){let n=Un(e,new nn(t,"_anon"));return n.params.length&&e.raise("Inline rules can't have parameters",n.start),new an(t,n)}{let n=si(e);if("["==e.type||"{"==e.type){let i=Un(e,n);return i.params.length&&e.raise("Inline rules can't have parameters",i.start),new an(t,i)}if(e.eat(".")&&"std"==n.name&&gn.hasOwnProperty(e.value)){let n=new bn(t,e.value);return e.next(),n}return new rn(t,n,function(e){let t=[];if(e.eat("<"))for(;!e.eat(">");)t.length&&e.expect(","),t.push(ii(e));return t}(e))}}{let{start:t,value:n}=e;e.next();let i=Kn(e);e.expect("<");let s,r=ii(e);return e.eat(",")?s=ii(e):r instanceof fn?s=r:e.raise(`@${n} requires two arguments when its first argument isn't a literal string`),e.expect(">"),new on(t,n,i,r,s)}}function Zn(e,t,n,i){t.every((([e,t])=>t<=n||e>=i))||e.raise("Overlapping character range",e.start),t.push([n,i])}function ei(e){let t=e.start,n=Qn(e);for(;;){let i=e.type;if(!(e.eat("*")||e.eat("?")||e.eat("+")))return n;n=new un(t,n,i)}}function ti(e){return"}"==e.type||")"==e.type||"|"==e.type||"/"==e.type||"/\\"==e.type||"{"==e.type||","==e.type||">"==e.type}function ni(e){let t=e.start,n=[],i=[Wn];do{for(;;){let t,n=e.start;if(e.eat("~"))t="ambig";else{if(!e.eat("!"))break;t="prec"}i[i.length-1]=i[i.length-1].concat(new cn(n,si(e),t))}if(ti(e))break;n.push(ei(e)),i.push(Wn)}while(!ti(e));return 1==n.length&&i.every((e=>0==e.length))?n[0]:new hn(t,n,i,!n.length)}function ii(e){let t=e.start,n=ni(e);if(!e.eat("|"))return n;let i=[n];do{i.push(ni(e))}while(e.eat("|"));let s=i.find((e=>e instanceof hn&&e.empty));return s&&e.raise("Empty expression in choice operator. If this is intentional, use () to make it explicit.",s.start),new ln(t,i)}function si(e){"id"!=e.type&&e.unexpected();let t=e.start,n=e.value;return e.next(),new nn(t,n)}function ri(e){let t=e.start;e.next(),e.expect("{");let n=[];for(;!e.eat("}");)n.length&&e.eat(","),n.push({id:si(e),type:e.eat("at","left")?"left":e.eat("at","right")?"right":e.eat("at","cut")?"cut":null});return new Wt(t,n)}function oi(e){let t=e.start;e.next(),e.expect("{");let n=[],i=[],s=[],r=[];for(;!e.eat("}");)"at"==e.type&&"precedence"==e.value?s.push(li(e)):"at"==e.type&&"conflict"==e.value?r.push(hi(e)):"string"==e.type?i.push(new Yt(e.start,e.expect("string"),Kn(e))):n.push(Un(e));return new Kt(t,s,r,n,i)}function ai(e,t){e.expect("{");let n=[],i=[],s=null;for(;!e.eat("}");)"at"==e.type&&"precedence"==e.value?i.push(li(e)):e.eat("at","else")&&!s?s={id:si(e),props:Kn(e)}:n.push(Un(e));return new Jt(t,i,n,s)}function li(e){let t=e.start;e.next(),e.expect("{");let n=[];for(;!e.eat("}");){n.length&&e.eat(",");let t=Qn(e);t instanceof fn||t instanceof rn?n.push(t):e.raise("Invalid expression in token precedences",t.start)}return new Gt(t,n)}function hi(e){let t=e.start;e.next(),e.expect("{");let n=Qn(e);n instanceof fn||n instanceof rn||e.raise("Invalid expression in token conflict",n.start),e.eat(",");let i=Qn(e);return i instanceof fn||i instanceof rn||e.raise("Invalid expression in token conflict",i.start),e.expect("}"),new Ut(t,n,i)}function ci(e){let t=[];for(e.expect("{");!e.eat("}");){t.length&&e.eat(",");let n=si(e),i=Kn(e);t.push({id:n,props:i})}return t}function ui(e,t){let n=si(e);e.expect("id","from");let i=e.expect("string");return new Qt(t,n,i,ci(e))}function fi(e,t,n){let i=Yn(e),s=si(e);e.expect("id","from");let r=e.expect("string");return new Zt(n,t,i,s,r,ci(e))}function di(e,t){let n=si(e);return e.expect("id","from"),new en(t,n,e.expect("string"))}function pi(e,t){let n=si(e),i=e.eat("id","as")?si(e):n;e.expect("id","from");let s=e.expect("string");return new tn(t,i,n,s)}function mi(e){let t,n=/\\(?:u\{([\da-f]+)\}|u([\da-f]{4})|x([\da-f]{2})|([ntbrf0])|(.))|[^]/giy,i="";for(;t=n.exec(e);){let[e,n,s,r,o,a]=t;i+=n||s||r?String.fromCodePoint(parseInt(n||s||r,16)):o?"n"==o?"\n":"t"==o?"\t":"0"==o?"\0":"r"==o?"\r":"f"==o?"\f":"\b":a||e}return i}function gi(e,t){return(e<<5)+e+t}function bi(e,t){for(let n=0;n{let n=Date.now(),i=t();return console.log(`${e} (${((Date.now()-n)/1e3).toFixed(2)}s)`),i}:(e,t)=>t();class wi{constructor(e,t,n,i,s,r){this.rule=e,this.pos=t,this.ahead=n,this.ambigAhead=i,this.skipAhead=s,this.via=r,this.hash=0}finish(){let e=gi(gi(this.rule.id,this.pos),this.skipAhead.hash);for(let t of this.ahead)e=gi(e,t.hash);for(let t of this.ambigAhead)e=bi(e,t);return this.hash=e,this}get next(){return this.pose.cmp(t)))||_n(this.ambigAhead,e.ambigAhead,Ci)}eqSimple(e){return e.rule==this.rule&&e.pos==this.pos}toString(){let e=this.rule.parts.map((e=>e.name));return e.splice(this.pos,0,"·"),`${this.rule.name} -> ${e.join(" ")}`}eq(e){return this==e||this.hash==e.hash&&this.rule==e.rule&&this.pos==e.pos&&this.skipAhead==e.skipAhead&&Mi(this.ahead,e.ahead)&&Mi(this.ambigAhead,e.ambigAhead)}trail(e=60){let t=[];for(let e=this;e;e=e.via)for(let n=e.pos-1;n>=0;n--)t.push(e.rule.parts[n]);let n=t.reverse().join(" ");return n.length>e&&(n=n.slice(n.length-e).replace(/.*? /,"… ")),n}conflicts(e=this.pos){let t=this.rule.conflicts[e];return e==this.rule.parts.length&&this.ambigAhead.length&&(t=t.join(new En(0,this.ambigAhead))),t}static addOrigins(e,t){let n=e.slice();for(let e=0;et?1:0}function Ai(e,t,n,i){let s=[];for(let n=t+1;ne.term+"="+e)).join(",")+(this.goto.length?" | "+this.goto.map((e=>e.term+"="+e)).join(","):"");return this.id+": "+this.set.filter((e=>e.pos>0)).join()+(this.defaultReduce?`\n always ${this.defaultReduce.name}(${this.defaultReduce.parts.length})`:e.length?"\n "+e:"")}addActionInner(e,t){e:for(let n=0;n0){this.actions.splice(n,1),this.actionPositions.splice(n,1),n--;continue e}if(l<0)return null;if(o.ambigGroups.some((e=>a.ambigGroups.includes(e))))continue e;return i}}return this.actions.push(e),this.actionPositions.push(t),null}addAction(e,t,n){let i=this.addActionInner(e,t);if(i){let s,r=this.actionPositions[this.actions.indexOf(i)][0],o=[t[0].rule.name,r.rule.name];if(n.conflicts.some((e=>e.rules.some((e=>o.includes(e))))))return;s=i instanceof _i?`shift/reduce conflict between\n ${r}\nand\n ${t[0].rule}`:`reduce/reduce conflict between\n ${r.rule}\nand\n ${t[0].rule}`,s+=`\nWith input:\n ${t[0].trail(70)} · ${e.term} …`,i instanceof _i&&(s+=function(e,t,n){let i=e,s=[];for(;;){for(let e=i.pos-1;e>=0;e--)s.push(i.rule.parts[e]);if(!i.via)break;i=i.via}s.reverse();let r=new Set;return function i(o,a,l){if(a==s.length&&l&&!o.next)return`\nThe reduction of ${e.rule.name} is allowed before ${t} because of this rule:\n ${l}`;for(let e;e=o.next;){if(a"\n"+" ".repeat(n+1)+(e==t?"":"via ")+e)).join("")):""}for(let i=e;i;i=i.via)for(let s=t;s;s=s.via)if(i.eqSimple(s))return"\nShared origin: "+i+n(i,e)+n(i,t);return""}(r,t[0]),n.conflicts.push(new ji(s,o))}}getGoto(e){return this.goto.find((t=>t.term==e))}hasSet(e){return Oi(this.set,e)}actionsByTerm(){let e=this._actionsByTerm;if(!e){this._actionsByTerm=e=Object.create(null);for(let t of this.actions)(e[t.term.id]||(e[t.term.id]=[])).push(t)}return e}finish(){if(this.actions.length){let e=this.actions[0];if(e instanceof Ti){let{rule:t}=e;this.actions.every((e=>e instanceof Ti&&e.rule.sameReduce(t)))&&(this.defaultReduce=t)}}this.actions.sort(((e,t)=>e.cmp(t))),this.goto.sort(((e,t)=>e.cmp(t)))}eq(e){let t=this.defaultReduce,n=e.defaultReduce;return t||n?!(!t||!n)&&t.sameReduce(n):this.skip==e.skip&&this.tokenGroup==e.tokenGroup&&Oi(this.actions,e.actions)&&Oi(this.goto,e.goto)}}function Pi(e,t){t.includes(e)||t.push(e)}class Ri{constructor(e,t){this.set=e,this.state=t}}class ji{constructor(e,t){this.error=e,this.rules=t}}function Li(e){let t=null,n=1;for(let i of e){let e=i.rule.conflicts[i.pos-1].cut;en)&&(n=e,t=[]),t.push(i))}return t||e}function Bi(e,t,n){for(let i of e.goto)for(let e of t.goto)if(i.term==e.term&&n[i.target.id]!=n[e.target.id])return!1;let i=t.actionsByTerm();for(let t of e.actions){let s=i[t.term.id];if(s&&s.some((e=>!e.matches(t,n)))){if(1==s.length)return!1;let i=e.actionsByTerm()[t.term.id];if(i.length!=s.length||i.some((e=>!s.some((t=>e.matches(t,n))))))return!1}}return!0}function Ii(e,t){let n=[];for(let i of e){let e=t[i.id];n[e]||(n[e]=new Di(e,i.set,0,i.skip,i.hash,i.startRule),n[e].tokenGroup=i.tokenGroup,n[e].defaultReduce=i.defaultReduce)}for(let i of e){let e=n[t[i.id]];e.flags|=i.flags;for(let s=0;se.eq(r)))||(e.actions.push(r),e.actionPositions.push(i.actionPositions[s]))}for(let s of i.goto){let i=s.map(t,n);e.goto.some((e=>e.eq(i)))||e.goto.push(i)}}return n}class Fi{constructor(e,t){this.origin=e,this.members=[t]}}function $i(e,t){if(e.length!=t.length)return!1;for(let n=0;n=34&&t++,t>=92&&t++,String.fromCharCode(t)}function qi(e,t=65535){if(e>t)throw new Error("Trying to encode a number that's too big: "+e);if(65535==e)return String.fromCharCode(126);let n="";for(let t=46;;t=0){let i=e%46,s=e-i;if(n=Hi(i+t)+n,0==s)break;e=s/46}return n}function Vi(e,t=65535){let n='"'+qi(e.length,4294967295);for(let i=0;i{this.input=new Gn(e,t.fileName),this.ast=this.input.parse()}));let n=o.uY;for(let e in n)n[e]instanceof o.uY&&!n[e].perNode&&(this.knownProps[e]={prop:n[e],source:{name:e,from:null}});for(let e of this.ast.externalProps)this.knownProps[e.id.name]={prop:this.options.externalProp?this.options.externalProp(e.id.name):new o.uY,source:{name:e.externalID.name,from:e.source}};this.dialects=this.ast.dialects.map((e=>e.name)),this.tokens=new ls(this,this.ast.tokens),this.localTokens=this.ast.localTokens.map((e=>new hs(this,e))),this.externalTokens=this.ast.externalTokens.map((e=>new ws(this,e))),this.externalSpecializers=this.ast.externalSpecializers.map((e=>new ks(this,e))),xi("Build rules",(()=>{let e=this.newName("%noskip",!0);this.defineRule(e,[]);let t=this.ast.mainSkip?this.newName("%mainskip",!0):e,n=[],i=[];for(let e of this.ast.rules)this.astRules.push({skip:t,rule:e});for(let e of this.ast.topRules)i.push({skip:t,rule:e});for(let s of this.ast.scopedSkip){let r=e,o=this.ast.scopedSkip.findIndex(((e,t)=>t-1?r=n[o]:this.ast.mainSkip&&yn(s.expr,this.ast.mainSkip)?r=t:bs(s.expr)||(r=this.newName("%skip",!0)),n.push(r);for(let e of s.rules)this.astRules.push({skip:r,rule:e});for(let e of s.topRules)i.push({skip:r,rule:e})}for(let{rule:e}of this.astRules)this.unique(e.id);this.currentSkip.push(e),this.skipRules=t==e?[t]:[e,t],t!=e&&this.defineRule(t,this.normalizeExpr(this.ast.mainSkip));for(let t=0;te.rule.start-t.rule.start))){this.unique(e.id),this.used(e.id.name),this.currentSkip.push(t);let{name:n,props:i}=this.nodeInfo(e.props,"a",e.id.name,Wi,Wi,e.expr),s=this.terms.makeTop(n,i);this.namedTerms[n]=s,this.defineRule(s,this.normalizeExpr(e.expr)),this.currentSkip.pop()}for(let e of this.externalSpecializers)e.finish();for(let{skip:e,rule:t}of this.astRules)this.ruleNames[t.id.name]&&As(t)&&!t.params.length&&(this.buildRule(t,[],e,!1),t.expr instanceof hn&&0==t.expr.exprs.length&&this.used(t.id.name))}));for(let e in this.ruleNames){let t=this.ruleNames[e];t&&this.warn(`Unused rule '${t.name}'`,t.start)}this.tokens.takePrecedences(),this.tokens.takeConflicts();for(let e of this.localTokens)e.takePrecedences();for(let{name:e,group:t,rule:n}of this.definedGroups)this.defineGroup(e,t,n);this.checkGroups()}unique(e){e.name in this.ruleNames&&this.raise(`Duplicate definition of rule '${e.name}'`,e.start),this.ruleNames[e.name]=e}used(e){this.ruleNames[e]=null}newName(e,t=null,n={}){for(let i=t?0:1;;i++){let s=i?`${e}-${i}`:e;if(!this.terms.names[s])return this.terms.makeNonTerminal(s,!0===t?null:t,n)}}prepareParser(){let e=xi("Simplify rules",(()=>function(e,t){return function(e){let t,n=Object.create(null);for(let i=0;i!n[e.name]))?t:new Pn(t.name,t.parts.map((e=>n[e.name]||e)),t.conflicts,t.skip));return i}(function(e,t){for(let n=0;;n++){let i,s=Object.create(null);if(0==n)for(let o of e)if(o.name.inline&&!s[o.name.name]){let a=e.filter((e=>e.name==o.name));if(a.some((e=>e.parts.includes(o.name))))continue;i=s[o.name.name]=a}for(let l=0;le.skip==h.skip||!e.parts.includes(h.name)))||h.parts.some((e=>!!s[e.name]))||e.some(((e,t)=>t!=l&&e.name==h.name))||(i=s[h.name.name]=[h])}if(!i)return e;let r=[];for(let c of e){function u(e,t,n){if(e==c.parts.length)return void r.push(new Pn(c.name,n,t,c.skip));let i=c.parts[e],o=s[i.name];if(o)for(let i of o)u(e+1,t.slice(0,t.length-1).concat(t[e].join(i.conflicts[0])).concat(i.conflicts.slice(1,i.conflicts.length-1)).concat(c.conflicts[e+1].join(i.conflicts[i.conflicts.length-1])),n.concat(i.parts));else u(e+1,t.concat(c.conflicts[e+1]),n.concat(i))}s[c.name.name]||(c.parts.some((e=>!!s[e.name]))?u(0,[c.conflicts[0]],[]):r.push(c))}e=r}}(e,t))}(this.rules,[...this.skipRules,...this.terms.tops]))),{nodeTypes:t,names:n,minRepeatTerm:i,maxTerm:s}=this.terms.finish(e);for(let e in this.namedTerms)this.termTable[e]=this.namedTerms[e].id;/\bgrammar\b/.test(yi)&&console.log(e.join("\n"));let r=this.terms.tops.slice(),o=function(e){let t=Object.create(null);for(let n of e.terms)n.terminal||(t[n.name]=[]);for(;;){let n=!1;for(let i of e.terms)if(!i.terminal)for(let e of i.rules){let s=t[i.name],r=!1,o=s.length;for(let n of e.parts){if(r=!0,n.terminal)Pi(n,s);else for(let e of t[n.name])null==e?r=!1:Pi(e,s);if(r)break}r||Pi(null,s),s.length>o&&(n=!0)}if(!n)return t}}(this.terms),a=this.skipRules.map(((e,t)=>{let n=[],i=[],s=[];for(let t of e.rules){if(!t.parts.length)continue;let e=t.parts[0];for(let t of e.terminal?[e]:o[e.name]||[])t&&!i.includes(t)&&i.push(t);e.terminal&&1==t.parts.length&&!s.some((n=>n!=t&&n.parts[0]==e))?n.push(e):s.push(t)}return e.rules=s,s.length&&r.push(e),{skip:n,rule:s.length?e:null,startTokens:i,id:t}})),l=xi("Build full automaton",(()=>function(e,t,n){let i=[],s={},r={},o=Date.now();function a(e,t){if(0==e.length)return null;let a,l=Ei(e),h=r[l];for(let t of e)if(a){if(a!=t.skip)throw new Sn("Inconsistent skip sets after "+t.trail())}else a=t.skip;if(h)for(let t of h)if(Oi(e,t.set)){if(t.state.skip!=a)throw new Sn("Inconsistent skip sets after "+t.set[0].trail());return t.state}let c,u=function(e,t){let n=[],i=[];function s(t,s,r,o,a){for(let l of t.rules){let t=n.find((e=>e.rule==l));if(!t){let i=e.find((e=>0==e.pos&&e.rule==l));t=i?new wi(l,0,i.ahead.slice(),i.ambigAhead,i.skipAhead,i.via):new wi(l,0,[],zi,o,a),n.push(t)}if(t.skipAhead!=o)throw new Sn("Inconsistent skip sets after "+a.trail());t.ambigAhead=Nn(t.ambigAhead,r);for(let e of s)t.ahead.includes(e)||(t.ahead.push(e),t.rule.parts.length&&!t.rule.parts[0].terminal&&Pi(t,i))}}for(let n of e){let e=n.next;e&&!e.terminal&&s(e,Ai(n.rule,n.pos,n.ahead,t),n.conflicts(n.pos+1).ambigGroups,n.pos==n.rule.parts.length-1?n.skipAhead:n.rule.skip,n)}for(;i.length;){let e=i.pop();s(e.rule.parts[0],Ai(e.rule,0,e.ahead,t),Nn(e.rule.conflicts[1].ambigGroups,1==e.rule.parts.length?e.ambigAhead:zi),1==e.rule.parts.length?e.skipAhead:e.rule.skip,e)}let r=e.slice();for(let t of n){t.ahead.sort(((e,t)=>e.hash-t.hash)),t.finish();let n=e.findIndex((e=>0==e.pos&&e.rule==t.rule));n>-1?r[n]=t:r.push(t)}return r.sort(((e,t)=>e.cmp(t)))}(e,n),f=Ei(u),d=s[f]||(s[f]=[]);if(!t)for(let e of d)e.hasSet(u)&&(c=e);return c||(c=new Di(i.length,u,0,a,f,t),d.push(c),i.push(c),vi&&i.length%500==0&&console.log(`${i.length} states after ${((Date.now()-o)/1e3).toFixed(2)}s`)),(r[l]||(r[l]=[])).push(new Ri(e,c)),c}for(const n of t){const t=n.rules.length?n.rules[0].skip:e.names["%noskip"];a(n.rules.map((n=>new wi(n,0,[e.eof],zi,t,null).finish())),n)}let l=new Ni(n);for(let e=0;ee.advance()));if(n.terminal){let s=a(Li(i));s&&t.addAction(new _i(n,s),r[e],l)}else{let e=a(i);e&&t.goto.push(new _i(n,e))}}let h=!1;for(let e of o)for(let n of e.ahead){let i=t.actions.length;t.addAction(new Ti(n,e.rule),[e],l),t.actions.length==i&&(h=!0)}if(h)for(let e=0;et.actions.some((t=>t.term==e&&t instanceof _i))))||t.goto.splice(e--,1)}if(l.conflicts.length)throw new Sn(l.conflicts.map((e=>e.error)).join("\n\n"));for(let e of i)e.finish();return vi&&console.log(`${i.length} states total.`),i}(this.terms,r,o))),h=this.localTokens.map(((e,t)=>e.buildLocalGroup(l,a,t))),{tokenGroups:c,tokenPrec:u,tokenData:f}=xi("Build token groups",(()=>this.tokens.buildTokenGroups(l,a,h.length))),d=xi("Finish automaton",(()=>function(e){for(let t=1;;t++){let n=[],i=!1,s=Date.now(),r=[];for(let t=0;ts.eq(e)));if(o<0)n[t]=r.length,r.push(s);else{n[t]=o,i=!0;let e=r[o],a=null;for(let t of s.set)e.set.some((e=>e.eqSimple(t)))||(a||(a=[])).push(t);a&&(e.set=a.concat(e.set).sort(((e,t)=>e.cmp(t))))}}if(vi&&console.log(`Merge identical pass ${t}${i?"":", done"} (${((Date.now()-s)/1e3).toFixed(2)}s)`),!i)return e;for(let e of r)e.defaultReduce||(e.actions=e.actions.map((e=>e.map(n,r))),e.goto=e.goto.map((e=>e.map(n,r))));for(let e=0;eBi(o,e[n],t))))return void n[s].members.push(o.id);t[o.id]=n.length,n.push(new Fi(r.origin,o.id))}for(let s=1;;s++){let r=!1,o=Date.now();for(let s=0,o=n.length;s{n[e.id]||(n[e.id]=!0,i.push(e))};for(let n of e)n.startRule&&t.includes(n.startRule)&&s(n);for(let e=0;e!n[e]}(d,this.terms.tops);/\blr\b/.test(yi)&&console.log(d.join("\n"));let m=[];for(let e of this.externalSpecializers)m.push(e);for(let e in this.specialized)m.push({token:this.terms.names[e],table:Qi(this.specialized[e])});let g=e=>e instanceof ws?e.ast.start:this.tokens.ast?this.tokens.ast.start:-1,b=c.concat(this.externalTokens).sort(((e,t)=>g(e)-g(t))).concat(h),y=new es,v=a.map((e=>{let t=[];for(let n of e.skip)t.push(n.id,0,4);if(e.rule){let n=d.find((t=>t.startRule==e.rule));for(let e of n.actions)t.push(e.term.id,n.id,2)}return t.push(65535,0),y.storeArray(t)})),x=xi("Finish states",(()=>{let e=new Uint32Array(6*d.length),t=this.computeForceReductions(d,a),n=new Yi(b,y,e,v,a,d,this);for(let e of d)n.finish(e,p(e.id),t[e.id]);return e})),w=Object.create(null);for(let e=0;ee.id)).concat(65535));let k=null;if(this.dynamicRulePrecedences.length){k=Object.create(null);for(let{rule:e,prec:t}of this.dynamicRulePrecedences)k[e.id]=t}let S=Object.create(null);for(let e of this.terms.tops)S[e.nodeName]=[d.find((t=>t.startRule==e)).id,e.id];let C=y.storeArray(u.concat(65535)),{nodeProps:A,skippedTypes:O}=this.gatherNodeProps(t);return{states:x,stateData:y.finish(),goto:ts(d),nodeNames:t.filter((e=>e.ide.nodeName)).join(" "),nodeProps:A,skippedTypes:O,maxTerm:s,repeatNodeCount:t.length-i,tokenizers:b,tokenData:f,topRules:S,dialects:w,dynamicPrecedences:k,specialized:m,tokenPrec:C,termNames:n}}getParser(){let{states:e,stateData:t,goto:n,nodeNames:i,nodeProps:s,skippedTypes:r,maxTerm:o,repeatNodeCount:a,tokenizers:l,tokenData:h,topRules:c,dialects:u,dynamicPrecedences:f,specialized:d,tokenPrec:p,termNames:m}=this.prepareParser(),g=d.map((e=>{if(e instanceof ks){let t=this.options.externalSpecializer(e.ast.id.name,this.termTable);return{term:e.term.id,get:(n,i)=>t(n,i)<<1|("extend"==e.ast.type?1:0),external:t,extend:"extend"==e.ast.type}}return{term:e.token.id,get:t=>e.table[t]||-1}}));return zt.U1.deserialize({version:14,states:e,stateData:t,goto:n,nodeNames:i,maxTerm:o,repeatNodeCount:a,nodeProps:s.map((({prop:e,terms:t})=>[this.knownProps[e].prop,...t])),propSources:this.options.externalPropSource?this.ast.externalPropSources.map((e=>this.options.externalPropSource(e.id.name))):void 0,skippedNodes:r,tokenData:h,tokenizers:l.map((e=>e.create())),context:this.ast.context?"function"==typeof this.options.contextTracker?this.options.contextTracker(this.termTable):this.options.contextTracker:void 0,topRules:c,dialects:u,dynamicPrecedences:f,specialized:g,tokenPrec:p,termNames:m})}getParserFile(){let{states:e,stateData:t,goto:n,nodeNames:i,nodeProps:s,skippedTypes:r,maxTerm:o,repeatNodeCount:a,tokenizers:l,tokenData:h,topRules:c,dialects:u,dynamicPrecedences:f,specialized:d,tokenPrec:p,termNames:m}=this.prepareParser(),g=this.options.moduleStyle||"es",b="// This file was generated by lezer-generator. You probably shouldn't edit it.\n",y=b,v={},x=Object.create(null),w=Object.create(null);for(let e of Cs)w[e]=!0;let k=this.options.exportName||"parser";w[k]=!0;let S=e=>{for(let t=0;;t++){let n=e+(t?"_"+t:"");if(!w[n])return n}},C=(e,t,n=e)=>{let i=e+" from "+t;if(x[i])return x[i];let s=JSON.stringify(t),r=e;return e in w&&(r=S(n),e+=`${"cjs"==g?":":" as"} ${r}`),w[r]=!0,(v[s]||(v[s]=[])).push(e),x[i]=r},A=C("LRParser","@lezer/lr"),O=l.map((e=>e.createSource(C))),M=this.ast.context?C(this.ast.context.id.name,this.ast.context.source):null,_=s.map((({prop:e,terms:t})=>{let{source:n}=this.knownProps[e];return`[${n.from?C(n.name,n.from):JSON.stringify(n.name)}, ${t.map(D).join(",")}]`})),T="",E=d.map((e=>{if(e instanceof ks){let t=C(e.ast.id.name,e.ast.source),n=this.options.typeScript?": any":"";return`{term: ${e.term.id}, get: (value${n}, stack${n}) => (${t}(value, stack) << 1)${"extend"==e.ast.type?" | 1":""}, external: ${t}${"extend"==e.ast.type?", extend: true":""}}`}{let n=S("spec_"+e.token.name.replace(/\W/g,""));w[n]=!0,T+=`const ${n} = ${t=e.table,"{__proto__:null,"+Object.keys(t).map((e=>`${/^(\d+|[a-zA-Z_]\w*)$/.test(e)?e:JSON.stringify(e)}:${t[e]}`)).join(", ")+"}"}\n`;let i=this.options.typeScript?`: keyof typeof ${n}`:"";return`{term: ${e.token.id}, get: (value${i}) => ${n}[value] || -1}`}var t})),N=this.ast.externalPropSources.map((e=>C(e.id.name,e.source)));for(let e in v)y+="cjs"==g?`const {${v[e].join(", ")}} = require(${e})\n`:`import {${v[e].join(", ")}} from ${e}\n`;function D(e){return"string"!=typeof e||/^(true|false|\d+(\.\d+)?|\.\d+)$/.test(e)?e:JSON.stringify(e)}y+=T;let P=Object.keys(u).map((e=>`${e}: ${u[e]}`)),R=`${A}.deserialize({\n version: 14,\n states: ${Vi(e,4294967295)},\n stateData: ${Vi(t)},\n goto: ${Vi(n)},\n nodeNames: ${JSON.stringify(i)},\n maxTerm: ${o}${M?`,\n context: ${M}`:""}${_.length?`,\n nodeProps: [\n ${_.join(",\n ")}\n ]`:""}${N.length?`,\n propSources: [${N.join()}]`:""}${r.length?`,\n skippedNodes: ${JSON.stringify(r)}`:""},\n repeatNodeCount: ${a},\n tokenData: ${Vi(h)},\n tokenizers: [${O.join(", ")}],\n topRules: ${JSON.stringify(c)}${P.length?`,\n dialects: {${P.join(", ")}}`:""}${f?`,\n dynamicPrecedences: ${JSON.stringify(f)}`:""}${E.length?`,\n specialized: [${E.join(",")}]`:""},\n tokenPrec: ${p}${this.options.includeNames?`,\n termNames: ${JSON.stringify(m)}`:""}\n})`,j=[];for(let e in this.termTable){let t=e;if(Cs.includes(t))for(let n=1;t="_".repeat(n)+e,t in this.termTable;n++);else if(!/^[\w$]+$/.test(e))continue;j.push(`${t}${"cjs"==g?":":" ="} ${this.termTable[e]}`)}for(let e=0;e{e[n.id]||(e[n.id]=!0,t.push(n))};this.terms.tops.forEach(n);for(let e=0;et.prop==e));n||i.push(n={prop:e,values:{}}),(n.values[s.props[e]]||(n.values[s.props[e]]=[])).push(s.id)}}return{nodeProps:i.map((({prop:e,values:t})=>{let n=[];for(let e in t){let i=t[e];if(1==i.length)n.push(i[0],e);else{n.push(-i.length);for(let e of i)n.push(e);n.push(e)}}return{prop:e,terms:n}})),skippedTypes:n}}makeTerminal(e,t,n){return this.terms.makeTerminal(this.terms.uniqueName(e),t,n)}computeForceReductions(e,t){let n=[],i=[],s=Object.create(null);for(let t of e){n.push(0);for(let e of t.goto){let n=s[e.term.id]||(s[e.term.id]=[]),i=n.find((t=>t.target==e.target.id));i?i.parents.push(t.id):n.push({parents:[t.id],target:e.target.id})}i[t.id]=t.set.filter((e=>e.pos>0&&!e.rule.name.top)).sort(((e,t)=>t.pos-e.pos||e.rule.parts.length-t.rule.parts.length))}let r=Object.create(null);function o(e,t,n=null){let i=s[e];return!!i&&i.some((e=>{let i=n?n.filter((t=>e.parents.includes(t))):e.parents;if(0==i.length)return!1;if(e.target==t)return!0;let s=r[e.target];return null!=s&&o(s,t,i)}))}for(let i of e)i.defaultReduce&&i.defaultReduce.parts.length>0&&(n[i.id]=Zi(i.defaultReduce,t),1==i.defaultReduce.parts.length&&(r[i.id]=i.defaultReduce.name.id));for(let s=1;;s++){let a=!0;for(let l of e){if(l.defaultReduce)continue;let e=i[l.id];if(e.length==s){for(let i of e)if(1!=i.pos||!o(i.rule.name.id,l.id)){n[l.id]=Zi(i.rule,t,i.pos),1==i.pos&&(r[l.id]=i.rule.name.id);break}}else e.length>s&&(a=!1)}if(a)break}return n}substituteArgs(e,t,n){return 0==t.length?e:e.walk((e=>{let i;if(e instanceof rn&&(i=n.findIndex((t=>t.name==e.id.name)))>-1){let n=t[i];if(e.args.length){if(n instanceof rn&&!n.args.length)return new rn(e.start,n.id,e.args);this.raise("Passing arguments to a parameter that already has arguments",e.start)}return n}if(e instanceof an){let i=e.rule,s=this.substituteArgsInProps(i.props,t,n);return s==i.props?e:new an(e.start,new Vt(i.start,i.id,s,i.params,i.expr))}if(e instanceof on){let i=this.substituteArgsInProps(e.props,t,n);return i==e.props?e:new on(e.start,e.type,i,e.token,e.content)}return e}))}substituteArgsInProps(e,t,n){let i=e=>{let i=e;for(let s=0;se.name==r.name));if(o<0)continue;i==e&&(i=e.slice());let a=t[o];a instanceof rn&&!a.args.length?i[s]=new wn(r.start,a.id.name,null):a instanceof fn?i[s]=new wn(r.start,a.value,null):this.raise(`Trying to interpolate expression '${a}' into a prop`,r.start)}return i},s=e;for(let t=0;te.id.name==i.id.name)):-1;s<0&&this.raise(`Reference to unknown precedence: '${i.id.name}'`,i.id.start);let r=e.items[s],o=e.items.length-s;"cut"==r.type?t=t.join(new En(0,Wi,o)):(t=t.join(new En(o<<2)),n=n.join(new En((o<<2)+("left"==r.type?1:"right"==r.type?-1:0))))}return{here:t,atEnd:n}}raise(e,t=1){return this.input.raise(e,t)}warn(e,t=-1){let n=this.input.message(e,t);this.options.warn?this.options.warn(n):console.warn(n)}defineRule(e,t){let n=this.currentSkip[this.currentSkip.length-1];for(let i of t)this.rules.push(new Pn(e,i.terms,i.ensureConflicts(),n))}resolve(e){for(let t of this.built)if(t.matches(e))return[Ui(t.term)];let t=this.tokens.getToken(e);if(t)return[Ui(t)];for(let t of this.localTokens){let n=t.getToken(e);if(n)return[Ui(n)]}for(let t of this.externalTokens){let n=t.getToken(e);if(n)return[Ui(n)]}for(let t of this.externalSpecializers){let n=t.getToken(e);if(n)return[Ui(n)]}let n=this.astRules.find((t=>t.rule.id.name==e.id.name));return n?(n.rule.params.length!=e.args.length&&this.raise(`Wrong number or arguments for '${e.id.name}'`,e.start),this.used(n.rule.id.name),[Ui(this.buildRule(n.rule,e.args,n.skip))]):this.raise(`Reference to undefined rule '${e.id.name}'`,e.start)}normalizeRepeat(e){let t=this.built.find((t=>t.matchesRepeat(e)));if(t)return Ui(t.term);let n=e.expr.precthis.normalizeExpr(e))),n=this;return function i(s,r,o){let{here:a,atEnd:l}=n.conflictsFor(e.markers[r]);if(r==t.length)return[s.withConflicts(s.terms.length,a.join(o))];let h=[];for(let e of t[r])for(let t of i(s.concat(e).withConflicts(s.terms.length,a),r+1,o.join(l)))h.push(t);return h}(Gi.none,0,En.none)}normalizeExpr(e){if(e instanceof un&&"?"==e.kind)return[Gi.none,...this.normalizeExpr(e.expr)];if(e instanceof un){let t=this.normalizeRepeat(e);return"+"==e.kind?[t]:[Gi.none,t]}return e instanceof ln?e.exprs.reduce(((e,t)=>e.concat(this.normalizeExpr(t))),[]):e instanceof hn?this.normalizeSequence(e):e instanceof fn?[Ui(this.tokens.getLiteral(e))]:e instanceof rn?this.resolve(e):e instanceof on?[Ui(this.resolveSpecialization(e))]:e instanceof an?[Ui(this.buildRule(e.rule,Wi,this.currentSkip[this.currentSkip.length-1],!0))]:this.raise(`This type of expression ('${e}') may not occur in non-token rules`,e.start)}buildRule(e,t,n,i=!1){let s=this.substituteArgs(e.expr,t,e.params),{name:r,props:o,dynamicPrec:a,inline:l,group:h,exported:c}=this.nodeInfo(e.props||Wi,i?"pg":"pgi",e.id.name,t,e.params,e.expr);c&&e.params.length&&this.warn("Can't export parameterized rules",e.start),c&&i&&this.warn("Can't export inline rule",e.start);let u=this.newName(e.id.name+(t.length?"<"+t.join(",")+">":""),r||!0,o);l&&(u.inline=!0),a&&this.registerDynamicPrec(u,a),(u.nodeType||c)&&0==e.params.length&&(r||(u.preserve=!0),i||(this.namedTerms[c||e.id.name]=u)),i||this.built.push(new Ki(e.id.name,t,u)),this.currentSkip.push(n);let f=this.normalizeExpr(s);return f.length>100*(s instanceof ln?s.exprs.length:1)&&this.warn(`Rule ${e.id.name} is generating a lot (${f.length}) of choices.\n Consider splitting it up or reducing the amount of ? or | operator uses.`,e.start),/\brulesize\b/.test(yi)&&f.length>10&&console.log(`Rule ${e.id.name}: ${f.length} variants`),this.defineRule(u,f),this.currentSkip.pop(),h&&this.definedGroups.push({name:u,group:h,rule:e}),u}nodeInfo(e,t,n=null,i=Wi,s=Wi,r,o){let a={},l=n&&(t.indexOf("a")>-1||!function(e){let t=e[0];return"_"==t||t.toUpperCase()!=t}(n))&&!/ /.test(n)?n:null,h=null,c=0,u=!1,f=null,d=null;for(let r of e)if(r.at)if("name"==r.name)l=this.finishProp(r,i,s),/ /.test(l)&&this.raise(`Node names cannot have spaces ('${l}')`,r.start);else if("dialect"==r.name){t.indexOf("d")<0&&this.raise("Can't specify a dialect on non-token rules",e[0].start),1==r.value.length||r.value[0].value||this.raise("The '@dialect' rule prop must hold a plain string value");let n=this.dialects.indexOf(r.value[0].value);n<0&&this.raise(`Unknown dialect '${r.value[0].value}'`,r.value[0].start),h=n}else"dynamicPrecedence"==r.name?(t.indexOf("p")<0&&this.raise("Dynamic precedence can only be specified on nonterminals"),1==r.value.length&&/^-?(?:10|\d)$/.test(r.value[0].value)||this.raise("The '@dynamicPrecedence' rule prop must hold an integer between -10 and 10"),c=+r.value[0].value):"inline"==r.name?(r.value.length&&this.raise("'@inline' doesn't take a value",r.value[0].start),t.indexOf("i")<0&&this.raise("Inline can only be specified on nonterminals"),u=!0):"isGroup"==r.name?(t.indexOf("g")<0&&this.raise("'@isGroup' can only be specified on nonterminals"),f=r.value.length?this.finishProp(r,i,s):n):"export"==r.name?d=r.value.length?this.finishProp(r,i,s):n:this.raise(`Unknown built-in prop name '@${r.name}'`,r.start);else{if(!this.knownProps[r.name]){let e=["name","dialect","dynamicPrecedence","export","isGroup"].includes(r.name)?` (did you mean '@${r.name}'?)`:"";this.raise(`Unknown prop name '${r.name}'${e}`,r.start)}a[r.name]=this.finishProp(r,i,s)}if(r&&this.ast.autoDelim&&(l||Cn(a))){let e=this.findDelimiters(r);e&&(Xi(e[0],"closedBy",e[1].nodeName),Xi(e[1],"openedBy",e[0].nodeName))}if(o&&Cn(o))for(let e in o)e in a||(a[e]=o[e]);return Cn(a)&&!l&&this.raise("Node has properties but no name",e.length?e[0].start:r.start),u&&(Cn(a)||h||c)&&this.raise("Inline nodes can't have props, dynamic precedence, or a dialect",e[0].start),u&&l&&(l=null),{name:l,props:a,dialect:h,dynamicPrec:c,inline:u,group:f,exported:d}}finishProp(e,t,n){return e.value.map((e=>{if(e.value)return e.value;let i=n.findIndex((t=>t.name==e.name));i<0&&this.raise(`Property refers to '${e.name}', but no parameter by that name is in scope`,e.start);let s=t[i];return s instanceof rn&&!s.args.length?s.id.name:s instanceof fn?s.value:this.raise(`Expression '${s}' can not be used as part of a property value`,e.start)})).join("")}resolveSpecialization(e){let t,n=e.type,{name:i,props:s,dialect:r,exported:o}=this.nodeInfo(e.props,"d"),a=this.normalizeExpr(e.token);if(1==a.length&&1==a[0].terms.length&&a[0].terms[0].terminal||this.raise(`The first argument to '${n}' must resolve to a token`,e.token.start),e.content instanceof fn)t=[e.content.value];else{if(!(e.content instanceof ln&&e.content.exprs.every((e=>e instanceof fn))))return this.raise(`The second argument to '${e.type}' must be a literal or choice of literals`,e.content.start);t=e.content.exprs.map((e=>e.value))}let l=a[0].terms[0],h=null,c=this.specialized[l.name]||(this.specialized[l.name]=[]);for(let a of t){let t=c.find((e=>e.value==a));null==t?(h||(h=this.makeTerminal(l.name+"/"+JSON.stringify(a),i,s),null!=r&&(this.tokens.byDialect[r]||(this.tokens.byDialect[r]=[])).push(h)),c.push({value:a,term:h,type:n,dialect:r,name:i}),this.tokenOrigins[h.name]={spec:l},(i||o)&&(i||(h.preserve=!0),this.namedTerms[o||i]=h)):(t.type!=n&&this.raise(`Conflicting specialization types for ${JSON.stringify(a)} of ${l.name} (${n} vs ${t.type})`,e.start),t.dialect!=r&&this.raise(`Conflicting dialects for specialization ${JSON.stringify(a)} of ${l.name}`,e.start),t.name!=i&&this.raise(`Conflicting names for specialization ${JSON.stringify(a)} of ${l.name}`,e.start),h&&t.term!=h&&this.raise(`Conflicting specialization tokens for ${JSON.stringify(a)} of ${l.name}`,e.start),h=t.term)}return h}findDelimiters(e){if(!(e instanceof hn)||e.exprs.length<2)return null;let t=e=>{if(e instanceof fn)return{term:this.tokens.getLiteral(e),str:e.value};if(e instanceof rn&&0==e.args.length){let n=this.ast.rules.find((t=>t.id.name==e.id.name));if(n)return t(n.expr);let i=this.tokens.rules.find((t=>t.id.name==e.id.name));if(i&&i.expr instanceof fn)return{term:this.tokens.getToken(e),str:i.expr.value}}return null},n=t(e.exprs[e.exprs.length-1]);if(!n||!n.term.nodeName)return null;let i=["()","[]","{}","<>"].find((e=>n.str.indexOf(e[1])>-1&&n.str.indexOf(e[0])<0));if(!i)return null;let s=t(e.exprs[0]);return!s||!s.term.nodeName||s.str.indexOf(i[0])<0||s.str.indexOf(i[1])>-1?null:[s.term,n.term]}registerDynamicPrec(e,t){this.dynamicRulePrecedences.push({rule:e,prec:t}),e.preserve=!0}defineGroup(e,t,n){var i;let s=[],r=e=>{if(e.nodeName)return[e];s.includes(e)&&this.raise(`Rule '${n.id.name}' cannot define a group because it contains a non-named recursive rule ('${e.name}')`,n.start);let t=[];s.push(e);for(let i of this.rules)if(i.name==e){let e=i.parts.map(r).filter((e=>e.length));if(e.length>1&&this.raise(`Rule '${n.id.name}' cannot define a group because some choices produce multiple named nodes`,n.start),1==e.length)for(let n of e[0])t.push(n)}return s.pop(),t};for(let n of r(e))n.props.group=((null===(i=n.props.group)||void 0===i?void 0:i.split(" "))||[]).concat(t).sort().join(" ")}checkGroups(){let e=Object.create(null),t=Object.create(null);for(let n of this.terms.terms)if(n.nodeName&&(t[n.nodeName]=!0,n.props.group))for(let t of n.props.group.split(" "))(e[t]||(e[t]=[])).push(n);let n=Object.keys(e);for(let i=0;ii.includes(e)))&&(r.length>i.length?i.some((e=>!r.includes(e))):r.some((e=>!i.includes(e))))&&this.warn(`Groups '${s}' and '${n[t]}' overlap without one being a superset of the other`)}}}}class Yi{constructor(e,t,n,i,s,r,o){this.tokenizers=e,this.data=t,this.stateArray=n,this.skipData=i,this.skipInfo=s,this.states=r,this.builder=o,this.sharedActions=[]}findSharedActions(e){if(e.actions.length<5)return null;let t=null;for(let n of this.sharedActions)(!t||n.actions.length>t.actions.length)&&n.actions.every((t=>e.actions.some((e=>e.eq(t)))))&&(t=n);if(t)return t;let n=null,i=[];for(let t=e.id+1;t=5&&(!n||n.lengthe.eq(s))))if(s instanceof _i)i.push(s.term.id,s.target.id,0);else{let e=Zi(s.rule,this.skipInfo);e!=t&&i.push(s.term.id,65535&e,e>>16)}return i.push(65535),t>-1?i.push(2,65535&t,t>>16):n?i.push(1,65535&n.addr,n.addr>>16):i.push(0),this.data.storeArray(i)}finish(e,t,n){let i=this.builder,s=i.skipRules.indexOf(e.skip),r=this.skipData[s],o=this.skipInfo[s].startTokens,a=e.defaultReduce?Zi(e.defaultReduce,this.skipInfo):0,l=t?1:0,h=-1,c=null;if(0==a){if(t)for(const t of e.actions)t instanceof Ti&&t.term.eof&&(h=Zi(t.rule,this.skipInfo));h<0&&(c=this.findSharedActions(e))}e.set.some((e=>e.rule.name.top&&e.pos==e.rule.parts.length))&&(l|=2);let u=[];for(let t=0;tt.rule==e.name))?262144:0)|n<<19}class es{constructor(){this.data=[]}storeArray(e){let t=function(e,t){e:for(let n=0;;){let i=e.indexOf(t[0],n);if(-1==i||i+t.length>e.length)break;for(let s=1;s-1)return t;let n=this.data.length;for(let t of e)this.data.push(t);return n}finish(){return Uint16Array.from(this.data)}}function ts(e){let t={},n=0;for(let i of e)for(let e of i.goto){n=Math.max(e.term.id,n);let s=t[e.term.id]||(t[e.term.id]={});(s[e.target.id]||(s[e.target.id]=[])).push(i.id)}let i=new es,s=[],r=n+2;for(let e=0;e<=n;e++){let n=t[e];if(!n){s.push(1);continue}let o=[],a=Object.keys(n);for(let e of a){let t=n[e];o.push((e==a[a.length-1]?1:0)+(t.length<<1)),o.push(+e);for(let e of t)o.push(e)}s.push(i.storeArray(o)+r)}if(s.some((e=>e>65535)))throw new Sn("Goto table too large");return Uint16Array.from([n+1,...s,...i.data])}class ns{constructor(e,t){this.tokens=e,this.groupID=t}create(){return this.groupID}createSource(){return String(this.groupID)}}function is(e,t){e.includes(t)||e.push(t)}function ss(e){let t=Object.create(null);for(let n of e){let e=1<e.id.name==t));if(!n)return null;let{name:i,props:s,dialect:r,exported:o}=this.b.nodeInfo(n.props,"d",t,e.args,n.params.length!=e.args.length?Wi:n.params),a=this.b.makeTerminal(e.toString(),i,s);return null!=r&&(this.byDialect[r]||(this.byDialect[r]=[])).push(a),(a.nodeType||o)&&0==n.params.length&&(a.nodeType||(a.preserve=!0),this.b.namedTerms[o||t]=a),this.buildRule(n,e,this.startState,new Fn([a])),this.built.push(new Ki(t,e.args,a)),a}buildRule(e,t,n,i,s=Wi){let r=t.id.name;e.params.length!=t.args.length&&this.b.raise(`Incorrect number of arguments for token '${r}'`,t.start);let o=this.building.find((e=>e.name==r&&vn(t.args,e.args)));if(o){if(o.to==i)return void n.nullEdge(o.start);let e=this.building.length-1;for(;this.building[e].name!=r;)e--;this.b.raise(`Invalid (non-tail) recursion in token rules: ${this.building.slice(e).map((e=>e.name)).join(" -> ")}`,t.start)}this.b.used(e.id.name);let a=new Fn;n.nullEdge(a),this.building.push(new os(r,a,i,t.args)),this.build(this.b.substituteArgs(e.expr,t.args,e.params),a,i,t.args.map(((t,n)=>new rs(e.params[n].name,t,s)))),this.building.pop()}build(e,t,n,i){if(e instanceof rn){let s,r=e.id.name,o=i.find((e=>e.name==r));if(o)return this.build(o.expr,t,n,o.scope);for(let e=0,t=this.b.localTokens;e<=t.length&&(s=(e==t.length?this.b.tokens:t[e]).rules.find((e=>e.id.name==r)),!s);e++);if(!s)return this.b.raise(`Reference to token rule '${r}', which isn't found`,e.start);this.buildRule(s,e,t,n,i)}else if(e instanceof bn)for(let[i,s]of gn[e.type])t.edge(i,s,n);else if(e instanceof ln)for(let s of e.exprs)this.build(s,t,n,i);else if(bs(e))t.nullEdge(n);else if(e instanceof hn){let s=e.markers.find((e=>e.length>0));s&&this.b.raise("Conflict marker in token expression",s[0].start);for(let s=0;st&&n.push([t,i]),t=s;return t<=ds&&n.push([t,ds+1]),n}(e.ranges):e.ranges)gs(t,n,i,s);else if(e instanceof fn)for(let i=0;it.id==e));n&&t.push(n.term)}t.length||this.b.warn(`Precedence specified for unknown token ${i}`,i.start);for(let i of t)xs(e,i,n);n=n.concat(t)}}}precededBy(e,t){let n=this.precedenceRelations.find((t=>t.term==e));return n&&n.after.includes(t)}buildPrecTable(e){let t=[],n=this.precedenceRelations.slice();for(let{a:t,b:i,soft:s}of e)if(s){if(!n.some((e=>e.term==t))||!n.some((e=>e.term==i)))continue;s<0&&([t,i]=[i,t]),xs(n,i,[t]),xs(n,t,[])}e:for(;n.length;){for(let e=0;et.includes(e.id)))){if(t.push(i.term.id),1==n.length)break e;n[e]=n.pop();continue e}}this.b.raise(`Cyclic token precedence relation between ${n.map((e=>e.term)).join(", ")}`)}return t}}class ls extends as{constructor(){super(...arguments),this.explicitConflicts=[]}getLiteral(e){let t=JSON.stringify(e.value);for(let e of this.built)if(e.id==t)return e.term;let n=null,i={},s=null,r=null,o=this.ast?this.ast.literals.find((t=>t.literal==e.value)):null;o&&({name:n,props:i,dialect:s,exported:r}=this.b.nodeInfo(o.props,"da",e.value));let a=this.b.makeTerminal(t,n,i);return null!=s&&(this.byDialect[s]||(this.byDialect[s]=[])).push(a),r&&(this.b.namedTerms[r]=a),this.build(e,this.startState,new Fn([a]),Wi),this.built.push(new Ki(t,Wi,a)),a}takeConflicts(){var e;let t=e=>{if(e instanceof rn){for(let t of this.built)if(t.matches(e))return t.term}else{let t=JSON.stringify(e.value),n=this.built.find((e=>e.id==t));if(n)return n.term}return this.b.warn(`Precedence specified for unknown token ${e}`,e.start),null};for(let n of(null===(e=this.ast)||void 0===e?void 0:e.conflicts)||[]){let e=t(n.a),i=t(n.b);e&&i&&(e.ide.id.name==i.accepting[0].name)).start),/\btokens\b/.test(yi)&&console.log(i.toString());let s=i.findConflicts(function(e,t,n){let i=Object.create(null);function s(e,i){return e.actions.some((e=>e.term==i))||n[t.skipRules.indexOf(e.skip)].startTokens.includes(i)}return(t,n)=>{t.ids(e,t)&&s(e,n)))}}(e,this.b,t)).filter((({a:e,b:t})=>!this.precededBy(e,t)&&!this.precededBy(t,e)));for(let{a:e,b:t}of this.explicitConflicts)s.some((n=>n.a==e&&n.b==t))||s.push(new $n(e,t,0,"",""));let r=s.filter((e=>e.soft)),o=s.filter((e=>!e.soft)),a=[],l=[];for(let i of e){if(i.defaultReduce||i.tokenGroup>-1)continue;let e=[],s=[],r=t[this.b.skipRules.indexOf(i.skip)].startTokens;for(let e of r)i.actions.some((t=>t.term==e))&&this.b.raise(`Use of token ${e.name} conflicts with skip rule`);let h=[];for(let e=0;ee.conflict==n))){let e=n.exampleA?` (example: ${JSON.stringify(n.exampleA)}${n.exampleB?` vs ${JSON.stringify(n.exampleB)}`:""})`:"";a.push({error:`Overlapping tokens ${t.name} and ${r.name} used in same context${e}\nAfter: ${i.set[0].trail()}`,conflict:n})}is(e,t),is(s,r)}}let c=null;for(let t of l)if(!s.some((e=>t.tokens.includes(e)))){for(let n of e)is(t.tokens,n);c=t;break}c||(c=new ns(e,l.length+n),l.push(c)),i.tokenGroup=c.groupID}a.length&&this.b.raise(a.map((e=>e.error)).join("\n\n")),l.length+n>16&&this.b.raise(`Too many different token groups (${l.length}) to represent them as a 16-bit bitfield`);let h=this.buildPrecTable(r);return{tokenGroups:l,tokenPrec:h,tokenData:i.toArray(ss(l),h)}}}class hs extends as{constructor(e,t){super(e,t),this.fallback=null,t.fallback&&e.unique(t.fallback.id)}getToken(e){let t=null;if(this.ast.fallback&&this.ast.fallback.id.name==e.id.name){if(e.args.length&&this.b.raise(`Incorrect number of arguments for ${e.id.name}`,e.start),!this.fallback){let{name:t,props:n,exported:i}=this.b.nodeInfo(this.ast.fallback.props,"",e.id.name,Wi,Wi),s=this.fallback=this.b.makeTerminal(e.id.name,t,n);(s.nodeType||i)&&(s.nodeType||(s.preserve=!0),this.b.namedTerms[i||e.id.name]=s),this.b.used(e.id.name)}t=this.fallback}else t=super.getToken(e);return t&&!this.b.tokenOrigins[t.name]&&(this.b.tokenOrigins[t.name]={group:this}),t}buildLocalGroup(e,t,n){let i=this.startState.compile();i.accepting.length&&this.b.raise(`Grammar contains zero-length tokens (in '${i.accepting[0].name}')`,this.rules.find((e=>e.id.name==i.accepting[0].name)).start);for(let{a:e,b:t,exampleA:n}of i.findConflicts((()=>!0)))this.precededBy(e,t)||this.precededBy(t,e)||this.b.raise(`Overlapping tokens ${e.name} and ${t.name} in local token group${n?` (example: ${JSON.stringify(n)})`:""}`);for(let i of e){if(i.defaultReduce)continue;let e=null,s=t[this.b.skipRules.indexOf(i.skip)].startTokens[0];for(let{term:t}of i.actions){let n=this.b.tokenOrigins[t.name];(null==n?void 0:n.group)==this?e=t:s=t}e&&(s&&this.b.raise(`Tokens from a local token group used together with other tokens (${e.name} with ${s.name})`),i.tokenGroup=n)}let s=this.buildPrecTable(Wi),r=i.toArray({[n]:65535},s),o=r.length,a=new Uint16Array(r.length+s.length+1);return a.set(r,0),a.set(s,o),a[a.length-1]=65535,{groupID:n,create:()=>new zt.uC(a,o,this.fallback?this.fallback.id:void 0),createSource:e=>`new ${e("LocalTokenGroup","@lezer/lr")}(${Vi(a)}, ${o}${this.fallback?`, ${this.fallback.id}`:""})`}}}const cs=65536,us=55296,fs=57344,ds=1114111,ps=56320,ms=57343;function gs(e,t,n,i){if(nfs&&e.edge(Math.max(n,fs),Math.min(i,65536),t),n=cs),i<=cs)return;let s=String.fromCodePoint(n),r=String.fromCodePoint(i-1),o=s.charCodeAt(0),a=s.charCodeAt(1),l=r.charCodeAt(0),h=r.charCodeAt(1);if(o==l){let n=new Fn;e.edge(o,o+1,n),n.edge(a,h+1,t)}else{let n=o,i=l;if(a>ps){n++;let i=new Fn;e.edge(o,o+1,i),i.edge(a,ms+1,t)}if(he.term==t));i<0?e.push({term:t,after:n}):e[i]={term:t,after:e[i].after.concat(n)}}class ws{constructor(e,t){this.b=e,this.ast=t,this.tokens=ys(e,t.tokens);for(let e in this.tokens)this.b.tokenOrigins[this.tokens[e].name]={external:this}}getToken(e){return vs(this.b,this.tokens,e)}create(){return this.b.options.externalTokenizer(this.ast.id.name,this.b.termTable)}createSource(e){let{source:t,id:{name:n}}=this.ast;return e(n,t)}}class ks{constructor(e,t){this.b=e,this.ast=t,this.term=null,this.tokens=ys(e,t.tokens)}finish(){let e=this.b.normalizeExpr(this.ast.token);1==e.length&&1==e[0].terms.length&&e[0].terms[0].terminal||this.b.raise(`The token expression to '@external ${this.ast.type}' must resolve to a token`,this.ast.token.start),this.term=e[0].terms[0];for(let e in this.tokens)this.b.tokenOrigins[this.tokens[e].name]={spec:this.term,external:this}}getToken(e){return vs(this.b,this.tokens,e)}}function Ss(e,t={}){let n=new Ji(e,t),i=n.getParser();return i.termTable=n.termTable,i}const Cs=["await","break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","while","with","null","true","false","instanceof","typeof","void","delete","new","in","this","const","class","extends","export","import","super","enum","implements","interface","let","package","private","protected","public","static","yield","require"];function As(e){return e.props.some((e=>e.at&&"export"==e.name))}const Os=s.Lz.theme({"&":{background:"var(--jp-layout-color0)",color:"var(--jp-content-font-color1)"},".jp-CodeConsole &, .jp-Notebook &":{background:"transparent"},".cm-content":{caretColor:"var(--jp-editor-cursor-color)"},".cm-scroller":{fontFamily:"inherit"},".cm-cursor, .cm-dropCursor":{borderLeft:"var(--jp-code-cursor-width0) solid var(--jp-editor-cursor-color)"},".cm-selectionBackground, .cm-content ::selection":{backgroundColor:"var(--jp-editor-selected-background)"},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{backgroundColor:"var(--jp-editor-selected-focused-background)"},".cm-gutters":{borderRight:"1px solid var(--jp-border-color2)",backgroundColor:"var(--jp-layout-color2)"},".cm-gutter":{backgroundColor:"var(--jp-layout-color2)"},".cm-activeLine":{backgroundColor:"color-mix(in srgb, var(--jp-layout-color3) 25%, transparent)"},".cm-lineNumbers":{color:"var(--jp-ui-font-color2)"},".cm-searchMatch":{backgroundColor:"var(--jp-search-unselected-match-background-color)",color:"var(--jp-search-unselected-match-color)"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"var(--jp-search-selected-match-background-color) !important",color:"var(--jp-search-selected-match-color) !important"},".cm-tooltip":{backgroundColor:"var(--jp-layout-color1)"},".cm-builtin":{color:"var(--jp-mirror-editor-builtin-color)"}}),Ms=r.cr.define([{tag:De._A.meta,color:"var(--jp-mirror-editor-meta-color)"},{tag:De._A.heading,color:"var(--jp-mirror-editor-header-color)"},{tag:[De._A.heading1,De._A.heading2,De._A.heading3,De._A.heading4],color:"var(--jp-mirror-editor-header-color)",fontWeight:"bold"},{tag:De._A.keyword,color:"var(--jp-mirror-editor-keyword-color)",fontWeight:"bold"},{tag:De._A.atom,color:"var(--jp-mirror-editor-atom-color)"},{tag:De._A.number,color:"var(--jp-mirror-editor-number-color)"},{tag:[De._A.definition(De._A.name),De._A.function(De._A.definition(De._A.variableName))],color:"var(--jp-mirror-editor-def-color)"},{tag:De._A.standard(De._A.variableName),color:"var(--jp-mirror-editor-builtin-color)"},{tag:[De._A.special(De._A.variableName),De._A.self],color:"var(--jp-mirror-editor-variable-2-color)"},{tag:De._A.punctuation,color:"var(--jp-mirror-editor-punctuation-color)"},{tag:De._A.propertyName,color:"var(--jp-mirror-editor-property-color)"},{tag:De._A.operator,color:"var(--jp-mirror-editor-operator-color)",fontWeight:"bold"},{tag:De._A.comment,color:"var(--jp-mirror-editor-comment-color)",fontStyle:"italic"},{tag:De._A.string,color:"var(--jp-mirror-editor-string-color)"},{tag:[De._A.labelName,De._A.monospace,De._A.special(De._A.string)],color:"var(--jp-mirror-editor-string-2-color)"},{tag:De._A.bracket,color:"var(--jp-mirror-editor-bracket-color)"},{tag:De._A.tagName,color:"var(--jp-mirror-editor-tag-color)"},{tag:De._A.attributeName,color:"var(--jp-mirror-editor-attribute-color)"},{tag:De._A.quote,color:"var(--jp-mirror-editor-quote-color)"},{tag:De._A.link,color:"var(--jp-mirror-editor-link-color)",textDecoration:"underline"},{tag:[De._A.separator,De._A.derefOperator,De._A.paren],color:""},{tag:De._A.strong,fontWeight:"bold"},{tag:De._A.emphasis,fontStyle:"italic"},{tag:De._A.strikethrough,textDecoration:"line-through"},{tag:De._A.bool,color:"var(--jp-mirror-editor-keyword-color)",fontWeight:"bold"}]),_s=[Os,(0,r.y9)(Ms)];class Ts{constructor(){this._themeMap=new Map([["jupyter",Object.freeze({name:"jupyter",theme:_s})]])}get themes(){return Array.from(this._themeMap.values())}defaultTheme(){return this._themeMap.get("jupyter").theme}addTheme(e){if(this._themeMap.has(e.name))throw new Error(`A theme named '${e.name}' is already registered.`);this._themeMap.set(e.name,{displayName:e.name,...e})}getTheme(e){var t;const n=null===(t=this._themeMap.get(e))||void 0===t?void 0:t.theme;return null!=n?n:this.defaultTheme()}}!function(e){e.getDefaultThemes=function(e){const t=(null!=e?e:Te.wK).load("jupyterlab");return[Object.freeze({name:"codemirror",displayName:t.__("codemirror"),theme:[s.Lz.baseTheme({}),(0,r.y9)(r.Zt)]})]}}(Ts||(Ts={}));class Es{constructor(e,t){this.langPython=t,this.tree=(0,r.mv)(e.state),this.mark=s.NZ.mark({class:"cm-builtin"}),this.decorations=this.buildDeco(e),this.decoratedTo=e.viewport.to}update(e){let t=(0,r.mv)(e.state),{viewport:n}=e.view,i=e.changes.mapPos(this.decoratedTo,1);t.length=n.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=i):(t!=this.tree||e.viewportChanged)&&(this.tree=t,this.decorations=this.buildDeco(e.view),this.decoratedTo=n.to)}buildDeco(e){if(!this.tree.length)return s.NZ.none;let t=new i.vB;const n=i=>{var s;const r=i.node.cursor(),a=r.tree&&r.tree.prop(o.uY.mounted);if(a&&a.overlay&&(null===(s=i.node.enter(a.overlay[0].from+i.from,1))||void 0===s||s.cursor().iterate(n)),this.langPython.isActiveAt(e.state,i.from+1)&&"VariableName"===i.name){const n=e.state.sliceDoc(i.from,i.to);Ds.includes(n)&&t.add(i.from,i.to,this.mark)}};for(let{from:t,to:i}of e.visibleRanges)this.tree.iterate({enter:n,from:t,to:i});return t.finish()}}function Ns(e){return s.Z9.define((t=>new Es(t,e)),{decorations:e=>e.decorations})}const Ds=["abs","aiter","all","any","anext","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__"];class Ps{constructor(){this._modeList=[],this.addLanguage({name:"none",mime:"text/plain",support:new r.Yy(r.bj.define({parser:Ss("@top Program { }")}))})}addLanguage(e){var t;if(null!==(t=this.findByName(e.name))&&void 0!==t?t:this.findByMIME(e.mime,!0))throw new Error(`${e.mime} already registered`);this._modeList.push(this.makeSpec(e))}async getLanguage(e){const t=this.findBest(e);return t&&!t.support&&(t.support=await t.load()),t}getLanguages(){return[...this._modeList]}findByMIME(e,t=!1){if(Array.isArray(e)){for(let t=0;t-1&&t.substring(n+1,t.length);return i?this.findByExtension(i):null}findBest(e,t=!0){var n,i,s,r;const o="string"==typeof e?e:e.name,a="string"!=typeof e?e.mime:o,l="string"!=typeof e&&null!==(n=e.extensions)&&void 0!==n?n:[];return null!==(r=null!==(s=null!==(i=o?this.findByName(o):null)&&void 0!==i?i:a?this.findByMIME(a):null)&&void 0!==s?s:this.findByExtension(l))&&void 0!==r?r:t?this.findByMIME(Ft.defaultMimeType):null}async highlight(e,t,n){var i;t&&await this.getLanguage(t);const s=null===(i=null==t?void 0:t.support)||void 0===i?void 0:i.language;if(!s)return void n.appendChild(document.createTextNode(e));const r=s.parser.parse(e);let o=0;(0,De.DM)(r,Ms,((t,i,s)=>{t>o&&n.appendChild(document.createTextNode(e.slice(o,t)));const r=n.appendChild(document.createElement("span"));r.className=s,r.appendChild(document.createTextNode(e.slice(t,i))),o=i})),o(await n.e(6446).then(n.bind(n,76446))).cpp()},{name:"C++",displayName:s.__("C++"),mime:"text/x-c++src",extensions:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],load:async()=>(await n.e(6446).then(n.bind(n,76446))).cpp()},{name:"CQL",displayName:s.__("CQL"),mime:"text/x-cassandra",extensions:["cql"],load:()=>i("Cassandra")},{name:"CSS",displayName:s.__("CSS"),mime:"text/css",extensions:["css"],load:async()=>(await n.e(4448).then(n.bind(n,14448))).css()},{name:"HTML",displayName:s.__("HTML"),alias:["xhtml"],mime:"text/html",extensions:["html","htm","handlebars","hbs"],load:async()=>(await Promise.all([n.e(2e3),n.e(4448),n.e(3242)]).then(n.bind(n,53242))).html()},{name:"Java",displayName:s.__("Java"),mime:"text/x-java",extensions:["java"],load:async()=>(await n.e(1302).then(n.bind(n,31302))).java()},{name:"Javascript",displayName:s.__("Javascript"),alias:["ecmascript","js","node"],mime:["text/javascript","text/ecmascript","application/javascript","application/x-javascript","application/ecmascript"],extensions:["js","mjs","cjs"],load:async()=>(await n.e(2e3).then(n.bind(n,62e3))).javascript()},{name:"JSON",displayName:s.__("JSON"),alias:["json5"],mime:["application/json","application/x-json"],extensions:["json","map"],load:async()=>(await n.e(6367).then(n.bind(n,66367))).json()},{name:"JSX",displayName:s.__("JSX"),mime:"text/jsx",extensions:["jsx"],load:async()=>(await n.e(2e3).then(n.bind(n,62e3))).javascript({jsx:!0})},{name:"MariaDB SQL",displayName:s.__("MariaDB SQL"),mime:"text/x-mariadb",load:()=>i("MariaSQL")},{name:"Markdown",displayName:s.__("Markdown"),mime:"text/x-markdown",extensions:["md","markdown","mkd"],async load(){return(await Promise.all([n.e(2e3),n.e(4448),n.e(3242),n.e(1081)]).then(n.bind(n,71081))).markdown({codeLanguages:this._modeList})}},{name:"MS SQL",displayName:s.__("MS SQL"),mime:"text/x-mssql",load:()=>i("MSSQL")},{name:"MySQL",displayName:s.__("MySQL"),mime:"text/x-mysql",load:()=>i("MySQL")},{name:"PHP",displayName:s.__("PHP"),mime:["text/x-php","application/x-httpd-php","application/x-httpd-php-open"],extensions:["php","php3","php4","php5","php7","phtml"],load:async()=>(await Promise.all([n.e(2e3),n.e(4448),n.e(3242),n.e(3543)]).then(n.bind(n,93543))).php()},{name:"PLSQL",displayName:s.__("PLSQL"),mime:"text/x-plsql",extensions:["pls"],load:()=>i("PLSQL")},{name:"PostgreSQL",displayName:s.__("PostgreSQL"),mime:"text/x-pgsql",load:()=>i("PostgreSQL")},{name:"Python",displayName:s.__("Python"),mime:"text/x-python",extensions:["BUILD","bzl","py","pyw"],filename:/^(BUCK|BUILD)$/,async load(){const e=await n.e(2376).then(n.bind(n,52376));return new r.Yy(e.pythonLanguage,Ns(e.pythonLanguage))}},{name:"ipython",displayName:s.__("ipython"),mime:"text/x-ipython",async load(){const e=await n.e(2376).then(n.bind(n,52376));return new r.Yy(e.pythonLanguage,Ns(e.pythonLanguage))}},{name:"Rust",displayName:s.__("Rust"),mime:"text/x-rustsrc",extensions:["rs"],load:async()=>(await n.e(142).then(n.bind(n,60142))).rust()},{name:"SQL",displayName:s.__("SQL"),mime:["application/sql","text/x-sql"],extensions:["sql"],load:()=>i("StandardSQL")},{name:"SQLite",displayName:s.__("SQLite"),mime:"text/x-sqlite",load:()=>i("SQLite")},{name:"TSX",displayName:s.__("TSX"),alias:["TypeScript-JSX"],mime:"text/typescript-jsx",extensions:["tsx"],load:async()=>(await n.e(2e3).then(n.bind(n,62e3))).javascript({jsx:!0,typescript:!0})},{name:"TypeScript",displayName:s.__("TypeScript"),alias:["ts"],mime:"application/typescript",extensions:["ts"],load:async()=>(await n.e(2e3).then(n.bind(n,62e3))).javascript({typescript:!0})},{name:"WebAssembly",displayName:s.__("WebAssembly"),mime:"text/webassembly",extensions:["wat","wast"],load:async()=>(await n.e(8665).then(n.bind(n,48665))).wast()},{name:"XML",displayName:s.__("XML"),alias:["rss","wsdl","xsd"],mime:["application/xml","text/xml"],extensions:["xml","xsl","xsd","svg"],load:async()=>(await n.e(3426).then(n.bind(n,53426))).xml()},{name:"APL",displayName:s.__("APL"),mime:"text/apl",extensions:["dyalog","apl"],load:async()=>t((await n.e(5351).then(n.bind(n,55351))).apl)},{name:"PGP",displayName:s.__("PGP"),alias:["asciiarmor"],mime:["application/pgp","application/pgp-encrypted","application/pgp-keys","application/pgp-signature"],extensions:["asc","pgp","sig"],load:async()=>t((await n.e(6292).then(n.bind(n,46292))).asciiArmor)},{name:"ASN.1",displayName:s.__("ASN.1"),mime:"text/x-ttcn-asn",extensions:["asn","asn1"],load:async()=>t((await n.e(7727).then(n.bind(n,77727))).asn1({}))},{name:"Asterisk",displayName:s.__("Asterisk"),mime:"text/x-asterisk",filename:/^extensions\.conf$/i,load:async()=>t((await n.e(2682).then(n.bind(n,92682))).asterisk)},{name:"Brainfuck",displayName:s.__("Brainfuck"),mime:"text/x-brainfuck",extensions:["b","bf"],load:async()=>t((await n.e(8955).then(n.bind(n,68955))).brainfuck)},{name:"Cobol",displayName:s.__("Cobol"),mime:"text/x-cobol",extensions:["cob","cpy"],load:async()=>t((await n.e(5595).then(n.bind(n,35595))).cobol)},{name:"C#",displayName:s.__("C#"),alias:["csharp","cs"],mime:"text/x-csharp",extensions:["cs"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).csharp)},{name:"Clojure",displayName:s.__("Clojure"),mime:"text/x-clojure",extensions:["clj","cljc","cljx"],load:async()=>t((await n.e(3024).then(n.bind(n,73024))).clojure)},{name:"ClojureScript",displayName:s.__("ClojureScript"),mime:"text/x-clojurescript",extensions:["cljs"],load:async()=>t((await n.e(3024).then(n.bind(n,73024))).clojure)},{name:"Closure Stylesheets (GSS)",displayName:s.__("Closure Stylesheets (GSS)"),mime:"text/x-gss",extensions:["gss"],load:async()=>t((await n.e(5687).then(n.bind(n,45687))).gss)},{name:"CMake",displayName:s.__("CMake"),mime:"text/x-cmake",extensions:["cmake","cmake.in"],filename:/^CMakeLists\.txt$/,load:async()=>t((await n.e(7951).then(n.bind(n,87951))).cmake)},{name:"CoffeeScript",displayName:s.__("CoffeeScript"),alias:["coffee","coffee-script"],mime:["application/vnd.coffeescript","text/coffeescript","text/x-coffeescript"],extensions:["coffee"],load:async()=>t((await n.e(8137).then(n.bind(n,98137))).coffeeScript)},{name:"Common Lisp",displayName:s.__("Common Lisp"),alias:["lisp"],mime:"text/x-common-lisp",extensions:["cl","lisp","el"],load:async()=>t((await n.e(5455).then(n.bind(n,45455))).commonLisp)},{name:"Cypher",displayName:s.__("Cypher"),mime:"application/x-cypher-query",extensions:["cyp","cypher"],load:async()=>t((await n.e(4501).then(n.bind(n,4501))).cypher)},{name:"Cython",displayName:s.__("Cython"),mime:"text/x-cython",extensions:["pyx","pxd","pxi"],load:async()=>t((await n.e(5260).then(n.bind(n,15260))).cython)},{name:"Crystal",displayName:s.__("Crystal"),mime:"text/x-crystal",extensions:["cr"],load:async()=>t((await n.e(5258).then(n.bind(n,95258))).crystal)},{name:"D",displayName:s.__("D"),mime:"text/x-d",extensions:["d"],load:async()=>t((await n.e(4424).then(n.bind(n,74424))).d)},{name:"Dart",displayName:s.__("Dart"),mime:["application/dart","text/x-dart"],extensions:["dart"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).dart)},{name:"diff",displayName:s.__("diff"),mime:"text/x-diff",extensions:["diff","patch"],load:async()=>t((await n.e(8421).then(n.bind(n,88421))).diff)},{name:"Dockerfile",displayName:s.__("Dockerfile"),mime:"text/x-dockerfile",filename:/^Dockerfile$/,load:async()=>t((await n.e(6240).then(n.bind(n,36240))).dockerFile)},{name:"DTD",displayName:s.__("DTD"),mime:"application/xml-dtd",extensions:["dtd"],load:async()=>t((await n.e(4872).then(n.bind(n,4872))).dtd)},{name:"Dylan",displayName:s.__("Dylan"),mime:"text/x-dylan",extensions:["dylan","dyl","intr"],load:async()=>t((await n.e(8586).then(n.bind(n,98586))).dylan)},{name:"EBNF",displayName:s.__("EBNF"),mime:"text/x-ebnf",load:async()=>t((await n.e(1653).then(n.bind(n,71653))).ebnf)},{name:"ECL",displayName:s.__("ECL"),mime:"text/x-ecl",extensions:["ecl"],load:async()=>t((await n.e(8820).then(n.bind(n,28820))).ecl)},{name:"edn",displayName:s.__("edn"),mime:"application/edn",extensions:["edn"],load:async()=>t((await n.e(3024).then(n.bind(n,73024))).clojure)},{name:"Eiffel",displayName:s.__("Eiffel"),mime:"text/x-eiffel",extensions:["e"],load:async()=>t((await n.e(7077).then(n.bind(n,27077))).eiffel)},{name:"Elm",displayName:s.__("Elm"),mime:"text/x-elm",extensions:["elm"],load:async()=>t((await n.e(4704).then(n.bind(n,94704))).elm)},{name:"Erlang",displayName:s.__("Erlang"),mime:"text/x-erlang",extensions:["erl"],load:async()=>t((await n.e(29).then(n.bind(n,60029))).erlang)},{name:"Esper",displayName:s.__("Esper"),mime:"text/x-esper",load:async()=>t((await n.e(6828).then(n.bind(n,16828))).esper)},{name:"Factor",displayName:s.__("Factor"),mime:"text/x-factor",extensions:["factor"],load:async()=>t((await n.e(5945).then(n.bind(n,5945))).factor)},{name:"FCL",displayName:s.__("FCL"),mime:"text/x-fcl",load:async()=>t((await n.e(2681).then(n.bind(n,62681))).fcl)},{name:"Forth",displayName:s.__("Forth"),mime:"text/x-forth",extensions:["forth","fth","4th"],load:async()=>t((await n.e(899).then(n.bind(n,50899))).forth)},{name:"Fortran",displayName:s.__("Fortran"),mime:"text/x-fortran",extensions:["f","for","f77","f90","f95"],load:async()=>t((await n.e(6742).then(n.bind(n,76742))).fortran)},{name:"F#",displayName:s.__("F#"),alias:["fsharp"],mime:"text/x-fsharp",extensions:["fs"],load:async()=>t((await n.e(252).then(n.bind(n,252))).fSharp)},{name:"Gas",displayName:s.__("Gas"),mime:"text/x-gas",extensions:["s"],load:async()=>t((await n.e(2293).then(n.bind(n,82293))).gas)},{name:"Gherkin",displayName:s.__("Gherkin"),mime:"text/x-feature",extensions:["feature"],load:async()=>t((await n.e(8334).then(n.bind(n,8334))).gherkin)},{name:"Go",displayName:s.__("Go"),mime:"text/x-go",extensions:["go"],load:async()=>t((await n.e(1408).then(n.bind(n,61408))).go)},{name:"Groovy",displayName:s.__("Groovy"),mime:"text/x-groovy",extensions:["groovy","gradle"],filename:/^Jenkinsfile$/,load:async()=>t((await n.e(5292).then(n.bind(n,25292))).groovy)},{name:"Haskell",displayName:s.__("Haskell"),mime:"text/x-haskell",extensions:["hs"],load:async()=>t((await n.e(7220).then(n.bind(n,27220))).haskell)},{name:"Haxe",displayName:s.__("Haxe"),mime:"text/x-haxe",extensions:["hx"],load:async()=>t((await n.e(9602).then(n.bind(n,59602))).haxe)},{name:"HXML",displayName:s.__("HXML"),mime:"text/x-hxml",extensions:["hxml"],load:async()=>t((await n.e(9602).then(n.bind(n,59602))).hxml)},{name:"HTTP",displayName:s.__("HTTP"),mime:"message/http",load:async()=>t((await n.e(9638).then(n.bind(n,49638))).http)},{name:"IDL",displayName:s.__("IDL"),mime:"text/x-idl",extensions:["pro"],load:async()=>t((await n.e(4451).then(n.bind(n,34451))).idl)},{name:"JSON-LD",displayName:s.__("JSON-LD"),alias:["jsonld"],mime:"application/ld+json",extensions:["jsonld"],load:async()=>t((await n.e(7197).then(n.bind(n,37197))).jsonld)},{name:"Jinja2",displayName:s.__("Jinja2"),mime:"text/jinja2",extensions:["j2","jinja","jinja2"],load:async()=>t((await n.e(636).then(n.bind(n,70636))).jinja2)},{name:"Julia",displayName:s.__("Julia"),mime:"text/x-julia",extensions:["jl"],load:async()=>t((await n.e(5525).then(n.bind(n,15525))).julia)},{name:"Kotlin",displayName:s.__("Kotlin"),mime:"text/x-kotlin",extensions:["kt"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).kotlin)},{name:"LESS",displayName:s.__("LESS"),mime:"text/x-less",extensions:["less"],load:async()=>t((await n.e(5687).then(n.bind(n,45687))).less)},{name:"LiveScript",displayName:s.__("LiveScript"),alias:["ls"],mime:"text/x-livescript",extensions:["ls"],load:async()=>t((await n.e(7911).then(n.bind(n,17911))).liveScript)},{name:"Lua",displayName:s.__("Lua"),mime:"text/x-lua",extensions:["lua"],load:async()=>t((await n.e(6162).then(n.bind(n,96162))).lua)},{name:"mIRC",displayName:s.__("mIRC"),mime:"text/mirc",load:async()=>t((await n.e(567).then(n.bind(n,60567))).mirc)},{name:"Mathematica",displayName:s.__("Mathematica"),mime:"text/x-mathematica",extensions:["m","nb","wl","wls"],load:async()=>t((await n.e(1524).then(n.bind(n,11524))).mathematica)},{name:"Modelica",displayName:s.__("Modelica"),mime:"text/x-modelica",extensions:["mo"],load:async()=>t((await n.e(8678).then(n.bind(n,48678))).modelica)},{name:"MUMPS",displayName:s.__("MUMPS"),mime:"text/x-mumps",extensions:["mps"],load:async()=>t((await n.e(560).then(n.bind(n,70560))).mumps)},{name:"mbox",displayName:s.__("mbox"),mime:"application/mbox",extensions:["mbox"],load:async()=>t((await n.e(9114).then(n.bind(n,19114))).mbox)},{name:"Nginx",displayName:s.__("Nginx"),mime:"text/x-nginx-conf",filename:/nginx.*\.conf$/i,load:async()=>t((await n.e(3180).then(n.bind(n,33180))).nginx)},{name:"NSIS",displayName:s.__("NSIS"),mime:"text/x-nsis",extensions:["nsh","nsi"],load:async()=>t((await n.e(357).then(n.bind(n,80357))).nsis)},{name:"NTriples",displayName:s.__("NTriples"),mime:["application/n-triples","application/n-quads","text/n-triples"],extensions:["nt","nq"],load:async()=>t((await n.e(1001).then(n.bind(n,51001))).ntriples)},{name:"Objective-C",displayName:s.__("Objective-C"),alias:["objective-c","objc"],mime:"text/x-objectivec",extensions:["m"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).objectiveC)},{name:"Objective-C++",displayName:s.__("Objective-C++"),alias:["objective-c++","objc++"],mime:"text/x-objectivec++",extensions:["mm"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).objectiveCpp)},{name:"OCaml",displayName:s.__("OCaml"),mime:"text/x-ocaml",extensions:["ml","mli","mll","mly"],load:async()=>t((await n.e(252).then(n.bind(n,252))).oCaml)},{name:"Octave",displayName:s.__("Octave"),mime:"text/x-octave",extensions:["m"],load:async()=>t((await n.e(7486).then(n.bind(n,7486))).octave)},{name:"Oz",displayName:s.__("Oz"),mime:"text/x-oz",extensions:["oz"],load:async()=>t((await n.e(8539).then(n.bind(n,88539))).oz)},{name:"Pascal",displayName:s.__("Pascal"),mime:"text/x-pascal",extensions:["p","pas"],load:async()=>t((await n.e(1374).then(n.bind(n,21374))).pascal)},{name:"Perl",displayName:s.__("Perl"),mime:"text/x-perl",extensions:["pl","pm"],load:async()=>t((await n.e(3191).then(n.bind(n,33191))).perl)},{name:"Pig",displayName:s.__("Pig"),mime:"text/x-pig",extensions:["pig"],load:async()=>t((await n.e(8188).then(n.bind(n,58188))).pig)},{name:"PowerShell",displayName:s.__("PowerShell"),mime:"application/x-powershell",extensions:["ps1","psd1","psm1"],load:async()=>t((await n.e(8727).then(n.bind(n,8727))).powerShell)},{name:"Properties files",displayName:s.__("Properties files"),alias:["ini","properties"],mime:"text/x-properties",extensions:["properties","ini","in"],load:async()=>t((await n.e(6099).then(n.bind(n,6099))).properties)},{name:"ProtoBuf",displayName:s.__("ProtoBuf"),mime:"text/x-protobuf",extensions:["proto"],load:async()=>t((await n.e(6473).then(n.bind(n,96473))).protobuf)},{name:"Puppet",displayName:s.__("Puppet"),mime:"text/x-puppet",extensions:["pp"],load:async()=>t((await n.e(7364).then(n.bind(n,87364))).puppet)},{name:"Q",displayName:s.__("Q"),mime:"text/x-q",extensions:["q"],load:async()=>t((await n.e(5515).then(n.bind(n,95515))).q)},{name:"R",displayName:s.__("R"),alias:["rscript"],mime:"text/x-rsrc",extensions:["r","R"],load:async()=>t((await n.e(7838).then(n.bind(n,67838))).r)},{name:"RPM Changes",displayName:s.__("RPM Changes"),mime:"text/x-rpm-changes",load:async()=>t((await n.e(4401).then(n.bind(n,34401))).rpmChanges)},{name:"RPM Spec",displayName:s.__("RPM Spec"),mime:"text/x-rpm-spec",extensions:["spec"],load:async()=>t((await n.e(4401).then(n.bind(n,34401))).rpmSpec)},{name:"Ruby",displayName:s.__("Ruby"),alias:["jruby","macruby","rake","rb","rbx"],mime:"text/x-ruby",extensions:["rb"],load:async()=>t((await n.e(5350).then(n.bind(n,75350))).ruby)},{name:"SAS",displayName:s.__("SAS"),mime:"text/x-sas",extensions:["sas"],load:async()=>t((await n.e(1553).then(n.bind(n,1553))).sas)},{name:"Scala",displayName:s.__("Scala"),mime:"text/x-scala",extensions:["scala"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).scala)},{name:"Scheme",displayName:s.__("Scheme"),mime:"text/x-scheme",extensions:["scm","ss"],load:async()=>t((await n.e(1405).then(n.bind(n,21405))).scheme)},{name:"SCSS",displayName:s.__("SCSS"),mime:"text/x-scss",extensions:["scss"],load:async()=>t((await n.e(5687).then(n.bind(n,45687))).sCSS)},{name:"Shell",displayName:s.__("Shell"),alias:["bash","sh","zsh"],mime:["text/x-sh","application/x-sh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load:async()=>t((await n.e(4922).then(n.bind(n,94922))).shell)},{name:"Sieve",displayName:s.__("Sieve"),mime:"application/sieve",extensions:["siv","sieve"],load:async()=>t((await n.e(1066).then(n.bind(n,11066))).sieve)},{name:"Smalltalk",displayName:s.__("Smalltalk"),mime:"text/x-stsrc",extensions:["st"],load:async()=>t((await n.e(9981).then(n.bind(n,19981))).smalltalk)},{name:"Solr",displayName:s.__("Solr"),mime:"text/x-solr",load:async()=>t((await n.e(5106).then(n.bind(n,35106))).solr)},{name:"SML",displayName:s.__("SML"),mime:"text/x-sml",extensions:["sml","sig","fun","smackspec"],load:async()=>t((await n.e(252).then(n.bind(n,252))).sml)},{name:"SPARQL",displayName:s.__("SPARQL"),alias:["sparul"],mime:"application/sparql-query",extensions:["rq","sparql"],load:async()=>t((await n.e(8391).then(n.bind(n,38391))).sparql)},{name:"Spreadsheet",displayName:s.__("Spreadsheet"),alias:["excel","formula"],mime:"text/x-spreadsheet",load:async()=>t((await n.e(786).then(n.bind(n,40786))).spreadsheet)},{name:"Squirrel",displayName:s.__("Squirrel"),mime:"text/x-squirrel",extensions:["nut"],load:async()=>t((await n.e(3722).then(n.bind(n,3722))).squirrel)},{name:"Stylus",displayName:s.__("Stylus"),mime:"text/x-styl",extensions:["styl"],load:async()=>t((await n.e(4756).then(n.bind(n,54756))).stylus)},{name:"Swift",displayName:s.__("Swift"),mime:"text/x-swift",extensions:["swift"],load:async()=>t((await n.e(647).then(n.bind(n,647))).swift)},{name:"sTeX",displayName:s.__("sTeX"),mime:"text/x-stex",load:async()=>t((await n.e(3220).then(n.bind(n,33220))).stex)},{name:"LaTeX",displayName:s.__("LaTeX"),alias:["tex"],mime:"text/x-latex",extensions:["text","ltx","tex"],load:async()=>t((await n.e(3220).then(n.bind(n,33220))).stex)},{name:"SystemVerilog",displayName:s.__("SystemVerilog"),mime:"text/x-systemverilog",extensions:["v","sv","svh"],load:async()=>t((await n.e(7230).then(n.bind(n,77230))).verilog)},{name:"Tcl",displayName:s.__("Tcl"),mime:"text/x-tcl",extensions:["tcl"],load:async()=>t((await n.e(6643).then(n.bind(n,76643))).tcl)},{name:"Textile",displayName:s.__("Textile"),mime:"text/x-textile",extensions:["textile"],load:async()=>t((await n.e(6205).then(n.bind(n,86205))).textile)},{name:"TiddlyWiki",displayName:s.__("TiddlyWiki"),mime:"text/x-tiddlywiki",load:async()=>t((await n.e(8122).then(n.bind(n,38122))).tiddlyWiki)},{name:"Tiki wiki",displayName:s.__("Tiki wiki"),mime:"text/tiki",load:async()=>t((await n.e(3805).then(n.bind(n,63805))).tiki)},{name:"TOML",displayName:s.__("TOML"),mime:"text/x-toml",extensions:["toml"],load:async()=>t((await n.e(950).then(n.bind(n,60950))).toml)},{name:"troff",displayName:s.__("troff"),mime:"text/troff",extensions:["1","2","3","4","5","6","7","8","9"],load:async()=>t((await n.e(615).then(n.bind(n,70615))).troff)},{name:"TTCN",displayName:s.__("TTCN"),mime:"text/x-ttcn",extensions:["ttcn","ttcn3","ttcnpp"],load:async()=>t((await n.e(9779).then(n.bind(n,79779))).ttcn)},{name:"TTCN_CFG",displayName:s.__("TTCN_CFG"),mime:"text/x-ttcn-cfg",extensions:["cfg"],load:async()=>t((await n.e(132).then(n.bind(n,80132))).ttcnCfg)},{name:"Turtle",displayName:s.__("Turtle"),mime:"text/turtle",extensions:["ttl"],load:async()=>t((await n.e(9684).then(n.bind(n,99684))).turtle)},{name:"Web IDL",displayName:s.__("Web IDL"),mime:"text/x-webidl",extensions:["webidl"],load:async()=>t((await n.e(1911).then(n.bind(n,71911))).webIDL)},{name:"VB.NET",displayName:s.__("VB.NET"),mime:"text/x-vb",extensions:["vb"],load:async()=>t((await n.e(5298).then(n.bind(n,25298))).vb)},{name:"VBScript",displayName:s.__("VBScript"),mime:"text/vbscript",extensions:["vbs"],load:async()=>t((await n.e(9865).then(n.bind(n,59865))).vbScript)},{name:"Velocity",displayName:s.__("Velocity"),mime:"text/velocity",extensions:["vtl"],load:async()=>t((await n.e(4957).then(n.bind(n,24957))).velocity)},{name:"Verilog",displayName:s.__("Verilog"),mime:"text/x-verilog",extensions:["v"],load:async()=>t((await n.e(7230).then(n.bind(n,77230))).verilog)},{name:"VHDL",displayName:s.__("VHDL"),mime:"text/x-vhdl",extensions:["vhd","vhdl"],load:async()=>t((await n.e(1560).then(n.bind(n,51560))).vhdl)},{name:"XQuery",displayName:s.__("XQuery"),mime:"application/xquery",extensions:["xy","xquery"],load:async()=>t((await n.e(6590).then(n.bind(n,86590))).xQuery)},{name:"Yacas",displayName:s.__("Yacas"),mime:"text/x-yacas",extensions:["ys"],load:async()=>t((await n.e(6211).then(n.bind(n,26211))).yacas)},{name:"YAML",displayName:s.__("YAML"),alias:["yml"],mime:["text/x-yaml","text/yaml"],extensions:["yaml","yml"],load:async()=>t((await n.e(9561).then(n.bind(n,69561))).yaml)},{name:"Z80",displayName:s.__("Z80"),mime:"text/x-z80",extensions:["z80"],load:async()=>t((await n.e(822).then(n.bind(n,90822))).z80)},{name:"mscgen",displayName:s.__("mscgen"),mime:"text/x-mscgen",extensions:["mscgen","mscin","msc"],load:async()=>t((await n.e(9371).then(n.bind(n,39371))).mscgen)},{name:"xu",displayName:s.__("xu"),mime:"text/x-xu",extensions:["xu"],load:async()=>t((await n.e(9371).then(n.bind(n,39371))).xu)},{name:"msgenny",displayName:s.__("msgenny"),mime:"text/x-msgenny",extensions:["msgenny"],load:async()=>t((await n.e(9371).then(n.bind(n,39371))).msgenny)}]}}(Ps||(Ps={})),function(e){e.createEditor=function(e,t,n,r){const o=t.getInitialExtensions();return o.push(...n),new s.Lz({state:i.$t.create({doc:r,extensions:o}),parent:e})}}(Rs||(Rs={})),function(e){e.findNext=function(e,t,n=0,i=1/0){for(i=Math.min(e.length-1,i);n<=i;){let s=Math.floor(.5*(n+i));const r=e[s].position;if(rt)return n}else{if(!(r>t))return s;if((i=s-1)>0&&e[i].position0?n-1:0;return e[s].position>=t?s:null}}(js||(js={})),new Ce.Token("@jupyterlab/codemirror:IEditorExtensionRegistry","A registry for CodeMirror extension factories."),new Ce.Token("@jupyterlab/codemirror:IEditorLanguageRegistry","A registry for CodeMirror languages."),new Ce.Token("@jupyterlab/codemirror:IEditorThemeRegistry","A registry for CodeMirror theme.");var Ls,Bs,Is=n(14041),Fs=n(25873),$s=n(55237),zs=n.n($s),Hs=n(86823);function qs(...e){return function(e){return e.map((e=>e&&"object"==typeof e?Object.keys(e).map((t=>!!e[t]&&t)):"string"==typeof e?e.split(/\s+/):[])).reduce(((e,t)=>e.concat(t)),[]).filter((e=>!!e))}(e).join(" ")}!function(e){const t={breadCrumb:{container:{$nest:{"&:first-child svg":{bottom:"1px",marginLeft:"0px",position:"relative"},"&:hover":{backgroundColor:"var(--jp-layout-color2)"},".jp-mod-dropTarget&":{backgroundColor:"var(--jp-brand-color2)",opacity:.7}}},element:{borderRadius:"var(--jp-border-radius)",cursor:"pointer",margin:"0px 2px",padding:"0px 2px",height:"16px",width:"16px",verticalAlign:"middle"}},commandPaletteHeader:{container:{height:"14px",margin:"0 14px 0 auto"},element:{height:"14px",width:"14px"},options:{elementPosition:"center"}},commandPaletteItem:{element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},launcherCard:{container:{height:"52px",width:"52px"},element:{height:"52px",width:"52px"},options:{elementPosition:"center"}},launcherSection:{container:{boxSizing:"border-box",marginRight:"12px",height:"32px",width:"32px"},element:{height:"32px",width:"32px"},options:{elementPosition:"center"}},listing:{container:{flex:"0 0 20px",marginRight:"4px",position:"relative"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},listingHeaderItem:{container:{display:"inline",height:"16px",width:"16px"},element:{height:"auto",margin:"-2px 0 0 0",width:"20px"},options:{elementPosition:"center"}},mainAreaTab:{container:{$nest:{".lm-DockPanel-tabBar &":{marginRight:"4px"}}},element:{$nest:{".lm-DockPanel-tabBar &":{height:"14px",width:"14px"}}},options:{elementPosition:"center"}},menuItem:{container:{display:"inline-block",verticalAlign:"middle"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},runningItem:{container:{margin:"0px 4px 0px 4px"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},select:{container:{pointerEvents:"none"},element:{position:"absolute",height:"auto",width:"16px"}},settingsEditor:{container:{display:"flex",flex:"0 0 20px",margin:"0 3px 0 0",position:"relative",height:"20px",width:"20px"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}},sideBar:{element:{height:"auto",width:"20px"},options:{elementPosition:"center"}},splash:{container:{animation:"0.3s fade-in linear forwards",height:"100%",width:"100%",zIndex:1},element:{width:"100px"},options:{elementPosition:"center"}},statusBar:{element:{left:"0px",top:"0px",height:"18px",width:"20px",position:"relative"}},toolbarButton:{container:{display:"inline-block",verticalAlign:"middle"},element:{height:"16px",width:"16px"},options:{elementPosition:"center"}}};function n(e){return{container:{alignItems:"center",display:"flex"},element:{display:"block",...e}}}const i={center:n({margin:"0 auto",width:"100%"}),top:n({margin:"0 0 auto 0"}),right:n({margin:"0 0 0 auto"}),bottom:n({margin:"auto 0 0 0"}),left:n({margin:"0 auto 0 0"}),"top right":n({margin:"0 0 auto auto"}),"bottom right":n({margin:"auto 0 0 auto"}),"bottom left":n({margin:"auto auto 0 0"}),"top left":n({margin:"0 auto 0 auto"})};function s(e){return{element:{height:e,width:e}}}const r={small:s("14px"),normal:s("16px"),large:s("20px"),xlarge:s("24px")};const o=new Map;e.styleClass=function(e){if(!e||0===Object.keys(e).length)return"";let{elementPosition:n,elementSize:s,stylesheet:a,...l}=e;const h={...n&&{elementPosition:n},...s&&{elementSize:s}},c="string"==typeof a&&0===Object.keys(l).length,u=c?[a,n,s].join(","):"";if(c&&o.has(u))return o.get(u);const f=function(e){return e?(Array.isArray(e)||(e=[e]),e.map((e=>"string"==typeof e?t[e]:e))):[]}(a);f.push({element:l,options:h});const d=function(e){var t;return(0,Hs.iF)({...e.container,$nest:{...null===(t=e.container)||void 0===t?void 0:t.$nest,svg:e.element}})}(function(e){const t=Object.assign({},...e.map((e=>e.options)));return t.elementPosition&&e.unshift(i[t.elementPosition]),t.elementSize&&e.unshift(r[t.elementSize]),function(e){return{container:Object.assign({},...e.map((e=>e.container))),element:Object.assign({},...e.map((e=>e.element)))}}(e)}(f));return c&&o.set(u,d),d}}(Ls||(Ls={}));class Vs{static remove(e){for(;e.firstChild;)e.firstChild.remove();return e.className="",e}static resolve({icon:e}){if(e instanceof Vs)return e;if("string"==typeof e){return Vs._instances.get(e)||(Vs._debug&&console.warn(`Lookup failed for icon, creating loading icon. icon: ${e}`),new Vs({name:e,svgstr:zs(),_loading:!0}))}return new Vs(e)}static resolveElement({icon:e,iconClass:t,fallback:n,...i}){return Bs.isResolvable(e)?Vs.resolve({icon:e}).element(i):!t&&n?n.element(i):(i.className=qs(t,i.className),Bs.blankElement(i))}static resolveReact({icon:e,iconClass:t,fallback:n,...i}){if(!Bs.isResolvable(e))return!t&&n?Is.createElement(n.react,{...i}):(i.className=qs(t,i.className),Is.createElement(Bs.blankReact,{...i}));const s=Vs.resolve({icon:e});return Is.createElement(s.react,{...i})}static resolveSvg({name:e,svgstr:t}){const n=(new DOMParser).parseFromString(Bs.svgstrShim(t),"image/svg+xml"),i=n.querySelector("parsererror");if(i){const n=`SVG HTML was malformed for LabIcon instance.\nname: ${e}, svgstr: ${t}`;return Vs._debug?(console.error(n),i):(console.warn(n),null)}return n.documentElement}static toggleDebug(e){Vs._debug=null!=e?e:!Vs._debug}constructor({name:e,svgstr:t,render:n,unrender:i,_loading:s=!1}){if(this._props={},this._svgReplaced=new Me.Signal(this),this._svgElement=void 0,this._svgInnerHTML=void 0,this._svgReactAttrs=void 0,!e||!t)return console.error(`When defining a new LabIcon, name and svgstr must both be non-empty strings. name: ${e}, svgstr: ${t}`),Ws;if(this._loading=s,Vs._instances.has(e)){const n=Vs._instances.get(e);return this._loading?(n.svgstr=t,this._loading=!1,n):(Vs._debug&&console.warn(`Redefining previously loaded icon svgstr. name: ${e}, svgstrOld: ${n.svgstr}, svgstr: ${t}`),n.svgstr=t,n)}this.name=e,this.react=this._initReact(e),this.svgstr=t,this._initRender({render:n,unrender:i}),Vs._instances.set(this.name,this)}bindprops(e){const t=Object.create(this);return t._props=e,t.react=t._initReact(t.name+"_bind"),t}element(e={}){var t;let{className:n,container:i,label:s,title:r,tag:o="div",...a}={...this._props,...e};const l=null==i?void 0:i.firstChild;if((null===(t=null==l?void 0:l.dataset)||void 0===t?void 0:t.iconId)===this._uuid)return l;if(!this.svgElement)return document.createElement("div");if(i)for(;i.firstChild;)i.firstChild.remove();else o&&(i=document.createElement(o));const h=this.svgElement.cloneNode(!0);return i?(null!=s&&(i.textContent=s),Bs.initContainer({container:i,className:n,styleProps:a,title:r}),i.appendChild(h),i):(s&&console.warn(),h)}render(e,t){var n;let i=null===(n=null==t?void 0:t.children)||void 0===n?void 0:n[0];"string"!=typeof i&&(i=void 0),this.element({container:e,label:i,...null==t?void 0:t.props})}get svgElement(){return void 0===this._svgElement&&(this._svgElement=this._initSvg({uuid:this._uuid})),this._svgElement}get svgInnerHTML(){return void 0===this._svgInnerHTML&&(null===this.svgElement?this._svgInnerHTML=null:this._svgInnerHTML=this.svgElement.innerHTML),this._svgInnerHTML}get svgReactAttrs(){return void 0===this._svgReactAttrs&&(null===this.svgElement?this._svgReactAttrs=null:this._svgReactAttrs=function(e,{ignore:t=[]}={}){return e.getAttributeNames().reduce(((n,i)=>("style"===i||t.includes(i)||(i.startsWith("data")?n[i]=e.getAttribute(i):n[$t.Text.camelCase(i)]=e.getAttribute(i)),n)),{})}(this.svgElement,{ignore:["data-icon-id"]})),this._svgReactAttrs}get svgstr(){return this._svgstr}set svgstr(e){this._svgstr=e;const t=Ce.UUID.uuid4(),n=this._uuid;this._uuid=t,this._svgElement=void 0,this._svgInnerHTML=void 0,this._svgReactAttrs=void 0,document.querySelectorAll(`[data-icon-id="${n}"]`).forEach((e=>{this.svgElement&&e.replaceWith(this.svgElement.cloneNode(!0))})),this._svgReplaced.emit()}_initReact(e){const t=Is.forwardRef(((e={},t)=>{const{className:n,container:i,label:s,title:r,slot:o,tag:a="div",...l}={...this._props,...e},[,h]=Is.useState(this._uuid);Is.useEffect((()=>{const e=()=>{h(this._uuid)};return this._svgReplaced.connect(e),()=>{this._svgReplaced.disconnect(e)}}));const c=null!=a?a:Is.Fragment;if(!this.svgInnerHTML||!this.svgReactAttrs)return Is.createElement(Is.Fragment,null);const u={...this.svgReactAttrs};a||Object.assign(u,{className:n||l?qs(n,Ls.styleClass(l)):void 0,title:r,slot:o});const f=Is.createElement("svg",{...u,...this.svgReactAttrs,dangerouslySetInnerHTML:{__html:this.svgInnerHTML},ref:t});if(i)return Bs.initContainer({container:i,className:n,styleProps:l,title:r}),Is.createElement(Is.Fragment,null,f,s);{let e={};return c!==Is.Fragment&&(e={className:n||l?qs(n,Ls.styleClass(l)):void 0,title:r,slot:o}),Is.createElement(c,{...e},f,s)}}));return t.displayName=`LabIcon_${e}`,t}_initRender({render:e,unrender:t}){e?(this.render=e,t&&(this.unrender=t)):t&&console.warn("In _initRender, ignoring unrender arg since render is undefined")}_initSvg({title:e,uuid:t}={}){const n=Vs.resolveSvg(this);return n?("parsererror"!==n.tagName&&(n.dataset.icon=this.name,t&&(n.dataset.iconId=t),e&&Bs.setTitleSvg(n,e)),n):n}}Vs._debug=!1,Vs._instances=new Map,function(e){function t({container:e,className:t,styleProps:n,title:i}){null!=i&&(e.title=i);const s=Ls.styleClass(n);if(null!=t){const n=qs(t,s);return e.className=n,n}return s?(e.classList.add(s),s):""}e.blankElement=function({className:t="",container:n,label:i,title:s,tag:r="div",slot:o,...a}){if((null==n?void 0:n.className)===t)return n;if(n)for(;n.firstChild;)n.firstChild.remove();else n=document.createElement(null!=r?r:"div");return null!=i&&(n.textContent=i),e.initContainer({container:n,className:t,styleProps:a,title:s}),n},e.blankReact=Is.forwardRef((({className:e="",container:n,label:i,title:s,tag:r="div",...o},a)=>{const l=null!=r?r:"div";return n?(t({container:n,className:e,styleProps:o,title:s}),Is.createElement(Is.Fragment,null)):Is.createElement(l,{className:qs(e,Ls.styleClass(o))},a&&Gs.react({ref:a}),i)})),e.blankReact.displayName="BlankReact",e.initContainer=t,e.isResolvable=function(e){return!(!e||!("string"==typeof e||e.name&&e.svgstr))},e.setTitleSvg=function(e,t){const n=e.getElementsByTagName("title");if(n.length)n[0].textContent=t;else{const n=document.createElement("title");n.textContent=t,e.appendChild(n)}},e.svgstrShim=function(e,t=!0){const[,n,i]=decodeURIComponent(e).replace(/>\s*\n\s*<").replace(/\s*\n\s*/g," ").match(t?/^(?:data:.*?(;base64)?,)?(.*)/:/(?:(base64).*)?(3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1/0;if("Object"===e){let e=Object.getOwnPropertyNames(t);n&&e.sort(!0===n?void 0:n),e=e.slice(s,r+1),i={entries:e.map((e=>({key:e,value:t[e]})))}}else if("Array"===e)i={entries:t.slice(s,r+1).map(((e,t)=>({key:t+s,value:e})))};else{let e=0;const n=[];let o=!0;const a=function(e){return"function"==typeof e.set}(t);for(const i of t){if(e>r){o=!1;break}s<=e&&(a&&Array.isArray(i)?"string"==typeof i[0]||"number"==typeof i[0]?n.push({key:i[0],value:i[1]}):n.push({key:`[entry ${e}]`,value:{"[key]":i[0],"[value]":i[1]}}):n.push({key:e,value:i})),e++}i={hasMore:!o,entries:n}}return i}function Zs(e,t,n){const i=[];for(;t-e>n*n;)n*=n;for(let s=e;s<=t;s+=n)i.push({from:s,to:Math.min(t,s+n-1)});return i}function er(e,t,n,i){let s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1/0;const o=Qs.bind(null,e,t,n);if(!i)return o().entries;const a=r<1/0,l=Math.min(r-s,function(e,t){return"Object"===e?Object.keys(t).length:"Array"===e?t.length:1/0}(e,t));if("Iterable"!==e){if(l<=i||i<7)return o(s,r).entries}else if(l<=i&&!a)return o(s,r).entries;let h;if("Iterable"===e){const{hasMore:e,entries:t}=o(s,s+i-1);h=e?[...t,...Zs(s+i,s+2*i-1,i)]:t}else h=a?Zs(s,r,i):[...o(0,i-5).entries,...Zs(i-4,l-5,i),...o(l-4,l-1).entries];return h}function tr(e){const{styling:t,from:n,to:i,renderChildNodes:s,nodeType:r}=e,[o,a]=(0,Is.useState)(!1),l=(0,Is.useCallback)((()=>{a(!o)}),[o]);return o?Is.createElement("div",t("itemRange",o),s(e,n,i)):Is.createElement("div",Ys({},t("itemRange",o),{onClick:l}),Is.createElement(Xs,{nodeType:r,styling:t,expanded:!1,onClick:l,arrowStyle:"double"}),`${n} ... ${i}`)}function nr(e,t,n){const{nodeType:i,data:s,collectionLimit:r,circularCache:o,keyPath:a,postprocessValue:l,sortObjectKeys:h}=e,c=[];return er(i,s,h,r,t,n).forEach((t=>{if(void 0!==t.to)c.push(Is.createElement(tr,Ys({},e,{key:`ItemRange--${t.from}-${t.to}`,from:t.from,to:t.to,renderChildNodes:nr})));else{const{key:n,value:i}=t,s=-1!==o.indexOf(i);c.push(Is.createElement(ur,Ys({},e,{postprocessValue:l,collectionLimit:r,key:`Node--${n}`,keyPath:[n,...a],value:l(i),circularCache:[...o,i],isCircular:s,hideRoot:!1})))}})),c}function ir(e){const{circularCache:t=[],collectionLimit:n,createItemString:i,data:s,expandable:r,getItemString:o,hideRoot:a,isCircular:l,keyPath:h,labelRenderer:c,level:u=0,nodeType:f,nodeTypeIndicator:d,shouldExpandNodeInitially:p,styling:m}=e,[g,b]=(0,Is.useState)(!l&&p(h,s,u)),y=(0,Is.useCallback)((()=>{r&&b(!g)}),[r,g]),v=g||a&&0===u?nr({...e,circularCache:t,level:u+1}):null,x=o(f,s,Is.createElement("span",m("nestedNodeItemType",g),d),i(s,n),h),w=[h,f,g,r];return a?Is.createElement("li",m("rootNode",...w),Is.createElement("ul",m("rootNodeChildren",...w),v)):Is.createElement("li",m("nestedNode",...w),r&&Is.createElement(Xs,{styling:m,nodeType:f,expanded:g,onClick:y}),Is.createElement("label",Ys({},m(["label","nestedNodeLabel"],...w),{onClick:y}),c(...w)),Is.createElement("span",Ys({},m("nestedNodeItemString",...w),{onClick:y}),x),Is.createElement("ul",m("nestedNodeChildren",...w),v))}function sr(e){const t=Object.getOwnPropertyNames(e).length;return`${t} ${1!==t?"keys":"key"}`}function rr(e){let{data:t,...n}=e;return Is.createElement(ir,Ys({},n,{data:t,nodeType:"Object",nodeTypeIndicator:"Error"===n.nodeType?"Error()":"{}",createItemString:sr,expandable:Object.getOwnPropertyNames(t).length>0}))}function or(e){return`${e.length} ${1!==e.length?"items":"item"}`}function ar(e){let{data:t,...n}=e;return Is.createElement(ir,Ys({},n,{data:t,nodeType:"Array",nodeTypeIndicator:"[]",createItemString:or,expandable:t.length>0}))}function lr(e,t){let n=0,i=!1;if(Number.isSafeInteger(e.size))n=e.size;else for(const s of e){if(t&&n+1>t){i=!0;break}n+=1}return`${i?">":""}${n} ${1!==n?"entries":"entry"}`}function hr(e){return Is.createElement(ir,Ys({},e,{nodeType:"Iterable",nodeTypeIndicator:"()",createItemString:lr,expandable:!0}))}function cr(e){let{nodeType:t,styling:n,labelRenderer:i,keyPath:s,valueRenderer:r,value:o,valueGetter:a=e=>e}=e;return Is.createElement("li",n("value",t,s),Is.createElement("label",n(["label","valueLabel"],t,s),i(s,t,!1,!1)),Is.createElement("span",n("valueText",t,s),r(a(o),o,...s)))}function ur(e){let{getItemString:t,keyPath:n,labelRenderer:i,styling:s,value:r,valueRenderer:o,isCustomNode:a,...l}=e;const h=a(r)?"Custom":function(e){const t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&"function"==typeof e[Symbol.iterator]?"Iterable":"Custom"===t&&e.constructor!==Object&&e instanceof Object?"Object":t}(r),c={getItemString:t,key:n[0],keyPath:n,labelRenderer:i,nodeType:h,styling:s,value:r,valueRenderer:o},u={...l,...c,data:r,isCustomNode:a};switch(h){case"Object":case"Error":case"WeakMap":case"WeakSet":return Is.createElement(rr,u);case"Array":return Is.createElement(ar,u);case"Iterable":case"Map":case"Set":return Is.createElement(hr,u);case"String":return Is.createElement(cr,Ys({},c,{valueGetter:e=>`"${e}"`}));case"Number":case"Custom":return Is.createElement(cr,c);case"Boolean":return Is.createElement(cr,Ys({},c,{valueGetter:e=>e?"true":"false"}));case"Date":return Is.createElement(cr,Ys({},c,{valueGetter:e=>e.toISOString()}));case"Null":return Is.createElement(cr,Ys({},c,{valueGetter:()=>"null"}));case"Undefined":return Is.createElement(cr,Ys({},c,{valueGetter:()=>"undefined"}));case"Function":case"Symbol":return Is.createElement(cr,Ys({},c,{valueGetter:e=>e.toString()}));default:return Is.createElement(cr,Ys({},c,{valueGetter:()=>`<${h}>`}))}}function fr(e){return fr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},fr(e)}function dr(e){var t=function(e){if("object"!=fr(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,"string");if("object"!=fr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==fr(t)?t:t+""}function pr(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,i=Array(t);n2?n-2:0),s=2;s1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=t.defaultBase16,s=void 0===i?Sr:i,r=t.base16Themes,o=Er(n,void 0===r?null:r);o&&(n=kr(kr({},o),n));for(var a=Cr.reduce((function(e,t){return e[t]=n[t]||s[t],e}),{}),l=function(e,t){var n=Object.keys(t);for(var i in e)-1===n.indexOf(i)&&n.push(i);return n.reduce((function(n,i){return n[i]=function(e,t){if(void 0===e)return t;if(void 0===t)return e;var n=fr(e),i=fr(t);switch(n){case"string":switch(i){case"string":return[t,e].filter(Boolean).join(" ");case"object":return Ar({className:e,style:t});case"function":return function(n){for(var i=arguments.length,s=new Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r1?i-1:0),r=1;r1?i-1:0),r=1;r1?i-1:0),r=1;r3?h-3:0),u=3;u({String:e.STRING_COLOR,Date:e.DATE_COLOR,Number:e.NUMBER_COLOR,Boolean:e.BOOLEAN_COLOR,Null:e.NULL_COLOR,Undefined:e.UNDEFINED_COLOR,Function:e.FUNCTION_COLOR,Symbol:e.SYMBOL_COLOR}),Dr=_r((e=>{const t=(e=>({BACKGROUND_COLOR:e.base00,TEXT_COLOR:e.base07,STRING_COLOR:e.base0B,DATE_COLOR:e.base0B,NUMBER_COLOR:e.base09,BOOLEAN_COLOR:e.base09,NULL_COLOR:e.base08,UNDEFINED_COLOR:e.base08,FUNCTION_COLOR:e.base08,SYMBOL_COLOR:e.base08,LABEL_COLOR:e.base0D,ARROW_COLOR:e.base0D,ITEM_STRING_COLOR:e.base0B,ITEM_STRING_EXPANDED_COLOR:e.base03}))(e);return{tree:{border:0,padding:0,marginTop:"0.5em",marginBottom:"0.5em",marginLeft:"0.125em",marginRight:0,listStyle:"none",MozUserSelect:"none",WebkitUserSelect:"none",backgroundColor:t.BACKGROUND_COLOR},value:(e,t,n)=>{let{style:i}=e;return{style:{...i,paddingTop:"0.25em",paddingRight:0,marginLeft:"0.875em",WebkitUserSelect:"text",MozUserSelect:"text",wordWrap:"break-word",paddingLeft:n.length>1?"2.125em":"1.25em",textIndent:"-0.5em",wordBreak:"break-all"}}},label:{display:"inline-block",color:t.LABEL_COLOR},valueLabel:{margin:"0 0.5em 0 0"},valueText:(e,n)=>{let{style:i}=e;return{style:{...i,color:Nr(t)[n]}}},itemRange:(e,n)=>({style:{paddingTop:n?0:"0.25em",cursor:"pointer",color:t.LABEL_COLOR}}),arrow:(e,t,n)=>{let{style:i}=e;return{style:{...i,marginLeft:0,transition:"150ms",WebkitTransition:"150ms",MozTransition:"150ms",WebkitTransform:n?"rotateZ(90deg)":"rotateZ(0deg)",MozTransform:n?"rotateZ(90deg)":"rotateZ(0deg)",transform:n?"rotateZ(90deg)":"rotateZ(0deg)",transformOrigin:"45% 50%",WebkitTransformOrigin:"45% 50%",MozTransformOrigin:"45% 50%",position:"relative",lineHeight:"1.1em",fontSize:"0.75em"}}},arrowContainer:(e,t)=>{let{style:n}=e;return{style:{...n,display:"inline-block",paddingRight:"0.5em",paddingLeft:"double"===t?"1em":0,cursor:"pointer"}}},arrowSign:{color:t.ARROW_COLOR},arrowSignInner:{position:"absolute",top:0,left:"-0.4em"},nestedNode:(e,t,n,i,s)=>{let{style:r}=e;return{style:{...r,position:"relative",paddingTop:"0.25em",marginLeft:t.length>1?"0.875em":0,paddingLeft:s?0:"1.125em"}}},rootNode:{padding:0,margin:0},nestedNodeLabel:(e,t,n,i,s)=>{let{style:r}=e;return{style:{...r,margin:0,padding:0,WebkitUserSelect:s?"inherit":"text",MozUserSelect:s?"inherit":"text",cursor:s?"pointer":"default"}}},nestedNodeItemString:(e,n,i,s)=>{let{style:r}=e;return{style:{...r,paddingLeft:"0.5em",cursor:"default",color:s?t.ITEM_STRING_EXPANDED_COLOR:t.ITEM_STRING_COLOR}}},nestedNodeItemType:{marginLeft:"0.3em",marginRight:"0.3em"},nestedNodeChildren:(e,t,n)=>{let{style:i}=e;return{style:{...i,padding:0,margin:0,listStyle:"none",display:n?"block":"none"}}},rootNodeChildren:{padding:0,margin:0,listStyle:"none"}}}),{defaultBase16:{scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"}}),Pr=Dr,Rr=e=>e,jr=(e,t,n)=>0===n,Lr=(e,t,n,i)=>Is.createElement("span",null,n," ",i),Br=e=>{let[t]=e;return Is.createElement("span",null,t,":")},Ir=()=>!1;function Fr(e){let{data:t,theme:n,invertTheme:i,keyPath:s=["root"],labelRenderer:r=Br,valueRenderer:o=Rr,shouldExpandNodeInitially:a=jr,hideRoot:l=!1,getItemString:h=Lr,postprocessValue:c=Rr,isCustomNode:u=Ir,collectionLimit:f=50,sortObjectKeys:d=!1}=e;const p=(0,Is.useMemo)((()=>Pr(i?function(e){return"string"==typeof e?"".concat(e,":inverted"):e&&Tr(e)&&e.extend?"string"==typeof e.extend?kr(kr({},e),{},{extend:"".concat(e.extend,":inverted")}):kr(kr({},e),{},{extend:Mr(e.extend)}):e?Mr(e):e}(n):n)),[n,i]);return Is.createElement("ul",p("tree"),Is.createElement(ur,{keyPath:l?[]:s,value:c(t),isCustomNode:u,styling:p,labelRenderer:r,valueRenderer:o,shouldExpandNodeInitially:a,hideRoot:l,getItemString:h,postprocessValue:c,collectionLimit:f,sortObjectKeys:d}))}var $r=n(98104);function zr(e){var t;return null!==(t=Ms.style([e]))&&void 0!==t?t:""}class Hr extends Is.Component{constructor(){super(...arguments),this.state={filter:"",value:""},this.timer=0,this.handleChange=e=>{const{value:t}=e.target;this.setState({value:t}),window.clearTimeout(this.timer),this.timer=window.setTimeout((()=>{this.setState({filter:t})}),300)}}componentDidMount(){$r.G.mount(document,Ms.module)}render(){const e=(this.props.translator||Te.wK).load("jupyterlab"),{data:t,metadata:n,forwardedRef:i}=this.props,s=n&&n.root?n.root:"root",r=this.state.filter?Wr(t,this.state.filter,[s]):[s];return Is.createElement("div",{className:"container",ref:i},Is.createElement(Us,{className:"filter",type:"text",placeholder:e.__("Find…"),onChange:this.handleChange,value:this.state.value,rightIcon:"ui-components:search"}),Is.createElement(Fr,{data:t,collectionLimit:100,theme:{extend:qr,valueLabel:zr(De._A.variableName),valueText:zr(De._A.string),nestedNodeItemString:zr(De._A.comment)},invertTheme:!1,keyPath:[s],getItemString:(e,t,n,i)=>Array.isArray(t)?Is.createElement("span",null,n," ",i):0===Object.keys(t).length?Is.createElement("span",null,n):null,labelRenderer:([e,t])=>Is.createElement("span",{className:zr(De._A.keyword)},Is.createElement(Js(),{searchWords:[this.state.filter],textToHighlight:`${e}`,highlightClassName:"jp-mod-selected"})),valueRenderer:e=>{let t=zr(De._A.string);return"number"==typeof e&&(t=zr(De._A.number)),"true"!==e&&"false"!==e||(t=zr(De._A.keyword)),Is.createElement("span",{className:t},Is.createElement(Js(),{searchWords:[this.state.filter],textToHighlight:`${e}`,highlightClassName:"jp-mod-selected"}))},shouldExpandNodeInitially:(e,t,i)=>!(!n||!n.expanded)||r.join(",").includes(e.join(","))}))}}const qr={scheme:"jupyter",base00:"invalid",base01:"invalid",base02:"invalid",base03:"invalid",base04:"invalid",base05:"invalid",base06:"invalid",base07:"invalid",base08:"invalid",base09:"invalid",base0A:"invalid",base0B:"invalid",base0C:"invalid",base0D:"invalid",base0E:"invalid",base0F:"invalid",author:"invalid"};function Vr(e,t){return JSON.stringify(e).includes(t)}function Wr(e,t,n=["root"]){return Ce.JSONExt.isArray(e)?e.reduce(((e,i,s)=>i&&"object"==typeof i&&Vr(i,t)?[...e,[s,...n].join(","),...Wr(i,t,[s,...n])]:e),[]):Ce.JSONExt.isObject(e)?Object.keys(e).reduce(((i,s)=>{const r=e[s];return r&&"object"==typeof r&&(s.includes(t)||Vr(r,t))?[...i,[s,...n].join(","),...Wr(r,t,[s,...n])]:i}),[]):[]}},85869:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"apathy",author:"jannik siebert (https://github.com/janniks)",base00:"#031A16",base01:"#0B342D",base02:"#184E45",base03:"#2B685E",base04:"#5F9C92",base05:"#81B5AC",base06:"#A7CEC8",base07:"#D2E7E4",base08:"#3E9688",base09:"#3E7996",base0A:"#3E4C96",base0B:"#883E96",base0C:"#963E4C",base0D:"#96883E",base0E:"#4C963E",base0F:"#3E965B"},e.exports=t.default},47088:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"ashes",author:"jannik siebert (https://github.com/janniks)",base00:"#1C2023",base01:"#393F45",base02:"#565E65",base03:"#747C84",base04:"#ADB3BA",base05:"#C7CCD1",base06:"#DFE2E5",base07:"#F3F4F5",base08:"#C7AE95",base09:"#C7C795",base0A:"#AEC795",base0B:"#95C7AE",base0C:"#95AEC7",base0D:"#AE95C7",base0E:"#C795AE",base0F:"#C79595"},e.exports=t.default},95067:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier dune",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune)",base00:"#20201d",base01:"#292824",base02:"#6e6b5e",base03:"#7d7a68",base04:"#999580",base05:"#a6a28c",base06:"#e8e4cf",base07:"#fefbec",base08:"#d73737",base09:"#b65611",base0A:"#cfb017",base0B:"#60ac39",base0C:"#1fad83",base0D:"#6684e1",base0E:"#b854d4",base0F:"#d43552"},e.exports=t.default},57784:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier forest",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest)",base00:"#1b1918",base01:"#2c2421",base02:"#68615e",base03:"#766e6b",base04:"#9c9491",base05:"#a8a19f",base06:"#e6e2e0",base07:"#f1efee",base08:"#f22c40",base09:"#df5320",base0A:"#d5911a",base0B:"#5ab738",base0C:"#00ad9c",base0D:"#407ee7",base0E:"#6666ea",base0F:"#c33ff3"},e.exports=t.default},79859:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier heath",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath)",base00:"#1b181b",base01:"#292329",base02:"#695d69",base03:"#776977",base04:"#9e8f9e",base05:"#ab9bab",base06:"#d8cad8",base07:"#f7f3f7",base08:"#ca402b",base09:"#a65926",base0A:"#bb8a35",base0B:"#379a37",base0C:"#159393",base0D:"#516aec",base0E:"#7b59c0",base0F:"#cc33cc"},e.exports=t.default},19525:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier lakeside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/)",base00:"#161b1d",base01:"#1f292e",base02:"#516d7b",base03:"#5a7b8c",base04:"#7195a8",base05:"#7ea2b4",base06:"#c1e4f6",base07:"#ebf8ff",base08:"#d22d72",base09:"#935c25",base0A:"#8a8a0f",base0B:"#568c3b",base0C:"#2d8f6f",base0D:"#257fad",base0E:"#5d5db1",base0F:"#b72dd2"},e.exports=t.default},15789:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"atelier seaside",author:"bram de haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/)",base00:"#131513",base01:"#242924",base02:"#5e6e5e",base03:"#687d68",base04:"#809980",base05:"#8ca68c",base06:"#cfe8cf",base07:"#f0fff0",base08:"#e6193c",base09:"#87711d",base0A:"#c3c322",base0B:"#29a329",base0C:"#1999b3",base0D:"#3d62f5",base0E:"#ad2bee",base0F:"#e619c3"},e.exports=t.default},75363:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"bespin",author:"jan t. sott",base00:"#28211c",base01:"#36312e",base02:"#5e5d5c",base03:"#666666",base04:"#797977",base05:"#8a8986",base06:"#9d9b97",base07:"#baae9e",base08:"#cf6a4c",base09:"#cf7d34",base0A:"#f9ee98",base0B:"#54be0d",base0C:"#afc4db",base0D:"#5ea6ea",base0E:"#9b859d",base0F:"#937121"},e.exports=t.default},52525:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"brewer",author:"timothée poisot (http://github.com/tpoisot)",base00:"#0c0d0e",base01:"#2e2f30",base02:"#515253",base03:"#737475",base04:"#959697",base05:"#b7b8b9",base06:"#dadbdc",base07:"#fcfdfe",base08:"#e31a1c",base09:"#e6550d",base0A:"#dca060",base0B:"#31a354",base0C:"#80b1d3",base0D:"#3182bd",base0E:"#756bb1",base0F:"#b15928"},e.exports=t.default},71986:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"bright",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#303030",base02:"#505050",base03:"#b0b0b0",base04:"#d0d0d0",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ffffff",base08:"#fb0120",base09:"#fc6d24",base0A:"#fda331",base0B:"#a1c659",base0C:"#76c7b7",base0D:"#6fb3d2",base0E:"#d381c3",base0F:"#be643c"},e.exports=t.default},45235:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"chalk",author:"chris kempson (http://chriskempson.com)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#f5f5f5",base08:"#fb9fb1",base09:"#eda987",base0A:"#ddb26f",base0B:"#acc267",base0C:"#12cfc0",base0D:"#6fc2ef",base0E:"#e1a3ee",base0F:"#deaf8f"},e.exports=t.default},69635:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"codeschool",author:"brettof86",base00:"#232c31",base01:"#1c3657",base02:"#2a343a",base03:"#3f4944",base04:"#84898c",base05:"#9ea7a6",base06:"#a7cfa3",base07:"#b5d8f6",base08:"#2a5491",base09:"#43820d",base0A:"#a03b1e",base0B:"#237986",base0C:"#b02f30",base0D:"#484d79",base0E:"#c59820",base0F:"#c98344"},e.exports=t.default},2230:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"colors",author:"mrmrs (http://clrs.cc)",base00:"#111111",base01:"#333333",base02:"#555555",base03:"#777777",base04:"#999999",base05:"#bbbbbb",base06:"#dddddd",base07:"#ffffff",base08:"#ff4136",base09:"#ff851b",base0A:"#ffdc00",base0B:"#2ecc40",base0C:"#7fdbff",base0D:"#0074d9",base0E:"#b10dc9",base0F:"#85144b"},e.exports=t.default},68597:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"default",author:"chris kempson (http://chriskempson.com)",base00:"#181818",base01:"#282828",base02:"#383838",base03:"#585858",base04:"#b8b8b8",base05:"#d8d8d8",base06:"#e8e8e8",base07:"#f8f8f8",base08:"#ab4642",base09:"#dc9656",base0A:"#f7ca88",base0B:"#a1b56c",base0C:"#86c1b9",base0D:"#7cafc2",base0E:"#ba8baf",base0F:"#a16946"},e.exports=t.default},94444:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"eighties",author:"chris kempson (http://chriskempson.com)",base00:"#2d2d2d",base01:"#393939",base02:"#515151",base03:"#747369",base04:"#a09f93",base05:"#d3d0c8",base06:"#e8e6df",base07:"#f2f0ec",base08:"#f2777a",base09:"#f99157",base0A:"#ffcc66",base0B:"#99cc99",base0C:"#66cccc",base0D:"#6699cc",base0E:"#cc99cc",base0F:"#d27b53"},e.exports=t.default},16834:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"embers",author:"jannik siebert (https://github.com/janniks)",base00:"#16130F",base01:"#2C2620",base02:"#433B32",base03:"#5A5047",base04:"#8A8075",base05:"#A39A90",base06:"#BEB6AE",base07:"#DBD6D1",base08:"#826D57",base09:"#828257",base0A:"#6D8257",base0B:"#57826D",base0C:"#576D82",base0D:"#6D5782",base0E:"#82576D",base0F:"#825757"},e.exports=t.default},96521:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"flat",author:"chris kempson (http://chriskempson.com)",base00:"#2C3E50",base01:"#34495E",base02:"#7F8C8D",base03:"#95A5A6",base04:"#BDC3C7",base05:"#e0e0e0",base06:"#f5f5f5",base07:"#ECF0F1",base08:"#E74C3C",base09:"#E67E22",base0A:"#F1C40F",base0B:"#2ECC71",base0C:"#1ABC9C",base0D:"#3498DB",base0E:"#9B59B6",base0F:"#be643c"},e.exports=t.default},97469:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"google",author:"seth wright (http://sethawright.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#CC342B",base09:"#F96A38",base0A:"#FBA922",base0B:"#198844",base0C:"#3971ED",base0D:"#3971ED",base0E:"#A36AC7",base0F:"#3971ED"},e.exports=t.default},84011:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"grayscale",author:"alexandre gavioli (https://github.com/alexx2/)",base00:"#101010",base01:"#252525",base02:"#464646",base03:"#525252",base04:"#ababab",base05:"#b9b9b9",base06:"#e3e3e3",base07:"#f7f7f7",base08:"#7c7c7c",base09:"#999999",base0A:"#a0a0a0",base0B:"#8e8e8e",base0C:"#868686",base0D:"#686868",base0E:"#747474",base0F:"#5e5e5e"},e.exports=t.default},51027:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"green screen",author:"chris kempson (http://chriskempson.com)",base00:"#001100",base01:"#003300",base02:"#005500",base03:"#007700",base04:"#009900",base05:"#00bb00",base06:"#00dd00",base07:"#00ff00",base08:"#007700",base09:"#009900",base0A:"#007700",base0B:"#00bb00",base0C:"#005500",base0D:"#009900",base0E:"#00bb00",base0F:"#005500"},e.exports=t.default},88781:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"harmonic16",author:"jannik siebert (https://github.com/janniks)",base00:"#0b1c2c",base01:"#223b54",base02:"#405c79",base03:"#627e99",base04:"#aabcce",base05:"#cbd6e2",base06:"#e5ebf1",base07:"#f7f9fb",base08:"#bf8b56",base09:"#bfbf56",base0A:"#8bbf56",base0B:"#56bf8b",base0C:"#568bbf",base0D:"#8b56bf",base0E:"#bf568b",base0F:"#bf5656"},e.exports=t.default},19453:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"hopscotch",author:"jan t. sott",base00:"#322931",base01:"#433b42",base02:"#5c545b",base03:"#797379",base04:"#989498",base05:"#b9b5b8",base06:"#d5d3d5",base07:"#ffffff",base08:"#dd464c",base09:"#fd8b19",base0A:"#fdcc59",base0B:"#8fc13e",base0C:"#149b93",base0D:"#1290bf",base0E:"#c85e7c",base0F:"#b33508"},e.exports=t.default},21932:(e,t,n)=>{"use strict";function i(e){return e&&e.__esModule?e.default:e}t.__esModule=!0;var s=n(79782);t.threezerotwofour=i(s);var r=n(85869);t.apathy=i(r);var o=n(47088);t.ashes=i(o);var a=n(95067);t.atelierDune=i(a);var l=n(57784);t.atelierForest=i(l);var h=n(79859);t.atelierHeath=i(h);var c=n(19525);t.atelierLakeside=i(c);var u=n(15789);t.atelierSeaside=i(u);var f=n(75363);t.bespin=i(f);var d=n(52525);t.brewer=i(d);var p=n(71986);t.bright=i(p);var m=n(45235);t.chalk=i(m);var g=n(69635);t.codeschool=i(g);var b=n(2230);t.colors=i(b);var y=n(68597);t.default=i(y);var v=n(94444);t.eighties=i(v);var x=n(16834);t.embers=i(x);var w=n(96521);t.flat=i(w);var k=n(97469);t.google=i(k);var S=n(84011);t.grayscale=i(S);var C=n(51027);t.greenscreen=i(C);var A=n(88781);t.harmonic=i(A);var O=n(19453);t.hopscotch=i(O);var M=n(58599);t.isotope=i(M);var _=n(84522);t.marrakesh=i(_);var T=n(21946);t.mocha=i(T);var E=n(90010);t.monokai=i(E);var N=n(5942);t.ocean=i(N);var D=n(60443);t.paraiso=i(D);var P=n(7339);t.pop=i(P);var R=n(29009);t.railscasts=i(R);var j=n(16870);t.shapeshifter=i(j);var L=n(72783);t.solarized=i(L);var B=n(24925);t.summerfruit=i(B);var I=n(21533);t.tomorrow=i(I);var F=n(15240);t.tube=i(F);var $=n(95822);t.twilight=i($)},58599:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"isotope",author:"jan t. sott",base00:"#000000",base01:"#404040",base02:"#606060",base03:"#808080",base04:"#c0c0c0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#ff0000",base09:"#ff9900",base0A:"#ff0099",base0B:"#33ff00",base0C:"#00ffff",base0D:"#0066ff",base0E:"#cc00ff",base0F:"#3300ff"},e.exports=t.default},84522:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"marrakesh",author:"alexandre gavioli (http://github.com/alexx2/)",base00:"#201602",base01:"#302e00",base02:"#5f5b17",base03:"#6c6823",base04:"#86813b",base05:"#948e48",base06:"#ccc37a",base07:"#faf0a5",base08:"#c35359",base09:"#b36144",base0A:"#a88339",base0B:"#18974e",base0C:"#75a738",base0D:"#477ca1",base0E:"#8868b3",base0F:"#b3588e"},e.exports=t.default},21946:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"mocha",author:"chris kempson (http://chriskempson.com)",base00:"#3B3228",base01:"#534636",base02:"#645240",base03:"#7e705a",base04:"#b8afad",base05:"#d0c8c6",base06:"#e9e1dd",base07:"#f5eeeb",base08:"#cb6077",base09:"#d28b71",base0A:"#f4bc87",base0B:"#beb55b",base0C:"#7bbda4",base0D:"#8ab3b5",base0E:"#a89bb9",base0F:"#bb9584"},e.exports=t.default},90010:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"monokai",author:"wimer hazenberg (http://www.monokai.nl)",base00:"#272822",base01:"#383830",base02:"#49483e",base03:"#75715e",base04:"#a59f85",base05:"#f8f8f2",base06:"#f5f4f1",base07:"#f9f8f5",base08:"#f92672",base09:"#fd971f",base0A:"#f4bf75",base0B:"#a6e22e",base0C:"#a1efe4",base0D:"#66d9ef",base0E:"#ae81ff",base0F:"#cc6633"},e.exports=t.default},5942:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"ocean",author:"chris kempson (http://chriskempson.com)",base00:"#2b303b",base01:"#343d46",base02:"#4f5b66",base03:"#65737e",base04:"#a7adba",base05:"#c0c5ce",base06:"#dfe1e8",base07:"#eff1f5",base08:"#bf616a",base09:"#d08770",base0A:"#ebcb8b",base0B:"#a3be8c",base0C:"#96b5b4",base0D:"#8fa1b3",base0E:"#b48ead",base0F:"#ab7967"},e.exports=t.default},60443:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"paraiso",author:"jan t. sott",base00:"#2f1e2e",base01:"#41323f",base02:"#4f424c",base03:"#776e71",base04:"#8d8687",base05:"#a39e9b",base06:"#b9b6b0",base07:"#e7e9db",base08:"#ef6155",base09:"#f99b15",base0A:"#fec418",base0B:"#48b685",base0C:"#5bc4bf",base0D:"#06b6ef",base0E:"#815ba4",base0F:"#e96ba8"},e.exports=t.default},7339:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"pop",author:"chris kempson (http://chriskempson.com)",base00:"#000000",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#b0b0b0",base05:"#d0d0d0",base06:"#e0e0e0",base07:"#ffffff",base08:"#eb008a",base09:"#f29333",base0A:"#f8ca12",base0B:"#37b349",base0C:"#00aabb",base0D:"#0e5a94",base0E:"#b31e8d",base0F:"#7a2d00"},e.exports=t.default},29009:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"railscasts",author:"ryan bates (http://railscasts.com)",base00:"#2b2b2b",base01:"#272935",base02:"#3a4055",base03:"#5a647e",base04:"#d4cfc9",base05:"#e6e1dc",base06:"#f4f1ed",base07:"#f9f7f3",base08:"#da4939",base09:"#cc7833",base0A:"#ffc66d",base0B:"#a5c261",base0C:"#519f50",base0D:"#6d9cbe",base0E:"#b6b3eb",base0F:"#bc9458"},e.exports=t.default},16870:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"shapeshifter",author:"tyler benziger (http://tybenz.com)",base00:"#000000",base01:"#040404",base02:"#102015",base03:"#343434",base04:"#555555",base05:"#ababab",base06:"#e0e0e0",base07:"#f9f9f9",base08:"#e92f2f",base09:"#e09448",base0A:"#dddd13",base0B:"#0ed839",base0C:"#23edda",base0D:"#3b48e3",base0E:"#f996e2",base0F:"#69542d"},e.exports=t.default},72783:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"solarized",author:"ethan schoonover (http://ethanschoonover.com/solarized)",base00:"#002b36",base01:"#073642",base02:"#586e75",base03:"#657b83",base04:"#839496",base05:"#93a1a1",base06:"#eee8d5",base07:"#fdf6e3",base08:"#dc322f",base09:"#cb4b16",base0A:"#b58900",base0B:"#859900",base0C:"#2aa198",base0D:"#268bd2",base0E:"#6c71c4",base0F:"#d33682"},e.exports=t.default},24925:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"summerfruit",author:"christopher corley (http://cscorley.github.io/)",base00:"#151515",base01:"#202020",base02:"#303030",base03:"#505050",base04:"#B0B0B0",base05:"#D0D0D0",base06:"#E0E0E0",base07:"#FFFFFF",base08:"#FF0086",base09:"#FD8900",base0A:"#ABA800",base0B:"#00C918",base0C:"#1faaaa",base0D:"#3777E6",base0E:"#AD00A1",base0F:"#cc6633"},e.exports=t.default},79782:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"threezerotwofour",author:"jan t. sott (http://github.com/idleberg)",base00:"#090300",base01:"#3a3432",base02:"#4a4543",base03:"#5c5855",base04:"#807d7c",base05:"#a5a2a2",base06:"#d6d5d4",base07:"#f7f7f7",base08:"#db2d20",base09:"#e8bbd0",base0A:"#fded02",base0B:"#01a252",base0C:"#b5e4f4",base0D:"#01a0e4",base0E:"#a16a94",base0F:"#cdab53"},e.exports=t.default},21533:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"tomorrow",author:"chris kempson (http://chriskempson.com)",base00:"#1d1f21",base01:"#282a2e",base02:"#373b41",base03:"#969896",base04:"#b4b7b4",base05:"#c5c8c6",base06:"#e0e0e0",base07:"#ffffff",base08:"#cc6666",base09:"#de935f",base0A:"#f0c674",base0B:"#b5bd68",base0C:"#8abeb7",base0D:"#81a2be",base0E:"#b294bb",base0F:"#a3685a"},e.exports=t.default},15240:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"london tube",author:"jan t. sott",base00:"#231f20",base01:"#1c3f95",base02:"#5a5758",base03:"#737171",base04:"#959ca1",base05:"#d9d8d8",base06:"#e7e7e8",base07:"#ffffff",base08:"#ee2e24",base09:"#f386a1",base0A:"#ffd204",base0B:"#00853e",base0C:"#85cebc",base0D:"#009ddc",base0E:"#98005d",base0F:"#b06110"},e.exports=t.default},95822:(e,t)=>{"use strict";t.__esModule=!0,t.default={scheme:"twilight",author:"david hart (http://hart-dev.com)",base00:"#1e1e1e",base01:"#323537",base02:"#464b50",base03:"#5f5a60",base04:"#838184",base05:"#a7a7a7",base06:"#c3c3c3",base07:"#ffffff",base08:"#cf6a4c",base09:"#cda869",base0A:"#f9ee98",base0B:"#8f9d6a",base0C:"#afc4db",base0D:"#7587a6",base0E:"#9b859d",base0F:"#9b703f"},e.exports=t.default},76931:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},43269:(e,t,n)=>{var i=n(76931),s=n(59975),r=Object.hasOwnProperty,o=Object.create(null);for(var a in i)r.call(i,a)&&(o[i[a]]=a);var l=e.exports={to:{},get:{}};function h(e,t,n){return Math.min(Math.max(t,e),n)}function c(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}l.get=function(e){var t,n;switch(e.substring(0,3).toLowerCase()){case"hsl":t=l.get.hsl(e),n="hsl";break;case"hwb":t=l.get.hwb(e),n="hwb";break;default:t=l.get.rgb(e),n="rgb"}return t?{model:n,value:t}:null},l.get.rgb=function(e){if(!e)return null;var t,n,s,o=[0,0,0,1];if(t=e.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(s=t[2],t=t[1],n=0;n<3;n++){var a=2*n;o[n]=parseInt(t.slice(a,a+2),16)}s&&(o[3]=parseInt(s,16)/255)}else if(t=e.match(/^#([a-f0-9]{3,4})$/i)){for(s=(t=t[1])[3],n=0;n<3;n++)o[n]=parseInt(t[n]+t[n],16);s&&(o[3]=parseInt(s+s,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)){for(n=0;n<3;n++)o[n]=parseInt(t[n+1],0);t[4]&&(t[5]?o[3]=.01*parseFloat(t[4]):o[3]=parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:r.call(i,t[1])?((o=i[t[1]])[3]=1,o):null:null;for(n=0;n<3;n++)o[n]=Math.round(2.55*parseFloat(t[n+1]));t[4]&&(t[5]?o[3]=.01*parseFloat(t[4]):o[3]=parseFloat(t[4]))}for(n=0;n<3;n++)o[n]=h(o[n],0,255);return o[3]=h(o[3],0,1),o},l.get.hsl=function(e){if(!e)return null;var t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var n=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,h(parseFloat(t[2]),0,100),h(parseFloat(t[3]),0,100),h(isNaN(n)?1:n,0,1)]}return null},l.get.hwb=function(e){if(!e)return null;var t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){var n=parseFloat(t[4]);return[(parseFloat(t[1])%360+360)%360,h(parseFloat(t[2]),0,100),h(parseFloat(t[3]),0,100),h(isNaN(n)?1:n,0,1)]}return null},l.to.hex=function(){var e=s(arguments);return"#"+c(e[0])+c(e[1])+c(e[2])+(e[3]<1?c(Math.round(255*e[3])):"")},l.to.rgb=function(){var e=s(arguments);return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},l.to.rgb.percent=function(){var e=s(arguments),t=Math.round(e[0]/255*100),n=Math.round(e[1]/255*100),i=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+n+"%, "+i+"%)":"rgba("+t+"%, "+n+"%, "+i+"%, "+e[3]+")"},l.to.hsl=function(){var e=s(arguments);return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},l.to.hwb=function(){var e=s(arguments),t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},l.to.keyword=function(e){return o[e.slice(0,3)]}},70465:(e,t,n)=>{"use strict";var i=n(43269),s=n(28754),r=[].slice,o=["keyword","gray","hex"],a={};Object.keys(s).forEach((function(e){a[r.call(s[e].labels).sort().join("")]=e}));var l={};function h(e,t){if(!(this instanceof h))return new h(e,t);if(t&&t in o&&(t=null),t&&!(t in s))throw new Error("Unknown model: "+t);var n,c;if(null==e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof h)this.model=e.model,this.color=e.color.slice(),this.valpha=e.valpha;else if("string"==typeof e){var u=i.get(e);if(null===u)throw new Error("Unable to parse color from string: "+e);this.model=u.model,c=s[this.model].channels,this.color=u.value.slice(0,c),this.valpha="number"==typeof u.value[c]?u.value[c]:1}else if(e.length){this.model=t||"rgb",c=s[this.model].channels;var d=r.call(e,0,c);this.color=f(d,c),this.valpha="number"==typeof e[c]?e[c]:1}else if("number"==typeof e)e&=16777215,this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;var p=Object.keys(e);"alpha"in e&&(p.splice(p.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0);var m=p.sort().join("");if(!(m in a))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=a[m];var g=s[this.model].labels,b=[];for(n=0;nn?(t+.05)/(n+.05):(n+.05)/(t+.05)},level:function(e){var t=this.contrast(e);return t>=7.1?"AAA":t>=4.5?"AA":""},isDark:function(){var e=this.rgb().color;return(299*e[0]+587*e[1]+114*e[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var e=this.rgb(),t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten:function(e){var t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken:function(e){var t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate:function(e){var t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate:function(e){var t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten:function(e){var t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken:function(e){var t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale:function(){var e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return h.rgb(t,t,t)},fade:function(e){return this.alpha(this.valpha-this.valpha*e)},opaquer:function(e){return this.alpha(this.valpha+this.valpha*e)},rotate:function(e){var t=this.hsl(),n=t.color[0];return n=(n=(n+e)%360)<0?360+n:n,t.color[0]=n,t},mix:function(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);var n=e.rgb(),i=this.rgb(),s=void 0===t?.5:t,r=2*s-1,o=n.alpha()-i.alpha(),a=((r*o==-1?r:(r+o)/(1+r*o))+1)/2,l=1-a;return h.rgb(a*n.red()+l*i.red(),a*n.green()+l*i.green(),a*n.blue()+l*i.blue(),n.alpha()*s+i.alpha()*(1-s))}},Object.keys(s).forEach((function(e){if(-1===o.indexOf(e)){var t=s[e].channels;h.prototype[e]=function(){if(this.model===e)return new h(this);if(arguments.length)return new h(arguments,e);var n,i="number"==typeof arguments[t]?t:this.valpha;return new h((n=s[this.model][e].raw(this.color),Array.isArray(n)?n:[n]).concat(i),e)},h[e]=function(n){return"number"==typeof n&&(n=f(r.call(arguments),t)),new h(n,e)}}})),e.exports=h},65159:(e,t,n)=>{var i=n(83928),s={};for(var r in i)i.hasOwnProperty(r)&&(s[i[r]]=r);var o=e.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var a in o)if(o.hasOwnProperty(a)){if(!("channels"in o[a]))throw new Error("missing channels property: "+a);if(!("labels"in o[a]))throw new Error("missing channel labels property: "+a);if(o[a].labels.length!==o[a].channels)throw new Error("channel and label counts mismatch: "+a);var l=o[a].channels,h=o[a].labels;delete o[a].channels,delete o[a].labels,Object.defineProperty(o[a],"channels",{value:l}),Object.defineProperty(o[a],"labels",{value:h})}o.rgb.hsl=function(e){var t,n,i=e[0]/255,s=e[1]/255,r=e[2]/255,o=Math.min(i,s,r),a=Math.max(i,s,r),l=a-o;return a===o?t=0:i===a?t=(s-r)/l:s===a?t=2+(r-i)/l:r===a&&(t=4+(i-s)/l),(t=Math.min(60*t,360))<0&&(t+=360),n=(o+a)/2,[t,100*(a===o?0:n<=.5?l/(a+o):l/(2-a-o)),100*n]},o.rgb.hsv=function(e){var t,n,i,s,r,o=e[0]/255,a=e[1]/255,l=e[2]/255,h=Math.max(o,a,l),c=h-Math.min(o,a,l),u=function(e){return(h-e)/6/c+.5};return 0===c?s=r=0:(r=c/h,t=u(o),n=u(a),i=u(l),o===h?s=i-n:a===h?s=1/3+t-i:l===h&&(s=2/3+n-t),s<0?s+=1:s>1&&(s-=1)),[360*s,100*r,100*h]},o.rgb.hwb=function(e){var t=e[0],n=e[1],i=e[2];return[o.rgb.hsl(e)[0],1/255*Math.min(t,Math.min(n,i))*100,100*(i=1-1/255*Math.max(t,Math.max(n,i)))]},o.rgb.cmyk=function(e){var t,n=e[0]/255,i=e[1]/255,s=e[2]/255;return[100*((1-n-(t=Math.min(1-n,1-i,1-s)))/(1-t)||0),100*((1-i-t)/(1-t)||0),100*((1-s-t)/(1-t)||0),100*t]},o.rgb.keyword=function(e){var t=s[e];if(t)return t;var n,r,o,a=1/0;for(var l in i)if(i.hasOwnProperty(l)){var h=(r=e,o=i[l],Math.pow(r[0]-o[0],2)+Math.pow(r[1]-o[1],2)+Math.pow(r[2]-o[2],2));h.04045?Math.pow((t+.055)/1.055,2.4):t/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*t+.7152*n+.0722*i),100*(.0193*t+.1192*n+.9505*i)]},o.rgb.lab=function(e){var t=o.rgb.xyz(e),n=t[0],i=t[1],s=t[2];return i/=100,s/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(n-i),200*(i-(s=s>.008856?Math.pow(s,1/3):7.787*s+16/116))]},o.hsl.rgb=function(e){var t,n,i,s,r,o=e[0]/360,a=e[1]/100,l=e[2]/100;if(0===a)return[r=255*l,r,r];t=2*l-(n=l<.5?l*(1+a):l+a-l*a),s=[0,0,0];for(var h=0;h<3;h++)(i=o+1/3*-(h-1))<0&&i++,i>1&&i--,r=6*i<1?t+6*(n-t)*i:2*i<1?n:3*i<2?t+(n-t)*(2/3-i)*6:t,s[h]=255*r;return s},o.hsl.hsv=function(e){var t=e[0],n=e[1]/100,i=e[2]/100,s=n,r=Math.max(i,.01);return n*=(i*=2)<=1?i:2-i,s*=r<=1?r:2-r,[t,100*(0===i?2*s/(r+s):2*n/(i+n)),(i+n)/2*100]},o.hsv.rgb=function(e){var t=e[0]/60,n=e[1]/100,i=e[2]/100,s=Math.floor(t)%6,r=t-Math.floor(t),o=255*i*(1-n),a=255*i*(1-n*r),l=255*i*(1-n*(1-r));switch(i*=255,s){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}},o.hsv.hsl=function(e){var t,n,i,s=e[0],r=e[1]/100,o=e[2]/100,a=Math.max(o,.01);return i=(2-r)*o,n=r*a,[s,100*(n=(n/=(t=(2-r)*a)<=1?t:2-t)||0),100*(i/=2)]},o.hwb.rgb=function(e){var t,n,i,s,r,o,a,l=e[0]/360,h=e[1]/100,c=e[2]/100,u=h+c;switch(u>1&&(h/=u,c/=u),i=6*l-(t=Math.floor(6*l)),1&t&&(i=1-i),s=h+i*((n=1-c)-h),t){default:case 6:case 0:r=n,o=s,a=h;break;case 1:r=s,o=n,a=h;break;case 2:r=h,o=n,a=s;break;case 3:r=h,o=s,a=n;break;case 4:r=s,o=h,a=n;break;case 5:r=n,o=h,a=s}return[255*r,255*o,255*a]},o.cmyk.rgb=function(e){var t=e[0]/100,n=e[1]/100,i=e[2]/100,s=e[3]/100;return[255*(1-Math.min(1,t*(1-s)+s)),255*(1-Math.min(1,n*(1-s)+s)),255*(1-Math.min(1,i*(1-s)+s))]},o.xyz.rgb=function(e){var t,n,i,s=e[0]/100,r=e[1]/100,o=e[2]/100;return n=-.9689*s+1.8758*r+.0415*o,i=.0557*s+-.204*r+1.057*o,t=(t=3.2406*s+-1.5372*r+-.4986*o)>.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(t=Math.min(Math.max(0,t),1)),255*(n=Math.min(Math.max(0,n),1)),255*(i=Math.min(Math.max(0,i),1))]},o.xyz.lab=function(e){var t=e[0],n=e[1],i=e[2];return n/=100,i/=108.883,t=(t/=95.047)>.008856?Math.pow(t,1/3):7.787*t+16/116,[116*(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116)-16,500*(t-n),200*(n-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},o.lab.xyz=function(e){var t,n,i,s=e[0];t=e[1]/500+(n=(s+16)/116),i=n-e[2]/200;var r=Math.pow(n,3),o=Math.pow(t,3),a=Math.pow(i,3);return n=r>.008856?r:(n-16/116)/7.787,t=o>.008856?o:(t-16/116)/7.787,i=a>.008856?a:(i-16/116)/7.787,[t*=95.047,n*=100,i*=108.883]},o.lab.lch=function(e){var t,n=e[0],i=e[1],s=e[2];return(t=360*Math.atan2(s,i)/2/Math.PI)<0&&(t+=360),[n,Math.sqrt(i*i+s*s),t]},o.lch.lab=function(e){var t,n=e[0],i=e[1];return t=e[2]/360*2*Math.PI,[n,i*Math.cos(t),i*Math.sin(t)]},o.rgb.ansi16=function(e){var t=e[0],n=e[1],i=e[2],s=1 in arguments?arguments[1]:o.rgb.hsv(e)[2];if(0===(s=Math.round(s/50)))return 30;var r=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return 2===s&&(r+=60),r},o.hsv.ansi16=function(e){return o.rgb.ansi16(o.hsv.rgb(e),e[2])},o.rgb.ansi256=function(e){var t=e[0],n=e[1],i=e[2];return t===n&&n===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},o.ansi16.rgb=function(e){var t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),[t=t/10.5*255,t,t];var n=.5*(1+~~(e>50));return[(1&t)*n*255,(t>>1&1)*n*255,(t>>2&1)*n*255]},o.ansi256.rgb=function(e){if(e>=232){var t=10*(e-232)+8;return[t,t,t]}var n;return e-=16,[Math.floor(e/36)/5*255,Math.floor((n=e%36)/6)/5*255,n%6/5*255]},o.rgb.hex=function(e){var t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},o.hex.rgb=function(e){var t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];var n=t[0];3===t[0].length&&(n=n.split("").map((function(e){return e+e})).join(""));var i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},o.rgb.hcg=function(e){var t,n=e[0]/255,i=e[1]/255,s=e[2]/255,r=Math.max(Math.max(n,i),s),o=Math.min(Math.min(n,i),s),a=r-o;return t=a<=0?0:r===n?(i-s)/a%6:r===i?2+(s-n)/a:4+(n-i)/a+4,t/=6,[360*(t%=1),100*a,100*(a<1?o/(1-a):0)]},o.hsl.hcg=function(e){var t,n=e[1]/100,i=e[2]/100,s=0;return(t=i<.5?2*n*i:2*n*(1-i))<1&&(s=(i-.5*t)/(1-t)),[e[0],100*t,100*s]},o.hsv.hcg=function(e){var t=e[1]/100,n=e[2]/100,i=t*n,s=0;return i<1&&(s=(n-i)/(1-i)),[e[0],100*i,100*s]},o.hcg.rgb=function(e){var t=e[0]/360,n=e[1]/100,i=e[2]/100;if(0===n)return[255*i,255*i,255*i];var s,r=[0,0,0],o=t%1*6,a=o%1,l=1-a;switch(Math.floor(o)){case 0:r[0]=1,r[1]=a,r[2]=0;break;case 1:r[0]=l,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=a;break;case 3:r[0]=0,r[1]=l,r[2]=1;break;case 4:r[0]=a,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=l}return s=(1-n)*i,[255*(n*r[0]+s),255*(n*r[1]+s),255*(n*r[2]+s)]},o.hcg.hsv=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t),i=0;return n>0&&(i=t/n),[e[0],100*i,100*n]},o.hcg.hsl=function(e){var t=e[1]/100,n=e[2]/100*(1-t)+.5*t,i=0;return n>0&&n<.5?i=t/(2*n):n>=.5&&n<1&&(i=t/(2*(1-n))),[e[0],100*i,100*n]},o.hcg.hwb=function(e){var t=e[1]/100,n=t+e[2]/100*(1-t);return[e[0],100*(n-t),100*(1-n)]},o.hwb.hcg=function(e){var t=e[1]/100,n=1-e[2]/100,i=n-t,s=0;return i<1&&(s=(n-i)/(1-i)),[e[0],100*i,100*s]},o.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},o.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},o.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},o.gray.hsl=o.gray.hsv=function(e){return[0,0,e[0]]},o.gray.hwb=function(e){return[0,100,e[0]]},o.gray.cmyk=function(e){return[0,0,0,e[0]]},o.gray.lab=function(e){return[e[0],0,0]},o.gray.hex=function(e){var t=255&Math.round(e[0]/100*255),n=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(n.length)+n},o.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},28754:(e,t,n)=>{var i=n(65159),s=n(52695),r={};Object.keys(i).forEach((function(e){r[e]={},Object.defineProperty(r[e],"channels",{value:i[e].channels}),Object.defineProperty(r[e],"labels",{value:i[e].labels});var t=s(e);Object.keys(t).forEach((function(n){var i=t[n];r[e][n]=function(e){var t=function(t){if(null==t)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var n=e(t);if("object"==typeof n)for(var i=n.length,s=0;s1&&(t=Array.prototype.slice.call(arguments)),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(i)}))})),e.exports=r},52695:(e,t,n)=>{var i=n(65159);function s(e,t){return function(n){return t(e(n))}}function r(e,t){for(var n=[t[e].parent,e],r=i[t[e].parent][e],o=t[e].parent;t[o].parent;)n.unshift(t[o].parent),r=s(i[t[o].parent][o],r),o=t[o].parent;return r.conversion=n,r}e.exports=function(e){for(var t=function(e){var t=function(){for(var e={},t=Object.keys(i),n=t.length,s=0;s{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},68101:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Cache:()=>p,FreeStyle:()=>v,Rule:()=>b,Selector:()=>m,Style:()=>g,create:()=>x});let i=0;const s=Object.create(null),r=["animation-iteration-count","border-image-outset","border-image-slice","border-image-width","box-flex","box-flex-group","box-ordinal-group","column-count","columns","counter-increment","counter-reset","flex","flex-grow","flex-positive","flex-shrink","flex-negative","flex-order","font-weight","grid-area","grid-column","grid-column-end","grid-column-span","grid-column-start","grid-row","grid-row-end","grid-row-span","grid-row-start","line-clamp","line-height","opacity","order","orphans","tab-size","widows","z-index","zoom","fill-opacity","flood-opacity","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-miterlimit","stroke-opacity","stroke-width"];for(const e of r)for(const t of["-webkit-","-ms-","-moz-","-o-",""])s[t+e]=!0;function o(e,t){return t&&"number"==typeof t&&!s[e]?`${e}:${t}px`:`${e}:${t}`}function a(e){return e.sort(((e,t)=>e[0]>t[0]?1:-1))}function l(e){return e.map((([e,t])=>Array.isArray(t)?t.map((t=>o(e,t))).join(";"):o(e,t))).join(";")}function h(e,t){return-1===e.indexOf("&")?`${t} ${e}`:e.replace(/&/g,t)}function c(e,t,n,i,s){const{style:r,nested:o,isUnique:u}=function(e,t){const n=[],i=[];for(const t of Object.keys(e)){const r=t.trim(),o=e[t];36!==r.charCodeAt(0)&&null!=o&&("object"!=typeof o||Array.isArray(o)?n.push([(s=r,s.replace(/[A-Z]/g,(e=>`-${e.toLowerCase()}`)).replace(/^ms-/,"-ms-")),o]):i.push([r,o]))}var s;return{style:l(a(n)),nested:t?i:a(i),isUnique:!!e.$unique}}(t,""!==e);let f=r;if(64===e.charCodeAt(0)){const t={selector:e,styles:[],rules:[],style:s?"":r};n.push(t),r&&s&&t.styles.push({selector:s,style:r,isUnique:u});for(const[e,n]of o)f+=e+c(e,n,t.rules,t.styles,s)}else{const t=s?h(e,s):e;r&&i.push({selector:t,style:r,isUnique:u});for(const[e,s]of o)f+=e+c(e,s,n,i,t)}return f}function u(e,t,n,s,r,o){for(const{selector:n,style:a,isUnique:l}of s){const s=o?h(n,r):n,c=l?`u\0${(++i).toString(36)}`:`s\0${t}\0${a}`,u=new g(a,c);u.add(new m(s,`k\0${t}\0${s}`)),e.add(u)}for(const{selector:i,style:s,rules:a,styles:l}of n){const n=new b(i,s,`r\0${t}\0${i}\0${s}`);u(n,t,a,l,r,o),e.add(n)}}function f(e){let t="";for(let n=0;n{},change:()=>{},remove:()=>{}};class p{constructor(e=d){this.changes=e,this.sheet=[],this.changeId=0,this._keys=[],this._children=Object.create(null),this._counters=Object.create(null)}add(e){const t=this._counters[e.id]||0,n=this._children[e.id]||e.clone();if(this._counters[e.id]=t+1,0===t)this._children[n.id]=n,this._keys.push(n.id),this.sheet.push(n.getStyles()),this.changeId++,this.changes.add(n,this._keys.length-1);else if(n instanceof p&&e instanceof p){const t=this._keys.indexOf(e.id),i=n.changeId;n.merge(e),n.changeId!==i&&(this.sheet.splice(t,1,n.getStyles()),this.changeId++,this.changes.change(n,t,t))}}remove(e){const t=this._counters[e.id];if(t){this._counters[e.id]=t-1;const n=this._children[e.id],i=this._keys.indexOf(n.id);if(1===t)delete this._counters[e.id],delete this._children[e.id],this._keys.splice(i,1),this.sheet.splice(i,1),this.changeId++,this.changes.remove(n,i);else if(n instanceof p&&e instanceof p){const t=n.changeId;n.unmerge(e),n.changeId!==t&&(this.sheet.splice(i,1,n.getStyles()),this.changeId++,this.changes.change(n,i,i))}}}values(){return this._keys.map((e=>this._children[e]))}merge(e){for(const t of e.values())this.add(t);return this}unmerge(e){for(const t of e.values())this.remove(t);return this}clone(){return(new p).merge(this)}}class m{constructor(e,t){this.selector=e,this.id=t}getStyles(){return this.selector}clone(){return this}}class g extends p{constructor(e,t){super(),this.style=e,this.id=t}getStyles(){return`${this.sheet.join(",")}{${this.style}}`}clone(){return new g(this.style,this.id).merge(this)}}class b extends p{constructor(e,t,n){super(),this.rule=e,this.style=t,this.id=n}getStyles(){return`${this.rule}{${this.style}${f(this.sheet)}}`}clone(){return new b(this.rule,this.style,this.id).merge(this)}}function y(e,t){return`f${function(e){let t=5381,n=e.length;for(;n--;)t=33*t^e.charCodeAt(n);return(t>>>0).toString(36)}(e)}`}class v extends p{constructor(e,t){super(t),this.id=e}registerStyle(e){const t=[],n=[],i=c("&",e,t,n),s=y(i);return u(this,i,t,n,`.${s}`,!0),s}registerKeyframes(e){return this.registerHashRule("@keyframes",e)}registerHashRule(e,t){const n=[],i=[],s=c("",t,n,i),r=y(s),o=new b(`${e} ${r}`,"",`h\0${s}\0${e}`);return u(o,s,n,i,"",!1),this.add(o),r}registerRule(e,t){const n=[],i=[];u(this,c(e,t,n,i),n,i,"",!1)}registerCss(e){return this.registerRule("",e)}getStyles(){return f(this.sheet)}clone(){return new v(this.id,this.changes).merge(this)}}function x(e){return new v(`f${(++i).toString(36)}`,e)}},99910:(e,t,n)=>{var i="Expected a function",s="__lodash_placeholder__",r=1,o=2,a=4,l=8,h=16,c=32,u=64,f=128,d=512,p=1/0,m=9007199254740991,g=17976931348623157e292,b=NaN,y=[["ary",f],["bind",r],["bindKey",o],["curry",l],["curryRight",h],["flip",d],["partial",c],["partialRight",u],["rearg",256]],v="[object Function]",x="[object GeneratorFunction]",w="[object Symbol]",k=/^\s+|\s+$/g,S=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,C=/\{\n\/\* \[wrapped with (.+)\] \*/,A=/,? & /,O=/^[-+]0x[0-9a-f]+$/i,M=/^0b[01]+$/i,_=/^\[object .+?Constructor\]$/,T=/^0o[0-7]+$/i,E=/^(?:0|[1-9]\d*)$/,N=parseInt,D="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,P="object"==typeof self&&self&&self.Object===Object&&self,R=D||P||Function("return this")();function j(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function L(e){return e!=e}function B(e,t){for(var n=-1,i=e.length,r=0,o=[];++n2?F:void 0);function Z(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n,i=ce(n=e.prototype)?J(n):{},s=e.apply(i,t);return ce(s)?s:i}}function ee(e,t,n,i,s,a,c,u,p,m){var g=t&f,b=t&r,y=t&o,v=t&(l|h),x=t&d,w=y?void 0:Z(e);return function r(){for(var o=arguments.length,l=Array(o),h=o;h--;)l[h]=arguments[h];if(v)var f=ne(r),d=function(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&i++;return i}(l,f);if(i&&(l=function(e,t,n,i){for(var s=-1,r=e.length,o=n.length,a=-1,l=t.length,h=Y(r-o,0),c=Array(l+h),u=!i;++a1&&l.reverse(),g&&p1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(S,"{\n/* [wrapped with "+t+"] */\n")}function oe(e,t){return!!(t=null==t?m:t)&&("number"==typeof e||E.test(e))&&e>-1&&e%1==0&&e-1}(e,o)&&e.push(o))););var r,o}(y),e.sort()}function he(e,t,n){var s=function(e,t,n,s,a,f,d,p){var m=t&o;if(!m&&"function"!=typeof e)throw new TypeError(i);var g=s?s.length:0;if(g||(t&=~(c|u),s=a=void 0),d=void 0===d?d:Y(ue(d),0),p=void 0===p?p:ue(p),g-=a?a.length:0,t&u){var b=s,y=a;s=a=void 0}var v=[e,t,n,s,a,b,y,f,d,p];if(e=v[0],t=v[1],n=v[2],s=v[3],a=v[4],!(p=v[9]=null==v[9]?m?0:e.length:Y(v[9]-g,0))&&t&(l|h)&&(t&=~(l|h)),t&&t!=r)x=t==l||t==h?function(e,t,n){var i=Z(e);return function s(){for(var r=arguments.length,o=Array(r),a=r,l=ne(s);a--;)o[a]=arguments[a];var h=r<3&&o[0]!==l&&o[r-1]!==l?[]:B(o,l);return(r-=h.length){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var s=t[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,s=(i=n(2))&&i.__esModule?i:{default:i};t.default=s.default,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}(e,["activeClassName","activeIndex","activeStyle","autoEscape","caseSensitive","className","findChunks","highlightClassName","highlightStyle","highlightTag","sanitize","searchWords","textToHighlight","unhighlightTag","unhighlightClassName","unhighlightStyle"]),E=(0,r.findAll)({autoEscape:c,caseSensitive:f,findChunks:p,sanitize:w,searchWords:k,textToHighlight:S}),N=x,D=-1,P="",R=void 0,j=(0,l.default)((function(e){var t={};for(var n in e)t[n.toLowerCase()]=e[n];return t}));return(0,a.createElement)("span",i({className:d},T,{children:E.map((function(e,t){var i=S.substr(e.start,e.end-e.start);if(e.highlight){D++;var s;s="object"==typeof g?f?g[i]:(g=j(g))[i.toLowerCase()]:g;var r=D===+o;P=s+" "+(r?n:""),R=!0===r&&null!=h?Object.assign({},y,h):y;var l={children:i,className:P,key:t,style:R};return"string"!=typeof N&&(l.highlightIndex=D),(0,a.createElement)(N,l)}return(0,a.createElement)(A,{children:i,className:M,key:t,style:_})}))}))}h.propTypes={activeClassName:o.default.string,activeIndex:o.default.number,activeStyle:o.default.object,autoEscape:o.default.bool,className:o.default.string,findChunks:o.default.func,highlightClassName:o.default.oneOfType([o.default.object,o.default.string]),highlightStyle:o.default.object,highlightTag:o.default.oneOfType([o.default.node,o.default.func,o.default.string]),sanitize:o.default.func,searchWords:o.default.arrayOf(o.default.oneOfType([o.default.string,o.default.instanceOf(RegExp)])).isRequired,textToHighlight:o.default.string.isRequired,unhighlightTag:o.default.oneOfType([o.default.node,o.default.func,o.default.string]),unhighlightClassName:o.default.string,unhighlightStyle:o.default.object},e.exports=t.default},function(e,t){e.exports=function(e){var t={};function n(i){if(t[i])return t[i].exports;var s=t[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}return n.m=e,n.c=t,n.p="",n(0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2);Object.defineProperty(t,"combineChunks",{enumerable:!0,get:function(){return i.combineChunks}}),Object.defineProperty(t,"fillInChunks",{enumerable:!0,get:function(){return i.fillInChunks}}),Object.defineProperty(t,"findAll",{enumerable:!0,get:function(){return i.findAll}}),Object.defineProperty(t,"findChunks",{enumerable:!0,get:function(){return i.findChunks}})},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=function(e){var t=e.autoEscape,r=e.caseSensitive,o=void 0!==r&&r,a=e.findChunks,l=void 0===a?i:a,h=e.sanitize,c=e.searchWords,u=e.textToHighlight;return s({chunksToHighlight:n({chunks:l({autoEscape:t,caseSensitive:o,sanitize:h,searchWords:c,textToHighlight:u})}),totalLength:u?u.length:0})};var n=t.combineChunks=function(e){var t=e.chunks;return t.sort((function(e,t){return e.start-t.start})).reduce((function(e,t){if(0===e.length)return[t];var n=e.pop();if(t.start<=n.end){var i=Math.max(n.end,t.end);e.push({start:n.start,end:i})}else e.push(n,t);return e}),[])},i=function(e){var t=e.autoEscape,n=e.caseSensitive,i=e.sanitize,s=void 0===i?r:i,o=e.searchWords,a=e.textToHighlight;return a=s(a),o.filter((function(e){return e})).reduce((function(e,i){i=s(i),t&&(i=i.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"));for(var r=new RegExp(i,n?"g":"gi"),o=void 0;o=r.exec(a);){var l=o.index,h=r.lastIndex;h>l&&e.push({start:l,end:h}),o.index==r.lastIndex&&r.lastIndex++}return e}),[])};t.findChunks=i;var s=t.fillInChunks=function(e){var t=e.chunksToHighlight,n=e.totalLength,i=[],s=function(e,t,n){t-e>0&&i.push({start:e,end:t,highlight:n})};if(0===t.length)s(0,n,!1);else{var r=0;t.forEach((function(e){s(r,e.start,!1),s(e.start,e.end,!0),r=e.end})),s(r,n,!1)}return i};function r(e){return e}}])},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var i="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=n(6)((function(e){return"object"==typeof e&&null!==e&&e.$$typeof===i}),!0)}else e.exports=n(13)()}).call(t,n(5))},function(e,t){var n,i,s=e.exports={};function r(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function a(e){if(n===setTimeout)return setTimeout(e,0);if((n===r||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:r}catch(e){n=r}try{i="function"==typeof clearTimeout?clearTimeout:o}catch(e){i=o}}();var l,h=[],c=!1,u=-1;function f(){c&&l&&(c=!1,l.length?h=l.concat(h):u=-1,h.length&&d())}function d(){if(!c){var e=a(f);c=!0;for(var t=h.length;t;){for(l=h,h=[];++u1)for(var n=1;n1?t-1:0),i=1;i2?n-2:0),r=2;r1&&void 0!==arguments[1]?arguments[1]:n,i=void 0,s=[],r=void 0,o=!1,a=function(e,n){return t(e,s[n])};return function(){for(var t=arguments.length,n=Array(t),l=0;l{"use strict";var i=n(37101),s=Array.prototype.concat,r=Array.prototype.slice,o=e.exports=function(e){for(var t=[],n=0,o=e.length;n{e.exports=function(e){return!(!e||"string"==typeof e)&&(e instanceof Array||Array.isArray(e)||e.length>=0&&(e.splice instanceof Function||Object.getOwnPropertyDescriptor(e,e.length-1)&&"String"!==e.constructor.name))}},86823:(e,t,n)=>{"use strict";var i=n(26816);i.TypeStyle,n(64894);var s=n(30965);s.extend,s.classes,s.media;var r=new i.TypeStyle({autoGenerateTag:!0});r.setStylesTarget,r.cssRaw,r.cssRule,r.forceRenderStyles,r.fontFace,r.getStyles,r.keyframes,r.reinit,t.iF=r.style,r.stylesheet},41646:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertToStyles=function e(t){var n={};for(var i in t){var s=t[i];if("$nest"===i){var r=s;for(var o in r){var a=r[o];n[o]=e(a)}}else"$debugName"===i?n.$displayName=s:n[i]=s}return n},t.convertToKeyframes=function(e){var t={};for(var n in e)"$debugName"!==n&&(t[n]=e[n]);return e.$debugName&&(t.$displayName=e.$debugName),t}},26816:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(68101),s=n(41646),r=n(30965),o=function(){return i.create()},a=function(){function e(e){var t=this,n=e.autoGenerateTag;this.cssRaw=function(e){e&&(t._raw+=e||"",t._pendingRawChange=!0,t._styleUpdated())},this.cssRule=function(e){for(var n=[],i=1;i{"use strict";function n(){for(var e=[],t=0;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},77213:(e,t,n)=>{"use strict";n.d(t,{Ar:()=>h,Bc:()=>F,Gw:()=>M,_5:()=>o,et:()=>l,wm:()=>P});var i=n(14830),s=n(83173),r=n(29587);class o{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=(0,r.mv)(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),s=i.search(function(e,t){var n;let{source:i}=e,s=t&&"^"!=i[0],r="$"!=i[i.length-1];return s||r?new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}(e,!1));return s<0?null:{from:n+s,to:this.pos,text:i.slice(s)}}get aborted(){return null==this.abortListeners}addEventListener(e,t,n){"abort"==e&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function a(e){let t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),`[${n?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function l(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[n,i]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),n=Object.create(null);for(let{label:i}of e){t[i[0]]=!0;for(let e=1;e{let s=e.matchBefore(i);return s||e.explicit?{from:s?s.from:e.pos,options:t,validFor:n}:null}}function h(e,t){return n=>{for(let t=(0,r.mv)(n.state).resolveInner(n.pos,-1);t;t=t.parent){if(e.indexOf(t.name)>-1)return null;if(t.type.isTop)break}return t(n)}}const c=i.YH.define();"object"==typeof navigator&&navigator.platform;const u=s.Lz.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class f{constructor(e,t,n,i){this.field=e,this.line=t,this.from=n,this.to=i}}class d{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,i.iR.TrackDel),n=e.mapPos(this.to,1,i.iR.TrackDel);return null==t||null==n?null:new d(this.field,t,n)}}class p{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],i=[t],s=e.doc.lineAt(t),o=/^\s*/.exec(s.text)[0];for(let s of this.lines){if(n.length){let n=o,a=/^\t*/.exec(s)[0].length;for(let t=0;tnew d(e.field,i[e.line]+e.from,i[e.line]+e.to)));return{text:n,ranges:a}}static parse(e){let t,n=[],i=[],s=[];for(let r of e.split(/\r\n?|\n/)){for(;t=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(r);){let e=t[1]?+t[1]:null,o=t[2]||t[3]||"",a=-1,l=o.replace(/\\[{}]/g,(e=>e[1]));for(let t=0;t=a&&e.field++}s.push(new f(a,i.length,t.index,t.index+l.length)),r=r.slice(0,t.index)+o+r.slice(t.index+t[0].length)}r=r.replace(/\\([{}])/g,((e,t,n)=>{for(let e of s)e.line==i.length&&e.from>n&&(e.from--,e.to--);return t})),i.push(r)}return new p(i,s)}}let m=s.NZ.widget({widget:new class extends s.xO{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),g=s.NZ.mark({class:"cm-snippetField"});class b{constructor(e,t){this.ranges=e,this.active=t,this.deco=s.NZ.set(e.map((e=>(e.from==e.to?m:g).range(e.from,e.to))))}map(e){let t=[];for(let n of this.ranges){let i=n.map(e);if(!i)return null;t.push(i)}return new b(t,this.active)}selectionInsideField(e){return e.ranges.every((e=>this.ranges.some((t=>t.field==this.active&&t.from<=e.from&&t.to>=e.to))))}}const y=i.Pe.define({map:(e,t)=>e&&e.map(t)}),v=i.Pe.define(),x=i.sU.define({create:()=>null,update(e,t){for(let n of t.effects){if(n.is(y))return n.value;if(n.is(v)&&e)return new b(e.ranges,n.value)}return e&&t.docChanged&&(e=e.map(t.changes)),e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null),e},provide:e=>s.Lz.decorations.from(e,(e=>e?e.deco:s.NZ.none))});function w(e,t){return i.OF.create(e.filter((e=>e.field==t)).map((e=>i.OF.range(e.from,e.to))))}function k(e){let t=p.parse(e);return(e,n,s,r)=>{let{text:o,ranges:a}=t.instantiate(e.state,s),l={changes:{from:s,to:r,insert:i.EY.of(o)},scrollIntoView:!0,annotations:n?[c.of(n),i.ZX.userEvent.of("input.complete")]:void 0};if(a.length&&(l.selection=w(a,0)),a.some((e=>e.field>0))){let t=new b(a,0),n=l.effects=[y.of(t)];void 0===e.state.field(x,!1)&&n.push(i.Pe.appendConfig.of([x,O,_,u]))}e.dispatch(e.state.update(l))}}function S(e){return({state:t,dispatch:n})=>{let i=t.field(x,!1);if(!i||e<0&&0==i.active)return!1;let s=i.active+e,r=e>0&&!i.ranges.some((t=>t.field==s+e));return n(t.update({selection:w(i.ranges,s),effects:y.of(r?null:new b(i.ranges,s)),scrollIntoView:!0})),!0}}const C=[{key:"Tab",run:S(1),shift:S(-1)},{key:"Escape",run:({state:e,dispatch:t})=>!!e.field(x,!1)&&(t(e.update({effects:y.of(null)})),!0)}],A=i.sj.define({combine:e=>e.length?e[0]:C}),O=i.Nb.highest(s.w4.compute([A],(e=>e.facet(A))));function M(e,t){return Object.assign(Object.assign({},t),{apply:k(e)})}const _=s.Lz.domEventHandlers({mousedown(e,t){let n,i=t.state.field(x,!1);if(!i||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let s=i.ranges.find((e=>e.from<=n&&e.to>=n));return!(!s||s.field==i.active||(t.dispatch({selection:w(i.ranges,s.field),effects:y.of(i.ranges.some((e=>e.field>s.field))?new b(i.ranges,s.field):null),scrollIntoView:!0}),0))}}),T={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},E=i.Pe.define({map(e,t){let n=t.mapPos(e,-1,i.iR.TrackAfter);return null==n?void 0:n}}),N=new class extends i.FB{};N.startSide=1,N.endSide=-1;const D=i.sU.define({create:()=>i.om.empty,update(e,t){if(e=e.map(t.changes),t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(E)&&(e=e.update({add:[N.range(n.value,n.value+1)]}));return e}});function P(){return[I,D]}const R="()[]{}<>";function j(e){for(let t=0;t<8;t+=2)if(R.charCodeAt(t)==e)return R.charAt(t+1);return(0,i.MK)(e<128?e:e+1)}function L(e,t){return e.languageDataAt("closeBrackets",t)[0]||T}const B="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),I=s.Lz.inputHandler.of(((e,t,n,s)=>{if((B?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let r=e.state.selection.main;if(s.length>2||2==s.length&&1==(0,i.Fh)((0,i.vS)(s,0))||t!=r.from||n!=r.to)return!1;let o=function(e,t){let n=L(e,e.selection.main.head),s=n.brackets||T.brackets;for(let r of s){let o=j((0,i.vS)(r,0));if(t==r)return o==r?V(e,r,s.indexOf(r+r+r)>-1,n):H(e,r,o,n.before||T.before);if(t==o&&$(e,e.selection.main.from))return q(e,0,o)}return null}(e.state,s);return!!o&&(e.dispatch(o),!0)})),F=[{key:"Backspace",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=L(e,e.selection.main.head).brackets||T.brackets,s=null,r=e.changeByRange((t=>{if(t.empty){let s=function(e,t){let n=e.sliceString(t-2,t);return(0,i.Fh)((0,i.vS)(n,0))==n.length?n:n.slice(1)}(e.doc,t.head);for(let r of n)if(r==s&&z(e.doc,t.head)==j((0,i.vS)(r,0)))return{changes:{from:t.head-r.length,to:t.head+r.length},range:i.OF.cursor(t.head-r.length)}}return{range:s=t}}));return s||t(e.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s}}];function $(e,t){let n=!1;return e.field(D).between(0,e.doc.length,(e=>{e==t&&(n=!0)})),n}function z(e,t){let n=e.sliceString(t,t+2);return n.slice(0,(0,i.Fh)((0,i.vS)(n,0)))}function H(e,t,n,s){let r=null,o=e.changeByRange((o=>{if(!o.empty)return{changes:[{insert:t,from:o.from},{insert:n,from:o.to}],effects:E.of(o.to+t.length),range:i.OF.range(o.anchor+t.length,o.head+t.length)};let a=z(e.doc,o.head);return!a||/\s/.test(a)||s.indexOf(a)>-1?{changes:{insert:t+n,from:o.head},effects:E.of(o.head+t.length),range:i.OF.cursor(o.head+t.length)}:{range:r=o}}));return r?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function q(e,t,n){let s=null,r=e.changeByRange((t=>t.empty&&z(e.doc,t.head)==n?{changes:{from:t.head,to:t.head+n.length,insert:n},range:i.OF.cursor(t.head+n.length)}:s={range:t}));return s?null:e.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function V(e,t,n,s){let o=s.stringPrefixes||T.stringPrefixes,a=null,l=e.changeByRange((s=>{if(!s.empty)return{changes:[{insert:t,from:s.from},{insert:t,from:s.to}],effects:E.of(s.to+t.length),range:i.OF.range(s.anchor+t.length,s.head+t.length)};let l,h=s.head,c=z(e.doc,h);if(c==t){if(W(e,h))return{changes:{insert:t+t,from:h},effects:E.of(h+t.length),range:i.OF.cursor(h+t.length)};if($(e,h)){let s=n&&e.sliceDoc(h,h+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:h,to:h+s.length,insert:s},range:i.OF.cursor(h+s.length)}}}else{if(n&&e.sliceDoc(h-2*t.length,h)==t+t&&(l=G(e,h-2*t.length,o))>-1&&W(e,l))return{changes:{insert:t+t+t+t,from:h},effects:E.of(h+t.length),range:i.OF.cursor(h+t.length)};if(e.charCategorizer(h)(c)!=i.Je.Word&&G(e,h,o)>-1&&!function(e,t,n,i){let s=(0,r.mv)(e).resolveInner(t,-1),o=i.reduce(((e,t)=>Math.max(e,t.length)),0);for(let r=0;r<5;r++){let r=e.sliceDoc(s.from,Math.min(s.to,s.from+n.length+o)),a=r.indexOf(n);if(!a||a>-1&&i.indexOf(r.slice(0,a))>-1){let t=s.firstChild;for(;t&&t.from==s.from&&t.to-t.from>n.length+a;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let l=s.to==t&&s.parent;if(!l)break;s=l}return!1}(e,h,t,o))return{changes:{insert:t+t,from:h},effects:E.of(h+t.length),range:i.OF.cursor(h+t.length)}}return{range:a=s}}));return a?null:e.update(l,{scrollIntoView:!0,userEvent:"input.type"})}function W(e,t){let n=(0,r.mv)(e).resolveInner(t+1);return n.parent&&n.from==t}function G(e,t,n){let s=e.charCategorizer(t);if(s(e.sliceDoc(t-1,t))!=i.Je.Word)return t;for(let r of n){let n=t-r.length;if(e.sliceDoc(n,t)==r&&s(e.sliceDoc(n-1,n))!=i.Je.Word)return n}return-1}},29587:(e,t,n)=>{"use strict";n.d(t,{Ay:()=>F,EI:()=>E,KB:()=>D,Lv:()=>ce,Oh:()=>P,Q0:()=>u,Q_:()=>Te,SG:()=>_e,TM:()=>f,Tg:()=>Ie,WD:()=>V,Xt:()=>_,Yy:()=>A,Zt:()=>ve,_Y:()=>z,_v:()=>N,b_:()=>G,bj:()=>p,cr:()=>fe,iB:()=>h,jU:()=>De,mv:()=>m,mz:()=>H,nq:()=>y,p9:()=>c,t:()=>W,t$:()=>O,tp:()=>T,y9:()=>ge,yd:()=>U});var i,s=n(79066),r=n(14830),o=n(83173),a=n(49913),l=n(98104);const h=new s.uY;function c(e){return r.sj.define({combine:e?t=>t.concat(e):void 0})}const u=new s.uY;class f{constructor(e,t,n=[],i=""){this.data=e,this.name=i,r.$t.prototype.hasOwnProperty("tree")||Object.defineProperty(r.$t.prototype,"tree",{get(){return m(this)}}),this.parser=t,this.extension=[C.of(this),r.$t.languageData.of(((e,t,n)=>{let i=d(e,t,n),s=i.type.prop(h);if(!s)return[];let r=e.facet(s),o=i.type.prop(u);if(o){let s=i.resolve(t-i.from,n);for(let t of o)if(t.test(s,e)){let n=e.facet(t.facet);return"replace"==t.type?n:n.concat(r)}}return r}))].concat(n)}isActiveAt(e,t,n=-1){return d(e,t,n).type.prop(h)==this.data}findRegions(e){let t=e.facet(C);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],i=(e,t)=>{if(e.prop(h)==this.data)return void n.push({from:t,to:t+e.length});let r=e.prop(s.uY.mounted);if(r){if(r.tree.prop(h)==this.data){if(r.overlay)for(let e of r.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(r.overlay){let e=n.length;if(i(r.tree,r.overlay[0].from+t),n.length>e)return}}for(let n=0;ne.isTop?t:void 0))]}),e.name)}configure(e,t){return new p(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function m(e){let t=e.field(f.state,!1);return t?t.tree:s.PH.empty}class g{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let b=null;class y{constructor(e,t,n=[],i,s,r,o,a){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=s,this.viewport=r,this.skipped=o,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new y(e,t,[],s.PH.empty,0,n,[],null)}startParse(){return this.parser.startParse(new g(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=s.PH.empty&&this.isDone(null!=t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&t=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext((()=>{for(;!(t=this.parse.advance()););})),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(s.rr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=b;b=this;try{return e()}finally{b=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=v(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:r,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,i,s)=>t.push({fromA:e,toA:n,fromB:i,toB:s}))),n=s.rr.applyChanges(n,t),i=s.PH.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let t of this.skipped){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);ne.from&&(this.fragments=v(this.fragments,n,i),this.skipped.splice(t--,1))}return!(this.skipped.length>=t||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends s.iX{createParse(t,n,i){let r=i[0].from,o=i[i.length-1].to;return{parsedPos:r,advance(){let t=b;if(t){for(let e of i)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=o,new s.PH(s.Z6.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return b}}function v(e,t,n){return s.rr.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class x{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new x(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=y.create(e.facet(C).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new x(n)}}f.state=r.sU.define({create:x.init,update(e,t){for(let e of t.effects)if(e.is(f.setState))return e.value;return t.startState.facet(C)!=t.state.facet(C)?x.init(t.state):e.apply(t)}});let w=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(w=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const k="undefined"!=typeof navigator&&(null===(i=navigator.scheduling)||void 0===i?void 0:i.isInputPending)?()=>navigator.scheduling.isInputPending():null,S=o.Z9.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(f.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(f.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=w(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndi+1e3,a=s.context.work((()=>k&&k()||Date.now()>r),i+(o?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:f.setState.of(new x(s.context))})),this.chunkBudget>0&&(!a||o)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>(0,o.c_)(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),C=r.sj.define({combine:e=>e.length?e[0]:null,enables:e=>[f.state,S,o.Lz.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});class A{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class O{constructor(e,t,n,i,s,r=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=i,this.loadFunc=s,this.support=r,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((e=>this.support=e),(e=>{throw this.loading=null,e})))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new O(e.name,(e.alias||[]).concat(e.name).map((e=>e.toLowerCase())),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let n of e)if(n.filename&&n.filename.test(t))return n;let n=/\.([^.]+)$/.exec(t);if(n)for(let t of e)if(t.extensions.indexOf(n[1])>-1)return t;return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let n of e)if(n.alias.some((e=>e==t)))return n;if(n)for(let n of e)for(let e of n.alias){let i=t.indexOf(e);if(i>-1&&(e.length>2||!/\w/.test(t[i-1])&&!/\w/.test(t[i+e.length])))return n}return null}}const M=r.sj.define(),_=r.sj.define({combine:e=>{if(!e.length)return" ";let t=e[0];if(!t||/\S/.test(t)||Array.from(t).some((e=>e!=t[0])))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return t}});function T(e){let t=e.facet(_);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function E(e,t){let n="",i=e.tabSize,s=e.facet(_)[0];if("\t"==s){for(;t>=i;)n+="\t",t-=i;s=" "}for(let e=0;e=t?function(e,t,n){let i=t.resolveStack(n),s=i.node.enterUnfinishedNodesBefore(n);if(s!=i.node){let e=[];for(let t=s;t!=i.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)i={node:e[t],next:i}}return R(i,e,n)}(e,n,t):null}class D{constructor(e,t={}){this.state=e,this.options=t,this.unit=T(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:s}=this.options;return null!=i&&i>=n.from&&i<=n.to?s&&i==e?{text:"",from:e}:(t<0?i-1&&(s+=r-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return(0,r.y$)(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:i}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let e=s(i);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const P=new s.uY;function R(e,t,n){for(let i=e;i;i=i.next){let e=j(i.node);if(e)return e(B.create(t,n,i))}return 0}function j(e){let t=e.type.prop(P);if(t)return t;let n,i=e.firstChild;if(i&&(n=i.type.prop(s.uY.closedBy))){let t=e.lastChild,i=t&&n.indexOf(t.name)>-1;return e=>$(e,!0,1,void 0,i&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?L:null}function L(){return 0}class B extends D{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new B(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(I(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return R(this.context.next,this.base,this.pos)}}function I(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function F({closing:e,align:t=!0,units:n=1}){return i=>$(i,t,n,e)}function $(e,t,n,i,s){let r=e.textAfter,o=r.match(/^\s*/)[0].length,a=i&&r.slice(o,o+i.length)==i||s==e.pos+o,l=t?function(e){let t=e.node,n=t.childAfter(t.from),i=t.lastChild;if(!n)return null;let s=e.options.simulateBreak,r=e.state.doc.lineAt(n.from),o=null==s||s<=r.from?r.to:Math.min(r.to,s);for(let e=n.to;;){let s=t.childAfter(e);if(!s||s==i)return null;if(!s.type.isSkipped)return s.frome.baseIndent;function H({except:e,units:t=1}={}){return n=>{let i=e&&e.test(n.textAfter);return n.baseIndent+(i?0:t*n.unit)}}const q=200;function V(){return r.$t.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:i}=e.newSelection.main,s=n.lineAt(i);if(i>s.from+q)return e;let r=n.sliceString(s.from,i);if(!t.some((e=>e.test(r))))return e;let{state:o}=e,a=-1,l=[];for(let{head:e}of o.selection.ranges){let t=o.doc.lineAt(e);if(t.from==a)continue;a=t.from;let n=N(o,t.from);if(null==n)continue;let i=/^\s*/.exec(t.text)[0],s=E(o,n);i!=s&&l.push({from:t.from,to:t.from+i.length,insert:s})}return l.length?[e,{changes:l,sequential:!0}]:e}))}const W=r.sj.define(),G=new s.uY;function U(e){let t=e.firstChild,n=e.lastChild;return t&&t.ton)continue;if(s&&o.from=t&&i.to>n&&(s=i)}}return s}(e,t,n)}function Y(e,t){let n=t.mapPos(e.from,1),i=t.mapPos(e.to,-1);return n>=i?void 0:{from:n,to:i}}const X=r.Pe.define({map:Y}),Q=r.Pe.define({map:Y}),Z=r.sU.define({create:()=>o.NZ.none,update(e,t){e=e.map(t.changes);for(let n of t.effects)if(n.is(X)&&!te(e,n.value.from,n.value.to)){let{preparePlaceholder:i}=t.state.facet(ie),s=i?o.NZ.replace({widget:new ae(i(t.state,n.value))}):oe;e=e.update({add:[s.range(n.value.from,n.value.to)]})}else n.is(Q)&&(e=e.update({filter:(e,t)=>n.value.from!=e||n.value.to!=t,filterFrom:n.value.from,filterTo:n.value.to}));if(t.selection){let n=!1,{head:i}=t.selection.main;e.between(i,i,((e,t)=>{ei&&(n=!0)})),n&&(e=e.update({filterFrom:i,filterTo:i,filter:(e,t)=>t<=i||e>=i}))}return e},provide:e=>o.Lz.decorations.from(e),toJSON(e,t){let n=[];return e.between(0,t.doc.length,((e,t)=>{n.push(e,t)})),n},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let n=0;n{(!s||s.from>e)&&(s={from:e,to:t})})),s}function te(e,t,n){let i=!1;return e.between(t,t,((e,s)=>{e==t&&s==n&&(i=!0)})),i}const ne={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},ie=r.sj.define({combine:e=>(0,r.QR)(e,ne)});function se(e){let t=[Z,ue];return e&&t.push(ie.of(e)),t}function re(e,t){let{state:n}=e,i=n.facet(ie),s=t=>{let n=e.lineBlockAt(e.posAtDOM(t.target)),i=ee(e.state,n.from,n.to);i&&e.dispatch({effects:Q.of(i)}),t.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(e,s,t);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",n.phrase("folded code")),r.title=n.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}const oe=o.NZ.replace({widget:new class extends o.xO{toDOM(e){return re(e,null)}}});class ae extends o.xO{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return re(e,this.value)}}const le={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class he extends o.wJ{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function ce(e={}){let t=Object.assign(Object.assign({},le),e),n=new he(t,!0),i=new he(t,!1),s=o.Z9.fromClass(class{constructor(e){this.from=e.viewport.from,this.markers=this.buildMarkers(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.facet(C)!=e.state.facet(C)||e.startState.field(Z,!1)!=e.state.field(Z,!1)||m(e.startState)!=m(e.state)||t.foldingChanged(e))&&(this.markers=this.buildMarkers(e.view))}buildMarkers(e){let t=new r.vB;for(let s of e.viewportLineBlocks){let r=ee(e.state,s.from,s.to)?i:J(e.state,s.from,s.to)?n:null;r&&t.add(s.from,s.from,r)}return t.finish()}}),{domEventHandlers:a}=t;return[s,(0,o.cU)({class:"cm-foldGutter",markers(e){var t;return(null===(t=e.plugin(s))||void 0===t?void 0:t.markers)||r.om.empty},initialSpacer:()=>new he(t,!1),domEventHandlers:Object.assign(Object.assign({},a),{click:(e,t,n)=>{if(a.click&&a.click(e,t,n))return!0;let i=ee(e.state,t.from,t.to);if(i)return e.dispatch({effects:Q.of(i)}),!0;let s=J(e.state,t.from,t.to);return!!s&&(e.dispatch({effects:X.of(s)}),!0)}})}),se()]}const ue=o.Lz.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class fe{constructor(e,t){let n;function i(e){let t=l.G.newName();return(n||(n=Object.create(null)))["."+t]=e,t}this.specs=e;const s="string"==typeof t.all?t.all:t.all?i(t.all):void 0,r=t.scope;this.scope=r instanceof f?e=>e.prop(h)==r.data:r?e=>e==r:void 0,this.style=(0,a.az)(e.map((e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))}))),{all:s}).style,this.module=n?new l.G(n):null,this.themeType=t.themeType}static define(e,t){return new fe(e,t||{})}}const de=r.sj.define(),pe=r.sj.define({combine:e=>e.length?[e[0]]:null});function me(e){let t=e.facet(de);return t.length?t:e.facet(pe)}function ge(e,t){let n,i=[ye];return e instanceof fe&&(e.module&&i.push(o.Lz.styleModule.of(e.module)),n=e.themeType),(null==t?void 0:t.fallback)?i.push(pe.of(e)):n?i.push(de.computeN([o.Lz.darkTheme],(t=>t.facet(o.Lz.darkTheme)==("dark"==n)?[e]:[]))):i.push(de.of(e)),i}class be{constructor(e){this.markCache=Object.create(null),this.tree=m(e.state),this.decorations=this.buildDeco(e,me(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=m(e.state),n=me(e.state),i=n!=me(e.startState),{viewport:s}=e.view,r=e.changes.mapPos(this.decoratedTo,1);t.length=s.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=s.to)}buildDeco(e,t){if(!t||!this.tree.length)return o.NZ.none;let n=new r.vB;for(let{from:i,to:s}of e.visibleRanges)(0,a.DM)(this.tree,t,((e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=o.NZ.mark({class:i})))}),i,s);return n.finish()}}const ye=r.Nb.high(o.Z9.fromClass(be,{decorations:e=>e.decorations})),ve=fe.define([{tag:a._A.meta,color:"#404740"},{tag:a._A.link,textDecoration:"underline"},{tag:a._A.heading,textDecoration:"underline",fontWeight:"bold"},{tag:a._A.emphasis,fontStyle:"italic"},{tag:a._A.strong,fontWeight:"bold"},{tag:a._A.strikethrough,textDecoration:"line-through"},{tag:a._A.keyword,color:"#708"},{tag:[a._A.atom,a._A.bool,a._A.url,a._A.contentSeparator,a._A.labelName],color:"#219"},{tag:[a._A.literal,a._A.inserted],color:"#164"},{tag:[a._A.string,a._A.deleted],color:"#a11"},{tag:[a._A.regexp,a._A.escape,a._A.special(a._A.string)],color:"#e40"},{tag:a._A.definition(a._A.variableName),color:"#00f"},{tag:a._A.local(a._A.variableName),color:"#30a"},{tag:[a._A.typeName,a._A.namespace],color:"#085"},{tag:a._A.className,color:"#167"},{tag:[a._A.special(a._A.variableName),a._A.macroName],color:"#256"},{tag:a._A.definition(a._A.propertyName),color:"#00c"},{tag:a._A.comment,color:"#940"},{tag:a._A.invalid,color:"#f00"}]),xe=o.Lz.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),we=1e4,ke="()[]{}",Se=r.sj.define({combine:e=>(0,r.QR)(e,{afterCursor:!0,brackets:ke,maxScanDistance:we,renderMatch:Oe})}),Ce=o.NZ.mark({class:"cm-matchingBracket"}),Ae=o.NZ.mark({class:"cm-nonmatchingBracket"});function Oe(e){let t=[],n=e.matched?Ce:Ae;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}const Me=[r.sU.define({create:()=>o.NZ.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],i=t.state.facet(Se);for(let e of t.state.selection.ranges){if(!e.empty)continue;let s=De(t.state,e.head,-1,i)||e.head>0&&De(t.state,e.head-1,1,i)||i.afterCursor&&(De(t.state,e.head,1,i)||e.heado.Lz.decorations.from(e)}),xe];function _e(e={}){return[Se.of(e),Me]}const Te=new s.uY;function Ee(e,t,n){let i=e.prop(t<0?s.uY.openedBy:s.uY.closedBy);if(i)return i;if(1==e.name.length){let i=n.indexOf(e.name);if(i>-1&&i%2==(t<0?1:0))return[n[i+t]]}return null}function Ne(e){let t=e.type.prop(Te);return t?t(e.node):e}function De(e,t,n,i={}){let s=i.maxScanDistance||we,r=i.brackets||ke,o=m(e),a=o.resolveInner(t,n);for(let e=a;e;e=e.parent){let i=Ee(e.type,n,r);if(i&&e.from0?t>=s.from&&ts.from&&t<=s.to))return Pe(0,0,n,e,s,i,r)}}return function(e,t,n,i,s,r,o){let a=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=o.indexOf(a);if(l<0||l%2==0!=n>0)return null;let h={from:n<0?t-1:t,to:n>0?t+1:t},c=e.doc.iterRange(t,n>0?e.doc.length:0),u=0;for(let e=0;!c.next().done&&e<=r;){let r=c.value;n<0&&(e+=r.length);let a=t+e*n;for(let e=n>0?0:r.length-1,t=n>0?r.length:-1;e!=t;e+=n){let t=o.indexOf(r[e]);if(!(t<0||i.resolveInner(a+e,1).type!=s))if(t%2==0==n>0)u++;else{if(1==u)return{start:h,end:{from:a+e,to:a+e+1},matched:t>>1==l>>1};u--}}n>0&&(e+=r.length)}return c.done?{start:h,matched:!1}:null}(e,t,n,o,a.type,s,r)}function Pe(e,t,n,i,s,r,o){let a=i.parent,l={from:s.from,to:s.to},h=0,c=null==a?void 0:a.cursor();if(c&&(n<0?c.childBefore(i.from):c.childAfter(i.to)))do{if(n<0?c.to<=i.from:c.from>=i.to){if(0==h&&r.indexOf(c.type.name)>-1&&c.from=this.string.length}sol(){return 0==this.pos}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosn?e.toLowerCase():e;return i(this.string.substr(this.pos,e.length))==i(e)?(!1!==t&&(this.pos+=e.length),!0):null}{let n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}}current(){return this.string.slice(this.start,this.pos)}}function Le(e){if("object"!=typeof e)return e;let t={};for(let n in e){let i=e[n];t[n]=i instanceof Array?i.slice():i}return t}const Be=new WeakMap;class Ie extends f{constructor(e){let t,n=c(e.languageData),i={name:(r=e).name||"",token:r.token,blankLine:r.blankLine||(()=>{}),startState:r.startState||(()=>!0),copyState:r.copyState||Le,indent:r.indent||(()=>null),languageData:r.languageData||{},tokenTable:r.tokenTable||qe};var r;super(n,new class extends s.iX{createParse(e,n,i){return new ze(t,e,n,i)}},[M.of(((e,t)=>this.getIndent(e,t)))],e.name),this.topNode=function(e){let t=s.Z6.define({id:Ve.length,name:"Document",props:[h.add((()=>e))],top:!0});return Ve.push(t),t}(n),t=this,this.streamParser=i,this.stateAfter=new s.uY({perNode:!0}),this.tokenTable=e.tokenTable?new Je(i.tokenTable):Ye}static define(e){return new Ie(e)}getIndent(e,t){let n,i=m(e.state),s=i.resolve(t);for(;s&&s.type!=this.topNode;)s=s.parent;if(!s)return null;let{overrideIndentation:r}=e.options;r&&(n=Be.get(e.state),null!=n&&n1e4)return null;for(;o=i&&n+t.length<=r&&t.prop(e.stateAfter);if(o)return{state:e.streamParser.copyState(o),pos:n+t.length};for(let o=t.children.length-1;o>=0;o--){let a=t.children[o],l=n+t.positions[o],h=a instanceof s.PH&&l=t.length)return t;r||t.type!=e.topNode||(r=!0);for(let o=t.children.length-1;o>=0;o--){let a,l=t.positions[o],h=t.children[o];if(ln&&Fe(e,i.tree,0-i.offset,n,r);if(o&&(t=$e(e,i.tree,n+i.offset,o.pos+i.offset,!1)))return{state:o.state,tree:t}}return{state:e.streamParser.startState(i?T(i):4),tree:s.PH.empty}}(e,n,o,null==r?void 0:r.state);this.state=a,this.parsedPos=this.chunkStart=o+l.length;for(let e=0;e=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)"\n"==t&&(t="");else{let e=t.indexOf("\n");e>-1&&(t=t.slice(0,e))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let e=this.rangeIndex;;){let i=this.ranges[e].to;if(i>=n)break;if(t=t.slice(0,i-(n-t.length)),e++,e==this.ranges.length)break;let s=this.ranges[e].from,r=this.lineAfter(s);t+=r,n=s+r.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let i=this.ranges[this.rangeIndex].to,s=e+t;if(n>0?i>s:i>=s)break;t+=this.ranges[++this.rangeIndex].from-i}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){t+=s=this.skipGapsTo(t,s,1);let e=this.chunk.length;n+=s=this.skipGapsTo(n,s,-1),i+=this.chunk.length-e}return this.chunk.push(e,t,n,i),s}parseLine(e){let{line:t,end:n}=this.nextLine(),i=0,{streamParser:s}=this.lang,r=new je(t,e?e.state.tabSize:4,e?T(e.state):2);if(r.eol())s.blankLine(this.state,r.indentUnit);else for(;!r.eol();){let e=He(s.token,r,this.state);if(e&&(i=this.emitToken(this.lang.tokenTable.resolve(e),this.parsedPos+r.start,this.parsedPos+r.pos,4,i)),r.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPost.start)return i}throw new Error("Stream parser failed to advance stream.")}const qe=Object.create(null),Ve=[s.Z6.none],We=new s.fI(Ve),Ge=[],Ue=Object.create(null),Ke=Object.create(null);for(let[e,t]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Ke[e]=Qe(qe,t);class Je{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Ke)}resolve(e){return e?this.table[e]||(this.table[e]=Qe(this.extra,e)):0}}const Ye=new Je(qe);function Xe(e,t){Ge.indexOf(e)>-1||(Ge.push(e),console.warn(t))}function Qe(e,t){let n=[];for(let i of t.split(" ")){let t=[];for(let n of i.split(".")){let i=e[n]||a._A[n];i?"function"==typeof i?t.length?t=t.map(i):Xe(n,`Modifier ${n} used at start of tag`):t.length?Xe(n,`Tag ${n} used as modifier`):t=Array.isArray(i)?i:[i]:Xe(n,`Unknown highlighting tag ${n}`)}for(let e of t)n.push(e)}if(!n.length)return 0;let i=t.replace(/ /g,"_"),r=i+" "+n.map((e=>e.id)),o=Ue[r];if(o)return o.id;let l=Ue[r]=s.Z6.define({id:Ve.length,name:i,props:[(0,a.pn)({[i]:n})]});return Ve.push(l),l.id}o.OP.RTL,o.OP.LTR},14830:(e,t,n)=>{"use strict";n.d(t,{$t:()=>ke,EY:()=>i,FB:()=>Ce,Fh:()=>C,Gu:()=>M,Je:()=>ve,MK:()=>S,Nb:()=>K,OF:()=>L,Pe:()=>ue,QR:()=>Se,VR:()=>_,YH:()=>le,ZX:()=>fe,iR:()=>O,kn:()=>ze,om:()=>_e,sU:()=>G,sj:()=>F,vB:()=>Te,vS:()=>k,xx:()=>Y,y$:()=>$e,zK:()=>b});class i{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=f(this,e,t);let i=[];return this.decompose(0,e,i,2),n.length&&n.decompose(0,n.length,i,3),this.decompose(t,this.length,i,1),r.from(i,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=f(this,e,t);let n=[];return this.decompose(e,t,n,0),r.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),i=new l(this),s=new l(e);for(let e=t,r=t;;){if(i.next(e),s.next(e),e=0,i.lineBreak!=s.lineBreak||i.done!=s.done||i.value!=s.value)return!1;if(r+=i.value.length,i.done||r>=n)return!0}}iter(e=1){return new l(this,e)}iterRange(e,t=this.length){return new h(this,e,t)}iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.lines+1);let i=this.line(e).from;n=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new c(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new s(e):r.from(s.split(e,[])):i.empty}}class s extends i{constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;return t}(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,i){for(let s=0;;s++){let r=this.text[s],o=i+r.length;if((t?n:o)>=e)return new u(i,o,n,r);i=o+1,n++}}decompose(e,t,n,i){let r=e<=0&&t>=this.length?this:new s(a(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){let e=n.pop(),t=o(r.text,e.text.slice(),0,r.length);if(t.length<=32)n.push(new s(t,e.length+r.length));else{let e=t.length>>1;n.push(new s(t.slice(0,e)),new s(t.slice(e)))}}else n.push(r)}replace(e,t,n){if(!(n instanceof s))return super.replace(e,t,n);[e,t]=f(this,e,t);let i=o(this.text,o(n.text,a(this.text,0,e)),t),l=this.length+n.length-(t-e);return i.length<=32?new s(i,l):r.from(s.split(i,[]),l)}sliceString(e,t=this.length,n="\n"){[e,t]=f(this,e,t);let i="";for(let s=0,r=0;s<=t&&re&&r&&(i+=n),es&&(i+=o.slice(Math.max(0,e-s),t-s)),s=a+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let r of e)n.push(r),i+=r.length+1,32==n.length&&(t.push(new s(n,i)),n=[],i=-1);return i>-1&&t.push(new s(n,i)),t}}class r extends i{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,n,i){for(let s=0;;s++){let r=this.children[s],o=i+r.length,a=n+r.lines-1;if((t?a:o)>=e)return r.lineInner(e,t,n,i);i=o+1,n=a+1}}decompose(e,t,n,i){for(let s=0,r=0;r<=t&&s=r){let s=i&((r<=e?1:0)|(a>=t?2:0));r>=e&&a<=t&&!s?n.push(o):o.decompose(e-r,t-r,n,s)}r=a+1}}replace(e,t,n){if([e,t]=f(this,e,t),n.lines=s&&t<=a){let l=o.replace(e-s,t-s,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let s=this.children.slice();return s[i]=l,new r(s,this.length-(t-e)+n.length)}return super.replace(s,a,l)}s=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n="\n"){[e,t]=f(this,e,t);let i="";for(let s=0,r=0;se&&s&&(i+=n),er&&(i+=o.sliceString(e-r,t-r,n)),r=a+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof r))return 0;let n=0,[i,s,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,s+=t){if(i==o||s==a)return n;let r=this.children[i],l=e.children[s];if(r!=l)return n+r.scanIdentical(l,t);n+=r.length+1}}static from(e,t=e.reduce(((e,t)=>e+t.length+1),-1)){let n=0;for(let t of e)n+=t.lines;if(n<32){let n=[];for(let t of e)t.flatten(n);return new s(n,t)}let i=Math.max(32,n>>5),o=i<<1,a=i>>1,l=[],h=0,c=-1,u=[];function f(e){let t;if(e.lines>o&&e instanceof r)for(let t of e.children)f(t);else e.lines>a&&(h>a||!h)?(d(),l.push(e)):e instanceof s&&h&&(t=u[u.length-1])instanceof s&&e.lines+t.lines<=32?(h+=e.lines,c+=e.length+1,u[u.length-1]=new s(t.text.concat(e.text),t.length+1+e.length)):(h+e.lines>i&&d(),h+=e.lines,c+=e.length+1,u.push(e))}function d(){0!=h&&(l.push(1==u.length?u[0]:r.from(u,c)),c=-1,h=u.length=0)}for(let t of e)f(t);return d(),1==l.length?l[0]:new r(l,t)}}function o(e,t,n=0,i=1e9){for(let s=0,r=0,o=!0;r=n&&(l>i&&(a=a.slice(0,i-s)),s0?1:(e instanceof s?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],r=this.offsets[n],o=r>>1,a=i instanceof s?i.text.length:i.children.length;if(o==(t>0?a:0)){if(0==n)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&r)==(t>0?0:1)){if(this.offsets[n]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(i instanceof s){let s=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,s.length>Math.max(0,e))return this.value=0==e?s:t>0?s.slice(e):s.slice(0,s.length-e),this;e-=s.length}else{let r=i.children[o+(t<0?-1:0)];e>r.length?(e-=r.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(r),this.offsets.push(t>0?1:(r instanceof s?r.text.length:r.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class h{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new l(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class c{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(i.prototype[Symbol.iterator]=function(){return this.iter()},l.prototype[Symbol.iterator]=h.prototype[Symbol.iterator]=c.prototype[Symbol.iterator]=function(){return this});class u{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}}function f(e,t,n){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,n))]}let d="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e=>e?parseInt(e,36):1));for(let e=1;ee)return d[t-1]<=e;return!1}function m(e){return e>=127462&&e<=127487}const g=8205;function b(e,t,n=!0,i=!0){return(n?y:v)(e,t,i)}function y(e,t,n){if(t==e.length)return t;t&&x(e.charCodeAt(t))&&w(e.charCodeAt(t-1))&&t--;let i=k(e,t);for(t+=C(i);t=0&&m(k(e,i));)n++,i-=2;if(n%2==0)break;t+=2}}}return t}function v(e,t,n){for(;t>0;){let i=y(e,t-2,n);if(i=56320&&e<57344}function w(e){return e>=55296&&e<56320}function k(e,t){let n=e.charCodeAt(t);if(!w(n)||t+1==e.length)return n;let i=e.charCodeAt(t+1);return x(i)?i-56320+(n-55296<<10)+65536:n}function S(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function C(e){return e<65536?1:2}const A=/\r\n?|\n/;var O=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(O||(O={}));class M{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return s+(e-i);s+=o}else{if(n!=O.Simple&&l>=e&&(n==O.TrackDel&&ie||n==O.TrackBefore&&ie))return null;if(l>e||l==e&&t<0&&!o)return e==i||t<0?s:s+a;s+=a}i=l}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return s}touchesRange(e,t=e){for(let n=0,i=0;n=0&&i<=t&&s>=e)return!(it)||"cover";i=s}return!1}toString(){let e="";for(let t=0;t=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new M(e)}static create(e){return new M(e)}}class _ extends M{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return N(this,((t,n,i,s,r)=>e=e.replace(i,i+(n-t),r)),!1),e}mapDesc(e,t=!1){return D(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let s=0,r=0;s=0){t[s]=a,t[s+1]=o;let l=s>>1;for(;n.length0&&E(n,t,s.text),s.forward(e),o+=e}let l=e[r++];for(;o>1].toJSON()))}return e}static of(e,t,n){let s=[],r=[],o=0,a=null;function l(e=!1){if(!e&&!s.length)return;oa||e<0||a>t)throw new RangeError(`Invalid change range ${e} to ${a} (in doc of length ${t})`);let u=c?"string"==typeof c?i.of(c.split(n||A)):c:i.empty,f=u.length;if(e==a&&0==f)return;eo&&T(s,e-o,-1),T(s,a-e,f),E(r,s,u),o=a}}(e),l(!a),a}static empty(e){return new _(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let s=0;st&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==r.length)t.push(r[0],0);else{for(;n.length=0&&n<=0&&n==e[s+1]?e[s]+=t:0==t&&0==e[s]?e[s+1]+=n:i?(e[s]+=t,e[s+1]+=n):e.push(t,n)}function E(e,t,n){if(0==n.length)return;let s=t.length-2>>1;if(s>1])),!(n||a==e.sections.length||e.sections[a+1]<0);)l=e.sections[a++],h=e.sections[a++];t(r,c,o,u,f),r=c,o=u}}}function D(e,t,n,i=!1){let s=[],r=i?[]:null,o=new R(e),a=new R(t);for(let e=-1;;)if(-1==o.ins&&-1==a.ins){let e=Math.min(o.len,a.len);T(s,e,-1),o.forward(e),a.forward(e)}else if(a.ins>=0&&(o.ins<0||e==o.i||0==o.off&&(a.len=0&&e=0)){if(o.done&&a.done)return r?_.createSet(s,r):M.create(s);throw new Error("Mismatched change set lengths")}{let t=0,n=o.len;for(;n;)if(-1==a.ins){let e=Math.min(n,a.len);t+=e,n-=e,a.forward(e)}else{if(!(0==a.ins&&a.lent||o.ins>=0&&o.len>t)&&(e||i.length>n),r.forward2(t),o.forward(t)}}else T(i,0,o.ins,e),s&&E(s,i,o.text),o.next()}}class R{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?i.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?i.empty:t[n].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class j{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let e=7&this.flags;return 7==e?null:e}get goalColumn(){let e=this.flags>>6;return 16777215==e?void 0:e}map(e,t=-1){let n,i;return this.empty?n=i=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),n==this.from&&i==this.to?this:new j(n,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return L.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return L.range(this.anchor,n)}eq(e,t=!1){return!(this.anchor!=e.anchor||this.head!=e.head||t&&this.empty&&this.assoc!=e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return L.range(e.anchor,e.head)}static create(e,t,n){return new j(e,t,n)}}class L{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:L.create(this.ranges.map((n=>n.map(e,t))),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON())),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new L(e.ranges.map((e=>j.fromJSON(e))),e.main)}static single(e,t=e){return new L([L.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;ie?8:0)|s)}static normalized(e,t=0){let n=e[t];e.sort(((e,t)=>e.from-t.from)),t=e.indexOf(n);for(let n=1;ni.head?L.range(o,r):L.range(r,o))}}return new L(e,t)}}function B(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let I=0;class F{constructor(e,t,n,i,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=I++,this.default=e([]),this.extensions="function"==typeof s?s(this):s}get reader(){return this}static define(e={}){return new F(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:$),!!e.static,e.enables)}of(e){return new z([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new z(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(n=>t(n.field(e))))}}function $(e,t){return e==t||e.length==t.length&&e.every(((e,n)=>e===t[n]))}class z{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=I++}dynamicSlot(e){var t;let n=this.value,i=this.facet.compareInput,s=this.id,r=e[s]>>1,o=2==this.type,a=!1,l=!1,h=[];for(let n of this.dependencies)"doc"==n?a=!0:"selection"==n?l=!0:1&(null!==(t=e[n.id])&&void 0!==t?t:1)||h.push(e[n.id]);return{create:e=>(e.values[r]=n(e),1),update(e,t){if(a&&t.docChanged||l&&(t.docChanged||t.selection)||q(e,h)){let t=n(e);if(o?!H(t,e.values[r],i):!i(t,e.values[r]))return e.values[r]=t,1}return 0},reconfigure:(e,t)=>{let a,l=t.config.address[s];if(null!=l){let s=ee(t,l);if(this.dependencies.every((n=>n instanceof F?t.facet(n)===e.facet(n):!(n instanceof G)||t.field(n,!1)==e.field(n,!1)))||(o?H(a=n(e),s,i):i(a=n(e),s)))return e.values[r]=s,0}else a=n(e);return e.values[r]=a,1}}}}function H(e,t,n){if(e.length!=t.length)return!1;for(let i=0;ie[t.id])),s=n.map((e=>e.type)),r=i.filter((e=>!(1&e))),o=e[t.id]>>1;function a(e){let n=[];for(let t=0;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(W).find((e=>e.field==this));return((null==t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let i=e.values[t],s=this.updateF(i,n);return this.compareF(i,s)?0:(e.values[t]=s,1)},reconfigure:(e,n)=>null!=n.config.address[this.id]?(e.values[t]=n.field(this),0):(e.values[t]=this.create(e),1)}}init(e){return[this,W.of({field:this,create:e})]}get extension(){return this}}function U(e){return t=>new J(t,e)}const K={highest:U(0),high:U(1),default:U(2),low:U(3),lowest:U(4)};class J{constructor(e,t){this.inner=e,this.prec=t}}class Y{of(e){return new X(this,e)}reconfigure(e){return Y.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class X{constructor(e,t){this.compartment=e,this.inner=t}}class Q{constructor(e,t,n,i,s,r){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=i,this.staticValues=s,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let i=[],s=Object.create(null),r=new Map;for(let n of function(e,t,n){let i=[[],[],[],[],[]],s=new Map;return function e(r,o){let a=s.get(r);if(null!=a){if(a<=o)return;let e=i[a].indexOf(r);e>-1&&i[a].splice(e,1),r instanceof X&&n.delete(r.compartment)}if(s.set(r,o),Array.isArray(r))for(let t of r)e(t,o);else if(r instanceof X){if(n.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=t.get(r.compartment)||r.inner;n.set(r.compartment,i),e(i,o)}else if(r instanceof J)e(r.inner,r.prec);else if(r instanceof G)i[o].push(r),r.provides&&e(r.provides,o);else if(r instanceof z)i[o].push(r),r.facet.extensions&&e(r.facet.extensions,2);else{let t=r.extension;if(!t)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);e(t,o)}}(e,2),i.reduce(((e,t)=>e.concat(t)))}(e,t,r))n instanceof G?i.push(n):(s[n.facet.id]||(s[n.facet.id]=[])).push(n);let o=Object.create(null),a=[],l=[];for(let e of i)o[e.id]=l.length<<1,l.push((t=>e.slot(t)));let h=null==n?void 0:n.config.facets;for(let e in s){let t=s[e],i=t[0].facet,r=h&&h[e]||[];if(t.every((e=>0==e.type)))if(o[i.id]=a.length<<1|1,$(r,t))a.push(n.facet(i));else{let e=i.combine(t.map((e=>e.value)));a.push(n&&i.compare(e,n.facet(i))?n.facet(i):e)}else{for(let e of t)0==e.type?(o[e.id]=a.length<<1|1,a.push(e.value)):(o[e.id]=l.length<<1,l.push((t=>e.dynamicSlot(t))));o[i.id]=l.length<<1,l.push((e=>V(e,i,t)))}}let c=l.map((e=>e(o)));return new Q(e,r,c,o,a,s)}}function Z(e,t){if(1&t)return 2;let n=t>>1,i=e.status[n];if(4==i)throw new Error("Cyclic dependency between fields and/or facets");if(2&i)return i;e.status[n]=4;let s=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|s}function ee(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const te=F.define(),ne=F.define({combine:e=>e.some((e=>e)),static:!0}),ie=F.define({combine:e=>e.length?e[0]:void 0,static:!0}),se=F.define(),re=F.define(),oe=F.define(),ae=F.define({combine:e=>!!e.length&&e[0]});class le{constructor(e,t){this.type=e,this.value=t}static define(){return new he}}class he{of(e){return new le(this,e)}}class ce{constructor(e){this.map=e}of(e){return new ue(this,e)}}class ue{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return void 0===t?void 0:t==this.value?this:new ue(this.type,t)}is(e){return this.type==e}static define(e={}){return new ce(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let i of e){let e=i.map(t);e&&n.push(e)}return n}}ue.reconfigure=ue.define(),ue.appendConfig=ue.define();class fe{constructor(e,t,n,i,s,r){this.startState=e,this.changes=t,this.selection=n,this.effects=i,this.annotations=s,this.scrollIntoView=r,this._doc=null,this._state=null,n&&B(n,t.newLength),s.some((e=>e.type==fe.time))||(this.annotations=s.concat(fe.time.of(Date.now())))}static create(e,t,n,i,s,r){return new fe(e,t,n,i,s,r)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(fe.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function de(e,t){let n=[];for(let i=0,s=0;;){let r,o;if(i=e[i]))r=e[i++],o=e[i++];else{if(!(s=0;s--){let r=n[s](e);r&&Object.keys(r).length&&(i=pe(i,me(t,r,e.changes.newLength),!0))}return i==e?e:fe.create(t,e.changes,e.selection,i.effects,i.annotations,i.scrollIntoView)}(n?function(e){let t=e.startState,n=!0;for(let i of t.facet(se)){let t=i(e);if(!1===t){n=!1;break}Array.isArray(t)&&(n=!0===n?t:de(n,t))}if(!0!==n){let i,s;if(!1===n)s=e.changes.invertedDesc,i=_.empty(t.doc.length);else{let t=e.changes.filter(n);i=t.changes,s=t.filtered.mapDesc(t.changes).invertedDesc}e=fe.create(t,i,e.selection&&e.selection.map(s),ue.mapEffects(e.effects,s),e.annotations,e.scrollIntoView)}let i=t.facet(re);for(let n=i.length-1;n>=0;n--){let s=i[n](e);e=s instanceof fe?s:Array.isArray(s)&&1==s.length&&s[0]instanceof fe?s[0]:ge(t,ye(s),!1)}return e}(s):s)}fe.time=le.define(),fe.userEvent=le.define(),fe.addToHistory=le.define(),fe.remote=le.define();const be=[];function ye(e){return null==e?be:Array.isArray(e)?e:[e]}var ve=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(ve||(ve={}));const xe=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let we;try{we=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}class ke{constructor(e,t,n,i,s,r){this.config=e,this.doc=t,this.selection=n,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=s,r&&(r._state=this);for(let e=0;es.set(t,e))),n=null),s.set(t.value.compartment,t.value.extension)):t.is(ue.reconfigure)?(n=null,i=t.value):t.is(ue.appendConfig)&&(n=null,i=ye(i).concat(t.value));n?t=e.startState.values.slice():(n=Q.resolve(i,s,this),t=new ke(n,this.doc,this.selection,n.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values);let r=e.startState.facet(ne)?e.newSelection:e.newSelection.asSingle();new ke(n,e.newDoc,r,t,((t,n)=>n.update(t,e)),e)}replaceSelection(e){return"string"==typeof e&&(e=this.toText(e)),this.changeByRange((t=>({changes:{from:t.from,to:t.to,insert:e},range:L.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),i=this.changes(n.changes),s=[n.range],r=ye(n.effects);for(let n=1;ns.spec.fromJSON(r,e))))}return ke.create({doc:e.doc,selection:L.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Q.resolve(e.extensions||[],new Map),n=e.doc instanceof i?e.doc:i.of((e.doc||"").split(t.staticFacet(ke.lineSeparator)||A)),s=e.selection?e.selection instanceof L?e.selection:L.single(e.selection.anchor,e.selection.head):L.single(0);return B(s,n.length),t.staticFacet(ne)||(s=s.asSingle()),new ke(t,n,s,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(ke.tabSize)}get lineBreak(){return this.facet(ke.lineSeparator)||"\n"}get readOnly(){return this.facet(ae)}phrase(e,...t){for(let t of this.facet(ke.phrases))if(Object.prototype.hasOwnProperty.call(t,e)){e=t[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,((e,n)=>{if("$"==n)return"$";let i=+(n||1);return!i||i>t.length?e:t[i-1]}))),e}languageDataAt(e,t,n=-1){let i=[];for(let s of this.facet(te))for(let r of s(this,t,n))Object.prototype.hasOwnProperty.call(r,e)&&i.push(r[e]);return i}charCategorizer(e){return t=this.languageDataAt("wordChars",e).join(""),e=>{if(!/\S/.test(e))return ve.Space;if(function(e){if(we)return we.test(e);for(let t=0;t"€"&&(n.toUpperCase()!=n.toLowerCase()||xe.test(n)))return!0}return!1}(e))return ve.Word;for(let n=0;n-1)return ve.Word;return ve.Other};var t}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),s=this.charCategorizer(e),r=e-n,o=e-n;for(;r>0;){let e=b(t,r,!1);if(s(t.slice(e,r))!=ve.Word)break;r=e}for(;oe.length?e[0]:4}),ke.lineSeparator=ie,ke.readOnly=ae,ke.phrases=F.define({compare(e,t){let n=Object.keys(e),i=Object.keys(t);return n.length==i.length&&n.every((n=>e[n]==t[n]))}}),ke.languageData=te,ke.changeFilter=se,ke.transactionFilter=re,ke.transactionExtender=oe,Y.reconfigure=ue.define();class Ce{eq(e){return this==e}range(e,t=e){return Ae.create(e,t,this)}}Ce.prototype.startSide=Ce.prototype.endSide=0,Ce.prototype.point=!1,Ce.prototype.mapMode=O.TrackDel;class Ae{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new Ae(e,t,n)}}function Oe(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Me{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let s=n?this.to:this.from;for(let r=i,o=s.length;;){if(r==o)return r;let i=r+o>>1,a=s[i]-e||(n?this.value[i].endSide:this.value[i].startSide)-t;if(i==r)return a>=0?r:o;a>=0?o=i:r=i+1}}between(e,t,n,i){for(let s=this.findIndex(t,-1e9,!0),r=this.findIndex(n,1e9,!1,s);sh||l==h&&c.startSide>0&&c.endSide<=0)continue;(h-l||c.endSide-c.startSide)<0||(r<0&&(r=l),c.point&&(o=Math.max(o,h-l)),n.push(c),i.push(l-r),s.push(h-r))}return{mapped:n.length?new Me(i,s,n,o):null,pos:r}}}class _e{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new _e(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:s=this.length}=e,r=e.filter;if(0==t.length&&!r)return this;if(n&&(t=t.slice().sort(Oe)),this.isEmpty)return t.length?_e.of(t):this;let o=new Ne(this,null,-1).goto(0),a=0,l=[],h=new Te;for(;o.value||a=0){let e=t[a++];h.addInner(e.from,e.to,e.value)||l.push(e)}else 1==o.rangeIndex&&o.chunkIndexthis.chunkEnd(o.chunkIndex)||so.to||s=s&&e<=s+r.length&&!1===r.between(s,e-s,t-s,n))return}this.nextLayer.between(e,t,n)}}iter(e=0){return De.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return De.from(e).goto(t)}static compare(e,t,n,i,s=-1){let r=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=s)),o=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=s)),a=Ee(r,o,n),l=new Re(r,a,s),h=new Re(o,a,s);n.iterGaps(((e,t,n)=>je(l,e,h,t,n,i))),n.empty&&0==n.length&&je(l,0,h,0,0,i)}static eq(e,t,n=0,i){null==i&&(i=999999999);let s=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(s.length!=r.length)return!1;if(!s.length)return!0;let o=Ee(s,r),a=new Re(s,o,0).goto(n),l=new Re(r,o,0).goto(n);for(;;){if(a.to!=l.to||!Le(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>i)return!0;a.next(),l.next()}}static spans(e,t,n,i,s=-1){let r=new Re(e,null,s).goto(t),o=t,a=r.openStart;for(;;){let e=Math.min(r.to,n);if(r.point){let n=r.activeForPoint(r.to),s=r.pointFromo&&(i.span(o,e,r.active,a),a=r.openEnd(e));if(r.to>n)return a+(r.point&&r.to>n?1:0);o=r.to,r.next()}}static of(e,t=!1){let n=new Te;for(let i of e instanceof Ae?[e]:t?function(e){if(e.length>1)for(let t=e[0],n=1;n0)return e.slice().sort(Oe);t=i}return e}(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return _e.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=_e.empty;i=i.nextLayer)t=new _e(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}_e.empty=new _e([],[],null,-1),_e.empty.nextLayer=_e.empty;class Te{finishChunk(e){this.chunks.push(new Me(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new Te)).add(e,t,n)}addInner(e,t,n){let i=e-this.lastTo||n.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(i<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),0))}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(_e.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=_e.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ee(e,t,n){let i=new Map;for(let t of e)for(let e=0;e=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&i.push(new Ne(r,t,n,s));return 1==i.length?i[0]:new De(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let e=this.heap.length>>1;e>=0;e--)Pe(this.heap,e);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let e=this.heap.length>>1;e>=0;e--)Pe(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Pe(this.heap,0)}}}function Pe(e,t){for(let n=e[t];;){let i=1+(t<<1);if(i>=e.length)break;let s=e[i];if(i+1=0&&(s=e[i+1],i++),n.compare(s)<0)break;e[i]=n,e[t]=s,t=i}}class Re{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=De.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Be(this.active,e),Be(this.activeTo,e),Be(this.activeRank,e),this.minActive=Fe(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:s}=this.cursor;for(;t0;)t++;Ie(this.active,t,n),Ie(this.activeTo,t,i),Ie(this.activeRank,t,s),e&&Ie(e,t,this.cursor.from),this.minActive=Fe(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&Be(n,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[t]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function je(e,t,n,i,s,r){e.goto(t),n.goto(i);let o=i+s,a=i,l=i-t;for(;;){let t=e.to+l-n.to||e.endSide-n.endSide,i=t<0?e.to+l:n.to,s=Math.min(i,o);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&Le(e.activeForPoint(e.to),n.activeForPoint(n.to))||r.comparePoint(a,s,e.point,n.point):s>a&&!Le(e.active,n.active)&&r.compareRange(a,s,e.active,n.active),i>o)break;a=i,t<=0&&e.next(),t>=0&&n.next()}}function Le(e,t){if(e.length!=t.length)return!1;for(let n=0;n=t;n--)e[n+1]=e[n];e[t]=n}function Fe(e,t){let n=-1,i=1e9;for(let s=0;s=t)return i;if(i==e.length)break;s+=9==e.charCodeAt(i)?n-s%n:1,i=b(e,i)}return!0===i?-1:e.length}},83173:(e,t,n)=>{"use strict";n.d(t,{NZ:()=>fe,OP:()=>Ce,Lz:()=>li,wJ:()=>Cs,Z9:()=>lt,xO:()=>ce,HJ:()=>os,VH:()=>Di,ld:()=>vs,Eg:()=>bs,cU:()=>Ts,dz:()=>Qi,N$:()=>Gi,wu:()=>Xs,Yq:()=>Js,w4:()=>gi,$K:()=>Vs,c_:()=>st,D4:()=>is,TS:()=>vi,BE:()=>Xi,S7:()=>Ss,DK:()=>gs,vX:()=>hs});for(var i=n(14830),s=n(98104),r={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},o={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},a="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),l="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),h=0;h<10;h++)r[48+h]=r[96+h]=String(h);for(h=1;h<=24;h++)r[h+111]="F"+h;for(h=65;h<=90;h++)r[h]=String.fromCharCode(h+32),o[h]=String.fromCharCode(h);for(var c in r)o.hasOwnProperty(c)||(o[c]=r[c]);function u(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function f(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function d(e,t){if(!t.anchorNode)return!1;try{return f(e,t.anchorNode)}catch(e){return!1}}function p(e){return 3==e.nodeType?M(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function m(e,t,n,i){return!!n&&(y(e,t,n,i,-1)||y(e,t,n,i,1))}function g(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function b(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function y(e,t,n,i,s){for(;;){if(e==n&&t==i)return!0;if(t==(s<0?0:v(e))){if("DIV"==e.nodeName)return!1;let n=e.parentNode;if(!n||1!=n.nodeType)return!1;t=g(e)+(s<0?0:1),e=n}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(s<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=s<0?v(e):0}}}function v(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function x(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function w(e){let t=e.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function k(e,t){let n=t.width/e.offsetWidth,i=t.height/e.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(t.width-e.offsetWidth)<1)&&(n=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.height-e.offsetHeight)<1)&&(i=1),{scaleX:n,scaleY:i}}class S{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?v(t):0),n,Math.min(e.focusOffset,n?v(n):0))}set(e,t,n,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=i}}let C,A=null;function O(e){if(e.setActive)return e.setActive();if(A)return e.focus(A);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==A?{get preventScroll(){return A={preventScroll:!0},!0}}:void 0),!A){A=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}function N(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&i>0)return{node:n,offset:i};if(1==n.nodeType&&i>0){if("false"==n.contentEditable)return null;n=n.childNodes[i-1],i=v(n)}else{if(!n.parentNode||b(n))return null;i=g(n),n=n.parentNode}}}function D(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&it)return n.domBoundsAround(e,t,l);if(c>=e&&-1==i&&(i=a,s=l),l>t&&n.dom.parentNode==this.dom){r=a,o=h;break}h=c,l=c+n.breakAfter}return{from:s,to:o<0?n+this.length:o,startDOM:(i?this.children[i-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),1&t.flags)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,7&this.flags&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=R){this.markDirty();for(let i=e;ithis.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}function I(e,t,n,i,s,r,o,a,l){let{children:h}=e,c=h.length?h[t]:null,u=r.length?r[r.length-1]:null,f=u?u.breakAfter:o;if(!(t==i&&c&&!o&&!f&&r.length<2&&c.merge(n,s,r.length?u:null,0==n,a,l))){if(i0&&(!o&&r.length&&c.merge(n,c.length,r[0],!1,a,0)?c.breakAfter=r.shift().breakAfter:(n2);var X={mac:Y||/Mac/.test($.platform),windows:/Win/.test($.platform),linux:/Linux|X11/.test($.platform),ie:W,ie_version:q?z.documentMode||6:V?+V[1]:H?+H[1]:0,gecko:G,gecko_version:G?+(/Firefox\/(\d+)/.exec($.userAgent)||[0,0])[1]:0,chrome:!!U,chrome_version:U?+U[1]:0,ios:Y,android:/Android\b/.test($.userAgent),webkit:K,safari:J,webkit_version:K?+(/\bAppleWebKit\/(\d+)/.exec($.userAgent)||[0,0])[1]:0,tabSize:null!=z.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class Q extends j{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){3==e.nodeType&&this.createDOM(e)}merge(e,t,n){return!(8&this.flags||n&&(!(n instanceof Q)||this.length-(t-e)+n.length>256||8&n.flags)||(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),0))}split(e){let t=new Q(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=8&this.flags,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new P(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return function(e,t,n){let i=e.nodeValue.length;t>i&&(t=i);let s=t,r=t,o=0;0==t&&n<0||t==i&&n>=0?X.chrome||X.gecko||(t?(s--,o=1):r=0)?0:a.length-1];return X.safari&&!o&&0==l.width&&(l=Array.prototype.find.call(a,(e=>e.width))||l),o?x(l,o<0):l||null}(this.dom,e,t)}}class Z extends j{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let e of t)e.setParent(this)}setAttrs(e){if(T(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!(8&(this.flags|e.flags))}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,i,s,r){return!(n&&(!(n instanceof Z&&n.mark.eq(this.mark))||e&&s<=0||te&&t.push(n=e&&(i=s),n=o,s++}let r=this.length-e;return this.length=e,i>-1&&(this.children.length=i,this.markDirty()),new Z(this.mark,t,r)}domAtPos(e){return ne(this,e)}coordsAt(e,t){return se(this,e,t)}}class ee extends j{static create(e,t,n){return new ee(e,t,n)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(e){let t=ee.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){this.dom&&this.widget.updateDOM(this.dom,e)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,n,i,s,r){return!(n&&(!(n instanceof ee&&this.widget.compare(n.widget))||e>0&&s<=0||t0)?P.before(this.dom):P.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let i=this.dom.getClientRects(),s=null;if(!i.length)return null;let r=this.side?this.side<0:e>0;for(let t=r?i.length-1:0;s=i[t],!(e>0?0==t:t==i.length-1||s.top0?P.before(this.dom):P.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return i.EY.empty}get isHidden(){return!0}}function ne(e,t){let n=e.dom,{children:i}=e,s=0;for(let e=0;se&&t0;e--){let t=i[e-1];if(t.dom.parentNode==n)return t.domAtPos(t.length)}for(let e=s;e0&&t instanceof Z&&s.length&&(i=s[s.length-1])instanceof Z&&i.mark.eq(t.mark)?ie(i,t.children[0],n-1):(s.push(t),t.setParent(e)),e.length+=t.length}function se(e,t,n){let i=null,s=-1,r=null,o=-1;!function e(t,a){for(let l=0,h=0;l=a&&(c.children.length?e(c,a-h):(!r||r.isHidden&&n>0)&&(u>a||h==u&&c.getSide()>0)?(r=c,o=a-h):(h-1?1:0)!=s.length-(n&&s.indexOf(n)>-1?1:0))return!1;for(let r of i)if(r!=n&&(-1==s.indexOf(r)||e[r]!==t[r]))return!1;return!0}function le(e,t,n){let i=!1;if(t)for(let s in t)n&&s in n||(i=!0,"style"==s?e.style.cssText="":e.removeAttribute(s));if(n)for(let s in n)t&&t[s]==n[s]||(i=!0,"style"==s?e.style.cssText=n[s]:e.setAttribute(s,n[s]));return i}function he(e){let t=Object.create(null);for(let n=0;n0?3e8:-4e8:t>0?1e8:-1e8,new me(e,t,t,n,e.widget||null,!1)}static replace(e){let t,n,i=!!e.block;if(e.isBlockGap)t=-5e8,n=4e8;else{let{start:s,end:r}=ge(e,i);t=(s?i?-3e8:-1:5e8)-1,n=1+(r?i?2e8:1:-6e8)}return new me(e,t,n,i,e.widget||null,!0)}static line(e){return new pe(e)}static set(e,t=!1){return i.om.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}fe.none=i.om.empty;class de extends fe{constructor(e){let{start:t,end:n}=ge(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof de&&this.tagName==e.tagName&&(this.class||(null===(t=this.attrs)||void 0===t?void 0:t.class))==(e.class||(null===(n=e.attrs)||void 0===n?void 0:n.class))&&ae(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}de.prototype.point=!1;class pe extends fe{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof pe&&this.spec.class==e.spec.class&&ae(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}pe.prototype.mapMode=i.iR.TrackBefore,pe.prototype.point=!0;class me extends fe{constructor(e,t,n,s,r,o){super(t,n,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?i.iR.TrackBefore:i.iR.TrackAfter:i.iR.TrackDel}get type(){return this.startSide!=this.endSide?ue.WidgetRange:this.startSide<=0?ue.WidgetBefore:ue.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof me&&((t=this.widget)==(n=e.widget)||!!(t&&n&&t.compare(n)))&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide;var t,n}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}function ge(e,t=!1){let{inclusiveStart:n,inclusiveEnd:i}=e;return null==n&&(n=e.inclusive),null==i&&(i=e.inclusive),{start:null!=n?n:t,end:null!=i?i:t}}function be(e,t,n,i=0){let s=n.length-1;s>=0&&n[s]+i>=e?n[s]=Math.max(n[s],t):n.push(e,t)}me.prototype.point=!0;class ye extends j{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,i,s,r){if(n){if(!(n instanceof ye))return!1;this.dom||n.transferDOM(this)}return i&&this.setDeco(n?n.attrs:null),F(this,e,t,n?n.children.slice():[],s,r),!0}split(e){let t=new ye;if(t.breakAfter=this.breakAfter,0==this.length)return t;let{i:n,off:i}=this.childPos(e);i&&(t.append(this.children[n].split(i),0),this.children[n].merge(i,this.children[n].length,null,!1,0,0),n++);for(let e=n;e0&&0==this.children[n-1].length;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){ae(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){ie(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=re(t,this.attrs||{})),n&&(this.attrs=re({class:n},this.attrs||{}))}domAtPos(e){return ne(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?4&this.flags&&(T(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(le(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let i=this.dom.lastChild;for(;i&&j.get(i)instanceof Z;)i=i.lastChild;if(!(i&&this.length&&("BR"==i.nodeName||0!=(null===(n=j.get(i))||void 0===n?void 0:n.isEditable)||X.ios&&this.children.some((e=>e instanceof Q))))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let e,t=0;for(let n of this.children){if(!(n instanceof Q)||/[^ -~]/.test(n.text))return null;let i=p(n.dom);if(1!=i.length)return null;t+=i[0].width,e=i[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let n=se(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=n.bottom-n.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight=t){if(s instanceof ye)return s;if(r>t)break}i=r+s.breakAfter}return null}}class ve extends j{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,i,s,r){return!(n&&(!(n instanceof ve&&this.widget.compare(n.widget))||e>0&&s<=0||t0)}}class xe extends ce{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class we{constructor(e,t,n,i){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=i,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof ve&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new ye),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(ke(new te(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||e&&this.content.length&&this.content[this.content.length-1]instanceof ve||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:n,done:i}=this.cursor.next(this.skip);if(this.skip=0,i)throw new Error("Ran out of text content when drawing inline views");if(n){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}this.text=t,this.textOff=0}let i=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(ke(new Q(this.text.slice(this.textOff,this.textOff+i)),t),n),this.atCursorPos=!0,this.textOff+=i,e-=i,n=0}}span(e,t,n,i){this.buildText(t-e,n,i),this.pos=t,this.openStart<0&&(this.openStart=i)}point(e,t,n,i,s,r){if(this.disallowBlockEffectsFor[r]&&n instanceof me){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let o=t-e;if(n instanceof me)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ve(n.widget||Se.block,o,n));else{let r=ee.create(n.widget||Se.inline,o,o?0:n.startSide),a=this.atCursorPos&&!r.isEditable&&s<=i.length&&(e0),l=!r.isEditable&&(ei.length||n.startSide<=0),h=this.getLine();2!=this.pendingBuffer||a||r.isEditable||(this.pendingBuffer=0),this.flushBuffer(i),a&&(h.append(ke(new te(1),i),s),s=i.length+Math.max(0,s-i.length)),h.append(ke(r,i),s),this.atCursorPos=l,this.pendingBuffer=l?ei.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=i.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);o&&(this.textOff+o<=this.text.length?this.textOff+=o:(this.skip+=o-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,n,s,r){let o=new we(e,t,n,r);return o.openEnd=i.om.spans(s,t,n,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function ke(e,t){for(let n of t)e=new Z(n,[e],e.length);return e}class Se extends ce{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}Se.inline=new Se("span"),Se.block=new Se("div");var Ce=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(Ce||(Ce={}));const Ae=Ce.LTR,Oe=Ce.RTL;function Me(e){let t=[];for(let n=0;n=t){if(o.level==n)return r;(s<0||(0!=i?i<0?o.fromt:e[s].level>o.level))&&(s=r)}}if(s<0)throw new RangeError("Index out of range");return s}}function je(e,t){if(e.length!=t.length)return!1;for(let n=0;nl&&o.push(new Re(l,p.from,f)),Ie(e,p.direction==Ae!=!(f%2)?i+1:i,s,p.inner,p.from,p.to,o),l=p.to),d=p.to}else{if(d==n||(t?Le[d]!=a:Le[d]==a))break;d++}u?Be(e,l,d,i+1,s,u,o):lt;){let n=!0,c=!1;if(!h||l>r[h-1].to){let e=Le[l-1];e!=a&&(n=!1,c=16==e)}let u=n||1!=a?null:[],f=n?i:i+1,d=l;e:for(;;)if(h&&d==r[h-1].to){if(c)break e;let p=r[--h];if(!n)for(let e=p.from,n=h;;){if(e==t)break e;if(!n||r[n-1].to!=e){if(Le[e-1]==a)break e;break}e=r[--n].from}u?u.push(p):(p.to=0;e-=3)if(Ne[e+1]==-n){let t=Ne[e+2],n=2&t?s:4&t?1&t?r:s:0;n&&(Le[o]=Le[Ne[e]]=n),a=e;break}}else{if(189==Ne.length)break;Ne[a++]=o,Ne[a++]=t,Ne[a++]=l}else if(2==(i=Le[o])||1==i){let e=i==s;l=e?0:1;for(let t=a-3;t>=0;t-=3){let n=Ne[t+2];if(2&n)break;if(e)Ne[t+2]|=2;else{if(4&n)break;Ne[t+2]|=4}}}}}(e,s,r,i,a),function(e,t,n,i){for(let s=0,r=i;s<=n.length;s++){let o=s?n[s-1].to:e,a=sl;)t==r&&(t=n[--i].from,r=i?n[i-1].to:e),Le[--t]=c;l=o}else r=o,l++}}}(s,r,i,a),Be(e,s,r,t,n,i,o)}function Fe(e){return[new Re(0,e,0)]}let $e="";function ze(e,t,n,s,r){var o;let a=s.head-e.from,l=Re.find(t,a,null!==(o=s.bidiLevel)&&void 0!==o?o:-1,s.assoc),h=t[l],c=h.side(r,n);if(a==c){let e=l+=r?1:-1;if(e<0||e>=t.length)return null;h=t[l=e],a=h.side(!r,n),c=h.side(r,n)}let u=(0,i.zK)(e.text,a,h.forward(r,n));(uh.to)&&(u=c),$e=e.text.slice(Math.min(a,u),Math.max(a,u));let f=l==(r?t.length-1:0)?null:t[l+(r?1:-1)];return f&&u==c&&f.level+(r?0:1)e.some((e=>e))}),Ze=i.sj.define({combine:e=>e.some((e=>e))}),et=i.sj.define();class tt{constructor(e,t="nearest",n="nearest",i=5,s=5,r=!1){this.range=e,this.y=t,this.x=n,this.yMargin=i,this.xMargin=s,this.isSnapshot=r}map(e){return e.empty?this:new tt(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new tt(i.OF.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const nt=i.Pe.define({map:(e,t)=>e.map(t)}),it=i.Pe.define();function st(e,t,n){let i=e.facet(Ge);i.length?i[0](t):window.onerror?window.onerror(String(t),n,void 0,void 0,t):n?console.error(n+":",t):console.error(t)}const rt=i.sj.define({combine:e=>!e.length||e[0]});let ot=0;const at=i.sj.define();class lt{constructor(e,t,n,i,s){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=i,this.extension=s(this)}static define(e,t){const{eventHandlers:n,eventObservers:i,provide:s,decorations:r}=t||{};return new lt(ot++,e,n,i,(e=>{let t=[at.of(e)];return r&&t.push(ft.of((t=>{let n=t.plugin(e);return n?r(n):fe.none}))),s&&t.push(s(e)),t}))}static fromClass(e,t){return lt.define((t=>new e(t)),t)}}class ht{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(t){if(st(e.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(e){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){st(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy()}catch(t){st(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const ct=i.sj.define(),ut=i.sj.define(),ft=i.sj.define(),dt=i.sj.define(),pt=i.sj.define(),mt=i.sj.define();function gt(e,t){let n=e.state.facet(mt);if(!n.length)return n;let s=n.map((t=>t instanceof Function?t(e):t)),r=[];return i.om.spans(s,t.from,t.to,{point(){},span(e,n,i,s){let o=e-t.from,a=n-t.from,l=r;for(let e=i.length-1;e>=0;e--,s--){let n,r=i[e].spec.bidiIsolate;if(null==r&&(r=He(t.text,o,a)),s>0&&l.length&&(n=l[l.length-1]).to==o&&n.direction==r)n.to=a,l=n.inner;else{let e={from:o,to:a,direction:r,inner:[]};l.push(e),l=e.inner}}}}),r}const bt=i.sj.define();function yt(e){let t=0,n=0,i=0,s=0;for(let r of e.state.facet(bt)){let o=r(e);o&&(null!=o.left&&(t=Math.max(t,o.left)),null!=o.right&&(n=Math.max(n,o.right)),null!=o.top&&(i=Math.max(i,o.top)),null!=o.bottom&&(s=Math.max(s,o.bottom)))}return{left:t,right:n,top:i,bottom:s}}const vt=i.sj.define();class xt{constructor(e,t,n,i){this.fromA=e,this.toA=t,this.fromB=n,this.toB=i}join(e){return new xt(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let i=e[t-1];if(!(i.fromA>n.toA)){if(i.toAh)break;s+=2}if(!a)return n;new xt(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),r=a.toA,o=a.toB}}}class wt{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=i.VR.empty(this.startState.doc.length);for(let e of n)this.changes=this.changes.compose(e.changes);let s=[];this.changes.iterChangedRanges(((e,t,n,i)=>s.push(new xt(e,t,n,i)))),this.changedRanges=s}static create(e,t,n){return new wt(e,t,n)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((e=>e.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class kt extends j{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=fe.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new ye],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new xt(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every((({fromA:e,toA:t})=>tthis.minWidthTo))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?s=this.domChanged.newSel.head:function(e,t){let n=!1;return t&&e.iterChangedRanges(((e,i)=>{et.from&&(n=!0)})),n}(e.changes,this.hasComposition)||e.selectionSet||(s=e.state.selection.main.head));let r=s>-1?function(e,t,n){let i=St(e,n);if(!i)return null;let{node:s,from:r,to:o}=i,a=s.nodeValue;if(/[\n\r]/.test(a))return null;if(e.state.doc.sliceString(i.from,i.to)!=a)return null;let l=t.invertedDesc,h=new xt(l.mapPos(r),l.mapPos(o),r,o),c=[];for(let t=s.parentNode;;t=t.parentNode){let n=j.get(t);if(n instanceof Z)c.push({node:t,deco:n.mark});else{if(n instanceof ye||"DIV"==t.nodeName&&t.parentNode==e.contentDOM)return{range:h,text:s,marks:c,line:t};if(t==e.contentDOM)return null;c.push({node:t,deco:new de({inclusive:!0,attributes:he(t),tagName:t.tagName.toLowerCase()})})}}}(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:i}=this.hasComposition;n=new xt(t,i,e.changes.mapPos(t,-1),e.changes.mapPos(i,1)).addToSet(n.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(X.ie||X.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=function(e,t,n){let s=new Ct;return i.om.compare(e,t,n,s),s.changes}(this.decorations,this.updateDeco(),e.changes);return n=xt.extendWithRanges(n,o),!!(7&this.flags||0!=n.length)&&(this.updateInner(n,e.startState.doc.length,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:i}=this.view;i.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=X.chrome||X.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||i.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let s=[];if(this.view.viewport.from||this.view.viewport.to=0?i[e]:null;if(!t)break;let r,o,a,l,{fromA:h,toA:c,fromB:u,toB:f}=t;if(n&&n.range.fromBu){let e=we.build(this.view.state.doc,u,n.range.fromB,this.decorations,this.dynamicDecorationMap),t=we.build(this.view.state.doc,n.range.toB,f,this.decorations,this.dynamicDecorationMap);o=e.breakAtStart,a=e.openStart,l=t.openEnd;let i=this.compositionView(n);t.breakAtStart?i.breakAfter=1:t.content.length&&i.merge(i.length,i.length,t.content[0],!1,t.openStart,0)&&(i.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&i.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),r=e.content.concat(i).concat(t.content)}else({content:r,breakAtStart:o,openStart:a,openEnd:l}=we.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:d,off:p}=s.findPos(c,1),{i:m,off:g}=s.findPos(h,-1);I(this,m,g,d,p,r,o,a,l)}n&&this.fixCompositionDOM(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let e of t.effects)e.is(it)&&(this.editContextFormatting=e.value)}compositionView(e){let t=new Q(e.text.nodeValue);t.flags|=8;for(let{deco:n}of e.marks)t=new Z(n,[t],t.length);let n=new ye;return n.append(t,0),n}fixCompositionDOM(e){let t=(e,t)=>{t.flags|=8|(t.children.some((e=>7&e.flags))?1:0),this.markedForComposition.add(t);let n=j.get(e);n&&n!=t&&(n.dom=null),t.setDOM(e)},n=this.childPos(e.range.fromB,1),i=this.children[n.i];t(e.line,i);for(let s=e.marks.length-1;s>=-1;s--)n=i.childPos(n.off,1),i=i.children[n.i],t(s>=0?e.marks[s].node:e.text,i)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let n=this.view.root.activeElement,i=n==this.dom,s=!i&&d(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(i||t||s))return;let r=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(o.anchor)),l=o.empty?a:this.moveToLine(this.domAtPos(o.head));if(X.gecko&&o.empty&&!this.hasComposition&&1==(h=a).node.nodeType&&h.node.firstChild&&(0==h.offset||"false"==h.node.childNodes[h.offset-1].contentEditable)&&(h.offset==h.node.childNodes.length||"false"==h.node.childNodes[h.offset].contentEditable)){let e=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(e,a.node.childNodes[a.offset]||null))),a=l=new P(e,0),r=!0}var h;let c=this.view.observer.selectionRange;!r&&c.focusNode&&(m(a.node,a.offset,c.anchorNode,c.anchorOffset)&&m(l.node,l.offset,c.focusNode,c.focusOffset)||this.suppressWidgetCursorChange(c,o))||(this.view.observer.ignore((()=>{X.android&&X.chrome&&this.dom.contains(c.focusNode)&&function(e,t){for(let n=e;n&&n!=t;n=n.assignedSlot||n.parentNode)if(1==n.nodeType&&"false"==n.contentEditable)return!0;return!1}(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=u(this.view.root);if(e)if(o.empty){if(X.gecko){let e=(t=a.node,i=a.offset,1!=t.nodeType?0:(i&&"false"==t.childNodes[i-1].contentEditable?1:0)|(io.head&&([a,l]=[l,a]),t.setEnd(l.node,l.offset),t.setStart(a.node,a.offset),e.removeAllRanges(),e.addRange(t)}var t,i;s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new P(c.anchorNode,c.anchorOffset),this.impreciseHead=l.precise?null:new P(c.focusNode,c.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&m(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=u(e.root),{anchorNode:i,anchorOffset:s}=e.observer.selectionRange;if(!(n&&t.empty&&t.assoc&&n.modify))return;let r=ye.find(this,t.head);if(!r)return;let o=r.posAtStart;if(t.head==o||t.head==o+r.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let h=this.domAtPos(t.head+t.assoc);n.collapse(h.node,h.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let c=e.observer.selectionRange;e.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=t.from&&n.collapse(i,s)}moveToLine(e){let t,n=this.dom;if(e.node!=n)return e;for(let i=e.offset;!t&&i=0;i--){let e=j.get(n.childNodes[i]);e instanceof ye&&(t=e.domAtPos(e.length))}return t?new P(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=j.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t=0;r--){let o=this.children[r],a=s-o.breakAfter,l=a-o.length;if(ae||o.covers(1))&&(!n||o instanceof ye&&!(n instanceof ye&&t>=0)))n=o,i=l;else if(n&&l==e&&a==e&&o instanceof ve&&Math.abs(t)<2){if(o.deco.startSide<0)break;r&&(n=null)}s=l}return n?n.coordsAt(e-i,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),s=this.children[t];if(!(s instanceof ye))return null;for(;s.children.length;){let{i:e,off:t}=s.childPos(n,1);for(;;e++){if(e==s.children.length)return null;if((s=s.children[e]).length)break}n=t}if(!(s instanceof Q))return null;let r=(0,i.zK)(s.text,n);if(r==n)return null;let o=M(s.dom,n,r).getClientRects();for(let e=0;eMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,o=-1,a=this.view.textDirection==Ce.LTR;for(let e=0,l=0;li)break;if(e>=n){let n=h.dom.getBoundingClientRect();if(t.push(n.height),r){let t=h.dom.lastChild,i=t?p(t):[];if(i.length){let t=i[i.length-1],r=a?t.right-n.left:n.right-t.left;r>o&&(o=r,this.minWidth=s,this.minWidthFrom=e,this.minWidthTo=c)}}}e=c+h.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?Ce.RTL:Ce.LTR}measureTextSize(){for(let e of this.children)if(e instanceof ye){let t=e.measureTextSize();if(t)return t}let e,t,n,i=document.createElement("div");return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(i);let s=p(i.firstChild)[0];e=i.getBoundingClientRect().height,t=s?s.width/27:7,n=s?s.height:e,i.remove()})),{lineHeight:e,charWidth:t,textHeight:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new B(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,i=0;;i++){let s=i==t.viewports.length?null:t.viewports[i],r=s?s.from-1:this.length;if(r>n){let i=(t.lineBlockAt(r).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(fe.replace({widget:new xe(i),block:!0,inclusive:!0,isBlockGap:!0}).range(n,r))}if(!s)break;n=s.to+1}return fe.set(e)}updateDeco(){let e=1,t=this.view.state.facet(ft).map((t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t)),n=!1,s=this.view.state.facet(dt).map(((e,t)=>{let i="function"==typeof e;return i&&(n=!0),i?e(this.view):e}));for(s.length&&(this.dynamicDecorationMap[e++]=n,t.push(i.om.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];en.anchor?-1:1);if(!i)return;!n.empty&&(t=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(i={left:Math.min(i.left,t.left),top:Math.min(i.top,t.top),right:Math.max(i.right,t.right),bottom:Math.max(i.bottom,t.bottom)});let s=yt(this.view),r={left:i.left-s.left,top:i.top-s.top,right:i.right+s.right,bottom:i.bottom+s.bottom},{offsetWidth:o,offsetHeight:a}=this.view.scrollDOM;!function(e,t,n,i,s,r,o,a){let l=e.ownerDocument,h=l.defaultView||window;for(let c=e,u=!1;c&&!u;)if(1==c.nodeType){let e,f=c==l.body,d=1,p=1;if(f)e=w(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(u=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let t=c.getBoundingClientRect();({scaleX:d,scaleY:p}=k(c,t)),e={left:t.left,right:t.left+c.clientWidth*d,top:t.top,bottom:t.top+c.clientHeight*p}}let m=0,g=0;if("nearest"==s)t.top0&&t.bottom>e.bottom+g&&(g=t.bottom-e.bottom+g+o)):t.bottom>e.bottom&&(g=t.bottom-e.bottom+o,n<0&&t.top-g0&&t.right>e.right+m&&(m=t.right-e.right+m+r)):t.right>e.right&&(m=t.right-e.right+r,n<0&&t.lefte?t.left-e:Math.max(0,e-t.right)}function Ot(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function Mt(e,t){return e.topt.top+1}function _t(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function Et(e,t,n){let i,s,r,o,a,l,h,c,u=!1;for(let f=e.firstChild;f;f=f.nextSibling){let e=p(f);for(let d=0;dg||o==g&&r>m){i=f,s=p,r=m,o=g;let a=g?n0?d0)}0==m?n>p.bottom&&(!h||h.bottomp.top)&&(l=f,c=p):h&&Mt(h,p)?h=Tt(h,p.bottom):c&&Mt(c,p)&&(c=_t(c,p.top))}}if(h&&h.bottom>=n?(i=a,s=h):c&&c.top<=n&&(i=l,s=c),!i)return{node:e,offset:0};let f=Math.max(s.left,Math.min(s.right,t));return 3==i.nodeType?Nt(i,f,n):u&&"false"!=i.contentEditable?Et(i,f,n):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,i)+(t>=(s.left+s.right)/2?1:0)}}function Nt(e,t,n){let i=e.nodeValue.length,s=-1,r=1e9,o=0;for(let a=0;an?h.top-n:n-h.bottom)-1;if(h.left-1<=t&&h.right+1>=t&&c=(h.left+h.right)/2,i=n;if((X.chrome||X.gecko)&&M(e,a).getBoundingClientRect().left==h.right&&(i=!n),c<=0)return{node:e,offset:a+(i?1:0)};s=a+(i?1:0),r=c}}}return{node:e,offset:s>-1?s:o>0?e.nodeValue.length:0}}function Dt(e,t,n,i=-1){var s,r;let o,a=e.contentDOM.getBoundingClientRect(),l=a.top+e.viewState.paddingTop,{docHeight:h}=e.viewState,{x:c,y:u}=t,f=u-l;if(f<0)return 0;if(f>h)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,s=!1;o=e.elementAtHeight(f),o.type!=ue.Text;)for(;f=i>0?o.bottom+t:o.top-t,!(f>=0&&f<=h);){if(s)return n?null:0;s=!0,i=-i}u=l+f;let d=o.from;if(de.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:n?null:Pt(e,a,o,c,u);let p=e.dom.ownerDocument,m=e.root.elementFromPoint?e.root:p,g=m.elementFromPoint(c,u);g&&!e.contentDOM.contains(g)&&(g=null),g||(c=Math.max(a.left+1,Math.min(a.right-1,c)),g=m.elementFromPoint(c,u),g&&!e.contentDOM.contains(g)&&(g=null));let b,y=-1;if(g&&0!=(null===(s=e.docView.nearest(g))||void 0===s?void 0:s.isEditable))if(p.caretPositionFromPoint){let e=p.caretPositionFromPoint(c,u);e&&({offsetNode:b,offset:y}=e)}else if(p.caretRangeFromPoint){let t=p.caretRangeFromPoint(c,u);t&&(({startContainer:b,startOffset:y}=t),(!e.contentDOM.contains(b)||X.safari&&function(e,t,n){let i;if(3!=e.nodeType||t!=(i=e.nodeValue.length))return!1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return!1;return M(e,i-1,i).getBoundingClientRect().left>n}(b,y,c)||X.chrome&&function(e,t,n){if(0!=t)return!1;for(let t=e;;){let e=t.parentNode;if(!e||1!=e.nodeType||e.firstChild!=t)return!1;if(e.classList.contains("cm-line"))break;t=e}return n-(1==e.nodeType?e.getBoundingClientRect():M(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}(b,y,c))&&(b=void 0))}if(!b||!e.docView.dom.contains(b)){let t=ye.find(e.docView,d);if(!t)return f>o.top+o.height/2?o.to:o.from;({node:b,offset:y}=Et(t.dom,c,u))}let v=e.docView.nearest(b);if(!v)return null;if(v.isWidget&&1==(null===(r=v.dom)||void 0===r?void 0:r.nodeType)){let e=v.dom.getBoundingClientRect();return t.y1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;o+=Math.floor((r-n.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let a=e.state.sliceDoc(n.from,n.to);return n.from+(0,i.kn)(a,o,e.state.tabSize)}function Rt(e,t){let n=e.lineBlockAt(t);if(Array.isArray(n.type))for(let e of n.type)if(e.to>t||e.to==t&&(e.to==n.to||e.type==ue.Text))return e;return n}function jt(e,t,n,i){let s=e.state.doc.lineAt(t.head),r=e.bidiSpans(s),o=e.textDirectionAt(s.from);for(let a=t,l=null;;){let t=ze(s,r,o,a,n),h=$e;if(!t){if(s.number==(n?e.state.doc.lines:1))return a;h="\n",s=e.state.doc.line(s.number+(n?1:-1)),r=e.bidiSpans(s),t=e.visualLineSide(s,!n)}if(l){if(!l(h))return a}else{if(!i)return t;l=i(h)}a=t}}function Lt(e,t,n){for(;;){let i=0;for(let s of e)s.between(t-1,t+1,((e,s,r)=>{if(t>e&&tt(e))),n.from,t.head>n.from?-1:1);return s==n.from?n:i.OF.cursor(s,se)&&this.lineBreak(),i=s}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let s,r=-1,o=1;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(s=i.exec(t))&&(r=s.index,o=s[0].length),this.append(t.slice(n,r<0?t.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=o-1);n=r+o}}readNode(e){if(e.cmIgnore)return;let t=j.get(e),n=t&&t.overrideDOMText;if(null!=n){this.findPointInside(e,n.length);for(let e=n.iter();!e.next().done;)e.lineBreak?this.lineBreak():this.append(e.value)}else 3==e.nodeType?this.readTextNode(e):"BR"==e.nodeName?e.nextSibling&&this.lineBreak():1==e.nodeType&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(3==e.nodeType?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+($t(e,n.node,n.offset)?t:0))}}function $t(e,t,n){for(;;){if(!t||n-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let t=r||o?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:r}=e.observer.selectionRange;return n&&(t.push(new zt(n,i)),s==n&&r==i||t.push(new zt(s,r))),t}(e),n=new Ft(t,e.state);n.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=n.text,this.newSel=function(e,t){if(0==e.length)return null;let n=e[0].pos,s=2==e.length?e[1].pos:n;return n>-1&&s>-1?i.OF.single(n+t,s+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,n=r&&r.node==t.focusNode&&r.offset==t.focusOffset||!f(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),s=o&&o.node==t.anchorNode&&o.offset==t.anchorOffset||!f(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),a=e.viewport;if((X.ios||X.chrome)&&e.state.selection.main.empty&&n!=s&&(a.from>0||a.toDate.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:s,to:a}=t.bounds,l=r.from,h=null;(8===o||X.android&&t.text.length0&&a>0&&e.charCodeAt(o-1)==t.charCodeAt(a-1);)o--,a--;return"end"==i&&(n-=o+Math.max(0,r-Math.min(o,a))-r),o=o?r-n:0,a=r+(a-o),o=r):a=a?r-n:0,o=r+(o-a),a=r),{from:r,toA:o,toB:a}}(e.state.doc.sliceString(s,a,It),t.text,l-s,h);c&&(X.chrome&&13==o&&c.toB==c.from+2&&t.text.slice(c.from,c.toB)==It+It&&c.toB--,n={from:s+c.from,to:s+c.toA,insert:i.EY.of(t.text.slice(c.from,c.toB).split(It))})}else s&&(!e.hasFocus&&e.state.facet(rt)||s.main.eq(r))&&(s=null);if(!n&&!s)return!1;if(!n&&t.typeOver&&!r.empty&&s&&s.main.empty?n={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,r.to)}:n&&n.from>=r.from&&n.to<=r.to&&(n.from!=r.from||n.to!=r.to)&&r.to-r.from-(n.to-n.from)<=4?n={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,r.to))}:(X.mac||X.android)&&n&&n.from==n.to&&n.from==r.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(s&&2==n.insert.length&&(s=i.OF.single(s.main.anchor-1,s.main.head-1)),n={from:r.from,to:r.to,insert:i.EY.of([" "])}):X.chrome&&n&&n.from==n.to&&n.from==r.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(s&&(s=i.OF.single(s.main.anchor-1,s.main.head-1)),n={from:r.from,to:r.to,insert:i.EY.of([" "])}),n)return Vt(e,n,s,o);if(s&&!s.main.eq(r)){let t=!1,n="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),n=e.inputState.lastSelectionOrigin),e.dispatch({selection:s,scrollIntoView:t,userEvent:n}),!0}return!1}function Vt(e,t,n,s=-1){if(X.ios&&e.inputState.flushIOSKey(t))return!0;let r=e.state.selection.main;if(X.android&&(t.to==r.to&&(t.from==r.from||t.from==r.from-1&&" "==e.state.sliceDoc(t.from,r.from))&&1==t.insert.length&&2==t.insert.lines&&_(e.contentDOM,"Enter",13)||(t.from==r.from-1&&t.to==r.to&&0==t.insert.length||8==s&&t.insert.lengthr.head)&&_(e.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&0==t.insert.length&&_(e.contentDOM,"Delete",46)))return!0;let o,a=t.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let l=()=>o||(o=function(e,t,n){let s,r=e.state,o=r.selection.main;if(t.from>=o.from&&t.to<=o.to&&t.to-t.from>=(o.to-o.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let n=o.fromt.to?r.sliceDoc(t.to,o.to):"";s=r.replaceSelection(e.state.toText(n+t.insert.sliceString(0,void 0,e.state.lineBreak)+i))}else{let a=r.changes(t),l=n&&n.main.to<=a.newLength?n.main:void 0;if(r.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=o.to&&t.to>=o.to-10){let h,c=e.state.sliceDoc(t.from,t.to),u=n&&St(e,n.main.head);if(u){let e=t.insert.length-(t.to-t.from);h={from:u.from,to:u.to-e}}else h=e.state.doc.lineAt(o.head);let f=o.to-t.to,d=o.to-o.from;s=r.changeByRange((n=>{if(n.from==o.from&&n.to==o.to)return{changes:a,range:l||n.map(a)};let s=n.to-f,u=s-c.length;if(n.to-n.from!=d||e.state.sliceDoc(u,s)!=c||n.to>=h.from&&n.from<=h.to)return{range:n};let p=r.changes({from:u,to:s,insert:t.insert}),m=n.to-o.to;return{changes:p,range:l?i.OF.range(Math.max(0,l.anchor+m),Math.max(0,l.head+m)):n.map(p)}}))}else s={changes:a,selection:l&&r.selection.replaceRange(l)}}let a="input.type";return(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,a+=".compose",e.inputState.compositionFirstChange&&(a+=".start",e.inputState.compositionFirstChange=!1)),r.update(s,{userEvent:a,scrollIntoView:!0})}(e,t,n));return e.state.facet(Ke).some((n=>n(e,t.from,t.to,a,l)))||e.dispatch(l()),!0}class Wt{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,X.safari&&e.contentDOM.addEventListener("input",(()=>null)),X.gecko&&function(e){vn.has(e)||(vn.add(e),e.addEventListener("copy",(()=>{})),e.addEventListener("cut",(()=>{})))}(e.contentDOM.ownerDocument)}handleEvent(e){(function(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n,i=t.target;i!=e.contentDOM;i=i.parentNode)if(!i||11==i.nodeType||(n=j.get(i))&&n.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let e of n.observers)e(this.view,t);for(let e of n.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=Ut(e),n=this.handlers,i=this.view.contentDOM;for(let e in t)if("scroll"!=e){let s=!t[e].handlers.length,r=n[e];r&&s!=!r.handlers.length&&(i.removeEventListener(e,this.handleEvent),r=null),r||i.addEventListener(e,this.handleEvent,{passive:s})}for(let e in n)"scroll"==e||t[e]||i.removeEventListener(e,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&27!=e.keyCode&&Yt.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),X.android&&X.chrome&&!e.synthetic&&(13==e.keyCode||8==e.keyCode))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return!X.ios||e.synthetic||e.altKey||e.metaKey||!((t=Kt.find((t=>t.keyCode==e.keyCode)))&&!e.ctrlKey||Jt.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(229!=e.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=t||e,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(e){let t=this.pendingIOSKey;return!!t&&!("Enter"==t.key&&e&&e.from0||!!(X.safari&&!X.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Gt(e,t){return(n,i)=>{try{return t.call(e,i,n)}catch(e){st(n.state,e)}}}function Ut(e){let t=Object.create(null);function n(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let t of e){let e=t.spec;if(e&&e.domEventHandlers)for(let i in e.domEventHandlers){let s=e.domEventHandlers[i];s&&n(i).handlers.push(Gt(t.value,s))}if(e&&e.domEventObservers)for(let i in e.domEventObservers){let s=e.domEventObservers[i];s&&n(i).observers.push(Gt(t.value,s))}}for(let e in Zt)n(e).handlers.push(Zt[e]);for(let e in en)n(e).observers.push(en[e]);return t}const Kt=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Jt="dthko",Yt=[16,17,18,20,91,92,224,225];function Xt(e){return.7*Math.max(0,e)+8}class Qt{constructor(e,t,n,s){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=function(e){let t,n,i=e.ownerDocument;for(let s=e.parentNode;s&&!(s==i.body||t&&n);)if(1==s.nodeType)!n&&s.scrollHeight>s.clientHeight&&(n=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else{if(11!=s.nodeType)break;s=s.host}return{x:t,y:n}}(e.contentDOM),this.atoms=e.state.facet(pt).map((t=>t(e)));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(i.$t.allowMultipleSelections)&&function(e,t){let n=e.state.facet(qe);return n.length?n[0](t):X.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:n}=e.state.selection;if(n.empty)return!1;let i=u(e.root);if(!i||0==i.rangeCount)return!0;let s=i.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&n.top<=t.clientY&&n.bottom>=t.clientY)return!0}return!1}(e,t)||1!=dn(t))&&null}start(e){!1===this.dragging&&this.select(e)}move(e){if(0==e.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(t=this.startEvent,n=e,Math.max(Math.abs(t.clientX-n.clientX),Math.abs(t.clientY-n.clientY))<10))return;var t,n;this.select(this.lastEvent=e);let i=0,s=0,r=0,o=0,a=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:r,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:l}=this.scrollParents.y.getBoundingClientRect());let h=yt(this.view);e.clientX-h.left<=r+6?i=-Xt(r-e.clientX):e.clientX+h.right>=a-6&&(i=Xt(e.clientX-a)),e.clientY-h.top<=o+6?s=-Xt(o-e.clientY):e.clientY+h.bottom>=l-6&&(s=Xt(e.clientY-l)),this.setScrollSpeed(i,s)}up(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;ne.isUserEvent("input.type")))?this.destroy():this.style.update(e)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const Zt=Object.create(null),en=Object.create(null),tn=X.ie&&X.ie_version<15||X.ios&&X.webkit_version<604;function nn(e,t,n){for(let i of e.facet(t))n=i(n,e);return n}function sn(e,t){t=nn(e.state,Ye,t);let n,{state:s}=e,r=1,o=s.toText(t),a=o.lines==s.selection.ranges.length;if(null!=mn&&s.selection.ranges.every((e=>e.empty))&&mn==o.toString()){let e=-1;n=s.changeByRange((n=>{let l=s.doc.lineAt(n.from);if(l.from==e)return{range:n};e=l.from;let h=s.toText((a?o.line(r++).text:t)+s.lineBreak);return{changes:{from:l.from,insert:h},range:i.OF.cursor(n.from+h.length)}}))}else n=a?s.changeByRange((e=>{let t=o.line(r++);return{changes:{from:e.from,to:e.to,insert:t.text},range:i.OF.cursor(e.from+t.length)}})):s.replaceSelection(o);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}function rn(e,t,n,s){if(1==s)return i.OF.cursor(t,n);if(2==s)return function(e,t,n=1){let s=e.charCategorizer(t),r=e.doc.lineAt(t),o=t-r.from;if(0==r.length)return i.OF.cursor(t);0==o?n=1:o==r.length&&(n=-1);let a=o,l=o;n<0?a=(0,i.zK)(r.text,o,!1):l=(0,i.zK)(r.text,o);let h=s(r.text.slice(a,l));for(;a>0;){let e=(0,i.zK)(r.text,a,!1);if(s(r.text.slice(e,a))!=h)break;a=e}for(;l{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},Zt.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&0!=e.inputState.tabFocusMode&&(e.inputState.tabFocusMode=Date.now()+2e3),!1),en.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},en.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},Zt.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let i of e.state.facet(We))if(n=i(e,t),n)break;if(n||0!=t.button||(n=function(e,t){let n=ln(e,t),s=dn(t),r=e.state.selection;return{update(e){e.docChanged&&(n.pos=e.changes.mapPos(n.pos),r=r.map(e.changes))},get(t,o,a){let l,h=ln(e,t),c=rn(e,h.pos,h.bias,s);if(n.pos!=h.pos&&!o){let t=rn(e,n.pos,n.bias,s),r=Math.min(t.from,c.from),o=Math.max(t.to,c.to);c=r1&&(l=function(e,t){for(let n=0;n=t)return i.OF.create(e.ranges.slice(0,n).concat(e.ranges.slice(n+1)),e.mainIndex==n?0:e.mainIndex-(e.mainIndex>n?1:0))}return null}(r,h.pos))?l:a?r.addRange(c):i.OF.create([c])}}}(e,t)),n){let i=!e.hasFocus;e.inputState.startMouseSelection(new Qt(e,t,n,i)),i&&e.observer.ignore((()=>{O(e.contentDOM);let t=e.root.activeElement;t&&!t.contains(e.contentDOM)&&t.blur()}));let s=e.inputState.mouseSelection;if(s)return s.start(t),!1===s.dragging}return!1};let on=(e,t,n)=>t>=n.top&&t<=n.bottom&&e>=n.left&&e<=n.right;function an(e,t,n,i){let s=ye.find(e.docView,t);if(!s)return 1;let r=t-s.posAtStart;if(0==r)return 1;if(r==s.length)return-1;let o=s.coordsAt(r,-1);if(o&&on(n,i,o))return-1;let a=s.coordsAt(r,1);return a&&on(n,i,a)?1:o&&o.bottom>=i?-1:1}function ln(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:an(e,n,t.clientX,t.clientY)}}const hn=X.ie&&X.ie_version<=11;let cn=null,un=0,fn=0;function dn(e){if(!hn)return e.detail;let t=cn,n=fn;return cn=e,fn=Date.now(),un=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(un+1)%3:1}function pn(e,t,n,i){if(!(n=nn(e.state,Ye,n)))return;let s=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:r}=e.inputState,o=i&&r&&function(e,t){let n=e.state.facet(Ve);return n.length?n[0](t):X.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:r.from,to:r.to}:null,a={from:s,insert:n},l=e.state.changes(o?[o,a]:a);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),e.inputState.draggedContent=null}Zt.dragstart=(e,t)=>{let{selection:{main:n}}=e.state;if(t.target.draggable){let s=e.docView.nearest(t.target);if(s&&s.isWidget){let e=s.posAtStart,t=e+s.length;(e>=n.to||t<=n.from)&&(n=i.OF.range(e,t))}}let{inputState:s}=e;return s.mouseSelection&&(s.mouseSelection.dragging=!0),s.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData("Text",nn(e.state,Xe,e.state.sliceDoc(n.from,n.to))),t.dataTransfer.effectAllowed="copyMove"),!1},Zt.dragend=e=>(e.inputState.draggedContent=null,!1),Zt.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let n=t.dataTransfer.files;if(n&&n.length){let i=Array(n.length),s=0,r=()=>{++s==n.length&&pn(e,t,i.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(i[e]=t.result),r()},t.readAsText(n[e])}return!0}{let n=t.dataTransfer.getData("Text");if(n)return pn(e,t,n,!0),!0}return!1},Zt.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=tn?null:t.clipboardData;return n?(sn(e,n.getData("text/plain")||n.getData("text/uri-list")),!0):(function(e){let t=e.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout((()=>{e.focus(),n.remove(),sn(e,n.value)}),50)}(e),!1)};let mn=null;Zt.copy=Zt.cut=(e,t)=>{let{text:n,ranges:i,linewise:s}=function(e){let t=[],n=[],i=!1;for(let i of e.selection.ranges)i.empty||(t.push(e.sliceDoc(i.from,i.to)),n.push(i));if(!t.length){let s=-1;for(let{from:i}of e.selection.ranges){let r=e.doc.lineAt(i);r.number>s&&(t.push(r.text),n.push({from:r.from,to:Math.min(e.doc.length,r.to+1)})),s=r.number}i=!0}return{text:nn(e,Xe,t.join(e.lineBreak)),ranges:n,linewise:i}}(e.state);if(!n&&!s)return!1;mn=s?n:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=tn?null:t.clipboardData;return r?(r.clearData(),r.setData("text/plain",n),!0):(function(e,t){let n=e.dom.parentNode;if(!n)return;let i=n.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout((()=>{i.remove(),e.focus()}),50)}(e,n),!1)};const gn=i.YH.define();function bn(e,t){let n=[];for(let i of e.facet(Je)){let s=i(e,t);s&&n.push(s)}return n?e.update({effects:n,annotations:gn.of(!0)}):null}function yn(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=bn(e.state,t);n?e.dispatch(n):e.update([])}}),10)}en.focus=e=>{e.inputState.lastFocusTime=Date.now(),e.scrollDOM.scrollTop||!e.inputState.lastScrollTop&&!e.inputState.lastScrollLeft||(e.scrollDOM.scrollTop=e.inputState.lastScrollTop,e.scrollDOM.scrollLeft=e.inputState.lastScrollLeft),yn(e)},en.blur=e=>{e.observer.clearSelectionRange(),yn(e)},en.compositionstart=en.compositionupdate=e=>{e.observer.editContext||(null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0))},en.compositionend=e=>{e.observer.editContext||(e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionPendingKey=!0,e.inputState.compositionPendingChange=e.observer.pendingRecords().length>0,e.inputState.compositionFirstChange=null,X.chrome&&X.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50))},en.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},Zt.beforeinput=(e,t)=>{var n,i;if("insertReplacementText"==t.inputType&&e.observer.editContext){let i=null===(n=t.dataTransfer)||void 0===n?void 0:n.getData("text/plain"),s=t.getTargetRanges();if(i&&s.length){let t=s[0],n=e.posAtDOM(t.startContainer,t.startOffset),r=e.posAtDOM(t.endContainer,t.endOffset);return Vt(e,{from:n,to:r,insert:e.state.toText(i)},null),!0}}let s;if(X.chrome&&X.android&&(s=Kt.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(s.key,s.keyCode),"Backspace"==s.key||"Delete"==s.key)){let t=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var n;((null===(n=window.visualViewport)||void 0===n?void 0:n.height)||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}return X.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),X.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout((()=>en.compositionend(e,t)),20),!1};const vn=new Set,xn=["pre-wrap","normal","pre-line","break-spaces"];let wn=!1;function kn(){wn=!1}class Sn{constructor(e){this.lineWrapping=e,this.doc=i.EY.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return xn.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=o;if(this.lineWrapping=o,this.lineHeight=t,this.charWidth=n,this.textHeight=i,this.lineLength=s,a){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Mn&&(wn=!0),this.height=e)}replace(e,t,n){return _n.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,i){let s=this,r=n.doc;for(let o=i.length-1;o>=0;o--){let{fromA:a,toA:l,fromB:h,toB:c}=i[o],u=s.lineAt(a,On.ByPosNoHeight,n.setDoc(t),0,0),f=u.to>=l?u:s.lineAt(l,On.ByPosNoHeight,n,0,0);for(c+=f.to-l,l=f.to;o>0&&u.from<=i[o-1].toA;)a=i[o-1].fromA,h=i[o-1].fromB,o--,a2*s){let s=e[t-1];s.break?e.splice(--t,1,s.left,null,s.right):e.splice(--t,1,s.left,s.right),n+=1+s.break,i-=s.size}else{if(!(s>2*i))break;{let t=e[n];t.break?e.splice(n,1,t.left,null,t.right):e.splice(n,1,t.left,t.right),n+=2+t.break,s-=t.size}}else if(i=s&&r(this.blockAt(0,n,i,s))}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more&&this.setHeight(i.heights[i.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Nn extends En{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,i){return new An(i,this.length,n,this.height,this.breaks)}replace(e,t,n){let i=n[0];return 1==n.length&&(i instanceof Nn||i instanceof Dn&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof Dn?i=new Nn(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):_n.of(n)}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more?this.setHeight(i.heights[i.index++]):(n||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Dn extends _n{constructor(e){super(e,0)}heightMetrics(e,t){let n,i=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,r=s-i+1,o=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*r);n=t/r,this.length>r+1&&(o=(this.height-t)/(this.length-r-1))}else n=this.height/r;return{firstLine:i,lastLine:s,perLine:n,perChar:o}}blockAt(e,t,n,i){let{firstLine:s,lastLine:r,perLine:o,perChar:a}=this.heightMetrics(t,i);if(t.lineWrapping){let s=i+(e0){let e=n[n.length-1];e instanceof Dn?n[n.length-1]=new Dn(e.length+i):n.push(null,new Dn(i-1))}if(e>0){let t=n[0];t instanceof Dn?n[0]=new Dn(e+t.length):n.unshift(new Dn(e-1),null)}return _n.of(n)}decomposeLeft(e,t){t.push(new Dn(e-1),null)}decomposeRight(e,t){t.push(null,new Dn(this.length-e-1))}updateHeight(e,t=0,n=!1,i){let s=t+this.length;if(i&&i.from<=t+this.length&&i.more){let n=[],r=Math.max(t,i.from),o=-1;for(i.from>t&&n.push(new Dn(i.from-t-1).updateHeight(e,t));r<=s&&i.more;){let t=e.doc.lineAt(r).length;n.length&&n.push(null);let s=i.heights[i.index++];-1==o?o=s:Math.abs(s-o)>=Mn&&(o=-2);let a=new Nn(t,s);a.outdated=!1,n.push(a),r+=t+1}r<=s&&n.push(null,new Dn(s-r).updateHeight(e,r));let a=_n.of(n);return(o<0||Math.abs(a.height-this.height)>=Mn||Math.abs(o-this.heightMetrics(e,t).perLine)>=Mn)&&(wn=!0),Tn(this,a)}return(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class Pn extends _n{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return 1&this.flags}blockAt(e,t,n,i){let s=n+this.left.height;return eo))return l;let h=t==On.ByPosNoHeight?On.ByPosNoHeight:On.ByPos;return a?l.join(this.right.lineAt(o,h,n,r,o)):this.left.lineAt(o,h,n,i,s).join(l)}forEachLine(e,t,n,i,s,r){let o=i+this.left.height,a=s+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,n,o,a,r);else{let l=this.lineAt(a,On.ByPos,n,i,s);e=e&&l.from<=t&&r(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,o,a,r)}}replace(e,t,n){let i=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,n));let s=[];e>0&&this.decomposeLeft(e,s);let r=s.length;for(let e of n)s.push(e);if(e>0&&Rn(s,r-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,i=n+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e2*t.size||t.size>2*e.size?_n.of(this.break?[e,null,t]:[e,t]):(this.left=Tn(this.left,e),this.right=Tn(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,i){let{left:s,right:r}=this,o=t+s.length+this.break,a=null;return i&&i.from<=t+s.length&&i.more?a=s=s.updateHeight(e,t,n,i):s.updateHeight(e,t,n),i&&i.from<=o+r.length&&i.more?a=r=r.updateHeight(e,o,n,i):r.updateHeight(e,o,n),a?this.balanced(s,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Rn(e,t){let n,i;null==e[t]&&(n=e[t-1])instanceof Dn&&(i=e[t+1])instanceof Dn&&e.splice(t-1,3,new Dn(n.length+1+i.length))}class jn{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Nn?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new Nn(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=5)&&this.addLineDeco(i,s,r)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Nn(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new Dn(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Nn)return e;let t=new Nn(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let i=this.ensureLine();i.length+=n,i.collapsed+=n,i.widgetHeight=Math.max(i.widgetHeight,e),i.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof Nn||this.isCovered?(this.writtenTon.clientHeight||n.scrollWidth>n.clientWidth)&&"visible"!=i.overflow){let i=n.getBoundingClientRect();r=Math.max(r,i.left),o=Math.min(o,i.right),a=Math.max(a,i.top),l=Math.min(t==e.parentNode?s.innerHeight:l,i.bottom)}t="absolute"==i.position||"fixed"==i.position?n.offsetParent:n.parentNode}else{if(11!=t.nodeType)break;t=t.host}return{left:r-n.left,right:Math.max(r,o)-n.left,top:a-(n.top+t),bottom:Math.max(a,l)-(n.top+t)}}function In(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}class Fn{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n"function"!=typeof e&&"cm-lineWrapping"==e.class));this.heightOracle=new Sn(t),this.stateDeco=e.facet(ft).filter((e=>"function"!=typeof e)),this.heightMap=_n.empty().applyChanges(this.stateDeco,i.EY.empty,this.heightOracle.setDoc(e.doc),[new xt(0,0,0,e.doc.length)]);for(let e=0;e<2&&(this.viewport=this.getViewport(0,null),this.updateForViewport());e++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=fe.set(this.lineGaps.map((e=>e.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let i=n?t.head:t.anchor;if(!e.some((({from:e,to:t})=>i>=e&&i<=t))){let{from:t,to:n}=this.lineBlockAt(i);e.push(new Hn(t,n))}}return this.viewports=e.sort(((e,t)=>e.from-t.from)),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Wn:new Gn(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(e=>{this.viewportLines.push(Un(e,this.scaler))}))}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(ft).filter((e=>"function"!=typeof e));let s=e.changedRanges,r=xt.extendWithRanges(s,function(e,t,n){let s=new Ln;return i.om.compare(e,t,n,s,0),s.changes}(n,this.stateDeco,e?e.changes:i.VR.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);kn(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||wn)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let h=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(h||!e.changes.empty||2&e.flags)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Ze)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),s=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?Ce.RTL:Ce.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let{scaleX:e,scaleY:n}=k(t,a);(e>.005&&Math.abs(this.scaleX-e)>.005||n>.005&&Math.abs(this.scaleY-n)>.005)&&(this.scaleX=e,this.scaleY=n,h|=8,o=l=!0)}let u=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==u&&this.paddingBottom==f||(this.paddingTop=u,this.paddingBottom=f,h|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=8);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=E(e.scrollDOM);let p=(this.printing?In:Bn)(t,this.paddingTop),m=p.top-this.pixelViewport.top,g=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let b=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(b!=this.inView&&(this.inView=b,b&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let y=a.width;if(this.contentDOMWidth==y&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=8),l){let t=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(t)&&(o=!0),o||s.lineWrapping&&Math.abs(y-this.contentDOMWidth)>s.charWidth){let{lineHeight:n,charWidth:i,textHeight:a}=e.docView.measureTextSize();o=n>0&&s.refresh(r,n,i,a,y/i,t),o&&(e.docView.minWidth=0,h|=8)}m>0&&g>0?c=Math.max(m,g):m<0&&g<0&&(c=Math.min(m,g)),kn();for(let n of this.viewports){let r=n.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?_n.empty().applyChanges(this.stateDeco,i.EY.empty,this.heightOracle,[new xt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new Cn(n.from,r))}wn&&(h|=2)}let v=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return v&&(2&h&&(h|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),h|=this.updateForViewport()),(2&h||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),i=this.heightMap,s=this.heightOracle,{visibleTop:r,visibleBottom:o}=this,a=new Hn(i.lineAt(r-1e3*n,On.ByHeight,s,0,0).from,i.lineAt(o+1e3*(1-n),On.ByHeight,s,0,0).to);if(t){let{head:e}=t.range;if(ea.to){let n,r=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),o=i.lineAt(e,On.ByPos,s,0,0);n="center"==t.y?(o.top+o.bottom)/2-r/2:"start"==t.y||"nearest"==t.y&&e=o+Math.max(10,Math.min(n,250)))&&i>r-2e3&&s>1,o=s<<1;if(this.defaultTextDirection!=Ce.LTR&&!n)return[];let a=[],l=(s,o,h,c)=>{if(o-ss&&ee.from>=h.from&&e.to<=h.to&&Math.abs(e.from-s)e.fromt))));if(!d){if(oe.from<=o&&e.to>=o))){let e=t.moveToLineBoundary(i.OF.cursor(o),!1,!0).head;e>s&&(o=e)}d=new Fn(s,o,this.gapSize(h,s,o,c))}a.push(d)},h=e=>{if(e.lengthr&&(s.push({from:r,to:e}),o+=e-r),r=t}},20),re.from&&l(e.from,r,e,t),ae.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];i.om.spans(e,this.viewport.from,this.viewport.to,{span(e,n){t.push({from:e,to:n})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some(((e,n)=>e.from!=t[n].from||e.to!=t[n].to));return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((t=>t.from<=e&&t.to>=e))||Un(this.heightMap.lineAt(e,On.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find((t=>t.top<=e&&t.bottom>=e))||Un(this.heightMap.lineAt(this.scaler.fromDOM(e),On.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Un(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Hn{constructor(e,t){this.from=e,this.to=t}}function qn({total:e,ranges:t},n){if(n<=0)return t[0].from;if(n>=1)return t[t.length-1].to;let i=Math.floor(e*n);for(let e=0;;e++){let{from:n,to:s}=t[e],r=s-n;if(i<=r)return n+i;i-=r}}function Vn(e,t){let n=0;for(let{from:i,to:s}of e.ranges){if(t<=s){n+=t-i;break}n+=s-i}return n/e.total}const Wn={toDOM:e=>e,fromDOM:e=>e,scale:1,eq(e){return e==this}};class Gn{constructor(e,t,n){let i=0,s=0,r=0;this.viewports=n.map((({from:n,to:s})=>{let r=t.lineAt(n,On.ByPos,e,0,0).top,o=t.lineAt(s,On.ByPos,e,0,0).bottom;return i+=o-r,{from:n,to:s,top:r,bottom:o,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(t.height-i);for(let e of this.viewports)e.domTop=r+(e.top-s)*this.scale,r=e.domBottom=e.domTop+(e.bottom-e.top),s=e.bottom}toDOM(e){for(let t=0,n=0,i=0;;t++){let s=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to))}}function Un(e,t){if(1==t.scale)return e;let n=t.toDOM(e.top),i=t.toDOM(e.bottom);return new An(e.from,e.length,n,i-n,Array.isArray(e._content)?e._content.map((e=>Un(e,t))):e._content)}const Kn=i.sj.define({combine:e=>e.join(" ")}),Jn=i.sj.define({combine:e=>e.indexOf(!0)>-1}),Yn=s.G.newName(),Xn=s.G.newName(),Qn=s.G.newName(),Zn={"&light":"."+Xn,"&dark":"."+Qn};function ei(e,t,n){return new s.G(t,{finish:t=>/&/.test(t)?t.replace(/&\w*/,(t=>{if("&"==t)return e;if(!n||!n[t])throw new RangeError(`Unsupported selector: ${t}`);return n[t]})):e+" "+t})}const ti=ei("."+Yn,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Zn),ni={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ii=X.ie&&X.ie_version<=11;class si{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new S,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);(X.ie&&X.ie_version<=11||X.ios&&e.composing)&&t.some((e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length))?this.flushSoon():this.flush()})),!window.EditContext||!1===e.constructor.EDIT_CONTEXT||X.chrome&&X.chrome_version<126||(this.editContext=new ai(e),e.state.facet(rt)&&(e.contentDOM.editContext=this.editContext.editContext)),ii&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(e){("change"!=e.type&&e.type||e.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some(((t,n)=>t!=e[n])))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,i=this.selectionRange;if(n.state.facet(rt)?n.root.activeElement!=this.dom:!d(n.dom,i))return;let s=i.anchorNode&&n.docView.nearest(i.anchorNode);s&&s.ignoreEvent(e)?t||(this.selectionChanged=!1):(X.ie&&X.ie_version<=11||X.android&&X.chrome)&&!n.state.selection.main.empty&&i.focusNode&&m(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=u(e.root);if(!t)return!1;let n=X.safari&&11==e.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return oi(e,n)}let n=null;function i(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.contentDOM.addEventListener("beforeinput",i,!0),e.dom.ownerDocument.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",i,!0),n?oi(e,n):null}(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let i=d(this.dom,n);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let e=this.delayedAndroidKey;e&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&_(this.dom,e.key,e.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,i=!1;for(let s of e){let e=this.readMutation(s);e&&(e.typeOver&&(i=!0),-1==t?({from:t,to:n}=e):(t=Math.min(e.from,t),n=Math.max(e.to,n)))}return{from:t,to:n,typeOver:i}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),i=this.selectionChanged&&d(this.dom,this.selectionRange);if(e<0&&!i)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let s=new Ht(this.view,e,t,n);return this.view.docView.domChanged={newSel:s.newSel?s.newSel.main:null},s}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,i=qt(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),i}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.flags|=4),"childList"==e.type){let n=ri(t,e.previousSibling||e.target.previousSibling,-1),i=ri(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:i?t.posBefore(i):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(rt)!=e.state.facet(rt)&&(e.view.contentDOM.editContext=e.state.facet(rt)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),null===(e=this.intersection)||void 0===e||e.disconnect(),null===(t=this.gapIntersection)||void 0===t||t.disconnect(),null===(n=this.resizeScroll)||void 0===n||n.disconnect();for(let e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function ri(e,t,n){for(;t;){let i=j.get(t);if(i&&i.parent==e)return i;let s=t.parentNode;t=s!=e.dom?s:n>0?t.nextSibling:t.previousSibling}return null}function oi(e,t){let n=t.startContainer,i=t.startOffset,s=t.endContainer,r=t.endOffset,o=e.docView.domAtPos(e.state.selection.main.anchor);return m(o.node,o.offset,s,r)&&([n,i,s,r]=[s,r,n,i]),{anchorNode:n,anchorOffset:i,focusNode:s,focusOffset:r}}class ai{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=t=>{let{anchor:n}=e.state.selection.main,s={from:this.toEditorPos(t.updateRangeStart),to:this.toEditorPos(t.updateRangeEnd),insert:i.EY.of(t.text.split("\n"))};s.from==this.from&&nthis.to&&(s.to=n),(s.from!=s.to||s.insert.length)&&(this.pendingContextChange=s,e.state.readOnly||Vt(e,s,i.OF.single(this.toEditorPos(t.selectionStart),this.toEditorPos(t.selectionEnd))),this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)))},this.handlers.characterboundsupdate=n=>{let i=[],s=null;for(let t=this.toEditorPos(n.rangeStart),r=this.toEditorPos(n.rangeEnd);t{let n=[];for(let e of t.getTextFormats()){let t=e.underlineStyle,i=e.underlineThickness;if("None"!=t&&"None"!=i){let s=`text-decoration: underline ${"Dashed"==t?"dashed ":"Squiggle"==t?"wavy ":""}${"Thin"==i?1:2}px`;n.push(fe.mark({attributes:{style:s}}).range(this.toEditorPos(e.rangeStart),this.toEditorPos(e.rangeEnd)))}}e.dispatch({effects:it.of(fe.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{e.inputState.composing=-1,e.inputState.compositionFirstChange=null};for(let e in this.handlers)t.addEventListener(e,this.handlers[e]);this.measureReq={read:e=>{this.editContext.updateControlBounds(e.contentDOM.getBoundingClientRect());let t=u(e.root);t&&t.rangeCount&&this.editContext.updateSelectionBounds(t.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges(((s,r,o,a,l)=>{if(n)return;let h=l.length-(r-s);if(i&&r>=i.to){if(i.from==s&&i.to==r&&i.insert.eq(l))return i=this.pendingContextChange=null,t+=h,void(this.to+=h);i=null,this.revertPending(e.state)}if(s+=t,(r+=t)<=this.from)this.from+=h,this.to+=h;else if(sthis.to||this.to-this.from+l.length>3e4)return void(n=!0);this.editContext.updateText(this.toContextPos(s),this.toContextPos(r),l.toString()),this.to+=h}t+=h})),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange;this.applyEdits(e)&&this.rangeIsValid(e.state)?(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state):(this.pendingContextChange=null,this.resetRange(e.state),this.editContext.updateText(0,this.editContext.text.length,e.state.doc.sliceString(this.from,this.to)),this.setSelection(e.state)),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);this.editContext.selectionStart==n&&this.editContext.selectionEnd==i||this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to3e4)}toEditorPos(e){return e+this.from}toContextPos(e){return e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class li{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(e=>e.forEach((e=>n(e,this))))||(e=>this.update(e)),this.dispatch=this.dispatch.bind(this),this._root=e.root||function(e){for(;e;){if(e&&(9==e.nodeType||11==e.nodeType&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}(e.parent)||document,this.viewState=new zn(e.state||i.$t.create(e)),e.scrollTo&&e.scrollTo.is(nt)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(at).map((e=>new ht(e)));for(let e of this.plugins)e.update(this);this.observer=new si(this),this.inputState=new Wt(this),this.inputState.ensureHandlers(this.plugins),this.docView=new kt(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),(null===(t=document.fonts)||void 0===t?void 0:t.ready)&&document.fonts.ready.then((()=>this.requestMeasure()))}dispatch(...e){let t=1==e.length&&e[0]instanceof i.ZX?e:1==e.length&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t,n=!1,s=!1,r=this.state;for(let t of e){if(t.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=t.state}if(this.destroyed)return void(this.viewState.state=r);let o=this.hasFocus,a=0,l=null;e.some((e=>e.annotation(gn)))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=bn(r,o),l||(a=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(i.$t.phrases)!=this.state.facet(i.$t.phrases))return this.setState(r);t=wt.create(this,r,e),t.flags|=a;let u=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(u&&(u=u.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;u=new tt(e.empty?e:i.OF.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(nt)&&(u=e.value.clip(this.state))}this.viewState.update(t,u),this.bidiCache=ui.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(vt)!=this.styleModules&&this.mountStyles(),s=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(Kn)!=t.state.facet(Kn)&&(this.viewState.mustMeasureContent=!0),(n||s||u||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!t.empty)for(let e of this.state.facet(Ue))try{e(t)}catch(e){st(this.state,e,"update listener")}(l||c)&&Promise.resolve().then((()=>{l&&this.state==l.startState&&this.dispatch(l),c&&!qt(this,c)&&h.force&&_(this.contentDOM,h.key,h.keyCode)}))}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=e);this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new zn(e),this.plugins=e.facet(at).map((e=>new ht(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new kt(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(at),n=e.state.facet(at);if(t!=n){let i=[];for(let s of n){let n=t.indexOf(s);if(n<0)i.push(new ht(s));else{let t=this.plugins[n];t.mustUpdate=e,i.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,i=n.scrollTop*this.scaleY,{scrollAnchorPos:s,scrollAnchorHeight:r}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(r=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(r<0)if(E(n))s=-1,r=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(i);s=e.from,r=e.top}this.updateState=1;let o=this.viewState.measure(this);if(!o&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(e>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];4&o||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((e=>{try{return e.read(this)}catch(e){return st(this.state,e),ci}})),h=wt.create(this,this.state,[]),c=!1;h.flags|=o,t?t.flags|=o:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),c=this.docView.update(h),c&&this.docViewUpdate());for(let e=0;e1||e<-1){i+=e,n.scrollTop=i/this.scaleY,r=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(Ue))e(t)}get themeClasses(){return Yn+" "+(this.state.facet(Jn)?Qn:Xn)+" "+this.state.facet(Kn)}updateAttrs(){let e=fi(this,ct,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(rt)?"true":"false",class:"cm-content",style:`${X.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),fi(this,ut,t);let n=this.observer.ignore((()=>{let n=le(this.contentDOM,this.contentAttrs,t),i=le(this.dom,this.editorAttrs,e);return n||i}));return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let e of n.effects)e.is(li.announce)&&(t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value)}mountStyles(){this.styleModules=this.state.facet(vt);let e=this.state.facet(li.cspNonce);s.G.mount(this.root,this.styleModules.concat(ti).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),e){if(this.measureRequests.indexOf(e)>-1)return;if(null!=e.key)for(let t=0;tt.spec==e))||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Bt(this,e,jt(this,e,t,n))}moveByGroup(e,t){return Bt(this,e,jt(this,e,t,(t=>function(e,t,n){let s=e.state.charCategorizer(t),r=s(n);return e=>{let t=s(e);return r==i.Je.Space&&(r=t),r==t}}(this,e.head,t))))}visualLineSide(e,t){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=n[t?n.length-1:0];return i.OF.cursor(r.side(t,s)+e.from,r.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,n=!0){return function(e,t,n,s){let r=Rt(e,t.head),o=s&&r.type==ue.Text&&(e.lineWrapping||r.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head):null;if(o){let t=e.dom.getBoundingClientRect(),s=e.textDirectionAt(r.from),a=e.posAtCoords({x:n==(s==Ce.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=a)return i.OF.cursor(a,n?-1:1)}return i.OF.cursor(n?r.to:r.from,n?-1:1)}(this,e,t,n)}moveVertically(e,t,n){return Bt(this,e,function(e,t,n,s){let r=t.head,o=n?1:-1;if(r==(n?e.state.doc.length:0))return i.OF.cursor(r,t.assoc);let a,l=t.goalColumn,h=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(r,t.assoc||-1),u=e.documentTop;if(c)null==l&&(l=c.left-h.left),a=o<0?c.top:c.bottom;else{let t=e.viewState.lineBlockAt(r);null==l&&(l=Math.min(h.right-h.left,e.defaultCharacterWidth*(r-t.from))),a=(o<0?t.top:t.bottom)+u}let f=h.left+l,d=null!=s?s:e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let n=a+(d+t)*o,s=Dt(e,{x:f,y:n},!1,o);if(nh.bottom||(o<0?sr)){let t=e.docView.coordsForChar(s),r=!t||n0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Qe)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>hi)return Fe(e.length);let t,n=this.textDirectionAt(e.from);for(let i of this.bidiCache)if(i.from==e.from&&i.dir==n&&(i.fresh||je(i.isolates,t=gt(this,e))))return i.order;t||(t=gt(this,e));let i=function(e,t,n){if(!e)return[new Re(0,0,t==Oe?1:0)];if(t==Ae&&!n.length&&!Pe.test(e))return Fe(e.length);if(n.length)for(;e.length>Le.length;)Le[Le.length]=256;let i=[],s=t==Ae?0:1;return Ie(e,s,s,n,0,e.length,i),i}(e.text,n,t);return this.bidiCache.push(new ui(e.from,e.to,n,t,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||X.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{O(this.contentDOM),this.docView.updateSelection()}))}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((9==e.nodeType?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return nt.of(new tt("number"==typeof e?i.OF.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return nt.of(new tt(i.OF.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){null==e?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:"boolean"==typeof e?this.inputState.tabFocusMode=e?0:-1:0!=this.inputState.tabFocusMode&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return lt.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return lt.define((()=>({})),{eventObservers:e})}static theme(e,t){let n=s.G.newName(),i=[Kn.of(n),vt.of(ei(`.${n}`,e))];return t&&t.dark&&i.push(Jn.of(!0)),i}static baseTheme(e){return i.Nb.lowest(vt.of(ei("."+Yn,e,Zn)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),i=n&&j.get(n)||j.get(e);return(null===(t=null==i?void 0:i.rootView)||void 0===t?void 0:t.view)||null}}li.styleModule=vt,li.inputHandler=Ke,li.clipboardInputFilter=Ye,li.clipboardOutputFilter=Xe,li.scrollHandler=et,li.focusChangeEffect=Je,li.perLineTextDirection=Qe,li.exceptionSink=Ge,li.updateListener=Ue,li.editable=rt,li.mouseSelectionStyle=We,li.dragMovesSelection=Ve,li.clickAddsSelectionRange=qe,li.decorations=ft,li.outerDecorations=dt,li.atomicRanges=pt,li.bidiIsolatedRanges=mt,li.scrollMargins=bt,li.darkTheme=Jn,li.cspNonce=i.sj.define({combine:e=>e.length?e[0]:""}),li.contentAttributes=ut,li.editorAttributes=ct,li.lineWrapping=li.contentAttributes.of({class:"cm-lineWrapping"}),li.announce=i.Pe.define();const hi=4096,ci={};class ui{constructor(e,t,n,i,s,r){this.from=e,this.to=t,this.dir=n,this.isolates=i,this.fresh=s,this.order=r}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let n=[],i=e.length?e[e.length-1].dir:Ce.LTR;for(let s=Math.max(0,e.length-10);s=0;s--){let t=i[s],r="function"==typeof t?t(e):t;r&&re(r,n)}return n}const di=X.mac?"mac":X.windows?"win":X.linux?"linux":"key";function pi(e,t,n){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),!1!==n&&t.shiftKey&&(e="Shift-"+e),e}const mi=i.Nb.default(li.domEventHandlers({keydown:(e,t)=>Si(yi(t.state),e,t,"editor")})),gi=i.sj.define({enables:mi}),bi=new WeakMap;function yi(e){let t=e.facet(gi),n=bi.get(t);return n||bi.set(t,n=function(e,t=di){let n=Object.create(null),i=Object.create(null),s=(e,t)=>{let n=i[e];if(null==n)i[e]=t;else if(n!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},r=(e,i,r,o,a)=>{var l,h;let c=n[e]||(n[e]=Object.create(null)),u=i.split(/ (?!$)/).map((e=>function(e,t){const n=e.split(/-(?!$)/);let i,s,r,o,a=n[n.length-1];"Space"==a&&(a=" ");for(let e=0;e{let i=xi={view:t,prefix:n,scope:e};return setTimeout((()=>{xi==i&&(xi=null)}),wi),!0}]})}let f=u.join(" ");s(f,!1);let d=c[f]||(c[f]={preventDefault:!1,stopPropagation:!1,run:(null===(h=null===(l=c._any)||void 0===l?void 0:l.run)||void 0===h?void 0:h.slice())||[]});r&&d.run.push(r),o&&(d.preventDefault=!0),a&&(d.stopPropagation=!0)};for(let i of e){let e=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let t of e){let e=n[t]||(n[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:s}=i;for(let t in e)e[t].run.push((e=>s(e,ki)))}let s=i[t]||i.key;if(s)for(let t of e)r(t,s,i.run,i.preventDefault,i.stopPropagation),i.shift&&r(t,"Shift-"+s,i.shift,i.preventDefault,i.stopPropagation)}return n}(t.reduce(((e,t)=>e.concat(t)),[]))),n}function vi(e,t,n){return Si(yi(e.state),t,e,n)}let xi=null;const wi=4e3;let ki=null;function Si(e,t,n,s){ki=t;let h=function(e){var t=!(a&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||l&&e.shiftKey&&e.key&&1==e.key.length||"Unidentified"==e.key)&&e.key||(e.shiftKey?o:r)[e.keyCode]||e.key||"Unidentified";return"Esc"==t&&(t="Escape"),"Del"==t&&(t="Delete"),"Left"==t&&(t="ArrowLeft"),"Up"==t&&(t="ArrowUp"),"Right"==t&&(t="ArrowRight"),"Down"==t&&(t="ArrowDown"),t}(t),c=(0,i.vS)(h,0),u=(0,i.Fh)(c)==h.length&&" "!=h,f="",d=!1,p=!1,m=!1;xi&&xi.view==n&&xi.scope==s&&(f=xi.prefix+" ",Yt.indexOf(t.keyCode)<0&&(p=!0,xi=null));let g,b,y=new Set,v=e=>{if(e){for(let t of e.run)if(!y.has(t)&&(y.add(t),t(n)))return e.stopPropagation&&(m=!0),!0;e.preventDefault&&(e.stopPropagation&&(m=!0),p=!0)}return!1},x=e[s];return x&&(v(x[f+pi(h,t,!u)])?d=!0:u&&(t.altKey||t.metaKey||t.ctrlKey)&&!(X.windows&&t.ctrlKey&&t.altKey)&&(g=r[t.keyCode])&&g!=h?(v(x[f+pi(g,t,!0)])||t.shiftKey&&(b=o[t.keyCode])!=h&&b!=g&&v(x[f+pi(b,t,!1)]))&&(d=!0):u&&t.shiftKey&&v(x[f+pi(h,t,!0)])&&(d=!0),!d&&v(x._any)&&(d=!0)),p&&(d=!0),d&&m&&t.stopPropagation(),ki=null,d}class Ci{constructor(e,t,n,i,s){this.className=e,this.left=t,this.top=n,this.width=i,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className==this.className&&(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",null!=this.width&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let i=e.coordsAtPos(n.head,n.assoc||1);if(!i)return[];let s=Ai(e);return[new Ci(t,i.left-s.left,i.top-s.top,null,i.bottom-i.top)]}return function(e,t,n){if(n.to<=e.viewport.from||n.from>=e.viewport.to)return[];let i=Math.max(n.from,e.viewport.from),s=Math.min(n.to,e.viewport.to),r=e.textDirection==Ce.LTR,o=e.contentDOM,a=o.getBoundingClientRect(),l=Ai(e),h=o.querySelector(".cm-line"),c=h&&window.getComputedStyle(h),u=a.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),f=a.right-(c?parseInt(c.paddingRight):0),d=Rt(e,i),p=Rt(e,s),m=d.type==ue.Text?d:null,g=p.type==ue.Text?p:null;if(m&&(e.lineWrapping||d.widgetLineBreaks)&&(m=Oi(e,i,1,m)),g&&(e.lineWrapping||p.widgetLineBreaks)&&(g=Oi(e,s,-1,g)),m&&g&&m.from==g.from&&m.to==g.to)return y(v(n.from,n.to,m));{let t=m?v(n.from,null,m):x(d,!1),i=g?v(null,n.to,g):x(p,!0),s=[];return(m||d).to<(g||p).from-(m&&g?1:0)||d.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2h&&i.from=r)break;a>s&&l(Math.max(e,s),null==t&&e<=h,Math.min(a,r),null==n&&a>=c,o.dir)}if(s=i.to+1,s>=r)break}return 0==a.length&&l(h,null==t,c,null==n,e.textDirection),{top:s,bottom:o,horizontal:a}}function x(e,t){let n=a.top+(t?e.top:e.bottom);return{top:n,bottom:n,horizontal:[]}}}(e,t,n)}}function Ai(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==Ce.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function Oi(e,t,n,i){let s=e.coordsAtPos(t,2*n);if(!s)return i;let r=e.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,a=e.posAtCoords({x:r.left+1,y:o}),l=e.posAtCoords({x:r.right-1,y:o});return null==a||null==l?i:{from:Math.max(i.from,Math.min(a,l)),to:Math.min(i.to,Math.max(a,l))}}class Mi{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(_i)!=e.state.facet(_i)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){!1!==this.layer.updateOnDocViewUpdate&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(_i);for(;t{return n=e,i=this.drawn[t],!(n.constructor==i.constructor&&n.eq(i));var n,i}))){let t=this.dom.firstChild,n=0;for(let i of e)i.update&&t&&i.constructor&&this.drawn[n].constructor&&i.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(i.draw(),t);for(;t;){let e=t.nextSibling;t.remove(),t=e}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const _i=i.sj.define();function Ti(e){return[lt.define((t=>new Mi(t,e))),_i.of(e)]}const Ei=!X.ios,Ni=i.sj.define({combine:e=>(0,i.QR)(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});function Di(e={}){return[Ni.of(e),Ri,Li,Ii,Ze.of(!0)]}function Pi(e){return e.startState.facet(Ni)!=e.state.facet(Ni)}const Ri=Ti({above:!0,markers(e){let{state:t}=e,n=t.facet(Ni),s=[];for(let r of t.selection.ranges){let o=r==t.selection.main;if(r.empty?!o||Ei:n.drawRangeCursor){let t=o?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",n=r.empty?r:i.OF.cursor(r.head,r.head>r.anchor?-1:1);for(let i of Ci.forRange(e,t,n))s.push(i)}}return s},update(e,t){e.transactions.some((e=>e.selection))&&(t.style.animationName="cm-blink"==t.style.animationName?"cm-blink2":"cm-blink");let n=Pi(e);return n&&ji(e.state,t),e.docChanged||e.selectionSet||n},mount(e,t){ji(t.state,e)},class:"cm-cursorLayer"});function ji(e,t){t.style.animationDuration=e.facet(Ni).cursorBlinkRate+"ms"}const Li=Ti({above:!1,markers:e=>e.state.selection.ranges.map((t=>t.empty?[]:Ci.forRange(e,"cm-selectionBackground",t))).reduce(((e,t)=>e.concat(t))),update:(e,t)=>e.docChanged||e.selectionSet||e.viewportChanged||Pi(e),class:"cm-selectionLayer"}),Bi={".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"}},".cm-content":{"& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}};Ei&&(Bi[".cm-line"].caretColor=Bi[".cm-content"].caretColor="transparent !important");const Ii=i.Nb.highest(li.theme(Bi));function Fi(e,t,n,i,s){t.lastIndex=0;for(let r,o=e.iterRange(n,i),a=n;!o.next().done;a+=o.value.length)if(!o.lineBreak)for(;r=t.exec(o.value);)s(a+r.index,r)}class $i{constructor(e){const{regexp:t,decoration:n,decorate:i,boundary:s,maxLength:r=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,i)this.addMatch=(e,t,n,s)=>i(s,n,n+e[0].length,e,t);else if("function"==typeof n)this.addMatch=(e,t,i,s)=>{let r=n(e,t,i);r&&s(i,i+e[0].length,r)};else{if(!n)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(e,t,i,s)=>s(i,i+e[0].length,n)}this.boundary=s,this.maxLength=r}createDeco(e){let t=new i.vB,n=t.add.bind(t);for(let{from:t,to:i}of function(e,t){let n=e.visibleRanges;if(1==n.length&&n[0].from==e.viewport.from&&n[0].to==e.viewport.to)return n;let i=[];for(let{from:s,to:r}of n)s=Math.max(e.state.doc.lineAt(s).from,s-t),r=Math.min(e.state.doc.lineAt(r).to,r+t),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}(e,this.maxLength))Fi(e.state.doc,this.regexp,t,i,((t,i)=>this.addMatch(i,e,t,n)));return t.finish()}updateDeco(e,t){let n=1e9,i=-1;return e.docChanged&&e.changes.iterChanges(((t,s,r,o)=>{o>e.view.viewport.from&&r1e3?this.createDeco(e.view):i>-1?this.updateRange(e.view,t.map(e.changes),n,i):t}updateRange(e,t,n,i){for(let s of e.visibleRanges){let r=Math.max(s.from,n),o=Math.min(s.to,i);if(o>r){let n=e.state.doc.lineAt(r),i=n.ton.from;r--)if(this.boundary.test(n.text[r-1-n.from])){a=r;break}for(;oc.push(n.range(e,t));if(n==i)for(this.regexp.lastIndex=a-n.from;(h=this.regexp.exec(n.text))&&h.indexthis.addMatch(n,e,t,u)));t=t.update({filterFrom:a,filterTo:l,filter:(e,t)=>el,add:c})}}return t}}const zi=null!=/x/.unicode?"gu":"g",Hi=new RegExp("[\0-\b\n--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\ufeff-]",zi),qi={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Vi=null;const Wi=i.sj.define({combine(e){let t=(0,i.QR)(e,{render:null,specialChars:Hi,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==Vi&&"undefined"!=typeof document&&document.body){let t=document.body.style;Vi=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return Vi||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,zi)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,zi)),t}});function Gi(e={}){return[Wi.of(e),Ui||(Ui=lt.fromClass(class{constructor(e){this.view=e,this.decorations=fe.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(Wi)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new $i({regexp:e.specialChars,decoration:(t,n,s)=>{let{doc:r}=n.state,o=(0,i.vS)(t[0],0);if(9==o){let e=r.lineAt(s),t=n.state.tabSize,o=(0,i.y$)(e.text,t,s-e.from);return fe.replace({widget:new Ji((t-o%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[o]||(this.decorationCache[o]=fe.replace({widget:new Ki(e,o)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(Wi);e.startState.facet(Wi)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(e.view)):this.decorations=this.decorator.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}))]}let Ui=null;class Ki extends ce{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=function(e){return e>=32?"•":10==e?"␤":String.fromCharCode(9216+e)}(this.code),n=e.state.phrase("Control character")+" "+(qi[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,n,t);if(i)return i;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}}class Ji extends ce{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent="\t",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}const Yi=lt.fromClass(class{constructor(){this.height=1e3,this.attrs={style:"padding-bottom: 1000px"}}update(e){let{view:t}=e,n=t.viewState.editorHeight-t.defaultLineHeight-t.documentPadding.top-.5;n>=0&&n!=this.height&&(this.height=n,this.attrs={style:`padding-bottom: ${n}px`})}});function Xi(){return[Yi,ut.of((e=>{var t;return(null===(t=e.plugin(Yi))||void 0===t?void 0:t.attrs)||null}))]}function Qi(){return es}const Zi=fe.line({class:"cm-activeLine"}),es=lt.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=-1,n=[];for(let i of e.state.selection.ranges){let s=e.lineBlockAt(i.head);s.from>t&&(n.push(Zi.range(s.from)),t=s.from)}return fe.set(n)}},{decorations:e=>e.decorations}),ts=2e3;function ns(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),s=e.state.doc.lineAt(n),r=n-s.from,o=r>ts?-1:r==s.length?function(e,t){let n=e.coordsAtPos(e.viewport.from);return n?Math.round(Math.abs((n.left-t)/e.defaultCharacterWidth)):-1}(e,t.clientX):(0,i.y$)(s.text,e.state.tabSize,n-s.from);return{line:s.number,col:o,off:r}}function is(e){let t=(null==e?void 0:e.eventFilter)||(e=>e.altKey&&0==e.button);return li.mouseSelectionStyle.of(((e,n)=>t(n)?function(e,t){let n=ns(e,t),s=e.state.selection;return n?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(n.line).from),i=e.state.doc.lineAt(t);n={line:i.number,col:n.col,off:Math.min(n.off,i.length)},s=s.map(e.changes)}},get(t,r,o){let a=ns(e,t);if(!a)return s;let l=function(e,t,n){let s=Math.min(t.line,n.line),r=Math.max(t.line,n.line),o=[];if(t.off>ts||n.off>ts||t.col<0||n.col<0){let a=Math.min(t.off,n.off),l=Math.max(t.off,n.off);for(let t=s;t<=r;t++){let n=e.doc.line(t);n.length<=l&&o.push(i.OF.range(n.from+a,n.to+l))}}else{let a=Math.min(t.col,n.col),l=Math.max(t.col,n.col);for(let t=s;t<=r;t++){let n=e.doc.line(t),s=(0,i.kn)(n.text,a,e.tabSize,!0);if(s<0)o.push(i.OF.cursor(n.to));else{let t=(0,i.kn)(n.text,l,e.tabSize);o.push(i.OF.range(n.from+s,n.from+t))}}}return o}(e.state,n,a);return l.length?o?i.OF.create(l.concat(s.ranges)):i.OF.create(l):s}}:null}(e,n):null))}const ss={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]},rs={style:"cursor: crosshair"};function os(e={}){let[t,n]=ss[e.key||"Alt"],i=lt.fromClass(class{constructor(e){this.view=e,this.isDown=!1}set(e){this.isDown!=e&&(this.isDown=e,this.view.update([]))}},{eventObservers:{keydown(e){this.set(e.keyCode==t||n(e))},keyup(e){e.keyCode!=t&&n(e)||this.set(!1)},mousemove(e){this.set(n(e))}}});return[i,li.contentAttributes.of((e=>{var t;return(null===(t=e.plugin(i))||void 0===t?void 0:t.isDown)?rs:null}))]}const as="-10000px";class ls{constructor(e,t,n,i){this.facet=t,this.createTooltipView=n,this.removeTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter((e=>e));let s=null;this.tooltipViews=this.tooltips.map((e=>s=n(e,s)))}update(e,t){var n;let i=e.state.facet(this.facet),s=i.filter((e=>e));if(i===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let r=[],o=t?[]:null;for(let n=0;nt[n]=e)),t.length=o.length),this.input=i,this.tooltips=s,this.tooltipViews=r,!0}}function hs(e={}){return us.of(e)}function cs(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const us=i.sj.define({combine:e=>{var t,n,i;return{position:X.ios?"absolute":(null===(t=e.find((e=>e.position)))||void 0===t?void 0:t.position)||"fixed",parent:(null===(n=e.find((e=>e.parent)))||void 0===n?void 0:n.parent)||null,tooltipSpace:(null===(i=e.find((e=>e.tooltipSpace)))||void 0===i?void 0:i.tooltipSpace)||cs}}}),fs=new WeakMap,ds=lt.fromClass(class{constructor(e){this.view=e,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=e.state.facet(us);this.position=t.position,this.parent=t.parent,this.classes=e.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new ls(e,gs,((e,t)=>this.createTooltip(e,t)),(e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()})),this.above=this.manager.tooltips.map((e=>!!e.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let n=t||e.geometryChanged,i=e.state.facet(us);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;n=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(e,t){let n=e.create(this.view),i=t?t.dom:null;if(n.dom.classList.add("cm-tooltip"),e.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let e=document.createElement("div");e.className="cm-tooltip-arrow",n.dom.appendChild(e)}return n.dom.style.position=this.position,n.dom.style.top=as,n.dom.style.left="0px",this.container.insertBefore(n.dom,i),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var e,t,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),null===(e=t.destroy)||void 0===e||e.call(t);this.parent&&this.container.remove(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(n=this.intersectionObserver)||void 0===n||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=this.view.dom.getBoundingClientRect(),t=1,n=1,i=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:e}=this.manager.tooltipViews[0];if(X.gecko)i=e.offsetParent!=this.container.ownerDocument.body;else if(e.style.top==as&&"0px"==e.style.left){let t=e.getBoundingClientRect();i=Math.abs(t.top+1e4)>1||Math.abs(t.left)>1}}if(i||"absolute"==this.position)if(this.parent){let e=this.parent.getBoundingClientRect();e.width&&e.height&&(t=e.width/this.parent.offsetWidth,n=e.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:n}=this.view.viewState);return{editor:e,parent:this.parent?this.container.getBoundingClientRect():e,pos:this.manager.tooltips.map(((e,t)=>{let n=this.manager.tooltipViews[t];return n.getCoords?n.getCoords(e.pos):this.view.coordsAtPos(e.pos)})),size:this.manager.tooltipViews.map((({dom:e})=>e.getBoundingClientRect())),space:this.view.state.facet(us).tooltipSpace(this.view),scaleX:t,scaleY:n,makeAbsolute:i}}writeMeasure(e){var t;if(e.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let e of this.manager.tooltipViews)e.dom.style.position="absolute"}let{editor:n,space:i,scaleX:s,scaleY:r}=e,o=[];for(let a=0;a=Math.min(n.bottom,i.bottom)||u.rightMath.min(n.right,i.right)+.1){c.style.top=as;continue}let d=l.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=d?7:0,m=f.right-f.left,g=null!==(t=fs.get(h))&&void 0!==t?t:f.bottom-f.top,b=h.offset||ms,y=this.view.textDirection==Ce.LTR,v=f.width>i.right-i.left?y?i.left:i.right-f.width:y?Math.max(i.left,Math.min(u.left-(d?14:0)+b.x,i.right-m)):Math.min(Math.max(i.left,u.left-m+(d?14:0)-b.x),i.right-m),x=this.above[a];!l.strictSide&&(x?u.top-(f.bottom-f.top)-b.yi.bottom)&&x==i.bottom-u.bottom>u.top-i.top&&(x=this.above[a]=!x);let w=(x?u.top-i.top:i.bottom-u.bottom)-p;if(wv&&e.topk&&(k=x?e.top-g-2-p:e.bottom+p+2);if("absolute"==this.position?(c.style.top=(k-e.parent.top)/r+"px",c.style.left=(v-e.parent.left)/s+"px"):(c.style.top=k/r+"px",c.style.left=v/s+"px"),d){let e=u.left+(y?b.x:-b.x)-(v+14-7);d.style.left=e/s+"px"}!0!==h.overlap&&o.push({left:v,top:k,right:S,bottom:k+g}),c.classList.toggle("cm-tooltip-above",x),c.classList.toggle("cm-tooltip-below",!x),h.positioned&&h.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=as}},{eventObservers:{scroll(){this.maybeMeasure()}}}),ps=li.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ms={x:0,y:0},gs=i.sj.define({enables:[ds,ps]});function bs(e,t){let n=e.plugin(ds);if(!n)return null;let i=n.manager.tooltips.indexOf(t);return i<0?null:n.manager.tooltipViews[i]}const ys=i.sj.define({combine(e){let t,n;for(let i of e)t=t||i.topContainer,n=n||i.bottomContainer;return{topContainer:t,bottomContainer:n}}});function vs(e,t){let n=e.plugin(xs),i=n?n.specs.indexOf(t):-1;return i>-1?n.panels[i]:null}const xs=lt.fromClass(class{constructor(e){this.input=e.state.facet(Ss),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(ys);this.top=new ws(e,!0,t.topContainer),this.bottom=new ws(e,!1,t.bottomContainer),this.top.sync(this.panels.filter((e=>e.top))),this.bottom.sync(this.panels.filter((e=>!e.top)));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(e){let t=e.state.facet(ys);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new ws(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new ws(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=e.state.facet(Ss);if(n!=this.input){let t=n.filter((e=>e)),i=[],s=[],r=[],o=[];for(let n of t){let t,a=this.specs.indexOf(n);a<0?(t=n(e.view),o.push(t)):(t=this.panels[a],t.update&&t.update(e)),i.push(t),(t.top?s:r).push(t)}this.specs=t,this.panels=i,this.top.sync(s),this.bottom.sync(r);for(let e of o)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}else for(let t of this.panels)t.update&&t.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>li.scrollMargins.of((t=>{let n=t.plugin(e);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}}))});class ws{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=ks(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=ks(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function ks(e){let t=e.nextSibling;return e.remove(),t}const Ss=i.sj.define({enables:xs});class Cs extends i.FB{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Cs.prototype.elementClass="",Cs.prototype.toDOM=void 0,Cs.prototype.mapMode=i.iR.TrackBefore,Cs.prototype.startSide=Cs.prototype.endSide=-1,Cs.prototype.point=!0;const As=i.sj.define(),Os=i.sj.define(),Ms={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>i.om.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},_s=i.sj.define();function Ts(e){return[Ns(),_s.of(Object.assign(Object.assign({},Ms),e))]}const Es=i.sj.define({combine:e=>e.some((e=>e))});function Ns(e){let t=[Ds];return e&&!1===e.fixed&&t.push(Es.of(!0)),t}const Ds=lt.fromClass(class{constructor(e){this.view=e,this.prevViewport=e.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=e.state.facet(_s).map((t=>new Ls(e,t)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!e.state.facet(Es),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}update(e){if(this.updateGutters(e)){let t=this.prevViewport,n=e.view.viewport,i=Math.min(t.to,n.to)-Math.max(t.from,n.from);this.syncGutters(i<.8*(n.to-n.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(Es)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=e.view.viewport}syncGutters(e){let t=this.dom.nextSibling;e&&this.dom.remove();let n=i.om.iter(this.view.state.facet(As),this.view.viewport.from),s=[],r=this.gutters.map((e=>new js(e,this.view.viewport,-this.view.documentPadding.top)));for(let e of this.view.viewportLineBlocks)if(s.length&&(s=[]),Array.isArray(e.type)){let t=!0;for(let i of e.type)if(i.type==ue.Text&&t){Rs(n,s,i.from);for(let e of r)e.line(this.view,i,s);t=!1}else if(i.widget)for(let e of r)e.widget(this.view,i)}else if(e.type==ue.Text){Rs(n,s,e.from);for(let t of r)t.line(this.view,e,s)}else if(e.widget)for(let t of r)t.widget(this.view,e);for(let e of r)e.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(_s),n=e.state.facet(_s),s=e.docChanged||e.heightChanged||e.viewportChanged||!i.om.eq(e.startState.facet(As),e.state.facet(As),e.view.viewport.from,e.view.viewport.to);if(t==n)for(let t of this.gutters)t.update(e)&&(s=!0);else{s=!0;let i=[];for(let s of n){let n=t.indexOf(s);n<0?i.push(new Ls(this.view,s)):(this.gutters[n].update(e),i.push(this.gutters[n]))}for(let e of this.gutters)e.dom.remove(),i.indexOf(e)<0&&e.destroy();for(let e of i)this.dom.appendChild(e.dom);this.gutters=i}return s}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>li.scrollMargins.of((t=>{let n=t.plugin(e);return n&&0!=n.gutters.length&&n.fixed?t.textDirection==Ce.LTR?{left:n.dom.offsetWidth*t.scaleX}:{right:n.dom.offsetWidth*t.scaleX}:null}))});function Ps(e){return Array.isArray(e)?e:[e]}function Rs(e,t,n){for(;e.value&&e.from<=n;)e.from==n&&t.push(e.value),e.next()}class js{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=i.om.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:i}=this,s=(t.top-this.height)/e.scaleY,r=t.height/e.scaleY;if(this.i==i.elements.length){let t=new Bs(e,r,s,n);i.elements.push(t),i.dom.appendChild(t.dom)}else i.elements[this.i].update(e,r,s,n);this.height=t.bottom,this.i++}line(e,t,n){let i=[];Rs(this.cursor,i,t.from),n.length&&(i=i.concat(n));let s=this.gutter.config.lineMarker(e,t,i);s&&i.unshift(s);let r=this.gutter;(0!=i.length||r.config.renderEmptyElements)&&this.addElement(e,t,i)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),i=n?[n]:null;for(let n of e.state.facet(Os)){let s=n(e,t.widget,t);s&&(i||(i=[])).push(s)}i&&this.addElement(e,t,i)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Ls{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,(i=>{let s,r=i.target;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let e=r.getBoundingClientRect();s=(e.top+e.bottom)/2}else s=i.clientY;let o=e.lineBlockAtHeight(s-e.documentTop);t.domEventHandlers[n](e,o,i)&&i.preventDefault()}));this.markers=Ps(t.markers(e)),t.initialSpacer&&(this.spacer=new Bs(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Ps(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let t=this.config.updateSpacer(this.spacer.markers[0],e);t!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[t])}let n=e.view.viewport;return!i.om.eq(this.markers,t,n.from,n.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(e)}destroy(){for(let e of this.elements)e.destroy()}}class Bs{constructor(e,t,n,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,i)}update(e,t,n,i){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),function(e,t){if(e.length!=t.length)return!1;for(let n=0;n(0,i.QR)(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let e in t){let i=n[e],s=t[e];n[e]=i?(e,t,n)=>i(e,t,n)||s(e,t,n):s}return n}})});class zs extends Cs{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Hs(e,t){return e.state.facet($s).formatNumber(t,e.state)}const qs=_s.compute([$s],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(Is),lineMarker:(e,t,n)=>n.some((e=>e.toDOM))?null:new zs(Hs(e,e.state.doc.lineAt(t.from).number)),widgetMarker:(e,t,n)=>{for(let i of e.state.facet(Fs)){let s=i(e,t,n);if(s)return s}return null},lineMarkerChange:e=>e.startState.facet($s)!=e.state.facet($s),initialSpacer:e=>new zs(Hs(e,Ws(e.state.doc.lines))),updateSpacer(e,t){let n=Hs(t.view,Ws(t.view.state.doc.lines));return n==e.number?e:new zs(n)},domEventHandlers:e.facet($s).domEventHandlers})));function Vs(e={}){return[$s.of(e),Ns(),qs]}function Ws(e){let t=9;for(;t({decorations:e.createDeco(t),update(t){this.decorations=e.updateDeco(t,this.decorations)}})),{decorations:e=>e.decorations})}const Ks=Us(new $i({regexp:/\t| +/g,decoration:e=>function(e){let t=Gs.get(e);return t||Gs.set(e,t=fe.mark({attributes:"\t"===e?{class:"cm-highlightTab"}:{class:"cm-highlightSpace","data-display":e.replace(/ /g,"·")}})),t}(e[0]),boundary:/\S/}));function Js(){return Ks}const Ys=Us(new $i({regexp:/\s+$/g,decoration:fe.mark({class:"cm-trailingSpace"}),boundary:/\S/}));function Xs(){return Ys}},79066:(e,t,n)=>{"use strict";n.d(t,{$g:()=>L,PH:()=>p,Qj:()=>d,RY:()=>D,Z6:()=>h,cF:()=>i,fI:()=>c,iX:()=>R,rr:()=>P,uY:()=>o});const i=1024;let s=0;class r{constructor(e,t){this.from=e,this.to=t}}class o{constructor(e={}){this.id=s++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=h.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}o.closedBy=new o({deserialize:e=>e.split(" ")}),o.openedBy=new o({deserialize:e=>e.split(" ")}),o.group=new o({deserialize:e=>e.split(" ")}),o.isolate=new o({deserialize:e=>{if(e&&"rtl"!=e&&"ltr"!=e&&"auto"!=e)throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}}),o.contextHash=new o({perNode:!0}),o.lookAhead=new o({perNode:!0}),o.mounted=new o({perNode:!0});class a{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[o.mounted.id]}}const l=Object.create(null);class h{constructor(e,t,n,i=0){this.name=e,this.props=t,this.id=n,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):l,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new h(e.name||"",t,e.id,n);if(e.props)for(let n of e.props)if(Array.isArray(n)||(n=n(i)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}return i}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(o.group);return!!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let i of n.split(" "))t[i]=e[n];return e=>{for(let n=e.prop(o.group),i=-1;i<(n?n.length:0);i++){let s=t[i<0?e.name:n[i]];if(s)return s}}}}h.none=new h("",Object.create(null),0,8);class c{constructor(e){this.types=e;for(let t=0;t=t){let o=new x(r.tree,r.overlay[0].from+e.from,-1,e);(s||(s=[i])).push(y(o,t,n,!1))}}return s?A(s):i}(this,e,t)}iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e,r=e.mode||0,o=(r&d.IncludeAnonymous)>0;for(let e=this.cursor(r|d.IncludeAnonymous);;){let r=!1;if(e.from<=s&&e.to>=i&&(!o&&e.type.isAnonymous||!1!==t(e))){if(e.firstChild())continue;r=!0}for(;r&&n&&(o||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;r=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:N(h.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,n)=>new p(this.type,e,t,n,this.propValues)),e.makeTree||((e,t,n)=>new p(h.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:s,maxBufferLength:r=i,reused:a=[],minRepeatType:l=s.types.length}=e,h=Array.isArray(n)?new m(n,n.length):n,c=s.types,u=0,f=0;function d(e,t,n,i,m,w){let{id:k,start:S,end:C,size:A}=h,O=f;for(;A<0;){if(h.next(),-1==A){let t=a[k];return n.push(t),void i.push(S-e)}if(-3==A)return void(u=k);if(-4==A)return void(f=k);throw new RangeError(`Unrecognized record size: ${A}`)}let M,_,T=c[k],E=S-e;if(C-S<=r&&(_=function(e,t){let n=h.fork(),i=0,s=0,o=0,a=n.end-r,c={size:0,start:0,skip:0};e:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){c.size=i,c.start=s,c.skip=o,o+=4,i+=4,n.next();continue}let h=n.pos-e;if(e<0||h=l?4:0,f=n.start;for(n.next();n.pos>h;){if(n.size<0){if(-3!=n.size)break e;u+=4}else n.id>=l&&(u+=4);n.next()}s=f,i+=e,o+=u}return(t<0||i==e)&&(c.size=i,c.start=s,c.skip=o),c.size>4?c:void 0}(h.pos-t,m))){let t=new Uint16Array(_.size-_.skip),n=h.pos-_.size,i=t.length;for(;h.pos>n;)i=x(_.start,t,i);M=new g(t,C-_.start,s),E=_.start-e}else{let e=h.pos-A;h.next();let t=[],n=[],i=k>=l?k:-1,s=0,a=C;for(;h.pos>e;)i>=0&&h.id==i&&h.size>=0?(h.end<=a-r&&(y(t,n,S,s,h.end,a,i,O),s=t.length,a=h.end),h.next()):w>2500?b(S,e,t,n):d(S,e,t,n,i,w+1);if(i>=0&&s>0&&s-1&&s>0){let e=function(e){return(t,n,i)=>{let s,r,a=0,l=t.length-1;if(l>=0&&(s=t[l])instanceof p){if(!l&&s.type==e&&s.length==i)return s;(r=s.prop(o.lookAhead))&&(a=n[l]+s.length+r)}return v(e,t,n,i,a)}}(T);M=N(T,t,n,0,t.length,0,C-S,e,e)}else M=v(T,t,n,C-S,O-C)}n.push(M),i.push(E)}function b(e,t,n,i){let o=[],a=0,l=-1;for(;h.pos>t;){let{id:e,start:t,end:n,size:i}=h;if(i>4)h.next();else{if(l>-1&&t=0;e-=3)t[n++]=o[e],t[n++]=o[e+1]-r,t[n++]=o[e+2]-r,t[n++]=n;n.push(new g(t,o[2]-r,s)),i.push(r-e)}}function y(e,t,n,i,r,o,a,l){let h=[],c=[];for(;e.length>i;)h.push(e.pop()),c.push(t.pop()+n-r);e.push(v(s.types[a],h,c,o-r,l-o)),t.push(r-n)}function v(e,t,n,i,s=0,r){if(u){let e=[o.contextHash,u];r=r?[e].concat(r):[e]}if(s>25){let e=[o.lookAhead,s];r=r?[e].concat(r):[e]}return new p(e,t,n,i,r)}function x(e,t,n){let{id:i,start:s,end:r,size:o}=h;if(h.next(),o>=0&&i4){let i=h.pos-(o-4);for(;h.pos>i;)n=x(e,t,n)}t[--n]=a,t[--n]=r-e,t[--n]=s-e,t[--n]=i}else-3==o?u=i:-4==o&&(f=i);return n}let w=[],k=[];for(;h.pos>0;)d(e.start||0,e.bufferStart||0,w,k,-1,0);let S=null!==(t=e.length)&&void 0!==t?t:w.length?k[0]+w[0].length:0;return new p(c[e.topID],w.reverse(),k.reverse(),S)}(e)}}p.empty=new p(h.none,[],[],0);class m{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new m(this.buffer,this.index)}}class g{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return h.none}toString(){let e=[];for(let t=0;t0));a=r[a+3]);return o}slice(e,t,n){let i=this.buffer,s=new Uint16Array(t-e),r=0;for(let o=e,a=0;o=t&&nt;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function y(e,t,n,i){for(var s;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to0?o.length:-1;e!=h;e+=t){let h=o[e],c=l[e]+r.from;if(b(i,n,c,c+h.length))if(h instanceof g){if(s&d.ExcludeBuffers)continue;let o=h.findChild(0,h.buffer.length,t,n-c,i);if(o>-1)return new C(new S(r,h,e,c),null,o)}else if(s&d.IncludeAnonymous||!h.type.isAnonymous||_(h)){let o;if(!(s&d.IgnoreMounts)&&(o=a.get(h))&&!o.overlay)return new x(o.tree,c,e,r);let l=new x(h,c,e,r);return s&d.IncludeAnonymous||!l.type.isAnonymous?l:l.nextChild(t<0?h.children.length-1:0,t,n,i)}}if(s&d.IncludeAnonymous||!r.type.isAnonymous)return null;if(e=r.index>=0?r.index+t:t<0?-1:r._parent._tree.children.length,r=r._parent,!r)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let i;if(!(n&d.IgnoreOverlays)&&(i=a.get(this._tree))&&i.overlay){let n=e-this.from;for(let{from:e,to:s}of i.overlay)if((t>0?e<=n:e=n:s>n))return new x(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function w(e,t,n,i){let s=e.cursor(),r=[];if(!s.firstChild())return r;if(null!=n)for(let e=!1;!e;)if(e=s.type.is(n),!s.nextSibling())return r;for(;;){if(null!=i&&s.type.is(i))return r;if(s.type.is(t)&&r.push(s.node),!s.nextSibling())return null==i?r:[]}}function k(e,t,n=t.length-1){for(let i=e.parent;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[n]&&t[n]!=i.name)return!1;n--}}return!0}class S{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class C extends v{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new C(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&d.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new C(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new C(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new C(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let r=n.buffer[this.index+1];e.push(n.slice(i,s,r)),t.push(0)}return new p(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function A(e){if(!e.length)return null;let t=0,n=e[0];for(let i=1;in.from||s.to0){if(this.index-1)for(let i=t+e,s=e<0?-1:n._tree.children.length;i!=s;i+=e){let e=n._tree.children[i];if(this.mode&d.IncludeAnonymous||e instanceof g||!e.type.isAnonymous||_(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==i){if(i==this.index)return r;t=r,n=s+1;break e}i=this.stack[--s]}for(let e=n;e=0;s--){if(s<0)return k(this.node,e,i);let r=n[t.buffer[this.stack[s]]];if(!r.isAnonymous){if(e[i]&&e[i]!=r.name)return!1;i--}}return!0}}function _(e){return e.children.some((e=>e instanceof g||!e.type.isAnonymous||_(e)))}const T=new WeakMap;function E(e,t){if(!e.isAnonymous||t instanceof g||t.type!=e)return 1;let n=T.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof p)){n=1;break}n+=E(e,i)}T.set(t,n)}return n}function N(e,t,n,i,s,r,o,a,l){let h=0;for(let n=i;n=c)break;p+=t}if(h==s+1){if(p>c){let e=n[s];t(e.children,e.positions,0,e.children.length,i[s]+a);continue}u.push(n[s])}else{let t=i[h-1]+n[h-1].length-d;u.push(N(e,n,i,s,h,d,t,null,l))}f.push(d+a-r)}}(t,n,i,s,0),(a||l)(u,f,o)}class D{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let i=this.map.get(e);i||this.map.set(e,i=new Map),i.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof C?this.setBuffer(e.context.buffer,e.index,t):e instanceof x&&this.map.set(e.tree,t)}get(e){return e instanceof C?this.getBuffer(e.context.buffer,e.index):e instanceof x?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class P{constructor(e,t,n,i,s=!1,r=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(s?1:0)|(r?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],n=!1){let i=[new P(0,e.length,e,0,!1,n)];for(let n of t)n.to>e.length&&i.push(n);return i}static applyChanges(e,t,n=128){if(!t.length)return e;let i=[],s=1,r=e.length?e[0]:null;for(let o=0,a=0,l=0;;o++){let h=o=n)for(;r&&r.from=t.from||c<=t.to||l){let e=Math.max(t.from,a)-l,n=Math.min(t.to,c)-l;t=e>=n?null:new P(e,n,t.tree,t.offset+l,o>0,!!h)}if(t&&i.push(t),r.to>c)break;r=snew r(e.from,e.to))):[new r(0,0)]:[new r(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let e=i.advance();if(e)return e}}}class j{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function L(e){return(t,n,i,s)=>new z(t,e,n,i,s)}class B{constructor(e,t,n,i,s){this.parser=e,this.parse=t,this.overlay=n,this.target=i,this.from=s}}function I(e){if(!e.length||e.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(e))}class F{constructor(e,t,n,i,s,r,o){this.parser=e,this.predicate=t,this.mounts=n,this.index=i,this.start=s,this.target=r,this.prev=o,this.depth=0,this.ranges=[]}}const $=new o({perNode:!0});class z{constructor(e,t,n,i,s){this.nest=t,this.input=n,this.fragments=i,this.ranges=s,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;if(this.baseParse=null,this.baseTree=e,this.startInner(),null!=this.stoppedAt)for(let e of this.inner)e.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;return null!=this.stoppedAt&&(e=new p(e.type,e.children,e.positions,e.length,e.propValues.concat([[$,this.stoppedAt]]))),e}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[o.mounted.id]=new a(t,e.overlay,e.parser),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)l=!1;else if(e.hasNode(i)){if(t){let e=t.mounts.find((e=>e.frag.from<=i.from&&e.frag.to>=i.to&&e.mount.overlay));if(e)for(let n of e.mount.overlay){let s=n.from+e.pos,r=n.to+e.pos;s>=i.from&&r<=i.to&&!t.ranges.some((e=>e.froms))&&t.ranges.push({from:s,to:r})}}l=!1}else if(n&&(o=H(n.ranges,i.from,i.to)))l=2!=o;else if(!i.type.isAnonymous&&(s=this.nest(i,this.input))&&(i.fromnew r(e.from-i.from,e.to-i.from))):null,i.tree,e.length?e[0].from:i.from)),s.overlay?e.length&&(n={ranges:e,depth:0,prev:n}):l=!1}}else t&&(a=t.predicate(i))&&(!0===a&&(a=new r(i.from,i.to)),a.fromnew r(e.from-t.start,e.to-t.start))),t.target,e[0].from))),t=t.prev}n&&! --n.depth&&(n=n.prev)}}}}function H(e,t,n){for(let i of e){if(i.from>=n)break;if(i.to>t)return i.from<=t&&i.to>=n?2:1}return 0}function q(e,t,n,i,s,r){if(t=e&&t.enter(n,1,d.IgnoreOverlays|d.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(!(t.children.length&&0==t.positions[0]&&t.children[0]instanceof p))break;t=t.children[0]}return!1}}class G{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=null!==(t=n.tree.prop($))&&void 0!==t?t:n.to,this.inner=new W(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=null!==(e=t.tree.prop($))&&void 0!==e?e:t.to,this.inner=new W(t.tree,-t.offset)}}findMounts(e,t){var n;let i=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let s=null===(n=e.tree)||void 0===n?void 0:n.prop(o.mounted);if(s&&s.parser==t)for(let t=this.fragI;t=e.to)break;n.tree==this.curFrag.tree&&i.push({frag:n,pos:e.from-n.offset,mount:s})}}}return i}}function U(e,t){let n=null,i=t;for(let s=1,o=0;s=l)break;e.to<=a||(n||(i=n=t.slice()),e.froml&&n.splice(o+1,0,new r(l,e.to))):e.to>l?n[o--]=new r(l,e.to):n.splice(o--,1))}}return i}function K(e,t,n,i){let s=0,o=0,a=!1,l=!1,h=-1e9,c=[];for(;;){let u=s==e.length?1e9:a?e[s].to:e[s].from,f=o==t.length?1e9:l?t[o].to:t[o].from;if(a!=l){let e=Math.max(h,n),t=Math.min(u,f,i);enew r(e.from+i,e.to+i))),l,h);for(let t=0,i=l;;t++){let r=t==a.length,l=r?h:a[t].from;if(l>i&&n.push(new P(i,l,s.tree,-e,o.from>=i||o.openStart,o.to<=l||o.openEnd)),r)break;i=a[t].to}}else n.push(new P(l,h,s.tree,-e,o.from>=e||o.openStart,o.to<=a||o.openEnd))}return n}},49913:(e,t,n)=>{"use strict";n.d(t,{DM:()=>f,_A:()=>T,az:()=>u,pn:()=>l,vw:()=>r});var i=n(79066);let s=0;class r{constructor(e,t,n,i){this.name=e,this.set=t,this.base=n,this.modified=i,this.id=s++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n="string"==typeof e?e:"?";if(e instanceof r&&(t=e),null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let i=new r(n,[],null,[]);if(i.set.push(i),t)for(let e of t.set)i.set.push(e);return i}static defineModifier(e){let t=new a(e);return e=>e.modified.indexOf(t)>-1?e:a.get(e.base||e,e.modified.concat(t).sort(((e,t)=>e.id-t.id)))}}let o=0;class a{constructor(e){this.name=e,this.instances=[],this.id=o++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find((n=>{return n.base==e&&(i=t,s=n.modified,i.length==s.length&&i.every(((e,t)=>e==s[t])));var i,s}));if(n)return n;let i=[],s=new r(e.name,i,e,t);for(let e of t)e.instances.push(s);let o=function(e){let t=[[]];for(let n=0;nt.length-e.length))}(t);for(let t of e.set)if(!t.modified.length)for(let e of o)i.push(a.get(t,e));return s}}function l(e){let t=Object.create(null);for(let n in e){let i=e[n];Array.isArray(i)||(i=[i]);for(let e of n.split(" "))if(e){let n=[],s=2,r=e;for(let t=0;;){if("..."==r&&t>0&&t+3==e.length){s=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(r);if(!i)throw new RangeError("Invalid path: "+e);if(n.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),t+=i[0].length,t==e.length)break;let o=e[t++];if(t==e.length&&"!"==o){s=0;break}if("/"!=o)throw new RangeError("Invalid path: "+e);r=e.slice(t)}let o=n.length-1,a=n[o];if(!a)throw new RangeError("Invalid path: "+e);let l=new c(i,s,o>0?n.slice(0,o):null);t[a]=l.sort(t[a])}}return h.add(t)}const h=new i.uY;class c{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=s;for(let i of e)for(let e of i.set){let i=n[e.id];if(i){t=t?t+" "+i:i;break}}return t},scope:i}}function f(e,t,n,i=0,s=e.length){let r=new d(i,Array.isArray(t)?t:[t],n);r.highlightRange(e.cursor(),i,s,"",r.highlighters),r.flush(s)}c.empty=new c([],2,null);class d{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,s,r){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(r=this.highlighters.filter((e=>!e.scope||e.scope(o))));let u=s,f=function(e){let t=e.type.prop(h);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||c.empty,d=function(e,t){let n=null;for(let i of e){let e=i.style(t);e&&(n=n?n+" "+e:e)}return n}(r,f.tags);if(d&&(u&&(u+=" "),u+=d,1==f.mode&&(s+=(s?" ":"")+d)),this.startSpan(Math.max(t,a),u),f.opaque)return;let p=e.tree&&e.tree.prop(i.uY.mounted);if(p&&p.overlay){let i=e.node.enter(p.overlay[0].from+a,1),o=this.highlighters.filter((e=>!e.scope||e.scope(p.tree.type))),h=e.firstChild();for(let c=0,f=a;;c++){let d=c=m)&&e.nextSibling()););if(!d||m>n)break;f=d.to+a,f>t&&(this.highlightRange(i.cursor(),Math.max(t,d.from+a),Math.min(n,f),"",o),this.startSpan(Math.min(n,f),u))}h&&e.parent()}else if(e.firstChild()){p&&(s="");do{if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,s,r),this.startSpan(Math.min(n,e.to),u)}}while(e.nextSibling());e.parent()}}}const p=r.define,m=p(),g=p(),b=p(g),y=p(g),v=p(),x=p(v),w=p(v),k=p(),S=p(k),C=p(),A=p(),O=p(),M=p(O),_=p(),T={comment:m,lineComment:p(m),blockComment:p(m),docComment:p(m),name:g,variableName:p(g),typeName:b,tagName:p(b),propertyName:y,attributeName:p(y),className:p(g),labelName:p(g),namespace:p(g),macroName:p(g),literal:v,string:x,docString:p(x),character:p(x),attributeValue:p(x),number:w,integer:p(w),float:p(w),bool:p(v),regexp:p(v),escape:p(v),color:p(v),url:p(v),keyword:C,self:p(C),null:p(C),atom:p(C),unit:p(C),modifier:p(C),operatorKeyword:p(C),controlKeyword:p(C),definitionKeyword:p(C),moduleKeyword:p(C),operator:A,derefOperator:p(A),arithmeticOperator:p(A),logicOperator:p(A),bitwiseOperator:p(A),compareOperator:p(A),updateOperator:p(A),definitionOperator:p(A),typeOperator:p(A),controlOperator:p(A),punctuation:O,separator:p(O),bracket:M,angleBracket:p(M),squareBracket:p(M),paren:p(M),brace:p(M),content:k,heading:S,heading1:p(S),heading2:p(S),heading3:p(S),heading4:p(S),heading5:p(S),heading6:p(S),contentSeparator:p(k),list:p(k),quote:p(k),emphasis:p(k),strong:p(k),link:p(k),monospace:p(k),strikethrough:p(k),inserted:p(),deleted:p(),changed:p(),invalid:p(),meta:_,documentMeta:p(_),annotation:p(_),processingInstruction:p(_),definition:r.defineModifier("definition"),constant:r.defineModifier("constant"),function:r.defineModifier("function"),standard:r.defineModifier("standard"),local:r.defineModifier("local"),special:r.defineModifier("special")};for(let e in T){let t=T[e];t instanceof r&&(t.name=e)}u([{tag:T.link,class:"tok-link"},{tag:T.heading,class:"tok-heading"},{tag:T.emphasis,class:"tok-emphasis"},{tag:T.strong,class:"tok-strong"},{tag:T.keyword,class:"tok-keyword"},{tag:T.atom,class:"tok-atom"},{tag:T.bool,class:"tok-bool"},{tag:T.url,class:"tok-url"},{tag:T.labelName,class:"tok-labelName"},{tag:T.inserted,class:"tok-inserted"},{tag:T.deleted,class:"tok-deleted"},{tag:T.literal,class:"tok-literal"},{tag:T.string,class:"tok-string"},{tag:T.number,class:"tok-number"},{tag:[T.regexp,T.escape,T.special(T.string)],class:"tok-string2"},{tag:T.variableName,class:"tok-variableName"},{tag:T.local(T.variableName),class:"tok-variableName tok-local"},{tag:T.definition(T.variableName),class:"tok-variableName tok-definition"},{tag:T.special(T.variableName),class:"tok-variableName2"},{tag:T.definition(T.propertyName),class:"tok-propertyName tok-definition"},{tag:T.typeName,class:"tok-typeName"},{tag:T.namespace,class:"tok-namespace"},{tag:T.className,class:"tok-className"},{tag:T.macroName,class:"tok-macroName"},{tag:T.propertyName,class:"tok-propertyName"},{tag:T.operator,class:"tok-operator"},{tag:T.comment,class:"tok-comment"},{tag:T.meta,class:"tok-meta"},{tag:T.invalid,class:"tok-invalid"},{tag:T.punctuation,class:"tok-punctuation"}])},73643:(e,t,n)=>{"use strict";n.d(t,{Aj:()=>M,Lu:()=>p,U1:()=>_,uC:()=>d});var i=n(79066);class s{constructor(e,t,n,i,s,r,o,a,l,h=0,c){this.p=e,this.stack=t,this.state=n,this.reducePos=i,this.pos=s,this.score=r,this.buffer=o,this.bufferBase=a,this.curContext=l,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter(((e,t)=>t%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let i=e.parser.context;return new s(e,[],t,n,n,0,[],0,i?new r(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,i=65535&e,{parser:s}=this.p,r=this.reducePos=2e3&&!(null===(t=this.p.parser.nodeSet.types[i])||void 0===t?void 0:t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=h):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,n,i=4,s=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[i-4]&&e.buffer[i-1]>-1){if(t==n)return;if(e.buffer[i-2]>=t)return void(e.buffer[i-2]=n)}}if(s&&this.pos!=n){let s=this.buffer.length;if(s>0&&0!=this.buffer[s-4]){let e=!1;for(let t=s;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;s>0&&this.buffer[s-2]>n;)this.buffer[s]=this.buffer[s-4],this.buffer[s+1]=this.buffer[s-3],this.buffer[s+2]=this.buffer[s-2],this.buffer[s+3]=this.buffer[s-1],s-=4,i>4&&(i-=4)}this.buffer[s]=e,this.buffer[s+1]=t,this.buffer[s+2]=n,this.buffer[s+3]=i}else this.buffer.push(e,t,n,i)}shift(e,t,n,i){if(131072&e)this.pushState(65535&e,this.pos);else if(262144&e)this.pos=i,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,i,4);else{let s=e,{parser:r}=this.p;(i>this.pos||t<=r.maxNode)&&(this.pos=i,r.stateFlag(s,1)||(this.reducePos=i)),this.pushState(s,n),this.shiftContext(t,n),t<=r.maxNode&&this.buffer.push(t,n,i,4)}}apply(e,t,n,i){65536&e?this.reduce(e):this.shift(e,t,n,i)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(n,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new s(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new o(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(0==n)return!1;if(!(65536&n))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let i,s=0;s1&t&&e==i))||n.push(t[e],i)}t=n}let n=[];for(let e=0;e>19,i=65535&t,s=this.stack.length-3*n;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let e=this.findForcedReduction();if(null==e)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,(t=>{if(393216&t);else if(65536&t){let n=(t>>19)-s;if(n>1){let i=65535&t,s=this.stack.length-3*n;if(s>=0&&e.getGoto(this.stack[s],i,!1)>=0)return n<<19|65536|i}}else{let e=n(t,s+1);if(null!=e)return e}}))};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;return 65535==e.data[e.stateSlot(this.state,1)]&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class r{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class o{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=65535&e,n=e>>19;0==n?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(n-1);let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}}class a{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new a(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new a(this.stack,this.pos,this.index)}}function l(e,t=Uint16Array){if("string"!=typeof e)return e;let n=null;for(let i=0,s=0;i=92&&t--,t>=34&&t--;let s=t-32;if(s>=46&&(s-=46,n=!0),r+=s,n)break;r*=46}n?n[s++]=r:n=new t(r)}return n}class h{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const c=new h;class u{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=c,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,i=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(i==this.ranges.length-1)return null;let e=this.ranges[++i];s+=e.from-n.to,n=e}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,n,i=this.chunkOff+e;if(i>=0&&i=this.chunk2Pos&&ti.to&&(this.chunk2=this.chunk2.slice(0,i.to-t)),n=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),n}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(null==n||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=c,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(n+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return n}}class f{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;m(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}f.prototype.contextual=f.prototype.fallback=f.prototype.extend=!1;class d{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data="string"==typeof e?l(e):e}token(e,t){let n=e.pos,i=0;for(;;){let n=e.next<0,s=e.resolveOffset(1,1);if(m(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(null==this.elseToken)return;if(n||i++,null==s)break;e.reset(s,e.token)}i&&(e.reset(n,e.token),e.acceptToken(this.elseToken,i))}}d.prototype.contextual=f.prototype.fallback=f.prototype.extend=!1;class p{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function m(e,t,n,i,s,r){let o=0,a=1<0){let n=e[i];if(l.allows(n)&&(-1==t.token.value||t.token.value==n||b(n,t.token.value,s,r))){t.acceptToken(n);break}}let i=t.next,h=0,c=e[o+2];if(!(t.next<0&&c>h&&65535==e[n+3*c-3])){for(;h>1,r=n+s+(s<<1),a=e[r],l=e[r+1]||65536;if(i=l)){o=e[r+2],t.advance();continue e}h=s+1}}break}o=e[n+3*c-1]}}function g(e,t,n){for(let i,s=t;65535!=(i=e[s]);s++)if(i==n)return s-t;return-1}function b(e,t,n,i){let s=g(n,i,t);return s<0||g(n,i,e)t)&&!s.type.isError)return n<0?Math.max(0,Math.min(s.to-1,t-25)):Math.min(e.length,Math.max(s.from+1,t+25));if(n<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return n<0?0:e.length}}class w{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?x(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?x(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(r instanceof i.PH){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+r.length}}}class k{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map((e=>new h))}getActions(e){let t=0,n=null,{parser:i}=e.p,{tokenizers:s}=i,r=i.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,a=0;for(let i=0;ih.end+25&&(a=Math.max(h.lookAhead,a)),0!=h.value)){let i=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!l.extend&&(n=h,t>i))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),n||e.pos!=this.stream.end||(n=new h,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new h,{pos:n,p:i}=e;return t.start=n,t.end=Math.min(n+1,i.stream.end),t.value=n==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,n){let i=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(i,e),n),e.value>-1){let{parser:t}=n.p;for(let i=0;i=0&&n.p.parser.dialect.allows(s>>1)){1&s?e.extended=s>>1:e.value=s>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,n,i){for(let t=0;t4*e.bufferLength?new w(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,n=this.stacks,i=this.minStackPos,s=this.stacks=[];if(this.bigReductionCount>300&&1==n.length){let[e]=n;for(;e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;ri)s.push(o);else{if(this.advanceStack(o,s,n))continue;{e||(e=[],t=[]),e.push(o);let n=this.tokens.getMainToken(o);t.push(n.value,n.end)}}break}}if(!s.length){let t=e&&function(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||null!=e&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.scorethis.stoppedAt?e[0]:this.runRecovery(e,t,s);if(n)return y&&console.log("Force-finish "+this.stackID(n)),this.stackToTree(n.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(s.length>e)for(s.sort(((e,t)=>t.score-e.score));s.length>e;)s.pop();s.some((e=>e.reducePos>i))&&this.recovering--}else if(s.length>1){e:for(let e=0;e500&&i.buffer.length>500){if(!((t.score-i.score||t.buffer.length-i.buffer.length)>0)){s.splice(e--,1);continue e}s.splice(n--,1)}}}s.length>12&&s.splice(12,s.length-12)}this.minStackPos=s[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let a=this.fragments.nodeAt(s);a;){let s=this.parser.nodeSet.types[a.type.id]==a.type?r.getGoto(e.state,a.type.id):-1;if(s>-1&&a.length&&(!t||(a.prop(i.uY.contextHash)||0)==n))return e.useNode(a,s),y&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(a.type.id)})`),!0;if(!(a instanceof i.PH)||0==a.children.length||a.positions[0]>0)break;let l=a.children[0];if(!(l instanceof i.PH&&0==a.positions[0]))break;a=l}}let a=r.stateSlot(e.state,4);if(a>0)return e.reduce(a),y&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(65535&a)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let i=0;is?t.push(f):n.push(f)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return C(e,t),!0}}runRecovery(e,t,n){let i=null,s=!1;for(let r=0;r ":"";if(o.deadEnd){if(s)continue;if(s=!0,o.restart(),y&&console.log(h+this.stackID(o)+" (restarted)"),this.advanceFully(o,n))continue}let c=o.split(),u=h;for(let e=0;c.forceReduce()&&e<10&&(y&&console.log(u+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,n));e++)y&&(u=this.stackID(c)+" -> ");for(let e of o.recoverByInsert(a))y&&console.log(h+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,n);this.stream.end>o.pos?(l==o.pos&&(l++,a=0),o.recoverByDelete(a,l),y&&console.log(h+this.stackID(o)+` (via recover-delete ${this.parser.getName(a)})`),C(o,n)):(!i||i.scoree;class M{constructor(e){this.start=e.start,this.shift=e.shift||O,this.reduce=e.reduce||O,this.reuse=e.reuse||O,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class _ extends i.iX{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let n=0;ne.topRules[t][1])),s=[];for(let e=0;e=0)r(i,e,t[n++]);else{let s=t[n+-i];for(let o=-i;o>0;o--)r(t[n++],e,s);n++}}}this.nodeSet=new i.fI(t.map(((t,r)=>i.Z6.define({name:r>=this.minRepeatTerm?void 0:t,id:r,props:s[r],top:n.indexOf(r)>-1,error:0==r,skipped:e.skippedNodes&&e.skippedNodes.indexOf(r)>-1})))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=i.cF;let o=l(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e"number"==typeof e?new f(o,e):e)),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let i=new S(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}getGoto(e,t,n=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let t=i[s++],r=1&t,o=i[s++];if(r&&n)return o;for(let n=s+(t>>1);s0}validAction(e,t){return!!this.allActions(e,(e=>e==t||null))}allActions(e,t){let n=this.stateSlot(e,4),i=n?t(n):void 0;for(let n=this.stateSlot(e,1);null==i;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])break;n=T(this.data,n+2)}i=t(T(this.data,n+1))}return i}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])break;n=T(this.data,n+2)}if(!(1&this.data[n+2])){let e=this.data[n+1];t.some(((t,n)=>1&n&&t==e))||t.push(this.data[n],e)}}return t}configure(e){let t=Object.assign(Object.create(_.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map((t=>{let n=e.tokenizers.find((e=>e.from==t));return n?n.to:t}))),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map(((n,i)=>{let s=e.specializers.find((e=>e.from==n.external));if(!s)return n;let r=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[i]=E(r),r}))),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),null!=e.strict&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),null!=e.bufferLength&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return null==t?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map((()=>!1));if(e)for(let i of e.split(" ")){let e=t.indexOf(i);e>=0&&(n[e]=!0)}let i=null;for(let e=0;ee.external(n,i)<<1|t}return e.get}},98104:(e,t,n)=>{"use strict";n.d(t,{G:()=>o});const i="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),s="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class o{constructor(e,t){this.rules=[];let{finish:n}=t||{};function i(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function s(e,t,r,o){let a=[],l=/^@(\w+)\b/.exec(e[0]),h=l&&"keyframes"==l[1];if(l&&null==t)return r.push(e[0]+";");for(let n in t){let o=t[n];if(/&/.test(n))s(n.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),o,r);else if(o&&"object"==typeof o){if(!l)throw new RangeError("The value of a property ("+n+") should be a primitive value.");s(i(n),o,a,h)}else null!=o&&a.push(n.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+o+";")}(a.length||h)&&r.push((!n||l||o?e:e.map(n)).join(", ")+" {"+a.join(" ")+"}")}for(let t in e)s(i(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=r[i]||1;return r[i]=e+1,"ͼ"+e.toString(36)}static mount(e,t,n){let i=e[s],r=n&&n.nonce;i?r&&i.setNonce(r):i=new l(e,r),i.mount(Array.isArray(t)?t:[t],e)}}let a=new Map;class l{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let t=a.get(n);if(t)return e[s]=t;this.sheet=new i.CSSStyleSheet,a.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[s]=this}mount(e,t){let n=this.sheet,i=0,s=0;for(let t=0;t-1&&(this.modules.splice(o,1),s--,o=-1),-1==o){if(this.modules.splice(s++,0,r),n)for(let e=0;e{var e,r,t={903:e=>{function r(e){return Promise.resolve().then((()=>{var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}))}r.keys=()=>[],r.resolve=r,r.id=903,e.exports=r}},o={};function i(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={exports:{}};return t[e](n,n.exports,i),n.exports}i.m=t,i.x=()=>{var e=i.O(void 0,[746],(()=>i(2746)));return i.O(e)},i.amdO={},e=[],i.O=(r,t,o,n)=>{if(!t){var a=1/0;for(l=0;l=n)&&Object.keys(i.O).every((e=>i.O[e](t[c])))?t.splice(c--,1):(p=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((r,t)=>(i.f[t](e,r),r)),[])),i.u=e=>e+".thebe-lite.min.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var r=i.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e={284:1,903:1};i.f.i=(r,t)=>{e[r]||importScripts(i.p+i.u(r))};var r=self.webpackChunkthebe_lite=self.webpackChunkthebe_lite||[],t=r.push.bind(r);r.push=r=>{var[o,n,a]=r;for(var p in n)i.o(n,p)&&(i.m[p]=n[p]);for(a&&a(i);o.length;)e[o.pop()]=1;t(r)}})(),r=i.x,i.x=()=>i.e(746).then(r),i.x()})(); +//# sourceMappingURL=284.thebe-lite.min.js.map \ No newline at end of file diff --git a/29.thebe-core.min.js b/29.thebe-core.min.js new file mode 100644 index 00000000..a8716cc7 --- /dev/null +++ b/29.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[29],{60029:(e,t,n)=>{n.r(t),n.d(t,{erlang:()=>C});var r=["-type","-spec","-export_type","-opaque"],i=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],o=/[\->,;]/,a=["->",";",","],c=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],u=/[\+\-\*\/<>=\|:!]/,s=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],l=/[<\(\[\{]/,_=["<<","(","[","{"],f=/[>\)\]\}]/,p=["}","]",")",">>"],m=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],b=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],d=/[\w@Ø-ÞÀ-Öß-öø-ÿ]/,k=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function g(e,t,n){if(1==e.current().length&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),x(e.current(),n))return!0;e.backUp(e.current().length-1)}return!1}function h(e,t,n){if(1==e.current().length&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;01&&"fun"===e[t].type&&"fun"===e[t-1].token)return e.slice(0,t-1);switch(e[t].token){case"}":return A(e,{g:["{"]});case"]":return A(e,{i:["["]});case")":return A(e,{i:["("]});case">>":return A(e,{i:["<<"]});case"end":return A(e,{i:["begin","case","fun","if","receive","try"]});case",":return A(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return A(e,{r:["when"],m:["try","if","case","receive"]});case";":return A(e,{E:["case","fun","if","receive","try","when"]});case"catch":return A(e,{e:["try"]});case"of":return A(e,{e:["case"]});case"after":return A(e,{e:["receive","try"]});default:return e}}(e.tokenStack))}(e,function(e,t){return z(t.current(),t.column(),t.indentation(),e)}(n,t)),n){case"atom":case"boolean":return"atom";case"attribute":return"attribute";case"builtin":return"builtin";case"close_paren":case"colon":case"dot":case"open_paren":case"separator":default:return null;case"comment":return"comment";case"error":return"error";case"fun":return"meta";case"function":return"tag";case"guard":return"property";case"keyword":return"keyword";case"macro":return"macroName";case"number":return"number";case"operator":return"operator";case"record":return"bracket";case"string":return"string";case"type":return"def";case"variable":return"variable"}}function z(e,t,n,r){return{token:e,column:t,indent:n,type:r}}function W(e){return z(e,0,0,e)}function U(e,t){var n=e.tokenStack.length,r=t||1;return!(n({tokenStack:[],in_string:!1,in_atom:!1}),token:function(e,t){if(t.in_string)return t.in_string=!y(e),S(t,e,"string");if(t.in_atom)return t.in_atom=!v(e),S(t,e,"atom");if(e.eatSpace())return S(t,e,"whitespace");if(!U(t)&&e.match(/-\s*[a-zß-öø-ÿ][\wØ-ÞÀ-Öß-öø-ÿ]*/))return x(e.current(),r)?S(t,e,"type"):S(t,e,"attribute");var n=e.next();if("%"==n)return e.skipToEnd(),S(t,e,"comment");if(":"==n)return S(t,e,"colon");if("?"==n)return e.eatSpace(),e.eatWhile(d),S(t,e,"macro");if("#"==n)return e.eatSpace(),e.eatWhile(d),S(t,e,"record");if("$"==n)return"\\"!=e.next()||e.match(k)?S(t,e,"number"):S(t,e,"error");if("."==n)return S(t,e,"dot");if("'"==n){if(!(t.in_atom=!v(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),S(t,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return S(t,e,"function")}return S(t,e,"atom")}if('"'==n)return t.in_string=!y(e),S(t,e,"string");if(/[A-Z_Ø-ÞÀ-Ö]/.test(n))return e.eatWhile(d),S(t,e,"variable");if(/[a-z_ß-öø-ÿ]/.test(n)){if(e.eatWhile(d),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),S(t,e,"fun");var w=e.current();return x(w,i)?S(t,e,"keyword"):x(w,c)?S(t,e,"operator"):e.match(/\s*\(/,!1)?!x(w,b)||":"==U(t).token&&"erlang"!=U(t,2).token?x(w,m)?S(t,e,"guard"):S(t,e,"function"):S(t,e,"builtin"):":"==function(e){var t=e.match(/^\s*([^\s%])/,!1);return t?t[1]:""}(e)?S(t,e,"erlang"==w?"builtin":"function"):x(w,["true","false"])?S(t,e,"boolean"):S(t,e,"atom")}var z=/[0-9]/;return z.test(n)?(e.eatWhile(z),e.eat("#")?e.eatWhile(/[0-9a-zA-Z]/)||e.backUp(1):e.eat(".")&&(e.eatWhile(z)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(z)||e.backUp(2):e.eatWhile(z)||e.backUp(1)):e.backUp(1)),S(t,e,"number")):g(e,l,_)?S(t,e,"open_paren"):g(e,f,p)?S(t,e,"close_paren"):h(e,o,a)?S(t,e,"separator"):h(e,u,s)?S(t,e,"operator"):S(t,e,null)},indent:function(e,t,n){var r,i,o=q(i=t.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/))&&0===i.index?i[0]:"",a=U(e,1),c=U(e,2);return e.in_string||e.in_atom?null:c?"when"==a.token?a.column+n.unit:"when"===o&&"function"===c.type?c.indent+n.unit:"("===o&&"fun"===a.token?a.column+3:"catch"===o&&(r=E(e,["try"]))?r.column:x(o,["end","after","of"])?(r=E(e,["begin","case","fun","if","receive","try"]))?r.column:null:x(o,p)?(r=E(e,_))?r.column:null:x(a.token,[",","|","||"])||x(o,[",","|","||"])?(r=function(e){var t=e.tokenStack.slice(0,-1),n=Z(t,"type",["open_paren"]);return!!q(t[n])&&t[n]}(e))?r.column+r.token.length:n.unit:"->"==a.token?x(c.token,["receive","case","if","try"])?c.column+n.unit+n.unit:c.column+n.unit:x(a.token,_)?a.column+a.token.length:(r=function(e){var t=e.tokenStack,n=Z(t,"type",["open_paren","separator","keyword"]),r=Z(t,"type",["operator"]);return q(n)&&q(r)&&n{n.r(t),n.d(t,{clojure:()=>g});var r=["false","nil","true"],a=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],s=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],o=y(r),i=y(a),c=y(s),d=y(["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"]),l=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,u=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,p=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,m=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function f(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(u))return[null,"number"];if(e.match(p))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=h)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(m),r=n&&n[0];return r?"comment"===r&&"("===t.lastToken?(t.tokenize=b)(e,t):k(r,o)||":"===r.charAt(0)?["symbol","atom"]:k(r,i)||k(r,c)?["symbol","keyword"]:"("===t.lastToken?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile((function(e){return!k(e,l)})),[null,"error"])}function h(e,t){for(var n,r=!1;n=e.next();){if('"'===n&&!r){t.tokenize=f;break}r=!r&&"\\"===n}return[null,"string"]}function b(e,t){for(var n,r=1;n=e.next();)if(")"===n&&r--,"("===n&&r++,0===r){e.backUp(1),t.tokenize=f;break}return["space","comment"]}function y(e){for(var t={},n=0;n{function r(e){for(var _={},t=e.split(" "),r=0;ru});var s,i=r("break return rewrite set accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"),a=r("http mail events server types location upstream charset_map limit_except if geo map"),o=r("include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files");function n(e,_){return s=_,e}function c(e,_){e.eatWhile(/[\w\$_]/);var t=e.current();if(i.propertyIsEnumerable(t))return"keyword";if(a.propertyIsEnumerable(t))return"controlKeyword";if(o.propertyIsEnumerable(t))return"controlKeyword";var r,s=e.next();return"@"==s?(e.eatWhile(/[\w\\\-]/),n("meta",e.current())):"/"==s&&e.eat("*")?(_.tokenize=l,l(e,_)):"<"==s&&e.eat("!")?(_.tokenize=p,p(e,_)):"="!=s?"~"!=s&&"|"!=s||!e.eat("=")?'"'==s||"'"==s?(_.tokenize=(r=s,function(e,_){for(var t,s=!1;null!=(t=e.next())&&(t!=r||s);)s=!s&&"\\"==t;return s||(_.tokenize=c),n("string","string")}),_.tokenize(e,_)):"#"==s?(e.skipToEnd(),n("comment","comment")):"!"==s?(e.match(/^\s*\w*/),n("keyword","important")):/\d/.test(s)?(e.eatWhile(/[\w.%]/),n("number","unit")):/[,.+>*\/]/.test(s)?n(null,"select-op"):/[;{}:\[\]]/.test(s)?n(null,s):(e.eatWhile(/[\w\\\-]/),n("variable","variable")):n(null,"compare"):void n(null,"compare")}function l(e,_){for(var t,r=!1;null!=(t=e.next());){if(r&&"/"==t){_.tokenize=c;break}r="*"==t}return n("comment","comment")}function p(e,_){for(var t,r=0;null!=(t=e.next());){if(r>=2&&">"==t){_.tokenize=c;break}r="-"==t?r+1:0}return n("comment","comment")}const u={name:"nginx",startState:function(){return{tokenize:c,baseIndent:0,stack:[]}},token:function(e,_){if(e.eatSpace())return null;s=null;var t=_.tokenize(e,_),r=_.stack[_.stack.length-1];return"hash"==s&&"rule"==r?t="atom":"variable"==t&&("rule"==r?t="number":r&&"@media{"!=r||(t="tag")),"rule"==r&&/^[\{\};]$/.test(s)&&_.stack.pop(),"{"==s?"@media"==r?_.stack[_.stack.length-1]="@media{":_.stack.push("{"):"}"==s?_.stack.pop():"@media"==s?_.stack.push("@media"):"{"==r&&"comment"!=s&&_.stack.push("rule"),t},indent:function(e,_,t){var r=e.stack.length;return/^\}/.test(_)&&(r-="rule"==e.stack[e.stack.length-1]?2:1),e.baseIndent+r*t.unit},languageData:{indentOnInput:/^\s*\}$/}}}}]); +//# sourceMappingURL=3180.thebe-core.min.js.map \ No newline at end of file diff --git a/3191.thebe-core.min.js b/3191.thebe-core.min.js new file mode 100644 index 00000000..671b8616 --- /dev/null +++ b/3191.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3191],{33191:(e,t,r)=>{function n(e,t){return e.string.charAt(e.pos+(t||0))}function i(e,t){if(t){var r=e.pos-t;return e.string.substr(r>=0?r:0,t)}return e.string.substr(0,e.pos-1)}function s(e,t){var r=e.string.length,n=r-e.pos+1;return e.string.substr(e.pos,t&&t=(r=e.string.length-1)?e.pos=r:e.pos=n}r.r(t),r.d(t,{perl:()=>R});var o={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},u="string.special",$=/[goseximacplud]/;function l(e,t,r,n,i){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(e,t){for(var s,a=!1,o=0;s=e.next();){if(s===r[o]&&!a)return void 0!==r[++o]?(t.chain=r[o],t.style=n,t.tail=i):i&&e.eatWhile(i),t.tokenize=f,n;a=!a&&"\\"==s}return n},t.tokenize(e,t)}function E(e,t,r){return t.tokenize=function(e,t){return e.string==r&&(t.tokenize=f),e.skipToEnd(),"string"},t.tokenize(e,t)}function f(e,t){if(e.eatSpace())return null;if(t.chain)return l(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),E(e,t,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return E(e,t,"=cut");var r=e.next();if('"'==r||"'"==r){if(i(e,3)=="<<"+r){var f=e.pos;e.eatWhile(/\w/);var R=e.current().substr(1);if(R&&e.eat(r))return E(e,t,R);e.pos=f}return l(e,t,[r],"string")}if(!("q"!=r||(_=n(e,-2))&&/\w/.test(_)))if("x"==(_=n(e,0))){if("("==(_=n(e,1)))return a(e,2),l(e,t,[")"],u,$);if("["==_)return a(e,2),l(e,t,["]"],u,$);if("{"==_)return a(e,2),l(e,t,["}"],u,$);if("<"==_)return a(e,2),l(e,t,[">"],u,$);if(/[\^'"!~\/]/.test(_))return a(e,1),l(e,t,[e.eat(_)],u,$)}else if("q"==_){if("("==(_=n(e,1)))return a(e,2),l(e,t,[")"],"string");if("["==_)return a(e,2),l(e,t,["]"],"string");if("{"==_)return a(e,2),l(e,t,["}"],"string");if("<"==_)return a(e,2),l(e,t,[">"],"string");if(/[\^'"!~\/]/.test(_))return a(e,1),l(e,t,[e.eat(_)],"string")}else if("w"==_){if("("==(_=n(e,1)))return a(e,2),l(e,t,[")"],"bracket");if("["==_)return a(e,2),l(e,t,["]"],"bracket");if("{"==_)return a(e,2),l(e,t,["}"],"bracket");if("<"==_)return a(e,2),l(e,t,[">"],"bracket");if(/[\^'"!~\/]/.test(_))return a(e,1),l(e,t,[e.eat(_)],"bracket")}else if("r"==_){if("("==(_=n(e,1)))return a(e,2),l(e,t,[")"],u,$);if("["==_)return a(e,2),l(e,t,["]"],u,$);if("{"==_)return a(e,2),l(e,t,["}"],u,$);if("<"==_)return a(e,2),l(e,t,[">"],u,$);if(/[\^'"!~\/]/.test(_))return a(e,1),l(e,t,[e.eat(_)],u,$)}else if(/[\^'"!~\/(\[{<]/.test(_)){if("("==_)return a(e,1),l(e,t,[")"],"string");if("["==_)return a(e,1),l(e,t,["]"],"string");if("{"==_)return a(e,1),l(e,t,["}"],"string");if("<"==_)return a(e,1),l(e,t,[">"],"string");if(/[\^'"!~\/]/.test(_))return l(e,t,[e.eat(_)],"string")}if("m"==r&&(!(_=n(e,-2))||!/\w/.test(_))&&(_=e.eat(/[(\[{<\^'"!~\/]/))){if(/[\^'"!~\/]/.test(_))return l(e,t,[_],u,$);if("("==_)return l(e,t,[")"],u,$);if("["==_)return l(e,t,["]"],u,$);if("{"==_)return l(e,t,["}"],u,$);if("<"==_)return l(e,t,[">"],u,$)}if("s"==r&&!(_=/[\/>\]})\w]/.test(n(e,-2)))&&(_=e.eat(/[(\[{<\^'"!~\/]/)))return l(e,t,"["==_?["]","]"]:"{"==_?["}","}"]:"<"==_?[">",">"]:"("==_?[")",")"]:[_,_],u,$);if("y"==r&&!(_=/[\/>\]})\w]/.test(n(e,-2)))&&(_=e.eat(/[(\[{<\^'"!~\/]/)))return l(e,t,"["==_?["]","]"]:"{"==_?["}","}"]:"<"==_?[">",">"]:"("==_?[")",")"]:[_,_],u,$);if("t"==r&&!(_=/[\/>\]})\w]/.test(n(e,-2)))&&(_=e.eat("r"))&&(_=e.eat(/[(\[{<\^'"!~\/]/)))return l(e,t,"["==_?["]","]"]:"{"==_?["}","}"]:"<"==_?[">",">"]:"("==_?[")",")"]:[_,_],u,$);if("`"==r)return l(e,t,[r],"builtin");if("/"==r)return/~\s*$/.test(i(e))?l(e,t,[r],u,$):"operator";if("$"==r){if(f=e.pos,e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=f}if(/[$@%]/.test(r)){if(f=e.pos,e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test(n(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var _=e.current();if(o[_])return"builtin"}e.pos=f}if(/[$@%&]/.test(r)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}")))return _=e.current(),o[_]?"builtin":"variable";if("#"==r&&"$"!=n(e,-2))return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(r)){if(f=e.pos,e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),o[e.current()])return"operator";e.pos=f}if("_"==r&&1==e.pos){if("_END__"==s(e,6))return l(e,t,["\0"],"comment");if("_DATA__"==s(e,7))return l(e,t,["\0"],"builtin");if("_C__"==s(e,7))return l(e,t,["\0"],"string")}if(/\w/.test(r)){if(f=e.pos,"{"==n(e,-2)&&("}"==n(e,0)||e.eatWhile(/\w/)&&"}"==n(e,0)))return"string";e.pos=f}if(/[A-Z]/.test(r)){var c=n(e,-2);if(f=e.pos,e.eatWhile(/[A-Z_]/),!/[\da-z]/.test(n(e,0)))return(_=o[e.current()])?(_[1]&&(_=_[0]),":"!=c?1==_?"keyword":2==_?"def":3==_?"atom":4==_?"operator":5==_?"builtin":"meta":"meta"):"meta";e.pos=f}return/[a-zA-Z_]/.test(r)?(c=n(e,-2),e.eatWhile(/\w/),(_=o[e.current()])?(_[1]&&(_=_[0]),":"!=c?1==_?"keyword":2==_?"def":3==_?"atom":4==_?"operator":5==_?"builtin":"meta":"meta"):"meta"):null}const R={name:"perl",startState:function(){return{tokenize:f,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||f)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}}}}]); +//# sourceMappingURL=3191.thebe-core.min.js.map \ No newline at end of file diff --git a/3220.thebe-core.min.js b/3220.thebe-core.min.js new file mode 100644 index 00000000..5f978ac7 --- /dev/null +++ b/3220.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3220],{33220:(t,e,n)=>{function r(t){function e(t,e){t.cmdState.push(e)}function n(t){return t.cmdState.length>0?t.cmdState[t.cmdState.length-1]:null}function r(t,e,n){return function(){this.name=t,this.bracketNo=0,this.style=e,this.styles=n,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var a={};function i(t,e){t.f=e}function c(t,r){var c;if(t.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var f=t.current().slice(1);return e(r,c=new(c=a.hasOwnProperty(f)?a[f]:a.DEFAULT)),i(r,o),c.style}if(t.match(/^\\[$&%#{}_]/))return"tag";if(t.match(/^\\[,;!\/\\]/))return"tag";if(t.match("\\["))return i(r,(function(t,e){return u(t,e,"\\]")})),"keyword";if(t.match("\\("))return i(r,(function(t,e){return u(t,e,"\\)")})),"keyword";if(t.match("$$"))return i(r,(function(t,e){return u(t,e,"$$")})),"keyword";if(t.match("$"))return i(r,(function(t,e){return u(t,e,"$")})),"keyword";var m=t.next();return"%"==m?(t.skipToEnd(),"comment"):"}"==m||"]"==m?(c=n(r))?(c.closeBracket(m),i(r,o),"bracket"):"error":"{"==m||"["==m?(e(r,c=new(c=a.DEFAULT)),"bracket"):/\d/.test(m)?(t.eatWhile(/[\w.%]/),"atom"):(t.eatWhile(/[\w\-_]/),c=function(t){for(var e=t.cmdState,n=e.length-1;n>=0;n--){var r=e[n];if("DEFAULT"!=r.name)return r}return{styleIdentifier:function(){return null}}}(r),"begin"==c.name&&(c.argument=t.current()),c.styleIdentifier())}function u(t,e,n){if(t.eatSpace())return null;if(n&&t.match(n))return i(e,c),"keyword";if(t.match(/^\\[a-zA-Z@]+/))return"tag";if(t.match(/^[a-zA-Z]+/))return"variableName.special";if(t.match(/^\\[$&%#{}_]/))return"tag";if(t.match(/^\\[,;!\/]/))return"tag";if(t.match(/^[\^_&]/))return"tag";if(t.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(t.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var r=t.next();return"{"==r||"}"==r||"["==r||"]"==r||"("==r||")"==r?"bracket":"%"==r?(t.skipToEnd(),"comment"):"error"}function o(t,e){var r=t.peek();return"{"==r||"["==r?(n(e).openBracket(r),t.eat(r),i(e,c),"bracket"):/[ \t\r]/.test(r)?(t.eat(r),null):(i(e,c),function(t){var e=t.cmdState.pop();e&&e.closeBracket()}(e),c(t,e))}return a.importmodule=r("importmodule","tag",["string","builtin"]),a.documentclass=r("documentclass","tag",["","atom"]),a.usepackage=r("usepackage","tag",["atom"]),a.begin=r("begin","tag",["atom"]),a.end=r("end","tag",["atom"]),a.label=r("label","tag",["atom"]),a.ref=r("ref","tag",["atom"]),a.eqref=r("eqref","tag",["atom"]),a.cite=r("cite","tag",["atom"]),a.bibitem=r("bibitem","tag",["atom"]),a.Bibitem=r("Bibitem","tag",["atom"]),a.RBibitem=r("RBibitem","tag",["atom"]),a.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}},{name:"stex",startState:function(){return{cmdState:[],f:t?function(t,e){return u(t,e)}:c}},copyState:function(t){return{cmdState:t.cmdState.slice(),f:t.f}},token:function(t,e){return e.f(t,e)},blankLine:function(t){t.f=c,t.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}n.r(e),n.d(e,{stex:()=>a,stexMath:()=>i});const a=r(!1),i=r(!0)}}]); +//# sourceMappingURL=3220.thebe-core.min.js.map \ No newline at end of file diff --git a/3242.thebe-core.min.js b/3242.thebe-core.min.js new file mode 100644 index 00000000..7572f9a0 --- /dev/null +++ b/3242.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3242],{53242:(e,t,a)=>{a.r(t),a.d(t,{autoCloseTags:()=>be,html:()=>he,htmlCompletionSource:()=>ce,htmlCompletionSourceWith:()=>pe,htmlLanguage:()=>ge,htmlPlain:()=>Se});var l=a(73643),r=a(49913),n=a(79066);const s=20,o=22,O=23,i=24,u=26,c=27,p=28,d=31,m=34,f=37,S={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},g={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},h={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function x(e){return 9==e||10==e||13==e||32==e}let b=null,P=null,V=0;function w(e,t){let a=e.pos+t;if(V==a&&P==e)return b;let l=e.peek(t);for(;x(l);)l=e.peek(++t);let r="";for(;45==(n=l)||46==n||58==n||n>=65&&n<=90||95==n||n>=97&&n<=122||n>=161;)r+=String.fromCharCode(l),l=e.peek(++t);var n;return P=e,V=a,b=r?r.toLowerCase():l==v||l==T?void 0:null}const v=63,T=33;function X(e,t){this.name=e,this.parent=t}const y=[6,10,7,8,9],k=new l.Aj({start:null,shift:(e,t,a,l)=>y.indexOf(t)>-1?new X(w(l,1)||"",e):e,reduce:(e,t)=>t==s&&e?e.parent:e,reuse(e,t,a,l){let r=t.type.id;return 6==r||36==r?new X(w(l,1)||"",e):e},strict:!1}),_=new l.Lu(((e,t)=>{if(60!=e.next)return void(e.next<0&&t.context&&e.acceptToken(57));e.advance();let a=47==e.next;a&&e.advance();let l=w(e,0);if(void 0===l)return;if(!l)return e.acceptToken(a?14:6);let r=t.context?t.context.name:null;if(a){if(l==r)return e.acceptToken(11);if(r&&g[r])return e.acceptToken(57,-2);if(t.dialectEnabled(0))return e.acceptToken(12);for(let e=t.context;e;e=e.parent)if(e.name==l)return;e.acceptToken(13)}else{if("script"==l)return e.acceptToken(7);if("style"==l)return e.acceptToken(8);if("textarea"==l)return e.acceptToken(9);if(S.hasOwnProperty(l))return e.acceptToken(10);r&&h[r]&&h[r][l]?e.acceptToken(57,-1):e.acceptToken(6)}}),{contextual:!0}),$=new l.Lu((e=>{for(let t=0,a=0;;a++){if(e.next<0){a&&e.acceptToken(58);break}if(45==e.next)t++;else{if(62==e.next&&t>=2){a>=3&&e.acceptToken(58,-2);break}t=0}e.advance()}})),q=new l.Lu(((e,t)=>{if(47==e.next&&62==e.peek(1)){let a=t.dialectEnabled(1)||function(e){for(;e;e=e.parent)if("svg"==e.name||"math"==e.name)return!0;return!1}(t.context);e.acceptToken(a?5:4,2)}else 62==e.next&&e.acceptToken(4,1)}));function Q(e,t,a){let r=2+e.length;return new l.Lu((l=>{for(let n=0,s=0,o=0;;o++){if(l.next<0){o&&l.acceptToken(t);break}if(0==n&&60==l.next||1==n&&47==l.next||n>=2&&ns?l.acceptToken(t,-s):l.acceptToken(a,-(s-2));break}if((10==l.next||13==l.next)&&o){l.acceptToken(t,1);break}n=s=0}else s++;l.advance()}}))}const A=Q("script",54,1),C=Q("style",55,2),Y=Q("textarea",56,3),M=(0,r.pn)({"Text RawText":r._A.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":r._A.angleBracket,TagName:r._A.tagName,"MismatchedCloseTag/TagName":[r._A.tagName,r._A.invalid],AttributeName:r._A.attributeName,"AttributeValue UnquotedAttributeValue":r._A.attributeValue,Is:r._A.definitionOperator,"EntityReference CharacterReference":r._A.character,Comment:r._A.blockComment,ProcessingInst:r._A.processingInstruction,DoctypeDecl:r._A.documentMeta}),R=l.U1.deserialize({version:14,states:",xOVO!rOOO!WQ#tO'#CqO!]Q#tO'#CzO!bQ#tO'#C}O!gQ#tO'#DQO!lQ#tO'#DSO!qOaO'#CpO!|ObO'#CpO#XOdO'#CpO$eO!rO'#CpOOO`'#Cp'#CpO$lO$fO'#DTO$tQ#tO'#DVO$yQ#tO'#DWOOO`'#Dk'#DkOOO`'#DY'#DYQVO!rOOO%OQ&rO,59]O%ZQ&rO,59fO%fQ&rO,59iO%qQ&rO,59lO%|Q&rO,59nOOOa'#D^'#D^O&XOaO'#CxO&dOaO,59[OOOb'#D_'#D_O&lObO'#C{O&wObO,59[OOOd'#D`'#D`O'POdO'#DOO'[OdO,59[OOO`'#Da'#DaO'dO!rO,59[O'kQ#tO'#DROOO`,59[,59[OOOp'#Db'#DbO'pO$fO,59oOOO`,59o,59oO'xQ#|O,59qO'}Q#|O,59rOOO`-E7W-E7WO(SQ&rO'#CsOOQW'#DZ'#DZO(bQ&rO1G.wOOOa1G.w1G.wOOO`1G/Y1G/YO(mQ&rO1G/QOOOb1G/Q1G/QO(xQ&rO1G/TOOOd1G/T1G/TO)TQ&rO1G/WOOO`1G/W1G/WO)`Q&rO1G/YOOOa-E7[-E7[O)kQ#tO'#CyOOO`1G.v1G.vOOOb-E7]-E7]O)pQ#tO'#C|OOOd-E7^-E7^O)uQ#tO'#DPOOO`-E7_-E7_O)zQ#|O,59mOOOp-E7`-E7`OOO`1G/Z1G/ZOOO`1G/]1G/]OOO`1G/^1G/^O*PQ,UO,59_OOQW-E7X-E7XOOOa7+$c7+$cOOO`7+$t7+$tOOOb7+$l7+$lOOOd7+$o7+$oOOO`7+$r7+$rO*[Q#|O,59eO*aQ#|O,59hO*fQ#|O,59kOOO`1G/X1G/XO*kO7[O'#CvO*|OMhO'#CvOOQW1G.y1G.yOOO`1G/P1G/POOO`1G/S1G/SOOO`1G/V1G/VOOOO'#D['#D[O+_O7[O,59bOOQW,59b,59bOOOO'#D]'#D]O+pOMhO,59bOOOO-E7Y-E7YOOQW1G.|1G.|OOOO-E7Z-E7Z",stateData:",]~O!^OS~OUSOVPOWQOXROYTO[]O][O^^O`^Oa^Ob^Oc^Ox^O{_O!dZO~OfaO~OfbO~OfcO~OfdO~OfeO~O!WfOPlP!ZlP~O!XiOQoP!ZoP~O!YlORrP!ZrP~OUSOVPOWQOXROYTOZqO[]O][O^^O`^Oa^Ob^Oc^Ox^O!dZO~O!ZrO~P#dO![sO!euO~OfvO~OfwO~OS|OT}OhyO~OS!POT}OhyO~OS!ROT}OhyO~OS!TOT}OhyO~OS}OT}OhyO~O!WfOPlX!ZlX~OP!WO!Z!XO~O!XiOQoX!ZoX~OQ!ZO!Z!XO~O!YlORrX!ZrX~OR!]O!Z!XO~O!Z!XO~P#dOf!_O~O![sO!e!aO~OS!bO~OS!cO~Oi!dOSgXTgXhgX~OS!fOT!gOhyO~OS!hOT!gOhyO~OS!iOT!gOhyO~OS!jOT!gOhyO~OS!gOT!gOhyO~Of!kO~Of!lO~Of!mO~OS!nO~Ok!qO!`!oO!b!pO~OS!rO~OS!sO~OS!tO~Oa!uOb!uOc!uO!`!wO!a!uO~Oa!xOb!xOc!xO!b!wO!c!xO~Oa!uOb!uOc!uO!`!{O!a!uO~Oa!xOb!xOc!xO!b!{O!c!xO~OT~bac!dx{!d~",goto:"%p!`PPPPPPPPPPPPPPPPPPPP!a!gP!mPP!yP!|#P#S#Y#]#`#f#i#l#r#x!aP!a!aP$O$U$l$r$x%O%U%[%bPPPPPPPP%hX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:67,context:k,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,21,30,33,36,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,29,32,35,37,"OpenTag"],["group",-9,14,17,18,19,20,39,40,41,42,"Entity",16,"Entity TextContent",-3,28,31,34,"TextContent Entity"],["isolate",-11,21,29,30,32,33,35,36,37,38,41,42,"ltr",-3,26,27,39,""]],propSources:[M],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zbkWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOa!R!R7tP;=`<%l7S!Z8OYkWa!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{ihSkWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbhSkWa!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXhSa!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TakWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOb!R!RAwP;=`<%lAY!ZBRYkWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhhSkWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbhSkWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbhSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXhSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!bx`P!a`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYlhS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_khS`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_X`P!a`!cp!eQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZhSfQ`PkW!a`!cpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!a`!cpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!a`!cpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!a`!cp!dPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!a`!cpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!a`!cpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!a`!cpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!a`!cpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!a`!cpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!a`!cpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!a`!cpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!cpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO{PP!-nP;=`<%l!-Sq!-xS!cp{POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!a`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!a`{POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!a`!cp{POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!a`!cpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!a`!cpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!a`!cpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!a`!cpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!a`!cpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!a`!cpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!cpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOxPP!7TP;=`<%l!6Vq!7]V!cpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!cpxPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!a`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!a`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!a`xPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!a`!cpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!a`!cpxPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!{let n=e.type.id;if(n==p)return E(e,t,a);if(n==d)return E(e,t,l);if(n==m)return E(e,t,r);if(n==s&&o.length){let a,l=e.node,r=l.firstChild,n=r&&B(r,t);if(n)for(let e of o)if(e.tag==n&&(!e.attrs||e.attrs(a||(a=Z(r,t))))){let t=l.lastChild,a=t.type.id==f?t.from:l.to;if(a>r.to)return{parser:e.parser,overlay:[{from:r.to,to:a}]}}}if(i&&n==O){let a,l=e.node;if(a=l.firstChild){let e=i[t.read(a.from,a.to)];if(e)for(let a of e){if(a.tagName&&a.tagName!=B(l.parent,t))continue;let e=l.lastChild;if(e.type.id==u){let t=e.from+1,l=e.lastChild,r=e.to-(l&&l.isError?0:1);if(r>t)return{parser:a.parser,overlay:[{from:t,to:r}]}}else if(e.type.id==c)return{parser:a.parser,overlay:[{from:e.from,to:e.to}]}}}}return null}))}var W=a(14448),D=a(62e3),G=a(83173),j=a(14830),I=a(29587);const U=["_blank","_self","_top","_parent"],N=["ascii","utf-8","utf-16","latin1","latin1"],L=["get","post","put","delete"],F=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],H=["true","false"],K={},J={a:{attrs:{href:null,ping:null,type:null,media:null,target:U,hreflang:null}},abbr:K,address:K,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:K,aside:K,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:K,base:{attrs:{href:null,target:U}},bdi:K,bdo:K,blockquote:{attrs:{cite:null}},body:K,br:K,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:F,formmethod:L,formnovalidate:["novalidate"],formtarget:U,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:K,center:K,cite:K,code:K,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:K,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:K,div:K,dl:K,dt:K,em:K,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:K,figure:K,footer:K,form:{attrs:{action:null,name:null,"accept-charset":N,autocomplete:["on","off"],enctype:F,method:L,novalidate:["novalidate"],target:U}},h1:K,h2:K,h3:K,h4:K,h5:K,h6:K,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:K,hgroup:K,hr:K,html:{attrs:{manifest:null}},i:K,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:F,formmethod:L,formnovalidate:["novalidate"],formtarget:U,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:K,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:K,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:K,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:N,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:K,noscript:K,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:K,param:{attrs:{name:null,value:null}},pre:K,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:K,rt:K,ruby:K,samp:K,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:N}},section:K,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:K,source:{attrs:{src:null,type:null,media:null}},span:K,strong:K,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:K,summary:K,sup:K,table:K,tbody:K,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:K,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:K,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:K,time:{attrs:{datetime:null}},title:K,tr:K,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:K,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:K},ee={accesskey:null,class:null,contenteditable:H,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:H,autocorrect:H,autocapitalize:H,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":H,"aria-autocomplete":["inline","list","both","none"],"aria-busy":H,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":H,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":H,"aria-hidden":H,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":H,"aria-multiselectable":H,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":H,"aria-relevant":null,"aria-required":H,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},te="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((e=>"on"+e));for(let e of te)ee[e]=null;class ae{constructor(e,t){this.tags=Object.assign(Object.assign({},J),e),this.globalAttrs=Object.assign(Object.assign({},ee),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function le(e,t,a=e.length){if(!t)return"";let l=t.firstChild,r=l&&l.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,a)):""}function re(e,t=!1){for(;e;e=e.parent)if("Element"==e.name){if(!t)return e;t=!1}return null}function ne(e,t,a){let l=a.tags[le(e,re(t))];return(null==l?void 0:l.children)||a.allTags}function se(e,t){let a=[];for(let l=re(t);l&&!l.type.isTop;l=re(l.parent)){let r=le(e,l);if(r&&"CloseTag"==l.lastChild.name)break;r&&a.indexOf(r)<0&&("EndTag"==t.name||t.from>=l.firstChild.to)&&a.push(r)}return a}ae.default=new ae;const oe=/^[:\-\.\w\u00b7-\uffff]*$/;function Oe(e,t,a,l,r){let n=/\s*>/.test(e.sliceDoc(r,r+5))?"":">",s=re(a,!0);return{from:l,to:r,options:ne(e.doc,s,t).map((e=>({label:e,type:"type"}))).concat(se(e.doc,a).map(((e,t)=>({label:"/"+e,apply:"/"+e+n,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function ie(e,t,a,l){let r=/\s*>/.test(e.sliceDoc(l,l+5))?"":">";return{from:a,to:l,options:se(e.doc,t).map(((e,t)=>({label:e,apply:e+r,type:"type",boost:99-t}))),validFor:oe}}function ue(e,t){let{state:a,pos:l}=t,r=(0,I.mv)(a).resolveInner(l,-1),n=r.resolve(l);for(let e,t=l;n==r&&(e=r.childBefore(t));){let a=e.lastChild;if(!a||!a.type.isError||a.from({label:e,type:"property"}))),validFor:oe}}(a,e,r,"AttributeName"==r.name?r.from:l,l):"Is"==r.name||"AttributeValue"==r.name||"UnquotedAttributeValue"==r.name?function(e,t,a,l,r){var n;let s,o=null===(n=a.parent)||void 0===n?void 0:n.getChild("AttributeName"),O=[];if(o){let n=e.sliceDoc(o.from,o.to),i=t.globalAttrs[n];if(!i){let l=re(a),r=l?t.tags[le(e.doc,l)]:null;i=(null==r?void 0:r.attrs)&&r.attrs[n]}if(i){let t=e.sliceDoc(l,r).toLowerCase(),a='"',n='"';/^['"]/.test(t)?(s='"'==t[0]?/^[^"]*$/:/^[^']*$/,a="",n=e.sliceDoc(r,r+1)==t[0]?"":t[0],t=t.slice(1),l++):s=/^[^\s<>='"]*$/;for(let e of i)O.push({label:e,apply:a+e+n,type:"constant"})}}return{from:l,to:r,options:O,validFor:s}}(a,e,r,"Is"==r.name?l:r.from,l):!t.explicit||"Element"!=n.name&&"Text"!=n.name&&"Document"!=n.name?null:function(e,t,a,l){let r=[],n=0;for(let l of ne(e.doc,a,t))r.push({label:"<"+l,type:"type"});for(let t of se(e.doc,a))r.push({label:"",type:"type",boost:99-n++});return{from:l,to:l,options:r,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(a,e,r,l)}function ce(e){return ue(ae.default,e)}function pe(e){let{extraTags:t,extraGlobalAttributes:a}=e,l=a||t?new ae(t,a):ae.default;return e=>ue(l,e)}const de=D.javascriptLanguage.parser.configure({top:"SingleExpression"}),me=[{tag:"script",attrs:e=>"text/typescript"==e.type||"ts"==e.lang,parser:D.typescriptLanguage.parser},{tag:"script",attrs:e=>"text/babel"==e.type||"text/jsx"==e.type,parser:D.jsxLanguage.parser},{tag:"script",attrs:e=>"text/typescript-jsx"==e.type,parser:D.tsxLanguage.parser},{tag:"script",attrs:e=>/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type),parser:de},{tag:"script",attrs:e=>!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type),parser:D.javascriptLanguage.parser},{tag:"style",attrs:e=>(!e.lang||"css"==e.lang)&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type)),parser:W.cssLanguage.parser}],fe=[{name:"style",parser:W.cssLanguage.parser.configure({top:"Styles"})}].concat(te.map((e=>({name:e,parser:D.javascriptLanguage.parser})))),Se=I.bj.define({name:"html",parser:R.configure({props:[I.Oh.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag":e=>e.column(e.node.from)+e.unit,Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),ge=Se.configure({wrap:z(me,fe)});function he(e={}){let t,a="";!1===e.matchClosingTags&&(a="noMatch"),!0===e.selfClosingTags&&(a=(a?a+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(t=z((e.nestedLanguages||[]).concat(me),(e.nestedAttributes||[]).concat(fe)));let l=t?Se.configure({wrap:t,dialect:a}):a?ge.configure({dialect:a}):ge;return new I.Yy(l,[ge.data.of({autocomplete:pe(e)}),!1!==e.autoCloseTags?be:[],(0,D.javascript)().support,(0,W.css)().support])}const xe=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),be=G.Lz.inputHandler.of(((e,t,a,l,r)=>{if(e.composing||e.state.readOnly||t!=a||">"!=l&&"/"!=l||!ge.isActiveAt(e.state,t,-1))return!1;let n=r(),{state:s}=n,o=s.changeByRange((e=>{var t,a,r;let n,o=s.doc.sliceString(e.from-1,e.to)==l,{head:O}=e,i=(0,I.mv)(s).resolveInner(O,-1);if(o&&">"==l&&"EndTag"==i.name){let l=i.parent;if("CloseTag"!=(null===(a=null===(t=l.parent)||void 0===t?void 0:t.lastChild)||void 0===a?void 0:a.name)&&(n=le(s.doc,l.parent,O))&&!xe.has(n))return{range:e,changes:{from:O,to:O+(">"===s.doc.sliceString(O,O+1)?1:0),insert:``}}}else if(o&&"/"==l&&"IncompleteCloseTag"==i.name){let e=i.parent;if(i.from==O-2&&"CloseTag"!=(null===(r=e.lastChild)||void 0===r?void 0:r.name)&&(n=le(s.doc,e,O))&&!xe.has(n)){let e=O+(">"===s.doc.sliceString(O,O+1)?1:0),t=`${n}>`;return{range:j.OF.cursor(O+t.length,-1),changes:{from:O,to:e,insert:t}}}}return{range:e}}));return!o.changes.empty&&(e.dispatch([n,s.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}))}}]); +//# sourceMappingURL=3242.thebe-core.min.js.map \ No newline at end of file diff --git a/3426.thebe-core.min.js b/3426.thebe-core.min.js new file mode 100644 index 00000000..9366740c --- /dev/null +++ b/3426.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3426],{53426:(e,t,O)=>{O.r(t),O.d(t,{autoCloseTags:()=>A,completeFromSchema:()=>w,xml:()=>Q,xmlLanguage:()=>x});var n=O(73643),r=O(49913);function a(e){return 45==e||46==e||58==e||e>=65&&e<=90||95==e||e>=97&&e<=122||e>=161}let l=null,o=null,s=0;function i(e,t){let O=e.pos+t;if(o==e&&s==O)return l;for(;9==(n=e.peek(t))||10==n||13==n||32==n;)t++;var n;let r="";for(;;){let O=e.peek(t);if(!a(O))break;r+=String.fromCharCode(O),t++}return o=e,s=O,l=r||null}function y(e,t){this.name=e,this.parent=t,this.hash=t?t.hash:0;for(let t=0;t1==t?new y(i(n,1)||"",e):e,reduce:(e,t)=>11==t&&e?e.parent:e,reuse(e,t,O,n){let r=t.type.id;return 1==r||13==r?new y(i(n,1)||"",e):e},hash:e=>e?e.hash:0,strict:!1}),$=new n.Lu(((e,t)=>{if(60==e.next)if(e.advance(),47==e.next){e.advance();let O=i(e,0);if(!O)return e.acceptToken(5);if(t.context&&O==t.context.name)return e.acceptToken(2);for(let n=t.context;n;n=n.parent)if(n.name==O)return e.acceptToken(3,-2);e.acceptToken(4)}else if(33!=e.next&&63!=e.next)return e.acceptToken(1)}),{contextual:!0});function p(e,t){return new n.Lu((O=>{let n=0,r=t.charCodeAt(0);e:for(;!(O.next<0);O.advance(),n++)if(O.next==r){for(let e=1;e"),m=p(37,"]]>"),S=(0,r.pn)({Text:r._A.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":r._A.angleBracket,TagName:r._A.tagName,"MismatchedCloseTag/TagName":[r._A.tagName,r._A.invalid],AttributeName:r._A.attributeName,AttributeValue:r._A.attributeValue,Is:r._A.definitionOperator,"EntityReference CharacterReference":r._A.character,Comment:r._A.blockComment,ProcessingInst:r._A.processingInstruction,DoctypeDecl:r._A.documentMeta,Cdata:r._A.special(r._A.string)}),f=n.U1.deserialize({version:14,states:",SOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DS'#DSOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C{'#C{O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C|'#C|O$dOrO,59^OOOP,59^,59^OOOS'#C}'#C}O$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6y-E6yOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6z-E6zOOOP1G.x1G.xOOOS-E6{-E6{OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'jO!bO,59eOOOO-E6w-E6wO'xOpO1G.uO'xOpO1G.uOOOP1G.u1G.uO(QOpO7+$fOOOP7+$f7+$fO(YO!bO<d!d;'S%y;'S;=`&_<%lO%yX>iV{WOr%ysv%yw!}%y!}#O?O#O;'S%y;'S;=`&_<%lO%yX?VT{WxPOr%ysv%yw;'S%y;'S;=`&_<%lO%yX?kV{WOr%ysv%yw#W%y#W#X@Q#X;'S%y;'S;=`&_<%lO%yX@VV{WOr%ysv%yw#T%y#T#U@l#U;'S%y;'S;=`&_<%lO%yX@qV{WOr%ysv%yw#h%y#h#iAW#i;'S%y;'S;=`&_<%lO%yXA]V{WOr%ysv%yw#T%y#T#U>d#U;'S%y;'S;=`&_<%lO%yXAwV{WOr%ysv%yw#c%y#c#dB^#d;'S%y;'S;=`&_<%lO%yXBcV{WOr%ysv%yw#V%y#V#WBx#W;'S%y;'S;=`&_<%lO%yXB}V{WOr%ysv%yw#h%y#h#iCd#i;'S%y;'S;=`&_<%lO%yXCiV{WOr%ysv%yw#m%y#m#nDO#n;'S%y;'S;=`&_<%lO%yXDTV{WOr%ysv%yw#d%y#d#eDj#e;'S%y;'S;=`&_<%lO%yXDoV{WOr%ysv%yw#X%y#X#Y9i#Y;'S%y;'S;=`&_<%lO%yXE]T!PP{WOr%ysv%yw;'S%y;'S;=`&_<%lO%yZEuWaQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n_FhW[UVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZGXYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aGw!a;'S$n;'S;=`&e<%lO$nZHQW!OQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$nZHqYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_#P$n#P#QIa#Q;'S$n;'S;=`&e<%lO$nZIhYVP{WOr$nrs%_sv$nw!^$n!^!_%y!_!`$n!`!aJW!a;'S$n;'S;=`&e<%lO$nZJaWwQVP{WOr$nrs%_sv$nw!^$n!^!_%y!_;'S$n;'S;=`&e<%lO$n",tokenizers:[$,g,u,m,0,1,2,3],topRules:{Document:[0,6]},tokenPrec:0});var d=O(29587),h=O(14830),_=O(83173);function T(e,t){let O=t&&t.getChild("TagName");return O?e.sliceString(O.from,O.to):""}function V(e,t){let O=t&&t.firstChild;return O&&"OpenTag"==O.name?T(e,O):""}function v(e){for(let t=e&&e.parent;t;t=t.parent)if("Element"==t.name)return t;return null}class P{constructor(e,t,O){this.attrs=t,this.attrValues=O,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map((e=>({label:e,type:"text"}))):[]}}const b=/^[:\-\.\w\u00b7-\uffff]*$/;function W(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function C(e){return"string"==typeof e?{label:`"${e}"`,type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:`"${e.label}"`})}function w(e,t){let O=[],n=[],r=Object.create(null);for(let e of t){let t=W(e);O.push(t),e.global&&n.push(t),e.values&&(r[e.name]=e.values.map(C))}let a=[],l=[],o=Object.create(null);for(let t of e){let e=n,s=r;t.attributes&&(e=e.concat(t.attributes.map((e=>"string"==typeof e?O.find((t=>t.label==e))||{label:e,type:"property"}:(e.values&&(s==r&&(s=Object.create(s)),s[e.name]=e.values.map(C)),W(e))))));let i=new P(t,e,s);o[i.name]=i,a.push(i),t.top&&l.push(i)}l.length||(l=a);for(let t=0;t{var t;let{doc:O}=e.state,s=function(e,t){var O;let n=(0,d.mv)(e).resolveInner(t,-1),r=null;for(let e=n;!r&&e.parent;e=e.parent)"OpenTag"!=e.name&&"CloseTag"!=e.name&&"SelfClosingTag"!=e.name&&"MismatchedCloseTag"!=e.name||(r=e);if(r&&(r.to>t||r.lastChild.type.isError)){let e=r.parent;if("TagName"==n.name)return"CloseTag"==r.name||"MismatchedCloseTag"==r.name?{type:"closeTag",from:n.from,context:e}:{type:"openTag",from:n.from,context:v(e)};if("AttributeName"==n.name)return{type:"attrName",from:n.from,context:r};if("AttributeValue"==n.name)return{type:"attrValue",from:n.from,context:r};let O=n==r||"Attribute"==n.name?n.childBefore(t):n;return"StartTag"==(null==O?void 0:O.name)?{type:"openTag",from:t,context:v(e)}:"StartCloseTag"==(null==O?void 0:O.name)&&O.to<=t?{type:"closeTag",from:t,context:e}:"Is"==(null==O?void 0:O.name)?{type:"attrValue",from:t,context:r}:O?{type:"attrName",from:t,context:r}:null}if("StartCloseTag"==n.name)return{type:"closeTag",from:t,context:n.parent};for(;n.parent&&n.to==t&&!(null===(O=n.lastChild)||void 0===O?void 0:O.type.isError);)n=n.parent;return"Element"==n.name||"Text"==n.name||"Document"==n.name?{type:"tag",from:t,context:"Element"==n.name?n:v(n)}:null}(e.state,e.pos);if(!s||"tag"==s.type&&!e.explicit)return null;let{type:i,from:y,context:c}=s;if("openTag"==i){let e=l,t=V(O,c);if(t){let O=o[t];e=(null==O?void 0:O.children)||a}return{from:y,options:e.map((e=>e.completion)),validFor:b}}if("closeTag"==i){let n=V(O,c);return n?{from:y,to:e.pos+(">"==O.sliceString(e.pos,e.pos+1)?1:0),options:[(null===(t=o[n])||void 0===t?void 0:t.closeNameCompletion)||{label:n+">",type:"type"}],validFor:b}:null}if("attrName"==i){let e=o[T(O,c)];return{from:y,options:(null==e?void 0:e.attrs)||n,validFor:b}}if("attrValue"==i){let t=function(e,t,O){let n=t&&t.getChildren("Attribute").find((e=>e.from<=O&&e.to>=O)),r=n&&n.getChild("AttributeName");return r?e.sliceString(r.from,r.to):""}(O,c,y);if(!t)return null;let n=o[T(O,c)],a=((null==n?void 0:n.attrValues)||r)[t];return a&&a.length?{from:y,to:e.pos+('"'==O.sliceString(e.pos,e.pos+1)?1:0),options:a,validFor:/^"[^"]*"?$/}:null}if("tag"==i){let t=V(O,c),n=o[t],r=[],s=c&&c.lastChild;!t||s&&"CloseTag"==s.name&&T(O,s)==t||r.push(n?n.closeCompletion:{label:"",type:"type",boost:2});let i=r.concat(((null==n?void 0:n.children)||(c?a:l)).map((e=>e.openCompletion)));if(c&&(null==n?void 0:n.text.length)){let t=c.firstChild;t.to>e.pos-20&&!/\S/.test(e.state.sliceDoc(t.to,e.pos))&&(i=i.concat(n.text))}return{from:y,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}return null}}const x=d.bj.define({name:"xml",parser:f.configure({props:[d.Oh.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag":e=>e.column(e.node.from)+e.unit}),d.b_.add({Element(e){let t=e.firstChild,O=e.lastChild;return t&&"OpenTag"==t.name?{from:t.to,to:"CloseTag"==O.name?O.from:e.to}:null}}),d.Q_.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/$/}});function Q(e={}){let t=[x.data.of({autocomplete:w(e.elements||[],e.attributes||[])})];return!1!==e.autoCloseTags&&t.push(A),new d.Yy(x,t)}function X(e,t,O=e.length){if(!t)return"";let n=t.firstChild,r=n&&n.getChild("TagName");return r?e.sliceString(r.from,Math.min(r.to,O)):""}const A=_.Lz.inputHandler.of(((e,t,O,n,r)=>{if(e.composing||e.state.readOnly||t!=O||">"!=n&&"/"!=n||!x.isActiveAt(e.state,t,-1))return!1;let a=r(),{state:l}=a,o=l.changeByRange((e=>{var t,O,r;let a,{head:o}=e,s=l.doc.sliceString(o-1,o)==n,i=(0,d.mv)(l).resolveInner(o,-1);if(s&&">"==n&&"EndTag"==i.name){let n=i.parent;if("CloseTag"!=(null===(O=null===(t=n.parent)||void 0===t?void 0:t.lastChild)||void 0===O?void 0:O.name)&&(a=X(l.doc,n.parent,o)))return{range:e,changes:{from:o,to:o+(">"===l.doc.sliceString(o,o+1)?1:0),insert:``}}}else if(s&&"/"==n&&"StartCloseTag"==i.name){let e=i.parent;if(i.from==o-2&&"CloseTag"!=(null===(r=e.lastChild)||void 0===r?void 0:r.name)&&(a=X(l.doc,e,o))){let e=o+(">"===l.doc.sliceString(o,o+1)?1:0),t=`${a}>`;return{range:h.OF.cursor(o+t.length,-1),changes:{from:o,to:e,insert:t}}}}return{range:e}}));return!o.changes.empty&&(e.dispatch([a,l.update(o,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}))}}]); +//# sourceMappingURL=3426.thebe-core.min.js.map \ No newline at end of file diff --git a/3543.thebe-core.min.js b/3543.thebe-core.min.js new file mode 100644 index 00000000..36914eb6 --- /dev/null +++ b/3543.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3543],{93543:(O,$,Q)=>{Q.r($),Q.d($,{php:()=>U,phpLanguage:()=>u});var i=Q(73643),y=Q(49913);const a={abstract:4,and:5,array:6,as:7,true:8,false:8,break:9,case:10,catch:11,clone:12,const:13,continue:14,declare:16,default:15,do:17,echo:18,else:19,elseif:20,enddeclare:21,endfor:22,endforeach:23,endif:24,endswitch:25,endwhile:26,enum:27,extends:28,final:29,finally:30,fn:31,for:32,foreach:33,from:34,function:35,global:36,goto:37,if:38,implements:39,include:40,include_once:41,instanceof:42,insteadof:43,interface:44,list:45,match:46,namespace:47,new:48,null:49,or:50,print:51,require:52,require_once:53,return:54,switch:55,throw:56,trait:57,try:58,unset:59,use:60,var:61,public:62,private:62,protected:62,while:63,xor:64,yield:65,__proto__:null};function z(O){let $=a[O.toLowerCase()];return null==$?-1:$}function S(O){return 9==O||10==O||13==O||32==O}function P(O){return O>=97&&O<=122||O>=65&&O<=90}function W(O){return 95==O||O>=128||P(O)}function T(O){return O>=48&&O<=55||O>=97&&O<=102||O>=65&&O<=70}const e={int:!0,integer:!0,bool:!0,boolean:!0,float:!0,double:!0,real:!0,string:!0,array:!0,object:!0,unset:!0,__proto__:null},s=new i.Lu((O=>{if(40==O.next){O.advance();let $=0;for(;S(O.peek($));)$++;let Q,i="";for(;P(Q=O.peek($));)i+=String.fromCharCode(Q),$++;for(;S(O.peek($));)$++;41==O.peek($)&&e[i.toLowerCase()]&&O.acceptToken(1)}else if(60==O.next&&60==O.peek(1)&&60==O.peek(2)){for(let $=0;$<3;$++)O.advance();for(;32==O.next||9==O.next;)O.advance();let $=39==O.next;if($&&O.advance(),!W(O.next))return;let Q=String.fromCharCode(O.next);for(;O.advance(),W(O.next)||O.next>=48&&O.next<=55;)Q+=String.fromCharCode(O.next);if($){if(39!=O.next)return;O.advance()}if(10!=O.next&&13!=O.next)return;for(;;){let $=10==O.next||13==O.next;if(O.advance(),O.next<0)return;if($){for(;32==O.next||9==O.next;)O.advance();let $=!0;for(let i=0;i{O.next<0&&O.acceptToken(266)})),n=new i.Lu(((O,$)=>{63==O.next&&$.canShift(265)&&62==O.peek(1)&&O.acceptToken(265)}));function d(O){let $=O.peek(1);if(110==$||114==$||116==$||118==$||101==$||102==$||92==$||36==$||34==$||123==$)return 2;if($>=48&&$<=55){let $,Q=2;for(;Q<5&&($=O.peek(Q))>=48&&$<=55;)Q++;return Q}if(120==$&&T(O.peek(2)))return T(O.peek(3))?4:3;if(117==$&&123==O.peek(2))for(let $=3;;$++){let Q=O.peek($);if(125==Q)return 2==$?0:$+1;if(!T(Q))break}return 0}const q=new i.Lu(((O,$)=>{let Q=!1;for(;!(34==O.next||O.next<0||36==O.next&&(W(O.peek(1))||123==O.peek(1))||123==O.next&&36==O.peek(1));Q=!0){if(92==O.next){let $=d(O);if($){if(Q)break;return O.acceptToken(3,$)}}else if(!Q&&(91==O.next||45==O.next&&62==O.peek(1)&&W(O.peek(2))||63==O.next&&45==O.peek(1)&&62==O.peek(2)&&W(O.peek(3)))&&$.canShift(264))break;O.advance()}Q&&O.acceptToken(263)})),o=(0,y.pn)({"Visibility abstract final static":y._A.modifier,"for foreach while do if else elseif switch try catch finally return throw break continue default case":y._A.controlKeyword,"endif endfor endforeach endswitch endwhile declare enddeclare goto match":y._A.controlKeyword,"and or xor yield unset clone instanceof insteadof":y._A.operatorKeyword,"function fn class trait implements extends const enum global interface use var":y._A.definitionKeyword,"include include_once require require_once namespace":y._A.moduleKeyword,"new from echo print array list as":y._A.keyword,null:y._A.null,Boolean:y._A.bool,VariableName:y._A.variableName,"NamespaceName/...":y._A.namespace,"NamedType/...":y._A.typeName,Name:y._A.name,"CallExpression/Name":y._A.function(y._A.variableName),"LabelStatement/Name":y._A.labelName,"MemberExpression/Name":y._A.propertyName,"MemberExpression/VariableName":y._A.special(y._A.propertyName),"ScopedExpression/ClassMemberName/Name":y._A.propertyName,"ScopedExpression/ClassMemberName/VariableName":y._A.special(y._A.propertyName),"CallExpression/MemberExpression/Name":y._A.function(y._A.propertyName),"CallExpression/ScopedExpression/ClassMemberName/Name":y._A.function(y._A.propertyName),"MethodDeclaration/Name":y._A.function(y._A.definition(y._A.variableName)),"FunctionDefinition/Name":y._A.function(y._A.definition(y._A.variableName)),"ClassDeclaration/Name":y._A.definition(y._A.className),UpdateOp:y._A.updateOperator,ArithOp:y._A.arithmeticOperator,LogicOp:y._A.logicOperator,BitOp:y._A.bitwiseOperator,CompareOp:y._A.compareOperator,ControlOp:y._A.controlOperator,AssignOp:y._A.definitionOperator,"$ ConcatOp":y._A.operator,LineComment:y._A.lineComment,BlockComment:y._A.blockComment,Integer:y._A.integer,Float:y._A.float,String:y._A.string,ShellExpression:y._A.special(y._A.string),"=> ->":y._A.punctuation,"( )":y._A.paren,"#[ [ ]":y._A.squareBracket,"${ { }":y._A.brace,"-> ?->":y._A.derefOperator,", ; :: : \\":y._A.separator,"PhpOpen PhpClose":y._A.processingInstruction}),t={__proto__:null,static:311,STATIC:311,class:333,CLASS:333},l=i.U1.deserialize({version:14,states:"$GSQ`OWOOQhQaOOP%oO`OOOOO#t'#H_'#H_O%tO#|O'#DtOOO#u'#Dw'#DwQ&SOWO'#DwO&XO$VOOOOQ#u'#Dx'#DxO&lQaO'#D|O(mQdO'#E}O(tQdO'#EQO*kQaO'#EWO,zQ`O'#ETO-PQ`O'#E^O/nQaO'#E^O/uQ`O'#EfO/zQ`O'#EoO*kQaO'#EoO0VQ`O'#HhO0[Q`O'#E{O0[Q`O'#E{OOQS'#Ic'#IcO0aQ`O'#EvOOQS'#IZ'#IZO2oQdO'#IWO6tQeO'#FUO*kQaO'#FeO*kQaO'#FfO*kQaO'#FgO*kQaO'#FhO*kQaO'#FhO*kQaO'#FkOOQO'#Id'#IdO7RQ`O'#FqOOQO'#Hi'#HiO7ZQ`O'#HOO7uQ`O'#FlO8QQ`O'#H]O8]Q`O'#FvO8eQaO'#FwO*kQaO'#GVO*kQaO'#GYO8}OrO'#G]OOQS'#Iq'#IqOOQS'#Ip'#IpOOQS'#IW'#IWO,zQ`O'#GdO,zQ`O'#GfO,zQ`O'#GkOhQaO'#GmO9UQ`O'#GnO9ZQ`O'#GqO9`Q`O'#GtO9eQeO'#GuO9eQeO'#GvO9eQeO'#GwO9oQ`O'#GxO9tQ`O'#GzO9yQaO'#G{OS,5>SOJ[QdO,5;gOOQO-E;f-E;fOL^Q`O,5;gOLcQpO,5;bO0aQ`O'#EyOLkQtO'#E}OOQS'#Ez'#EzOOQS'#Ib'#IbOM`QaO,5:wO*kQaO,5;nOOQS,5;p,5;pO*kQaO,5;pOMgQdO,5UQaO,5=hO!-eQ`O'#F}O!-jQdO'#IlO!&WQdO,5=iOOQ#u,5=j,5=jO!-uQ`O,5=lO!-xQ`O,5=mO!-}Q`O,5=nO!.YQdO,5=qOOQ#u,5=q,5=qO!.eQ`O,5=rO!.eQ`O,5=rO!.mQdO'#IwO!.{Q`O'#HXO!&WQdO,5=rO!/ZQ`O,5=rO!/fQdO'#IYO!&WQdO,5=vOOQ#u-E;_-E;_O!1RQ`O,5=kOOO#u,5:^,5:^O!1^O#|O,5:^OOO#u-E;^-E;^OOOO,5>p,5>pOOQ#y1G0S1G0SO!1fQ`O1G0XO*kQaO1G0XO!2xQ`O1G0pOOQS1G0p1G0pO!4[Q`O1G0pOOQS'#I_'#I_O*kQaO'#I_OOQS1G0q1G0qO!4cQ`O'#IaO!7lQ`O'#E}O!7yQaO'#EuOOQO'#Ia'#IaO!8TQ`O'#I`O!8]Q`O,5;_OOQS'#FQ'#FQOOQS1G1U1G1UO!8bQdO1G1]O!:dQdO1G1]O!wO#(fQaO'#HdO#(vQ`O,5>vOOQS1G0d1G0dO#)OQ`O1G0dO#)TQ`O'#I^O#*mQ`O'#I^O#*uQ`O,5;ROIbQaO,5;ROOQS1G0u1G0uPOQO'#E}'#E}O#+fQdO1G1RO0aQ`O'#HgO#-hQtO,5;cO#.YQaO1G0|OOQS,5;e,5;eO#0iQtO,5;gO#0vQdO1G0cO*kQaO1G0cO#2cQdO1G1YO#4OQdO1G1[OOQO,5<^,5<^O#4`Q`O'#HjO#4nQ`O,5?ROOQO1G1w1G1wO#4vQ`O,5?ZO!&WQdO1G3TO<_Q`O1G3TOOQ#u1G3U1G3UO#4{Q`O1G3YO!1RQ`O1G3VO#5WQ`O1G3VO#5]QpO'#FoO#5kQ`O'#FoO#5{Q`O'#FoO#6WQ`O'#FoO#6`Q`O'#FsO#6eQ`O'#FtOOQO'#If'#IfO#6lQ`O'#IeO#6tQ`O,5tOOQ#u1G3b1G3bOOQ#u1G3V1G3VO!-xQ`O1G3VO!1UQ`O1G3VOOO#u1G/x1G/xO*kQaO7+%sO#MuQdO7+%sOOQS7+&[7+&[O$ bQ`O,5>yO>UQaO,5;`O$ iQ`O,5;aO$#OQaO'#HfO$#YQ`O,5>zOOQS1G0y1G0yO$#bQ`O'#EYO$#gQ`O'#IXO$#oQ`O,5:sOOQS1G0e1G0eO$#tQ`O1G0eO$#yQ`O1G0iO9yQaO1G0iOOQO,5>O,5>OOOQO-E;b-E;bOOQS7+&O7+&OO>UQaO,5;SO$%`QaO'#HeO$%jQ`O,5>xOOQS1G0m1G0mO$%rQ`O1G0mOOQS,5>R,5>ROOQS-E;e-E;eO$%wQdO7+&hO$'yQtO1G1RO$(WQdO7+%}OOQS1G0i1G0iOOQO,5>U,5>UOOQO-E;h-E;hOOQ#u7+(o7+(oO!&WQdO7+(oOOQ#u7+(t7+(tO#KmQ`O7+(tO0aQ`O7+(tOOQ#u7+(q7+(qO!-xQ`O7+(qO!1UQ`O7+(qO!1RQ`O7+(qO$)sQ`O,5UQaO,5],5>]OOQS-E;o-E;oO$.iQdO7+'hO$.yQpO7+'hO$/RQdO'#IiOOQO,5dOOQ#u,5>d,5>dOOQ#u-E;v-E;vO$;lQaO7+(lO$cOOQS-E;u-E;uO!&WQdO7+(nO$=mQdO1G2TOOQS,5>[,5>[OOQS-E;n-E;nOOQ#u7+(r7+(rO$?nQ`O'#GQO$?uQ`O'#GQO$@ZQ`O'#HUOOQO'#Hy'#HyO$@`Q`O,5=oOOQ#u,5=o,5=oO$@gQpO7+(tOOQ#u7+(x7+(xO!&WQdO7+(xO$@rQdO,5>fOOQS-E;x-E;xO$AQQdO1G4}O$A]Q`O,5=tO$AbQ`O,5=tO$AmQ`O'#H{O$BRQ`O,5?dOOQS1G3_1G3_O#KrQ`O7+(xO$BZQdO,5=|OOQS-E;`-E;`O$CvQdO<Q,5>QOOQO-E;d-E;dO$8YQaO,5:tO$FxQaO'#HcO$GVQ`O,5>sOOQS1G0_1G0_OOQS7+&P7+&PO$G_Q`O7+&TO$HtQ`O1G0nO$JZQ`O,5>POOQO,5>P,5>POOQO-E;c-E;cOOQS7+&X7+&XOOQS7+&T7+&TOOQ#u<UQaO1G1uO$KsQ`O1G1uO$LOQ`O1G1yOOQO1G1y1G1yO$LTQ`O1G1uO$L]Q`O1G1uO$MrQ`O1G1zO>UQaO1G1zOOQO,5>V,5>VOOQO-E;i-E;iOOQS<`OOQ#u-E;r-E;rOhQaO<aOOQO-E;s-E;sO!&WQdO<g,5>gOOQO-E;y-E;yO!&WQdO<UQaO,5;TOOQ#uANAzANAzO#KmQ`OANAzOOQ#uANAwANAwO!-xQ`OANAwO%)vQ`O7+'aO>UQaO7+'aOOQO7+'e7+'eO%+]Q`O7+'aO%+hQ`O7+'eO>UQaO7+'fO%+mQ`O7+'fO%-SQ`O'#HlO%-bQ`O,5?SO%-bQ`O,5?SOOQO1G1{1G1{O$+qQpOAN@dOOQSAN@dAN@dO0aQ`OAN@dO%-jQtOANCgO%-xQ`OAN@dO*kQaOAN@nO%.QQdOAN@nO%.bQpOAN@nOOQS,5>X,5>XOOQS-E;k-E;kOOQO1G2U1G2UO!&WQdO1G2UO$/dQpO1G2UO<_Q`O1G2SO!.YQdO1G2WO!&WQdO1G2SOOQO1G2W1G2WOOQO1G2S1G2SO%.jQaO'#GSOOQO1G2X1G2XOOQSAN@oAN@oOOOQ<UQaO<W,5>WO%6wQ`O,5>WOOQO-E;j-E;jO%6|Q`O1G4nOOQSG26OG26OO$+qQpOG26OO0aQ`OG26OO%7UQdOG26YO*kQaOG26YOOQO7+'p7+'pO!&WQdO7+'pO!&WQdO7+'nOOQO7+'r7+'rOOQO7+'n7+'nO%7fQ`OLD+tO%8uQ`O'#E}O%9PQ`O'#IZO!&WQdO'#HrO%:|QaO,5^,5>^OOQP-E;p-E;pOOQO1G2Y1G2YOOQ#uLD,bLD,bOOQTG27RG27RO!&WQdOLD,xO!&WQdO<wO&EPQdO1G0cO#.YQaO1G0cO&F{QdO1G1YO&HwQdO1G1[O#.YQaO1G1|O#.YQaO7+%sO&JsQdO7+%sO&LoQdO7+%}O#.YQaO7+'hO&NkQdO7+'hO'!gQdO<lQdO,5>wO(@nQdO1G0cO'.QQaO1G0cO(BpQdO1G1YO(DrQdO1G1[O'.QQaO1G1|O'.QQaO7+%sO(FtQdO7+%sO(HvQdO7+%}O'.QQaO7+'hO(JxQdO7+'hO(LzQdO<wO*1sQaO'#HdO*2TQ`O,5>vO*2]QdO1G0cO9yQaO1G0cO*4XQdO1G1YO*6TQdO1G1[O9yQaO1G1|O>UQaO'#HwO*8PQ`O,5=[O*8XQaO'#HbO*8cQ`O,5>tO9yQaO7+%sO*8kQdO7+%sO*:gQ`O1G0iO>UQaO1G0iO*;|QdO7+%}O9yQaO7+'hO*=xQdO7+'hO*?tQ`O,5>cO*AZQ`O,5=|O*BpQdO<UQaO'#FeO>UQaO'#FfO>UQaO'#FgO>UQaO'#FhO>UQaO'#FhO>UQaO'#FkO+'XQaO'#FwO>UQaO'#GVO>UQaO'#GYO+'`QaO,5:mO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO>UQaO,5;qO+'gQ`O'#I]O$8YQaO'#EaO+)PQaOG26YO$8YQaO'#I]O+*{Q`O'#I[O++TQaO,5:wO>UQaO,5;nO>UQaO,5;pO++[Q`O,5UQaO1G0XO+9hQ`O1G1]O+;TQ`O1G1]O+]Q`O1G1]O+?xQ`O1G1]O+AeQ`O1G1]O+CQQ`O1G1]O+DmQ`O1G1]O+FYQ`O1G1]O+GuQ`O1G1]O+IbQ`O1G1]O+J}Q`O1G1]O+LjQ`O1G1]O+NVQ`O1G1]O, rQ`O1G1]O,#_Q`O1G0cO>UQaO1G0cO,$zQ`O1G1YO,&gQ`O1G1[O,(SQ`O1G1|O>UQaO1G1|O>UQaO7+%sO,([Q`O7+%sO,)wQ`O7+%}O>UQaO7+'hO,+dQ`O7+'hO,+lQ`O7+'hO,-XQpO7+'hO,-aQ`O<UQaO<UQaOAN@nO,0qQ`OAN@nO,2^QpOAN@nO,2fQ`OG26YO>UQaOG26YO,4RQ`OLD+tO,5nQaO,5:}O>UQaO1G0iO,5uQ`O'#I]O$8YQaO'#FeO$8YQaO'#FfO$8YQaO'#FgO$8YQaO'#FhO$8YQaO'#FhO+)PQaO'#FhO$8YQaO'#FkO,6SQaO'#FwO,6ZQaO'#FwO$8YQaO'#GVO+)PQaO'#GVO$8YQaO'#GYO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO$8YQaO,5;qO+)PQaO,5;qO,8YQ`O'#FlO>UQaO'#EaO>UQaO'#I]O,8bQaO,5:wO,8iQaO,5:wO$8YQaO,5;nO+)PQaO,5;nO$8YQaO,5;pO,:hQ`O,5wO-IcQ`O1G0cO-KOQ`O1G0cO$8YQaO1G0cO+)PQaO1G0cO-L_Q`O1G1YO-MzQ`O1G1YO. ZQ`O1G1[O$8YQaO1G1|O$8YQaO7+%sO+)PQaO7+%sO.!vQ`O7+%sO.$cQ`O7+%sO.%rQ`O7+%}O.'_Q`O7+%}O$8YQaO7+'hO.(nQ`O7+'hO.*ZQ`O<fQ`O,5>wO.@RQ`O1G1|O!%WQ`O1G1|O0aQ`O1G1|O0aQ`O7+'hO.@ZQ`O7+'hO.@cQpO7+'hO.@kQpO<UO#X&PO~P>UO!o&SO!s&RO#b&RO~OPgOQ|OU^OW}O[8lOo=yOs#hOx8jOy8jO}`O!O]O!Q8pO!R}O!T8oO!U8kO!V8kO!Y8rO!c8iO!s&VO!y[O#U&WO#W_O#bhO#daO#ebO#peO$T8nO$]8mO$^8nO$aqO$z8qO${!OO$}}O%O}O%V|O'g{O~O!x'SP~PAOO!s&[O#b&[O~OT#TOz#RO!S#UO!b#VO!o!{O!v!yO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO~O!x&nO~PCqO!x'VX!}'VX#O'VX#X'VX!n'VXV'VX!q'VX#u'VX#w'VXw'VX~P&sO!y$hO#S&oO~Oo$mOs$lO~O!o&pO~O!}&sO#S;dO#U;cO!x'OP~P9yOT6iOz6gO!S6jO!b6kO!o!{O!v8sO!y!}O#S#QO#W!zO#`!|O#a!|O#s#PO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'PX#X'PX~O#O&tO~PGSO!}&wO#X'OX~O#X&yO~O!}'OO!x'QP~P9yO!n'PO~PCqO!m#oa!o#oa#S#oa#p#qX&s#oa!x#oa#O#oaw#oa~OT#oaz#oa!S#oa!b#oa!v#oa!y#oa#W#oa#`#oa#a#oa#s#oa#z#oa#{#oa#|#oa#}#oa$O#oa$Q#oa$R#oa$S#oa$T#oa$U#oa$V#oa$W#oa$z#oa!}#oa#X#oa!n#oaV#oa!q#oa#u#oa#w#oa~PIpO!s'RO~O!x'UO#l'SO~O!x'VX#l'VX#p#qX#S'VX#U'VX#b'VX!o'VX#O'VXw'VX!m'VX&s'VX~O#S'YO~P*kO!m$Xa&s$Xa!x$Xa!n$Xa~PCqO!m$Ya&s$Ya!x$Ya!n$Ya~PCqO!m$Za&s$Za!x$Za!n$Za~PCqO!m$[a&s$[a!x$[a!n$[a~PCqO!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO$z#dOT$[a!S$[a!b$[a!m$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a&s$[a!x$[a!n$[a~Oz#RO~PNyO!m$_a&s$_a!x$_a!n$_a~PCqO!y!}O!}$fX#X$fX~O!}'^O#X'ZX~O#X'`O~O!s$kO#S'aO~O]'cO~O!s'eO~O!s'fO~O$l'gO~O!`'mO#S'kO#U'lO#b'jO$drO!x'XP~P0aO!^'sO!oXO!q'rO~O!s'uO!y$hO~O!y$hO#S'wO~O!y$hO#S'yO~O#u'zO!m$sX!}$sX&s$sX~O!}'{O!m'bX&s'bX~O!m#cO&s#cO~O!q(PO#O(OO~O!m$ka&s$ka!x$ka!n$ka~PCqOl(ROw(SO!o(TO!y!}O~O!o!{O!y!}O#W!zO#`!|O#a!|O#s#PO~OT$yaz$ya!S$ya!b$ya!m$ya!v$ya#S$ya#z$ya#{$ya#|$ya#}$ya$O$ya$Q$ya$R$ya$S$ya$T$ya$U$ya$V$ya$W$ya$z$ya&s$ya!x$ya!}$ya#O$ya#X$ya!n$ya!q$yaV$ya#u$ya#w$ya~P!'WO!m$|a&s$|a!x$|a!n$|a~PCqO#W([O#`(YO#a(YO&r(ZOR&gX!o&gX#b&gX#e&gX&q&gX'f&gX~O'f(_O~P8lO!q(`O~PhO!o(cO!q(dO~O!q(`O&s(gO~PhO!a(kO~O!m(lO~P9yOZ(wOn(xO~O!s(zO~OT6iOz6gO!S6jO!b6kO!v8sO!}({O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'jX&s'jX~P!'WO#u)PO~O!})QO!m'`X&s'`X~Ol(RO!o(TO~Ow(SO!o)WO!q)ZO~O!m#cO!oXO&s#cO~O!o%pO!s#yO~OV)aO!})_O!m'kX&s'kX~O])cOs)cO!s#gO#peO~O!o%pO!s#gO#p)hO~OT6iOz6gO!S6jO!b6kO!v8sO!})iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&|X&s&|X#O&|X~P!'WOl(ROw(SO!o(TO~O!i)oO&t)oO~OT8vOz8tO!S8wO!b8xO!q)pO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#X)rO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!n)rO~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'TX!}'TX~P!'WOT'VXz'VX!S'VX!b'VX!o'VX!v'VX!y'VX#S'VX#W'VX#`'VX#a'VX#p#qX#s'VX#z'VX#{'VX#|'VX#}'VX$O'VX$Q'VX$R'VX$S'VX$T'VX$U'VX$V'VX$W'VX$z'VX~O!q)tO!x'VX!}'VX~P!5xO!x#iX!}#iX~P>UO!})vO!x'SX~O!x)xO~O$z#dOT#yiz#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi$W#yi&s#yi!x#yi!}#yi#O#yi#X#yi!n#yi!q#yiV#yi#u#yi#w#yi~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi&s#yi!x#yi!n#yi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!b#VO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!m#yi&s#yi!x#yi!n#yi~P!'WOT#TOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dO!S#yi!b#yi!m#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi~P!'WOz#RO#S#QO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi~P!'WOz#RO$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi~P!'WOz#RO$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$S#_O$T#`O$V#bO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi~P!'WOz#RO$W#bO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi~P!'WO_)yO~P9yO!x)|O~O#S*PO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Ta#X#Ta#O#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}'Pa#X'Pa#O'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WO#S#oO#U#nO!}&WX#X&WX~P9yO!}&wO#X'Oa~O#X*SO~OT6iOz6gO!S6jO!b6kO!v8sO!}*UO#O*TO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'QX~P!'WO!}*UO!x'QX~O!x*WO~O!m#oi!o#oi#S#oi#p#qX&s#oi!x#oi#O#oiw#oi~OT#oiz#oi!S#oi!b#oi!v#oi!y#oi#W#oi#`#oi#a#oi#s#oi#z#oi#{#oi#|#oi#}#oi$O#oi$Q#oi$R#oi$S#oi$T#oi$U#oi$V#oi$W#oi$z#oi!}#oi#X#oi!n#oiV#oi!q#oi#u#oi#w#oi~P#*zO#l'SO!x#ka#S#ka#U#ka#b#ka!o#ka#O#kaw#ka!m#ka&s#ka~OPgOQ|OU^OW}O[4OOo5xOs#hOx3zOy3zO}`O!O]O!Q2^O!R}O!T4UO!U3|O!V3|O!Y2`O!c3xO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4SO$]4QO$^4SO$aqO$z2_O${!OO$}}O%O}O%V|O'g{O~O#l#oa#U#oa#b#oa~PIpOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pi!S#Pi!b#Pi!m#Pi&s#Pi!x#Pi!n#Pi~P!'WOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#vi!S#vi!b#vi!m#vi&s#vi!x#vi!n#vi~P!'WO!m#xi&s#xi!x#xi!n#xi~PCqO!s#gO#peO!}&^X#X&^X~O!}'^O#X'Za~O!s'uO~Ow(SO!o)WO!q*fO~O!s*jO~O#S*lO#U*mO#b*kO#l'SO~O#S*lO#U*mO#b*kO$drO~P0aO#u*oO!x$cX!}$cX~O#U*mO#b*kO~O#b*pO~O#b*rO~P0aO!}*sO!x'XX~O!x*uO~O!y*wO~O!^*{O!oXO!q*zO~O!q*}O!o'ci!m'ci&s'ci~O!q+QO#O+PO~O#b$nO!m&eX!}&eX&s&eX~O!}'{O!m'ba&s'ba~OT$kiz$ki!S$ki!b$ki!m$ki!o$ki!v$ki!y$ki#S$ki#W$ki#`$ki#a$ki#s$ki#u#fa#w#fa#z$ki#{$ki#|$ki#}$ki$O$ki$Q$ki$R$ki$S$ki$T$ki$U$ki$V$ki$W$ki$z$ki&s$ki!x$ki!}$ki#O$ki#X$ki!n$ki!q$kiV$ki~OS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n+hO#b$nO$aqO$drO~P0aO!s+lO~O#W+nO#`+mO#a+mO~O!s+pO#b+pO$}+pO%T+oO~O!n+qO~PCqOc%XXd%XXh%XXj%XXf%XXg%XXe%XX~PhOc+uOd+sOP%WiQ%WiS%WiU%WiW%WiX%Wi[%Wi]%Wi^%Wi`%Wia%Wib%Wik%Wim%Wio%Wip%Wiq%Wis%Wit%Wiu%Wiv%Wix%Wiy%Wi|%Wi}%Wi!O%Wi!P%Wi!Q%Wi!R%Wi!T%Wi!U%Wi!V%Wi!W%Wi!X%Wi!Y%Wi!Z%Wi![%Wi!]%Wi!^%Wi!`%Wi!a%Wi!c%Wi!m%Wi!o%Wi!s%Wi!y%Wi#W%Wi#b%Wi#d%Wi#e%Wi#p%Wi$T%Wi$]%Wi$^%Wi$a%Wi$d%Wi$l%Wi$z%Wi${%Wi$}%Wi%O%Wi%V%Wi&p%Wi'g%Wi&t%Wi!n%Wih%Wij%Wif%Wig%WiY%Wi_%Wii%Wie%Wi~Oc+yOd+vOh+xO~OY+zO_+{O!n,OO~OY+zO_+{Oi%^X~Oi,QO~Oj,RO~O!m,TO~P9yO!m,VO~Of,WO~OT6iOV,XOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOg,YO~O!y,ZO~OZ(wOn(xOP%liQ%liS%liU%liW%liX%li[%li]%li^%li`%lia%lib%lik%lim%lio%lip%liq%lis%lit%liu%liv%lix%liy%li|%li}%li!O%li!P%li!Q%li!R%li!T%li!U%li!V%li!W%li!X%li!Y%li!Z%li![%li!]%li!^%li!`%li!a%li!c%li!m%li!o%li!s%li!y%li#W%li#b%li#d%li#e%li#p%li$T%li$]%li$^%li$a%li$d%li$l%li$z%li${%li$}%li%O%li%V%li&p%li'g%li&t%li!n%lic%lid%lih%lij%lif%lig%liY%li_%lii%lie%li~O#u,_O~O!}({O!m%da&s%da~O!x,bO~O!s%dO!m&dX!}&dX&s&dX~O!})QO!m'`a&s'`a~OS+^OY,iOm+^Os$aO!^+dO!_+^O!`+^O$aqO$drO~O!n,lO~P#JwO!o)WO~O!o%pO!s'RO~O!s#gO#peO!m&nX!}&nX&s&nX~O!})_O!m'ka&s'ka~O!s,rO~OV,sO!n%|X!}%|X~O!},uO!n'lX~O!n,wO~O!m&UX!}&UX&s&UX#O&UX~P9yO!})iO!m&|a&s&|a#O&|a~Oz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq&s!uq!x!uq!n!uq~P!'WO!n,|O~PCqOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#ia!}#ia~P!'WO!x&YX!}&YX~PAOO!})vO!x'Sa~O#O-QO~O!}-RO!n&{X~O!n-TO~O!x-UO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vi#X#Vi~P!'WO!x&XX!}&XX~P9yO!}*UO!x'Qa~O!x-[O~OT#jqz#jq!S#jq!b#jq!m#jq!v#jq#S#jq#u#jq#w#jq#z#jq#{#jq#|#jq#}#jq$O#jq$Q#jq$R#jq$S#jq$T#jq$U#jq$V#jq$W#jq$z#jq&s#jq!x#jq!}#jq#O#jq#X#jq!n#jq!q#jqV#jq~P!'WO#l#oi#U#oi#b#oi~P#*zOz#RO!v!yO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT#Pq!S#Pq!b#Pq!m#Pq&s#Pq!x#Pq!n#Pq~P!'WO#u-dO!x$ca!}$ca~O#U-fO#b-eO~O#b-gO~O#S-hO#U-fO#b-eO#l'SO~O#b-jO#l'SO~O#u-kO!x$ha!}$ha~O!`'mO#S'kO#U'lO#b'jO$drO!x&_X!}&_X~P0aO!}*sO!x'Xa~O!oXO#l'SO~O#S-pO#b-oO!x'[P~O!oXO!q-rO~O!q-uO!o'cq!m'cq&s'cq~O!^-wO!oXO!q-rO~O!q-{O#O-zO~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$si!}$si&s$si~P!'WO!m$jq&s$jq!x$jq!n$jq~PCqO#O-zO#l'SO~O!}-|Ow']X!o']X!m']X&s']X~O#b$nO#l'SO~OS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO$drO~P0aOS+^O].ROm+^Os$aO!_+^O!`+^O#b$nO$aqO~P0aOS+^O]+aOm+^Os$aO!^+dO!_+^O!`+^O!n.ZO#b$nO$aqO$drO~P0aO!s.^O~O!s._O#b._O$}._O%T+oO~O$}.`O~O#X.aO~Oc%Xad%Xah%Xaj%Xaf%Xag%Xae%Xa~PhOc.dOd+sOP%WqQ%WqS%WqU%WqW%WqX%Wq[%Wq]%Wq^%Wq`%Wqa%Wqb%Wqk%Wqm%Wqo%Wqp%Wqq%Wqs%Wqt%Wqu%Wqv%Wqx%Wqy%Wq|%Wq}%Wq!O%Wq!P%Wq!Q%Wq!R%Wq!T%Wq!U%Wq!V%Wq!W%Wq!X%Wq!Y%Wq!Z%Wq![%Wq!]%Wq!^%Wq!`%Wq!a%Wq!c%Wq!m%Wq!o%Wq!s%Wq!y%Wq#W%Wq#b%Wq#d%Wq#e%Wq#p%Wq$T%Wq$]%Wq$^%Wq$a%Wq$d%Wq$l%Wq$z%Wq${%Wq$}%Wq%O%Wq%V%Wq&p%Wq'g%Wq&t%Wq!n%Wqh%Wqj%Wqf%Wqg%WqY%Wq_%Wqi%Wqe%Wq~Oc.iOd+vOh.hO~O!q(`O~OP6]OQ|OU^OW}O[:fOo>ROs#hOx:dOy:dO}`O!O]O!Q:kO!R}O!T:jO!U:eO!V:eO!Y:oO!c8gO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:hO$]:gO$^:hO$aqO$z:mO${!OO$}}O%O}O%V|O'g{O~O!m.lO!q.lO~OY+zO_+{O!n.nO~OY+zO_+{Oi%^a~O!x.rO~P>UO!m.tO~O!m.tO~P9yOQ|OW}O!R}O$}}O%O}O%V|O'g{O~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&ka!}&ka&s&ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m$qi!}$qi&s$qi~P!'WOS+^Om+^Os$aO!_+^O!`+^O$aqO$drO~OY/PO~P$?VOS+^Om+^Os$aO!_+^O!`+^O$aqO~O!s/QO~O!n/SO~P#JwOw(SO!o)WO#l'SO~OV/VO!m&na!}&na&s&na~O!})_O!m'ki&s'ki~O!s/XO~OV/YO!n%|a!}%|a~O]/[Os/[O!s#gO#peO!n&oX!}&oX~O!},uO!n'la~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m&Ua!}&Ua&s&Ua#O&Ua~P!'WOz#RO#S#QO#z#SO#{#WO#|#XO#}#YO$O#ZO$Q#]O$R#^O$S#_O$T#`O$U#aO$V#bO$W#bO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy&s!uy!x!uy!n!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#hi!}#hi~P!'WO_)yO!n&VX!}&VX~P9yO!}-RO!n&{a~OT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#Vq#X#Vq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#[i!}#[i~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O/cO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x&Xa!}&Xa~P!'WO#u/iO!x$ci!}$ci~O#b/jO~O#U/lO#b/kO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$ci!}$ci~P!'WO#u/mO!x$hi!}$hi~O!}/oO!x'[X~O#b/qO~O!x/rO~O!oXO!q/uO~O#l'SO!o'cy!m'cy&s'cy~O!m$jy&s$jy!x$jy!n$jy~PCqO#O/xO#l'SO~O!s#gO#peOw&aX!o&aX!}&aX!m&aX&s&aX~O!}-|Ow']a!o']a!m']a&s']a~OU$PO]0QO!R$PO!s$OO!v#}O#b$nO#p2XO~P$?uO!m#cO!o0VO&s#cO~O#X0YO~Oh0_O~OT:tOz:pO!S:vO!b:xO!m0`O!q0`O!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO~P!'WOY%]a_%]a!n%]ai%]a~PhO!x0bO~O!x0bO~P>UO!m0dO~OT6iOz6gO!S6jO!b6kO!v8sO!x0fO#O0eO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WO!x0fO~O!x0gO#b0hO#l'SO~O!x0iO~O!s0jO~O!m#cO#u0lO&s#cO~O!s0mO~O!})_O!m'kq&s'kq~O!s0nO~OV0oO!n%}X!}%}X~OT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!n!|i!}!|i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cq!}$cq~P!'WO#u0vO!x$cq!}$cq~O#b0wO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hq!}$hq~P!'WO#S0zO#b0yO!x&`X!}&`X~O!}/oO!x'[a~O#l'SO!o'c!R!m'c!R&s'c!R~O!oXO!q1PO~O!m$j!R&s$j!R!x$j!R!n$j!R~PCqO#O1RO#l'SO~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1^O!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOh1_O~OY%[i_%[i!n%[ii%[i~PhOY%]i_%]i!n%]ii%]i~PhO!x1bO~O!x1bO~P>UO!x1eO~O!m#cO#u1iO&s#cO~O$}1jO%V1jO~O!s1kO~OV1lO!n%}a!}%}a~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#]i!}#]i~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$cy!}$cy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$hy!}$hy~P!'WO#b1nO~O!}/oO!x'[i~O!m$j!Z&s$j!Z!x$j!Z!n$j!Z~PCqOT:uOz:qO!S:wO!b:yO!v=nO#S#QO#z:sO#{:{O#|:}O#};PO$O;RO$Q;VO$R;XO$S;ZO$T;]O$U;_O$V;aO$W;aO$z#dO~P!'WOV1uO{1tO~P!5xOV1uO{1tOT&}Xz&}X!S&}X!b&}X!o&}X!v&}X!y&}X#S&}X#W&}X#`&}X#a&}X#s&}X#u&}X#w&}X#z&}X#{&}X#|&}X#}&}X$O&}X$Q&}X$R&}X$S&}X$T&}X$U&}X$V&}X$W&}X$z&}X~OP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!n1xO!s1YO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOY%[q_%[q!n%[qi%[q~PhO!x1zO~O!x%gi~PCqOe1{O~O$}1|O%V1|O~O!s2OO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x$c!R!}$c!R~P!'WO!m$j!c&s$j!c!x$j!c!n$j!c~PCqO!s2QO~O!`2SO!s2RO~O!s2VO!m$xi&s$xi~O!s'WO~O!s*]O~OT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$ka#u$ka#w$ka&s$ka!x$ka!n$ka!q$ka#X$ka!}$ka~P!'WO#S2]O~P*kO$l$tO~P#.YOT6iOz6gO!S6jO!b6kO!v8sO#O2[O#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX&s'PX!x'PX!n'PX~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O3uO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'PX#X'PX#u'PX#w'PX!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~P!'WO#S3dO~P#.YOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Xa#u$Xa#w$Xa&s$Xa!x$Xa!n$Xa!q$Xa#X$Xa!}$Xa~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Ya#u$Ya#w$Ya&s$Ya!x$Ya!n$Ya!q$Ya#X$Ya!}$Ya~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$Za#u$Za#w$Za&s$Za!x$Za!n$Za!q$Za#X$Za!}$Za~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$[a#u$[a#w$[a&s$[a!x$[a!n$[a!q$[a#X$[a!}$[a~P!'WOz2aO#u$[a#w$[a!q$[a#X$[a!}$[a~PNyOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$_a#u$_a#w$_a&s$_a!x$_a!n$_a!q$_a#X$_a!}$_a~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$|a#u$|a#w$|a&s$|a!x$|a!n$|a!q$|a#X$|a!}$|a~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!S#yi!b#yi!m#yi#u#yi#w#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO#S#QO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$S2mO$T2nO$V2pO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOz2aO$W2pO$z#dOT#yi!S#yi!b#yi!m#yi!v#yi#S#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi&s#yi!x#yi!n#yi!q#yi#X#yi!}#yi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#Ta#u#Ta#w#Ta&s#Ta!x#Ta!n#Ta!q#Ta#X#Ta!}#Ta~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m'Pa#u'Pa#w'Pa&s'Pa!x'Pa!n'Pa!q'Pa#X'Pa!}'Pa~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pi!S#Pi!b#Pi!m#Pi#u#Pi#w#Pi&s#Pi!x#Pi!n#Pi!q#Pi#X#Pi!}#Pi~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#vi!S#vi!b#vi!m#vi#u#vi#w#vi&s#vi!x#vi!n#vi!q#vi#X#vi!}#vi~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m#xi#u#xi#w#xi&s#xi!x#xi!n#xi!q#xi#X#xi!}#xi~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uq!S!uq!b!uq!m!uq!v!uq#u!uq#w!uq&s!uq!x!uq!n!uq!q!uq#X!uq!}!uq~P!'WOz2aO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT#Pq!S#Pq!b#Pq!m#Pq#u#Pq#w#Pq&s#Pq!x#Pq!n#Pq!q#Pq#X#Pq!}#Pq~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jq#u$jq#w$jq&s$jq!x$jq!n$jq!q$jq#X$jq!}$jq~P!'WOz2aO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dOT!uy!S!uy!b!uy!m!uy!v!uy#u!uy#w!uy&s!uy!x!uy!n!uy!q!uy#X!uy!}!uy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$jy#u$jy#w$jy&s$jy!x$jy!n$jy!q$jy#X$jy!}$jy~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!R#u$j!R#w$j!R&s$j!R!x$j!R!n$j!R!q$j!R#X$j!R!}$j!R~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!Z#u$j!Z#w$j!Z&s$j!Z!x$j!Z!n$j!Z!q$j!Z#X$j!Z!}$j!Z~P!'WOT2cOz2aO!S2dO!b2eO!v4WO#S#QO#z2bO#{2fO#|2gO#}2hO$O2iO$Q2kO$R2lO$S2mO$T2nO$U2oO$V2pO$W2pO$z#dO!m$j!c#u$j!c#w$j!c&s$j!c!x$j!c!n$j!c!q$j!c#X$j!c!}$j!c~P!'WOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S3vO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lO#u2uO#w2vO!q&zX#X&zX!}&zX~P0rOP6]OU^O[4POo8^Or2wOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S2tO#U2sO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!v#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX&s#xX!x#xX!n#xX!q#xX#X#xX!}#xX~P$;lOP6]OU^O[4POo8^Or4xOs#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S4uO#U4tO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OOT#xXz#xX!S#xX!b#xX!o#xX!v#xX!}#xX#O#xX#X#xX#`#xX#a#xX#s#xX#u#xX#w#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!m#xX&s#xX!x#xX!n#xXV#xX!q#xX~P$;lO!q3PO~P>UO!q5}O#O3gO~OT8vOz8tO!S8wO!b8xO!q3hO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q6OO#O3kO~O!q6PO#O3oO~O#O3oO#l'SO~O#O3pO#l'SO~O#O3sO#l'SO~OP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$l$tO$z4bO${!OO~P$;lOP6]OU^O[4POo8^Os#hOx3{Oy3{O}`O!O]O!Q4aO!T4VO!U3}O!V3}O!Y4cO!c3yO!s#gO!y[O#S5eO#W_O#bhO#daO#ebO#peO$T4TO$]4RO$^4TO$aqO$z4bO${!OO~P$;lOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Xa#O$Xa#X$Xa#u$Xa#w$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Ya#O$Ya#X$Ya#u$Ya#w$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$Za#O$Za#X$Za#u$Za#w$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$[a#O$[a#X$[a#u$[a#w$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz4dO!}$[a#O$[a#X$[a#u$[a#w$[aV$[a!q$[a~PNyOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$_a#O$_a#X$_a#u$_a#w$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$|a#O$|a#X$|a#u$|a#w$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi#u#yi#w#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO#S#QO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$S4pO$T4qO$V4sO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz4dO$W4sO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#u#yi#w#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#Ta#O#Ta#X#Ta#u#Ta#w#Ta!m#Ta&s#Ta!x#Ta!n#TaV#Ta!q#Ta~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}'Pa#O'Pa#X'Pa#u'Pa#w'Pa!m'Pa&s'Pa!x'Pa!n'PaV'Pa!q'Pa~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi#u#Pi#w#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi#u#vi#w#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}#xi#O#xi#X#xi#u#xi#w#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq#u!uq#w!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOz4dO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq#u#Pq#w#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jq#O$jq#X$jq#u$jq#w$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOz4dO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy#u!uy#w!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$jy#O$jy#X$jy#u$jy#w$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!R#O$j!R#X$j!R#u$j!R#w$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!Z#O$j!Z#X$j!Z#u$j!Z#w$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$j!c#O$j!c#X$j!c#u$j!c#w$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S5wO~P#.YO!y$hO#S5{O~O!x4ZO#l'SO~O!y$hO#S5|O~OT4fOz4dO!S4gO!b4hO!v6TO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!}$ka#O$ka#X$ka#u$ka#w$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT4fOz4dO!S4gO!b4hO!v6TO#O5vO#S#QO#z4eO#{4iO#|4jO#}4kO$O4lO$Q4nO$R4oO$S4pO$T4qO$U4rO$V4sO$W4sO$z#dO!m'PX#u'PX#w'PX&s'PX!x'PX!n'PX!q'PX#X'PX!}'PX~P!'WO#u4vO#w4wO!}&zX#O&zX#X&zXV&zX!q&zX~P0rO!q5QO~P>UO!q8bO#O5hO~OT8vOz8tO!S8wO!b8xO!q5iO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WO!q8cO#O5lO~O!q8dO#O5pO~O#O5pO#l'SO~O#O5qO#l'SO~O#O5tO#l'SO~O$l$tO~P9yOo5zOs$lO~O#S7oO~P9yOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Xa#O$Xa#X$Xa!m$Xa&s$Xa!x$Xa!n$XaV$Xa!q$Xa~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Ya#O$Ya#X$Ya!m$Ya&s$Ya!x$Ya!n$YaV$Ya!q$Ya~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$Za#O$Za#X$Za!m$Za&s$Za!x$Za!n$ZaV$Za!q$Za~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$[a#O$[a#X$[a!m$[a&s$[a!x$[a!n$[aV$[a!q$[a~P!'WOz6gO!}$[a#O$[a#X$[aV$[a!q$[a~PNyOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$_a#O$_a#X$_a!m$_a&s$_a!x$_a!n$_aV$_a!q$_a~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$ka#O$ka#X$ka!m$ka&s$ka!x$ka!n$kaV$ka!q$ka~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$|a#O$|a#X$|a!m$|a&s$|a!x$|a!n$|aV$|a!q$|a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7sO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x'jX~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO!}7uO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&|X~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOT6iOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!S#yi!b#yi!}#yi#O#yi#X#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO#S#QO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$S6sO$T6tO$V6vO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WOz6gO$W6vO$z#dOT#yi!S#yi!b#yi!v#yi!}#yi#O#yi#S#yi#X#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi!m#yi&s#yi!x#yi!n#yiV#yi!q#yi~P!'WO#S7zO~P>UO!m#Ta&s#Ta!x#Ta!n#Ta~PCqO!m'Pa&s'Pa!x'Pa!n'Pa~PCqO#S;dO#U;cO!x&WX!}&WX~P9yO!}7lO!x'Oa~Oz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pi!S#Pi!b#Pi!}#Pi#O#Pi#X#Pi!m#Pi&s#Pi!x#Pi!n#PiV#Pi!q#Pi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#vi!S#vi!b#vi!}#vi#O#vi#X#vi!m#vi&s#vi!x#vi!n#viV#vi!q#vi~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}#xi#O#xi#X#xi!m#xi&s#xi!x#xi!n#xiV#xi!q#xi~P!'WO!}7sO!x%da~O!x&UX!}&UX~P>UO!}7uO!x&|a~Oz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uq!S!uq!b!uq!v!uq!}!uq#O!uq#X!uq!m!uq&s!uq!x!uq!n!uqV!uq!q!uq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vi!}#Vi~P!'WOz6gO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT#Pq!S#Pq!b#Pq!}#Pq#O#Pq#X#Pq!m#Pq&s#Pq!x#Pq!n#PqV#Pq!q#Pq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jq#O$jq#X$jq!m$jq&s$jq!x$jq!n$jqV$jq!q$jq~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&ka!}&ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x&Ua!}&Ua~P!'WOz6gO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dOT!uy!S!uy!b!uy!v!uy!}!uy#O!uy#X!uy!m!uy&s!uy!x!uy!n!uyV!uy!q!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!x#Vq!}#Vq~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$jy#O$jy#X$jy!m$jy&s$jy!x$jy!n$jyV$jy!q$jy~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!R#O$j!R#X$j!R!m$j!R&s$j!R!x$j!R!n$j!RV$j!R!q$j!R~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!Z#O$j!Z#X$j!Z!m$j!Z&s$j!Z!x$j!Z!n$j!ZV$j!Z!q$j!Z~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!}$j!c#O$j!c#X$j!c!m$j!c&s$j!c!x$j!c!n$j!cV$j!c!q$j!c~P!'WO#S8[O~P9yO#O8ZO!m'PX&s'PX!x'PX!n'PXV'PX!q'PX~PGSO!y$hO#S8`O~O!y$hO#S8aO~O#u6zO#w6{O!}&zX#O&zX#X&zXV&zX!q&zX~P0rOr6|O#S#oO#U#nO!}#xX#O#xX#X#xXV#xX!q#xX~P2yOr;iO#S9XO#U9VOT#xXz#xX!S#xX!b#xX!m#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX!n#xX!}#xX~P9yOr9WO#S9WO#U9WOT#xXz#xX!S#xX!b#xX!o#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX~P9yOr9]O#S;dO#U;cOT#xXz#xX!S#xX!b#xX!o#xX!q#xX!v#xX#`#xX#a#xX#s#xX#z#xX#{#xX#|#xX#}#xX$O#xX$Q#xX$R#xX$S#xX$U#xX$V#xX$W#xX#X#xX!x#xX!}#xX~P9yO$l$tO~P>UO!q7XO~P>UOT6iOz6gO!S6jO!b6kO!v8sO#O7iO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!x'PX!}'PX~P!'WOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lO!}7lO!x'OX~O#S9yO~P>UOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Xa#X$Xa!x$Xa!}$Xa~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Ya#X$Ya!x$Ya!}$Ya~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$Za#X$Za!x$Za!}$Za~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$[a#X$[a!x$[a!}$[a~P!'WOz8tO$z#dOT$[a!S$[a!b$[a!q$[a!v$[a#S$[a#z$[a#{$[a#|$[a#}$[a$O$[a$Q$[a$R$[a$S$[a$T$[a$U$[a$V$[a$W$[a#X$[a!x$[a!}$[a~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$_a#X$_a!x$_a!}$_a~P!'WO!q=dO#O7rO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$ka#X$ka!x$ka!}$ka~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$|a#X$|a!x$|a!}$|a~P!'WOT8vOz8tO!S8wO!b8xO!q7wO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!q#yi#X#yi!x#yi!}#yi~P!'WOT8vOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!S#yi!b#yi!q#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi#X#yi!x#yi!}#yi~P!'WOz8tO#S#QO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi#X#yi!x#yi!}#yi~P!'WOz8tO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi#X#yi!x#yi!}#yi~P!'WOz8tO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$S9QO$T9RO$V9TO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$U#yi#X#yi!x#yi!}#yi~P!'WOz8tO$W9TO$z#dOT#yi!S#yi!b#yi!q#yi!v#yi#S#yi#z#yi#{#yi#|#yi#}#yi$O#yi$Q#yi$R#yi$S#yi$T#yi$U#yi$V#yi#X#yi!x#yi!}#yi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pi!S#Pi!b#Pi!q#Pi#X#Pi!x#Pi!}#Pi~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#vi!S#vi!b#vi!q#vi#X#vi!x#vi!}#vi~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q#xi#X#xi!x#xi!}#xi~P!'WO!q=eO#O7|O~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uq!S!uq!b!uq!q!uq!v!uq#X!uq!x!uq!}!uq~P!'WOz8tO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT#Pq!S#Pq!b#Pq!q#Pq#X#Pq!x#Pq!}#Pq~P!'WO!q=iO#O8TO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jq#X$jq!x$jq!}$jq~P!'WO#O8TO#l'SO~Oz8tO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dOT!uy!S!uy!b!uy!q!uy!v!uy#X!uy!x!uy!}!uy~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$jy#X$jy!x$jy!}$jy~P!'WO#O8UO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!R#X$j!R!x$j!R!}$j!R~P!'WO#O8XO#l'SO~OT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!Z#X$j!Z!x$j!Z!}$j!Z~P!'WOT8vOz8tO!S8wO!b8xO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO!q$j!c#X$j!c!x$j!c!}$j!c~P!'WO#S:bO~P>UO#O:aO!q'PX!x'PX~PGSO$l$tO~P$8YOP6]OU^O[9WOo>SOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$l$tO$z:nO${!OO~P$;lOo8_Os$lO~O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#SSOs#hOx9WOy9WO}`O!O]O!Q:lO!T9WO!U9WO!V9WO!Y9WO!c8hO!s#gO!y[O#S=UO#W_O#bhO#daO#ebO#peO$T:iO$]9WO$^:iO$aqO$z:nO${!OO~P$;lOT6iOz6gO!S6jO!b6kO!v8sO#O=SO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO~P!'WOT6iOz6gO!S6jO!b6kO!v8sO#O=RO#S#QO#z6hO#{6lO#|6mO#}6nO$O6oO$Q6qO$R6rO$S6sO$T6tO$U6uO$V6vO$W6vO$z#dO!m'PX!q'PX!n'PX!}'PX~P!'WOT&zXz&zX!S&zX!b&zX!o&zX!q&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX!}&zX~O#u9ZO#w9[O#X&zX!x&zX~P.8oO!y$hO#S=^O~O!q9hO~P>UO!y$hO#S=cO~O!q>OO#O9}O~OT8vOz8tO!S8wO!b8xO!q:OO!v=ZO#S#QO#z8uO#{8yO#|8zO#}8{O$O8|O$Q9OO$R9PO$S9QO$T9RO$U9SO$V9TO$W9TO$z#dO~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m#Ta!q#Ta!n#Ta!}#Ta~P!'WOT:tOz:pO!S:vO!b:xO!v=mO#S#QO#z:rO#{:zO#|:|O#};OO$O;QO$Q;UO$R;WO$S;YO$T;[O$U;^O$V;`O$W;`O$z#dO!m'Pa!q'Pa!n'Pa!}'Pa~P!'WO!q>PO#O:RO~O!q>QO#O:YO~O#O:YO#l'SO~O#O:ZO#l'SO~O#O:_O#l'SO~O#u;eO#w;gO!m&zX!n&zX~P.8oO#u;fO#w;hOT&zXz&zX!S&zX!b&zX!o&zX!v&zX!y&zX#S&zX#W&zX#`&zX#a&zX#s&zX#z&zX#{&zX#|&zX#}&zX$O&zX$Q&zX$R&zX$S&zX$T&zX$U&zX$V&zX$W&zX$z&zX~O!q;tO~P>UO!q;uO~P>UO!q>XO#OYO#O9WO~OT8vOz8tO!S8wO!b8xO!qZO#O[O#O<{O~O#O<{O#l'SO~O#O9WO#l'SO~O#O<|O#l'SO~O#O=PO#l'SO~O!y$hO#S=|O~Oo=[Os$lO~O!y$hO#S=}O~O!y$hO#S>UO~O!y$hO#S>VO~O!y$hO#S>WO~Oo={Os$lO~Oo>TOs$lO~Oo>SOs$lO~O%O$U$}$d!d$V#b%V#e'g!s#d~",goto:"%&y'mPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP'nP'uPP'{(OPPP(hP(OP(O*ZP*ZPP2W:j:mPP*Z:sBpPBsPBsPP:sCSCVCZ:s:sPPPC^PP:sK^!$S!$S:s!$WP!$W!$W!%UP!.]!7pP!?oP*ZP*Z*ZPPPPP!?rPPPPPPP*Z*Z*Z*ZPP*Z*ZP!E]!GRP!GV!Gy!GR!GR!HP*Z*ZP!HY!Hl!Ib!J`!Jd!J`!Jo!J}!J}!KV!KY!KY*ZPP*ZPP!K^#%[#%[#%`P#%fP(O#%j(O#&S#&V#&V#&](O#&`(O(O#&f#&i(O#&r#&u(O(O(O(O(O#&x(O(O(O(O(O(O(O(O(O#&{!KR(O(O#'_#'o#'r(O(OP#'u#'|#(S#(o#(y#)P#)Z#)b#)h#*d#4X#5T#5Z#5a#5k#5q#5w#6]#6c#6i#6o#6u#6{#7R#7]#7g#7m#7s#7}PPPPPPPP#8T#8X#8}#NO#NR#N]$(f$(r$)X$)_$)b$)e$)k$,X$5v$>_$>b$>h$>k$>n$>w$>{$?X$?k$Bk$CO$C{$K{PP%%y%%}%&Z%&p%&vQ!nQT!qV!rQUOR%x!mRVO}!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a|!hPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ%^!ZQ%g!aQ%l!eQ'd$dQ'q$iQ)[%kQ*y'tQ,](xU-n*v*x+OQ.W+cQ.{,[S/t-s-tQ0T.SS0}/s/wQ1V0RQ1o1OR2P1p0u!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3ZfPVX[_bgjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#}$R$S$U$h$y$}%P%R%S%T%U%c%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)_)c)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[3scPVX[_bdegjklmnoprxyz!S!W!X!Y!]!e!f!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t#{#}$R$S$U$h$y$}%P%R%S%T%U%c%m%n%p%r%}&S&W&p&s&t&w'O'S'U'Y'^'i'm'r'z(O(P(R(S(T(`(l({)P)Z)^)_)c)g)h)i)p)t)v*P*T*U*f*o*s*z*}+P+Q+]+`+d+g+r+u+z,T,V,X,Z,u,x-Q-R-d-k-r-u-z-{-|.Q.b.d.l.t/[/c/i/m/u/x0V0`0a0d0e0i0v1P1R1]1a2W2X2Y2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w5}6O6P6T6]6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8b8c8d8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[0phPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0`0a0d0e0i0v1R1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uRS=p>S>VS=s>T>UR=t>WT'n$h*s!csPVXt!S!j!r!s!w$h$}%P%S%U'i(T(`)W*s+]+g+r+u,g,k.b.d.l0`0a0i1aQ$^rR*`'^Q*x'sQ-t*{R/w-wQ(W$tQ)U%hQ)n%vQ*i'fQ+k(XR-c*jQ(V$tQ)Y%jQ)m%vQ*e'eS*h'f)nS+j(W(XS-b*i*jQ.]+kQ/T,mQ/e-`R/g-cQ(U$tQ)T%hQ)V%iQ)l%vU*g'f)m)nU+i(V(W(XQ,f)UU-a*h*i*jS.[+j+kS/f-b-cQ0X.]R0t/gT+e(T+g[%e!_$b'c+a.R0QR,d)Qb$ov(T+[+]+`+g.P.Q0PR+T'{S+e(T+gT,j)W,kR0W.XT1[0V1]0w|PVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X,_-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[R2Y2X|tPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aW$`t'i+],gS'i$h*sS+](T+gT,g)W,kQ'_$^R*a'_Q*t'oR-m*tQ/p-oS0{/p0|R0|/qQ-}+XR/|-}Q+g(TR.Y+gS+`(T+gS,h)W,kQ.Q+]W.T+`,h.Q/OR/O,gQ)R%eR,e)RQ'|$oR+U'|Q1]0VR1w1]Q${{R(^${Q+t(aR.c+tQ+w(bR.g+wQ+}(cQ,P(dT.m+},PQ(|%`S,a(|7tR7t7VQ(y%^R,^(yQ,k)WR/R,kQ)`%oS,q)`/WR/W,rQ,v)dR/^,vT!uV!rj!iPVX!j!r!s!w(`+r.l0`0a1aQ%Q!SQ(a$}W(h%P%S%U0iQ.e+uQ0Z.bR0[.d|ZPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1aQ#f[U#m_#s&wQ#wbQ$VkQ$WlQ$XmQ$YnQ$ZoQ$[pQ$sx^$uy2_4b6e8q:m:nQ$vzQ%W!WQ%Y!XQ%[!YW%`!]%R(l,VU%s!g&p-RQ%|!yQ&O!zQ&Q!{S&U!})v^&^#R2a4d6g8t:p:qQ&_#SQ&`#TQ&a#UQ&b#VQ&c#WQ&d#XQ&e#YQ&f#ZQ&g#[Q&h#]Q&i#^Q&j#_Q&k#`Q&l#aQ&m#bQ&u#nQ&v#oS&{#t'OQ'X$RQ'Z$SQ'[$UQ(]$yQ(p%TQ)q%}Q)s&SQ)u&WQ*O&tS*['U4ZQ*^'Y^*_2[3u5v8Z:a=R=SQ+S'zQ+V(OQ,`({Q,c)PQ,y)iQ,{)pQ,})tQ-V*PQ-W*TQ-X*U^-]2]3v5w8[:b=T=UQ-i*oQ-x+PQ.k+zQ.w,XQ/`-QQ/h-dQ/n-kQ/y-zQ0r/cQ0u/iQ0x/mQ1Q/xU1X0V1]9WQ1d0eQ1m0vQ1q1RQ2Z2^Q2qjQ2r3yQ2x3zQ2y3|Q2z4OQ2{4QQ2|4SQ2}4UQ3O2`Q3Q2bQ3R2cQ3S2dQ3T2eQ3U2fQ3V2gQ3W2hQ3X2iQ3Y2jQ3Z2kQ3[2lQ3]2mQ3^2nQ3_2oQ3`2pQ3a2sQ3b2tQ3c2uQ3e2vQ3f2wQ3i3PQ3j3dQ3l3gQ3m3hQ3n3kQ3q3oQ3r3pQ3t3sQ4Y4WQ4y3{Q4z3}Q4{4PQ4|4RQ4}4TQ5O4VQ5P4cQ5R4eQ5S4fQ5T4gQ5U4hQ5V4iQ5W4jQ5X4kQ5Y4lQ5Z4mQ5[4nQ5]4oQ5^4pQ5_4qQ5`4rQ5a4sQ5b4tQ5c4uQ5d4vQ5f4wQ5g4xQ5j5QQ5k5eQ5m5hQ5n5iQ5o5lQ5r5pQ5s5qQ5u5tQ6Q4aQ6R3xQ6V6TQ6}6^Q7O6_Q7P6`Q7Q6aQ7R6bQ7S6cQ7T6dQ7U6fU7V,T.t0dQ7W%cQ7Y6hQ7Z6iQ7[6jQ7]6kQ7^6lQ7_6mQ7`6nQ7a6oQ7b6pQ7c6qQ7d6rQ7e6sQ7f6tQ7g6uQ7h6vQ7j6xQ7k6yQ7n6zQ7p6{Q7q6|Q7x7XQ7y7iQ7{7oQ7}7rQ8O7sQ8P7uQ8Q7wQ8R7zQ8S7|Q8V8TQ8W8UQ8Y8XQ8]8fU9U#k&s7lQ9^8jQ9_8kQ9`8lQ9a8mQ9b8nQ9c8oQ9e8pQ9f8rQ9g8sQ9i8uQ9j8vQ9k8wQ9l8xQ9m8yQ9n8zQ9o8{Q9p8|Q9q8}Q9r9OQ9s9PQ9t9QQ9u9RQ9v9SQ9w9TQ9x9ZQ9z9[Q9{9]Q:P9hQ:Q9yQ:T9}Q:V:OQ:W:RQ:[:YQ:^:ZQ:`:_Q:c8iQ;j:dQ;k:eQ;l:fQ;m:gQ;n:hQ;o:iQ;p:jQ;q:kQ;r:lQ;s:oQ;v:rQ;w:sQ;x:tQ;y:uQ;z:vQ;{:wQ;|:xQ;}:yQOQ=h>PQ=j>QQ=u>XQ=v>YQ=w>ZR=x>[0t!OPVX[_bjklmnopxyz!S!W!X!Y!]!g!j!r!s!w!y!z!{!}#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b#k#n#o#s#t$R$S$U$y$}%P%R%S%T%U%c%}&S&W&p&s&t&w'O'U'Y'z(O(`(l({)P)i)p)t)v*P*T*U*o+P+r+u+z,T,V,X-Q-R-d-k-z.b.d.l.t/c/i/m/x0V0`0a0d0e0i0v1R1]1a2[2]2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3u3v3x3y3z3{3|3}4O4P4Q4R4S4T4U4V4W4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t5v5w6T6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6x6y6z6{6|7X7i7l7o7r7s7u7w7z7|8T8U8X8Z8[8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9V9W9X9Z9[9]9h9y9}:O:R:Y:Z:_:a:b:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z:{:|:};O;P;Q;R;S;T;U;V;W;X;Y;Z;[;];^;_;`;a;c;d;e;f;g;h;i;t;uO>P>Q>X>Y>Z>[S$]r'^Q%k!eS%o!f%rQ)b%pU+X(R(S+dQ,p)_Q,t)cQ/Z,uQ/{-|R0p/[|vPVX!S!j!r!s!w$}%P%S%U(`+r+u.b.d.l0`0a0i1a#U#i[bklmnopxyz!W!X!Y!{#R#S#T#U#V#W#X#Y#Z#[#]#^#_#`#a#b$R$S$U$y%}&S'Y(O)p+P-z/x0e1R2[2]6x6yd+^(T)W+]+`+g,g,h,k.Q/O!t6w'U2^2_2`2a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2s2t2u2v2w3P3d3g3h3k3o3p3s3z3|4O4Q4S4U5v5w!x;b3u3v3x3y3{3}4P4R4T4V4Z4a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x5Q5e5h5i5l5p5q5t$O=z_j!]!g#k#n#o#s#t%R%T&p&s&t&w'O'z(l({)P)i*P*U,V,X-R6^6_6`6a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6z6{6|7X7l7o7r7w7|8T8U8X8Z8[8f8g8h8i#|>]!y!z!}%c&W)t)v*T*o,T-d-k.t/c/i/m0d0v4W6T7i7s7u7z8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8{8|8}9O9P9Q9R9S9T9Z9[9]9h9y9}:O:R:Y:Z:_:a:b;c;d=Z=m=n!v>^+z-Q9V9X:d:e:f:g:h:j:k:m:o:p:r:t:v:x:z:|;O;Q;S;U;W;Y;[;^;`;e;g;i;t_0V1]9W:i:l:n:q:s:u:w:y:{:};P;R;T;V;X;Z;];_;a;f;h;u AssignmentExpression ArrayExpression ValueList & VariadicUnpacking ... Pair [ ] ListExpression ValueList Pair Pair SubscriptExpression MemberExpression -> ?-> VariableName DynamicVariable $ ${ CallExpression ArgList NamedArgument SpreadArgument CastExpression UnionType LogicOp OptionalType NamedType QualifiedName \\ NamespaceName ScopedExpression :: ClassMemberName AssignOp UpdateExpression UpdateOp YieldExpression BinaryExpression LogicOp LogicOp LogicOp BitOp BitOp BitOp CompareOp CompareOp BitOp ArithOp ConcatOp ArithOp ArithOp IncludeExpression RequireExpression CloneExpression UnaryExpression ControlOp LogicOp PrintIntrinsic FunctionExpression static ParamList Parameter #[ Attributes Attribute VariadicParameter PropertyParameter UseList ArrowFunction NewExpression class BaseClause ClassInterfaceClause DeclarationList ConstDeclaration VariableDeclarator PropertyDeclaration VariableDeclarator MethodDeclaration UseDeclaration UseList UseInsteadOfClause UseAsClause UpdateExpression ArithOp ShellExpression ThrowExpression Integer Float String MemberExpression SubscriptExpression UnaryExpression ArithOp Interpolation String IfStatement ColonBlock SwitchStatement Block CaseStatement DefaultStatement ColonBlock WhileStatement EmptyStatement DoStatement ForStatement ForSpec SequenceExpression ForeachStatement ForSpec Pair GotoStatement ContinueStatement BreakStatement ReturnStatement TryStatement CatchDeclarator DeclareStatement EchoStatement UnsetStatement ConstDeclaration FunctionDefinition ClassDeclaration InterfaceDeclaration TraitDeclaration EnumDeclaration EnumBody EnumCase NamespaceDefinition NamespaceUseDeclaration UseGroup UseClause UseClause GlobalDeclaration FunctionStaticDeclaration Program",maxTerm:304,nodeProps:[["group",-36,2,8,49,81,83,85,88,93,94,102,106,107,110,111,114,118,123,126,130,132,133,147,148,149,150,153,154,164,165,179,181,182,183,184,185,191,"Expression",-28,74,78,80,82,192,194,199,201,202,205,208,209,210,211,212,214,215,216,217,218,219,220,221,222,225,226,230,231,"Statement",-3,119,121,122,"Type"],["isolate",-4,66,67,70,191,""],["openedBy",69,"phpOpen",76,"{",86,"(",101,"#["],["closedBy",71,"phpClose",77,"}",87,")",158,"]"]],propSources:[o],skippedNodes:[0],repeatNodeCount:29,tokenData:"!F|_R!]OX$zXY&^YZ'sZ]$z]^&^^p$zpq&^qr)Rrs+Pst+otu2buv5evw6rwx8Vxy>]yz>yz{?g{|@}|}Bb}!OCO!O!PDh!P!QKT!Q!R!!o!R![!$q![!]!,P!]!^!-a!^!_!-}!_!`!1S!`!a!2d!a!b!3t!b!c!7^!c!d!7z!d!e!9W!e!}!7z!}#O!;^#O#P!;z#P#Q!V<%lO8VR9WV&wP%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ9rV%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X<%lO9mQ:^O%VQQ:aRO;'S9m;'S;=`:j;=`O9mQ:oW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l9m<%lO9mQ;[P;=`<%l9mR;fV&wP%VQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRV<%l~8V~O8V~~%fR=OW&wPOY8VYZ9PZ!^8V!^!_;{!_;'S8V;'S;=`=h;=`<%l9m<%lO8VR=mW%VQOw9mwx:Xx#O9m#O#P:^#P;'S9m;'S;=`;X;=`<%l8V<%lO9mR>YP;=`<%l8VR>dV!yQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV?QV!xU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR?nY&wP$VQOY$zYZ%fZz$zz{@^{!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR@eW$WQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRAUY$TQ&wPOY$zYZ%fZ{$z{|At|!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zRA{V$zQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRBiV!}Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_CXZ$TQ%TW&wPOY$zYZ%fZ}$z}!OAt!O!^$z!^!_%k!_!`6U!`!aCz!a;'S$z;'S;=`&W<%lO$zVDRV#`U&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVDo[&wP$UQOY$zYZ%fZ!O$z!O!PEe!P!Q$z!Q![Fs![!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVEjX&wPOY$zYZ%fZ!O$z!O!PFV!P!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVF^V#UU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRFz_&wP%OQOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#SJc#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zRHO]&wPOY$zYZ%fZ{$z{|Hw|}$z}!OHw!O!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRH|X&wPOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zRIpZ&wP%OQOY$zYZ%fZ!Q$z!Q![Ii![!^$z!^!_%k!_#R$z#R#SHw#S;'S$z;'S;=`&W<%lO$zRJhX&wPOY$zYZ%fZ!Q$z!Q![Fs![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zVK[[&wP$VQOY$zYZ%fZz$zz{LQ{!P$z!P!Q,o!Q!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zVLVX&wPOYLQYZLrZzLQz{N_{!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQVLwT&wPOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMZTOzMWz{Mj{;'SMW;'S;=`NX<%lOMWUMmVOzMWz{Mj{!PMW!P!QNS!Q;'SMW;'S;=`NX<%lOMWUNXO!eUUN[P;=`<%lMWVNdZ&wPOYLQYZLrZzLQz{N_{!PLQ!P!Q! V!Q!^LQ!^!_! s!_;'SLQ;'S;=`!!i<%lOLQV! ^V!eU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV! vZOYLQYZLrZzLQz{N_{!aLQ!a!bMW!b;'SLQ;'S;=`!!i<%l~LQ~OLQ~~%fV!!lP;=`<%lLQZ!!vm&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!d$z!d!e!&o!e!g$z!g!hGy!h!q$z!q!r!(a!r!z$z!z!{!){!{#R$z#R#S!%}#S#U$z#U#V!&o#V#X$z#X#YGy#Y#c$z#c#d!(a#d#l$z#l#m!){#m;'S$z;'S;=`&W<%lO$zZ!$xa&wP$}YOY$zYZ%fZ!O$z!O!PFs!P!Q$z!Q![!$q![!^$z!^!_%k!_!g$z!g!hGy!h#R$z#R#S!%}#S#X$z#X#YGy#Y;'S$z;'S;=`&W<%lO$zZ!&SX&wPOY$zYZ%fZ!Q$z!Q![!$q![!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!&tY&wPOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!'k[&wP$}YOY$zYZ%fZ!Q$z!Q!R!'d!R!S!'d!S!^$z!^!_%k!_#R$z#R#S!&o#S;'S$z;'S;=`&W<%lO$zZ!(fX&wPOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zZ!)YZ&wP$}YOY$zYZ%fZ!Q$z!Q!Y!)R!Y!^$z!^!_%k!_#R$z#R#S!(a#S;'S$z;'S;=`&W<%lO$zZ!*Q]&wPOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zZ!+Q_&wP$}YOY$zYZ%fZ!Q$z!Q![!*y![!^$z!^!_%k!_!c$z!c!i!*y!i#R$z#R#S!){#S#T$z#T#Z!*y#Z;'S$z;'S;=`&W<%lO$zR!,WX!qQ&wPOY$zYZ%fZ![$z![!]!,s!]!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!,zV#sQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!-hV!mU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!.S[$RQOY$zYZ%fZ!^$z!^!_!.x!_!`!/i!`!a*c!a!b!0]!b;'S$z;'S;=`&W<%l~$z~O$z~~%fR!/PW$SQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!/pX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a*c!a;'S$z;'S;=`&W<%lO$zP!0bR!iP!_!`!0k!r!s!0p#d#e!0pP!0pO!iPP!0sQ!j!k!0y#[#]!0yP!0|Q!r!s!0k#d#e!0kV!1ZX#uQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`)r!`!a!1v!a;'S$z;'S;=`&W<%lO$zV!1}V#OU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!2kX$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`!3W!`!a!.x!a;'S$z;'S;=`&W<%lO$zR!3_V$RQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!3{[!vQ&wPOY$zYZ%fZ}$z}!O!4q!O!^$z!^!_%k!_!`$z!`!a!6P!a!b!6m!b;'S$z;'S;=`&W<%lO$zV!4vX&wPOY$zYZ%fZ!^$z!^!_%k!_!`$z!`!a!5c!a;'S$z;'S;=`&W<%lO$zV!5jV#aU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!6WV!gU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!6tW#zQ&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`;'S$z;'S;=`&W<%lO$zR!7eV$]Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z_!8Ra&wP!s^OY$zYZ%fZ!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$z_!9_e&wP!s^OY$zYZ%fZr$zrs!:psw$zwx8Vx!Q$z!Q![!7z![!^$z!^!_%k!_!c$z!c!}!7z!}#R$z#R#S!7z#S#T$z#T#o!7z#o$g$z$g&j!7z&j;'S$z;'S;=`&W<%lO$zR!:wV&wP'gQOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!;eV#WU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!mZ!^!=u!^!_!@u!_#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%lO!=uR!>rV&wPO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?[VO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o<%lO!?XQ!?tRO;'S!?X;'S;=`!?};=`O!?XQ!@QWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!?X<%lO!?XQ!@oO${QQ!@rP;=`<%l!?XR!@x]OY!=uYZ!>mZ!a!=u!a!b!?X!b#O!=u#O#P!Aq#P#S!=u#S#T!B{#T;'S!=u;'S;=`!Ci<%l~!=u~O!=u~~%fR!AvW&wPOY!=uYZ!>mZ!^!=u!^!_!@u!_;'S!=u;'S;=`!B`;=`<%l!?X<%lO!=uR!BcWO#O!?X#O#P!?q#P#S!?X#S#T!@j#T;'S!?X;'S;=`!@o;=`<%l!=u<%lO!?XR!CSV${Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!ClP;=`<%l!=uV!CvV!oU&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zV!DfY#}Q#lS&wPOY$zYZ%fZ!^$z!^!_%k!_!`6U!`#p$z#p#q!EU#q;'S$z;'S;=`&W<%lO$zR!E]V#{Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!EyV!nQ&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$zR!FgV$^Q&wPOY$zYZ%fZ!^$z!^!_%k!_;'S$z;'S;=`&W<%lO$z",tokenizers:[s,q,n,0,1,2,3,X],topRules:{Template:[0,72],Program:[1,232]},dynamicPrecedences:{284:1},specialized:[{term:81,get:(O,$)=>z(O)<<1,external:z},{term:81,get:O=>t[O]||-1}],tokenPrec:29354});var R=Q(79066),x=Q(53242),V=Q(29587);const u=V.bj.define({name:"php",parser:l.configure({props:[V.Oh.add({IfStatement:(0,V.mz)({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:(0,V.mz)({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:O=>{let $=O.textAfter,Q=/^\s*\}/.test($),i=/^\s*(case|default)\b/.test($);return O.baseIndent+(Q?0:i?1:2)*O.unit},ColonBlock:O=>O.baseIndent+O.unit,"Block EnumBody DeclarationList":(0,V.Ay)({closing:"}"}),ArrowFunction:O=>O.baseIndent+O.unit,"String BlockComment":()=>null,Statement:(0,V.mz)({except:/^({|end(for|foreach|switch|while)\b)/})}),V.b_.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":V.yd,ColonBlock:O=>({from:O.from+1,to:O.to}),BlockComment:O=>({from:O.from+2,to:O.to-2})})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function U(O={}){let $,Q=[];if(null===O.baseLanguage);else if(O.baseLanguage)$=O.baseLanguage;else{let O=(0,x.html)({matchClosingTags:!1});Q.push(O.support),$=O.language}return new V.Yy(u.configure({wrap:$&&(0,R.$g)((O=>O.type.isTop?{parser:$.parser,overlay:O=>"Text"==O.name}:null)),top:O.plain?"Program":"Template"}),Q)}}}]); +//# sourceMappingURL=3543.thebe-core.min.js.map \ No newline at end of file diff --git a/357.thebe-core.min.js b/357.thebe-core.min.js new file mode 100644 index 00000000..d42c79e8 --- /dev/null +++ b/357.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[357],{80357:(e,t,n)=>{n.r(t),n.d(t,{nsis:()=>i});const i=(0,n(45286).I)({start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:\!(else|endif|macroend))\b/i,token:"keyword",dedent:!0},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i,token:"keyword",dedent:!0},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i,token:"atom"},{regex:/\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i,token:"variable-2",indent:!0},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i,token:"keyword",dedent:!0},{regex:/\$\{(?:RunningX64)\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/i,token:"keyword",dedent:!0},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w[\w\.]*/,token:"variable"},{regex:/\${[\!\w\.:-]+}/,token:"variableName.constant"},{regex:/\$\([\!\w\.:-]+\)/,token:"atom"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"nsis",indentOnInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i,commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}})},45286:(e,t,n)=>{function i(e){r(e,"start");var t={},n=e.languageData||{},i=!1;for(var l in e)if(l!=n&&e.hasOwnProperty(l))for(var d=t[l]=[],S=e[l],c=0;c2&&a.token&&"string"!=typeof a.token){n.pending=[];for(var d=2;d-1)return null;var r=n.indent.length-1,o=e[n.state];e:for(;;){for(var a=0;ai})}}]); +//# sourceMappingURL=357.thebe-core.min.js.map \ No newline at end of file diff --git a/3722.thebe-core.min.js b/3722.thebe-core.min.js new file mode 100644 index 00000000..800d64e0 --- /dev/null +++ b/3722.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3722],{3722:(e,t,n)=>{function r(e,t,n,r,a,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=a,this.prev=o}function a(e,t,n,a){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=n&&(o=e.context.indented),e.context=new r(o,t,n,a,null,e.context)}function o(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function i(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0}function l(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function s(e){var t,n,s=e.statementIndentUnit,c=e.dontAlignCalls,d=e.keywords||{},f=e.types||{},p=e.builtin||{},m=e.blockKeywords||{},h=e.defKeywords||{},y=e.atoms||{},g=e.hooks||{},k=e.multiLineStrings,b=!1!==e.indentStatements,v=!1!==e.indentSwitch,w=e.namespaceSeparator,_=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,x=e.numberStart||/[\d\.]/,S=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,T=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,N=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,C=e.isReservedIdentifier||!1;function I(e,r){var a,o=e.next();if(g[o]){var i=g[o](e,r);if(!1!==i)return i}if('"'==o||"'"==o)return r.tokenize=(a=o,function(e,t){for(var n,r=!1,o=!1;null!=(n=e.next());){if(n==a&&!r){o=!0;break}r=!r&&"\\"==n}return(o||!r&&!k)&&(t.tokenize=null),"string"}),r.tokenize(e,r);if(x.test(o)){if(e.backUp(1),e.match(S))return"number";e.next()}if(_.test(o))return t=o,null;if("/"==o){if(e.eat("*"))return r.tokenize=D,D(e,r);if(e.eat("/"))return e.skipToEnd(),"comment"}if(T.test(o)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(T););return"operator"}if(e.eatWhile(N),w)for(;e.match(w);)e.eatWhile(N);var l=e.current();return u(d,l)?(u(m,l)&&(t="newstatement"),u(h,l)&&(n=!0),"keyword"):u(f,l)?"type":u(p,l)||C&&C(l)?(u(m,l)&&(t="newstatement"),"builtin"):u(y,l)?"atom":"variable"}function D(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function z(t,n){e.typeFirstDefinitions&&t.eol()&&l(n.context)&&(n.typeAtEndOfLine=i(t,n,t.pos))}return{name:e.name,startState:function(e){return{tokenize:null,context:new r(-e,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(r,s){var c=s.context;if(r.sol()&&(null==c.align&&(c.align=!1),s.indented=r.indentation(),s.startOfLine=!0),r.eatSpace())return z(r,s),null;t=n=null;var u=(s.tokenize||I)(r,s);if("comment"==u||"meta"==u)return u;if(null==c.align&&(c.align=!0),";"==t||":"==t||","==t&&r.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==s.context.type;)o(s);else if("{"==t)a(s,r.column(),"}");else if("["==t)a(s,r.column(),"]");else if("("==t)a(s,r.column(),")");else if("}"==t){for(;"statement"==c.type;)c=o(s);for("}"==c.type&&(c=o(s));"statement"==c.type;)c=o(s)}else t==c.type?o(s):b&&(("}"==c.type||"top"==c.type)&&";"!=t||"statement"==c.type&&"newstatement"==t)&&a(s,r.column(),"statement",r.current());if("variable"==u&&("def"==s.prevToken||e.typeFirstDefinitions&&i(r,s,r.start)&&l(s.context)&&r.match(/^\s*\(/,!1))&&(u="def"),g.token){var d=g.token(r,s,u);void 0!==d&&(u=d)}return"def"==u&&!1===e.styleDefs&&(u="variable"),s.startOfLine=!1,s.prevToken=n?"def":u||t,z(r,s),u},indent:function(t,n,r){if(t.tokenize!=I&&null!=t.tokenize||t.typeAtEndOfLine&&l(t.context))return null;var a=t.context,o=n&&n.charAt(0),i=o==a.type;if("statement"==a.type&&"}"==o&&(a=a.prev),e.dontIndentStatements)for(;"statement"==a.type&&e.dontIndentStatements.test(a.info);)a=a.prev;if(g.indent){var u=g.indent(t,a,n,r.unit);if("number"==typeof u)return u}var d=a.prev&&"switch"==a.prev.info;if(e.allmanIndentation&&/[{(]/.test(o)){for(;"top"!=a.type&&"}"!=a.type;)a=a.prev;return a.indented}return"statement"==a.type?a.indented+("{"==o?0:s||r.unit):!a.align||c&&")"==a.type?")"!=a.type||i?a.indented+(i?0:r.unit)+(i||!d||/^(?:case|default)\b/.test(n)?0:r.unit):a.indented+(s||r.unit):a.column+(i?0:1)},languageData:{indentOnInput:v?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(d).concat(Object.keys(f)).concat(Object.keys(p)).concat(Object.keys(y)),...e.languageData}}}function c(e){for(var t={},n=e.split(" "),r=0;rD,ceylon:()=>q,clike:()=>s,cpp:()=>z,csharp:()=>M,dart:()=>X,java:()=>L,kotlin:()=>R,nesC:()=>j,objectiveC:()=>A,objectiveCpp:()=>U,scala:()=>P,shader:()=>O,squirrel:()=>$});var d="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",f="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",p="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",m="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",h=c("int long char short double float unsigned signed void bool"),y=c("SEL instancetype id Class Protocol BOOL");function g(e){return u(h,e)||/.+_t$/.test(e)}function k(e){return g(e)||u(y,e)}var b="case do else for if switch while struct enum union",v="struct enum union";function w(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=w;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function _(e,t){return"type"==t.prevToken&&"type"}function x(e){return!(!e||e.length<2||"_"!=e[0]||"_"!=e[1]&&e[1]===e[1].toLowerCase())}function S(e){return e.eatWhile(/[\w\.']/),"number"}function T(e,t){if(e.backUp(1),e.match(/^(?:R|u8R|uR|UR|LR)/)){var n=e.match(/^"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[1],t.tokenize=I,I(e,t))}return e.match(/^(?:u8|u|U|L)/)?!!e.match(/^["']/,!1)&&"string":(e.next(),!1)}function N(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function C(e,t){for(var n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function I(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}const D=s({name:"c",keywords:c(d),types:g,blockKeywords:c(b),defKeywords:c(v),typeFirstDefinitions:!0,atoms:c("NULL true false"),isReservedIdentifier:x,hooks:{"#":w,"*":_}}),z=s({name:"cpp",keywords:c(d+" "+f),types:g,blockKeywords:c(b+" class try catch"),defKeywords:c(v+" class namespace"),typeFirstDefinitions:!0,atoms:c("true false NULL nullptr"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,isReservedIdentifier:x,hooks:{"#":w,"*":_,u:T,U:T,L:T,R:T,0:S,1:S,2:S,3:S,4:S,5:S,6:S,7:S,8:S,9:S,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&N(e.current()))return"def"}},namespaceSeparator:"::"}),L=s({name:"java",keywords:c("abstract assert break case catch class const continue default do else enum extends final finally for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:c("var byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:c("catch class do else finally for if switch try while"),defKeywords:c("class interface enum @interface"),typeFirstDefinitions:!0,atoms:c("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return!e.match("interface",!1)&&(e.eatWhile(/[\w\$_]/),"meta")},'"':function(e,t){return!!e.match(/""$/)&&(t.tokenize=E,t.tokenize(e,t))}}}),M=s({name:"csharp",keywords:c("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in init interface internal is lock namespace new operator out override params private protected public readonly record ref required return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:c("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:c("catch class do else finally for foreach if struct switch try while"),defKeywords:c("class interface namespace record struct var"),typeFirstDefinitions:!0,atoms:c("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=C,C(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}});function E(e,t){for(var n=!1;!e.eol();){if(!n&&e.match('"""')){t.tokenize=null;break}n="\\"==e.next()&&!n}return"string"}function F(e){return function(t,n){for(var r;r=t.next();){if("*"==r&&t.eat("/")){if(1==e){n.tokenize=null;break}return n.tokenize=F(e-1),n.tokenize(t,n)}if("/"==r&&t.eat("*"))return n.tokenize=F(e+1),n.tokenize(t,n)}return"comment"}}const P=s({name:"scala",keywords:c("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:c("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:c("catch class enum do else finally for forSome if match switch try while"),defKeywords:c("class enum def object package trait type val var"),atoms:c("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=E,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(e,t){var n=t.context;return!("}"!=n.type||!n.align||!e.eat(">"))&&(t.context=new r(n.indented,n.column,n.type,n.info,null,n.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=F(1),t.tokenize(e,t))}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),R=s({name:"kotlin",keywords:c("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:c("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:c("catch class do else finally for if where try while enum"),defKeywords:c("class val var object interface fun"),atoms:c("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){var n;return t.tokenize=(n=e.match('""'),function(e,t){for(var r,a=!1,o=!1;!e.eol();){if(!n&&!a&&e.match('"')){o=!0;break}if(n&&e.match('"""')){o=!0;break}r=e.next(),!a&&"$"==r&&e.match("{")&&e.skipTo("}"),a=!a&&"\\"==r&&!n}return!o&&n||(t.tokenize=null),"string"}),t.tokenize(e,t)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=F(1),t.tokenize(e,t))},indent:function(e,t,n,r){var a=n&&n.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=n?"operator"==e.prevToken&&"}"!=n&&"}"!=e.context.type||"variable"==e.prevToken&&"."==a||("}"==e.prevToken||")"==e.prevToken)&&"."==a?2*r+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(n||"").charAt(0)?0:r):void 0:e.indented}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),O=s({name:"shader",keywords:c("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:c("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:c("for while do if else struct"),builtin:c("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:c("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":w}}),j=s({name:"nesc",keywords:c(d+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:g,blockKeywords:c(b),atoms:c("null true false"),hooks:{"#":w}}),A=s({name:"objectivec",keywords:c(d+" "+p),types:k,builtin:c(m),blockKeywords:c(b+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:c(v+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":w,"*":_}}),U=s({name:"objectivecpp",keywords:c(d+" "+p+" "+f),types:k,builtin:c(m),blockKeywords:c(b+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:c(v+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":w,"*":_,u:T,U:T,L:T,R:T,0:S,1:S,2:S,3:S,4:S,5:S,6:S,7:S,8:S,9:S,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&N(e.current()))return"def"}},namespaceSeparator:"::"}),$=s({name:"squirrel",keywords:c("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:g,blockKeywords:c("case catch class else for foreach if switch try while"),defKeywords:c("function local class"),typeFirstDefinitions:!0,atoms:c("true false null"),hooks:{"#":w}});var B=null;function K(e){return function(t,n){for(var r,a=!1,o=!1;!t.eol();){if(!a&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!a&&t.match("``")){B=K(e),o=!0;break}r=t.next(),a="single"==e&&!a&&"\\"==r}return o&&(n.tokenize=null),"string"}}const q=s({name:"ceylon",keywords:c("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:c("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:c("class dynamic function interface module object package value"),builtin:c("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:c("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=K(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!B||!e.match("`"))&&(t.tokenize=B,B=null,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function V(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function W(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function G(e,t,n,r){var a=!1;if(t.eat(e)){if(!t.eat(e))return"string";a=!0}function o(t,n){for(var o=!1;!t.eol();){if(!r&&!o&&"$"==t.peek())return V(n),n.tokenize=Z,"string";var i=t.next();if(i==e&&!o&&(!a||t.match(e+e))){n.tokenize=null;break}o=!r&&!o&&"\\"==i}return"string"}return n.tokenize=o,o(t,n)}function Z(e,t){return e.eat("$"),e.eat("{")?t.tokenize=null:t.tokenize=Q,null}function Q(e,t){return e.eatWhile(/[\w_]/),t.tokenize=W(t),"variable"}const X=s({name:"dart",keywords:c("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:c("try catch finally do else for if switch while"),builtin:c("void bool num int double dynamic var String Null Never"),atoms:c("true false null"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,t){return G("'",e,t,!1)},'"':function(e,t){return G('"',e,t,!1)},r:function(e,t){var n=e.peek();return("'"==n||'"'==n)&&G(e.next(),e,t,!0)},"}":function(e,t){return function(e){return e.interpolationStack?e.interpolationStack.length:0}(t)>0&&(t.tokenize=W(t),null)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=F(1),t.tokenize(e,t))},token:function(e,t,n){if("variable"==n&&RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g").test(e.current()))return"type"}}})}}]); +//# sourceMappingURL=3722.thebe-core.min.js.map \ No newline at end of file diff --git a/3726.thebe-core.min.js b/3726.thebe-core.min.js new file mode 100644 index 00000000..0c8e55a5 --- /dev/null +++ b/3726.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3726],{43726:(e,t,a)=>{a.r(t),a.d(t,{Cassandra:()=>F,MSSQL:()=>M,MariaSQL:()=>Y,MySQL:()=>G,PLSQL:()=>H,PostgreSQL:()=>N,SQLDialect:()=>B,SQLite:()=>K,StandardSQL:()=>D,keywordCompletion:()=>R,keywordCompletionSource:()=>I,schemaCompletion:()=>L,schemaCompletionSource:()=>Z,sql:()=>V});var n=a(29587),r=a(49913),i=a(73643),s=a(77213);const o=20,l=21;function c(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function d(e,t,a){for(let n=!1;;){if(e.next<0)return;if(e.next==t&&!n)return void e.advance();n=a&&!n&&92==e.next,e.advance()}}function u(e,t){for(;95==e.next||c(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function m(e,t){for(;48==e.next||49==e.next;)e.advance();t&&e.next==t&&e.advance()}function p(e,t){for(;;){if(46==e.next){if(t)break;t=!0}else if(e.next<48||e.next>57)break;e.advance()}if(69==e.next||101==e.next)for(e.advance(),43!=e.next&&45!=e.next||e.advance();e.next>=48&&e.next<=57;)e.advance()}function f(e){for(;!(e.next<0||10==e.next);)e.advance()}function g(e,t){for(let a=0;a!=&|~^/",specialVar:"?",identifierQuotes:'"',caseInsensitiveIdentifiers:!1,words:_(v,b)};function k(e){return new i.Lu((t=>{var a;let{next:n}=t;if(t.advance(),g(n,h)){for(;g(t.next,h);)t.advance();t.acceptToken(36)}else if(36==n&&e.doubleDollarQuotedStrings){let e=u(t,"");36==t.next&&(t.advance(),function(e,t){e:for(;;){if(e.next<0)return;if(36==e.next){e.advance();for(let a=0;a1){t.advance(),d(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!c(t.next))break;t.advance()}else if(e.plsqlQuotingMechanism&&(113==n||81==n)&&39==t.next&&t.peek(1)>0&&!g(t.peek(1),h)){let e=t.peek(1);t.advance(2),function(e,t){let a="[{<(".indexOf(String.fromCharCode(t)),n=a<0?t:"]}>)".charCodeAt(a);for(;;){if(e.next<0)return;if(e.next==n&&39==e.peek(1))return void e.advance(2);e.advance()}}(t,e),t.acceptToken(3)}else if(40==n)t.acceptToken(7);else if(41==n)t.acceptToken(8);else if(123==n)t.acceptToken(9);else if(125==n)t.acceptToken(10);else if(91==n)t.acceptToken(11);else if(93==n)t.acceptToken(12);else if(59==n)t.acceptToken(13);else if(e.unquotedBitLiterals&&48==n&&98==t.next)t.advance(),m(t),t.acceptToken(22);else if(98!=n&&66!=n||39!=t.next&&34!=t.next){if(48==n&&(120==t.next||88==t.next)||(120==n||88==n)&&39==t.next){let e=39==t.next;for(t.advance();(r=t.next)>=48&&r<=57||r>=97&&r<=102||r>=65&&r<=70;)t.advance();e&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==n&&t.next>=48&&t.next<=57)p(t,!0),t.acceptToken(4);else if(46==n)t.acceptToken(14);else if(n>=48&&n<=57)p(t,!1),t.acceptToken(4);else if(g(n,e.operatorChars)){for(;g(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(g(n,e.specialVar))t.next==n&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){let t=e.next;e.advance(),d(e,t,!1)}else u(e)}(t),t.acceptToken(17);else if(g(n,e.identifierQuotes))d(t,n,!1),t.acceptToken(19);else if(58==n||44==n)t.acceptToken(16);else if(c(n)){let r=u(t,String.fromCharCode(n));t.acceptToken(46==t.next||46==t.peek(-r.length-1)?18:null!==(a=e.words[r.toLowerCase()])&&void 0!==a?a:18)}}else{const a=t.next;t.advance(),e.treatBitsAsBytes?(d(t,a,e.backslashEscapes),t.acceptToken(23)):(m(t,a),t.acceptToken(22))}else t.advance(),d(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),d(t,39,!0),t.acceptToken(3);else f(t),t.acceptToken(1);var r}))}const x=k(y),O=i.U1.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"⚠ LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,x],topRules:{Script:[0,25]},tokenPrec:0});function w(e){let t=e.cursor().moveTo(e.from,-1);for(;/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function Q(e,t){let a=e.sliceString(t.from,t.to),n=/^([`'"])(.*)\1$/.exec(a);return n?n[2]:a}function C(e){return e&&("Identifier"==e.name||"QuotedIdentifier"==e.name)}function S(e,t){if("CompositeIdentifier"==t.name){let a=[];for(let n=t.firstChild;n;n=n.nextSibling)C(n)&&a.push(Q(e,n));return a}return[Q(e,t)]}function q(e,t){for(let a=[];;){if(!t||"."!=t.name)return a;let n=w(t);if(!C(n))return a;a.unshift(Q(e,n)),t=w(n)}}const P=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" ")),T=/^\w*$/,U=/^[`'"]?\w*[`'"]?$/;function z(e){return e.self&&"string"==typeof e.self.label}class A{constructor(e,t){this.idQuote=e,this.idCaseInsensitive=t,this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null));return t[e]||(e&&!this.list.some((t=>t.label==e))&&this.list.push(X(e,"type",this.idQuote,this.idCaseInsensitive)),t[e]=new A(this.idQuote,this.idCaseInsensitive))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let t=this.list.findIndex((t=>t.label==e.label));t>-1?this.list[t]=e:this.list.push(e)}addCompletions(e){for(let t of e)this.addCompletion("string"==typeof t?X(t,"property",this.idQuote,this.idCaseInsensitive):t)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):z(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let t of Object.keys(e)){let a=e[t],n=null,r=t.replace(/\\?\./g,(e=>"."==e?"\0":e)).split("\0"),i=this;z(a)&&(n=a.self,a=a.children);for(let e=0;e({from:Math.min(e.from+100,t.doc.lineAt(e.from).to),to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})}),(0,r.pn)({Keyword:r._A.keyword,Type:r._A.typeName,Builtin:r._A.standard(r._A.name),Bits:r._A.number,Bytes:r._A.string,Bool:r._A.bool,Null:r._A.null,Number:r._A.number,String:r._A.string,Identifier:r._A.name,QuotedIdentifier:r._A.special(r._A.string),SpecialVar:r._A.special(r._A.name),LineComment:r._A.lineComment,BlockComment:r._A.blockComment,Operator:r._A.operator,"Semi Punctuation":r._A.punctuation,"( )":r._A.paren,"{ }":r._A.brace,"[ ]":r._A.squareBracket})]});class B{constructor(e,t,a){this.dialect=e,this.language=t,this.spec=a}get extension(){return this.language.extension}static define(e){let t=function(e,t,a,n){let r={};for(let t in y)r[t]=(e.hasOwnProperty(t)?e:y)[t];return t&&(r.words=_(t,a||"",n)),r}(e,e.keywords,e.types,e.builtin),a=n.bj.define({name:"sql",parser:j.configure({tokenizers:[{from:x,to:k(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new B(t,a,e)}}function I(e,t=!1){return function(e,t){let a=Object.keys(e).map((a=>({label:t?a.toUpperCase():a,type:e[a]==l?"type":e[a]==o?"keyword":"variable",boost:-1})));return(0,s.Ar)(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],(0,s.et)(a))}(e.dialect.words,t)}function R(e,t=!1){return e.language.data.of({autocomplete:I(e,t)})}function Z(e){return e.schema?function(e,t,a,r,i,s){var o;let l=(null===(o=null==s?void 0:s.spec.identifierQuotes)||void 0===o?void 0:o[0])||'"',c=new A(l,!!(null==s?void 0:s.spec.caseInsensitiveIdentifiers)),d=i?c.child(i):null;return c.addNamespace(e),t&&(d||c).addCompletions(t),a&&c.addCompletions(a),d&&c.addCompletions(d.list),r&&c.addCompletions((d||c).child(r).list),e=>{let{parents:t,from:a,quoted:i,empty:s,aliases:o}=function(e,t){let a=(0,n.mv)(e).resolveInner(t,-1),r=function(e,t){let a;for(let e=t;!a;e=e.parent){if(!e)return null;"Statement"==e.name&&(a=e)}let n=null;for(let t=a.firstChild,r=!1,i=null;t;t=t.nextSibling){let a="Keyword"==t.name?e.sliceString(t.from,t.to).toLowerCase():null,s=null;if(r)if("as"==a&&i&&C(t.nextSibling))s=Q(e,t.nextSibling);else{if(a&&P.has(a))break;i&&C(t)&&(s=Q(e,t))}else r="from"==a;s&&(n||(n=Object.create(null)),n[s]=S(e,i)),i=/Identifier$/.test(t.name)?t:null}return n}(e.doc,a);return"Identifier"==a.name||"QuotedIdentifier"==a.name||"Keyword"==a.name?{from:a.from,quoted:"QuotedIdentifier"==a.name?e.doc.sliceString(a.from,a.from+1):null,parents:q(e.doc,w(a)),aliases:r}:"."==a.name?{from:t,quoted:null,parents:q(e.doc,a),aliases:r}:{from:t,quoted:null,parents:[],empty:!0,aliases:r}}(e.state,e.pos);if(s&&!e.explicit)return null;o&&1==t.length&&(t=o[t[0]]||t);let l=c;for(let e of t){for(;!l.children||!l.children[e];)if(l==c&&d)l=d;else{if(l!=d||!r)return null;l=l.child(r)}let t=l.maybeChild(e);if(!t)return null;l=t}let u=i&&e.state.sliceDoc(e.pos,e.pos+1)==i,m=l.list;return l==c&&o&&(m=m.concat(Object.keys(o).map((e=>({label:e,type:"constant"}))))),{from:a,to:u?e.pos+1:void 0,options:(p=i,f=m,p?f.map((e=>Object.assign(Object.assign({},e),{label:e.label[0]==p?e.label:p+e.label+p,apply:void 0}))):f),validFor:i?U:T};var p,f}}(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||D):()=>null}function L(e){return e.schema?(e.dialect||D).language.data.of({autocomplete:Z(e)}):[]}function V(e={}){let t=e.dialect||D;return new n.Yy(t.language,[L(e),R(t,!!e.upperCaseKeywords)])}const D=B.define({}),N=B.define({charSetCasts:!0,doubleDollarQuotedStrings:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:v+"abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:b+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"}),$="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill",E=b+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed",W="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee",G=B.define({operatorChars:"*+-%<>!=&|^",charSetCasts:!0,doubleQuotedStrings:!0,unquotedBitLiterals:!0,hashComments:!0,spaceAfterDashes:!0,specialVar:"@?",identifierQuotes:"`",keywords:v+"group_concat "+$,types:E,builtin:W}),Y=B.define({operatorChars:"*+-%<>!=&|^",charSetCasts:!0,doubleQuotedStrings:!0,unquotedBitLiterals:!0,hashComments:!0,spaceAfterDashes:!0,specialVar:"@?",identifierQuotes:"`",keywords:v+"always generated groupby_concat hard persistent shutdown soft virtual "+$,types:E,builtin:W}),M=B.define({keywords:v+"trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock pivot readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx unpivot updlock with",types:b+"bigint smallint smallmoney tinyint money real text nvarchar ntext varbinary image hierarchyid uniqueidentifier sql_variant xml",builtin:"binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id",operatorChars:"*+-%<>!=^&|/",specialVar:"@"}),K=B.define({keywords:v+"abort analyze attach autoincrement conflict database detach exclusive fail glob ignore index indexed instead isnull notnull offset plan pragma query raise regexp reindex rename replace temp vacuum virtual",types:b+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int2 int8 unsigned signed real",builtin:"auth backup bail changes clone databases dbinfo dump echo eqp explain fullschema headers help import imposter indexes iotrace lint load log mode nullvalue once print prompt quit restore save scanstats separator shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width",operatorChars:"*+-%<>!=&|/~",identifierQuotes:'`"',specialVar:"@:?$"}),F=B.define({keywords:"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime infinity NaN",types:b+"ascii bigint blob counter frozen inet list map static text timeuuid tuple uuid varint",slashComments:!0}),H=B.define({keywords:v+"abort accept access add all alter and any arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body by case cast char_base check close cluster clusters colauth column comment commit compress connected constant constraint crash create current currval cursor data_base database dba deallocate debugoff debugon declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry exception exception_init exchange exclusive exists external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base of off offline on online only option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw rebuild record ref references refresh rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work",builtin:"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define echo editfile embedded feedback flagger flush heading headsep instance linesize lno loboffset logsource longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar repfooter repheader serveroutput shiftinout show showmode spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout timing trimout trimspool ttitle underline verify version wrap",types:b+"ascii bfile bfilename bigserial bit blob dec long number nvarchar nvarchar2 serial smallint string text uid varchar2 xml",operatorChars:"*/+-%<>!=~",doubleQuotedStrings:!0,charSetCasts:!0,plsqlQuotingMechanism:!0})}}]); +//# sourceMappingURL=3726.thebe-core.min.js.map \ No newline at end of file diff --git a/3805.thebe-core.min.js b/3805.thebe-core.min.js new file mode 100644 index 00000000..ad779847 --- /dev/null +++ b/3805.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[3805],{63805:(e,t,n)=>{function r(e,t,n){return function(r,i){for(;!r.eol();){if(r.match(t)){i.tokenize=a;break}r.next()}return n&&(i.tokenize=n),e}}function i(e){return function(t,n){for(;!t.eol();)t.next();return n.tokenize=a,e}}function a(e,t){function n(n){return t.tokenize=n,n(e,t)}var u=e.sol(),o=e.next();switch(o){case"{":return e.eat("/"),e.eatSpace(),e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),t.tokenize=s,"tag";case"_":if(e.eat("_"))return n(r("strong","__",a));break;case"'":if(e.eat("'"))return n(r("em","''",a));break;case"(":if(e.eat("("))return n(r("link","))",a));break;case"[":return n(r("url","]",a));case"|":if(e.eat("|"))return n(r("comment","||"));break;case"-":if(e.eat("="))return n(r("header string","=-",a));if(e.eat("-"))return n(r("error tw-deleted","--",a));break;case"=":if(e.match("=="))return n(r("tw-underline","===",a));break;case":":if(e.eat(":"))return n(r("comment","::"));break;case"^":return n(r("tw-box","^"));case"~":if(e.match("np~"))return n(r("meta","~/np~"))}if(u)switch(o){case"!":return e.match("!!!!!")||e.match("!!!!")||e.match("!!!")||e.match("!!"),n(i("header string"));case"*":case"#":case"+":return n(i("tw-listitem bracket"))}return null}var u,o,c,f;function s(e,t){var n,r=e.next(),i=e.peek();return"}"==r?(t.tokenize=a,"tag"):"("==r||")"==r?"bracket":"="==r?(o="equals",">"==i&&(e.next(),i=e.peek()),/[\'\"]/.test(i)||(t.tokenize=function(e,t){for(;!e.eol();){var n=e.next(),r=e.peek();if(" "==n||","==n||/[ )}]/.test(r)){t.tokenize=s;break}}return"string"}),"operator"):/[\'\"]/.test(r)?(t.tokenize=(n=r,function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=s;break}return"string"}),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function l(){for(var e=arguments.length-1;e>=0;e--)c.cc.push(arguments[e])}function k(){return l.apply(null,arguments),!0}function d(e,t){var n=c.context&&c.context.noIndent;c.context={prev:c.context,pluginName:e,indent:c.indented,startOfLine:t,noIndent:n}}function p(){c.context&&(c.context=c.context.prev)}function g(e){if("openPlugin"==e)return c.pluginName=u,k(m,(n=c.startOfLine,function(e){return"selfclosePlugin"==e||"endPlugin"==e?k():"endPlugin"==e?(d(c.pluginName,n),k()):k()}));if("closePlugin"==e){var t=!1;return c.context?(t=c.context.pluginName!=u,p()):t=!0,t&&(f="error"),k(function(e){return function(t){return e&&(f="error"),"endPlugin"==t?k():l()}}(t))}return"string"==e?(c.context&&"!cdata"==c.context.name||d("!cdata"),c.tokenize==a&&p(),k()):k();var n}function m(e){return"keyword"==e?(f="attribute",k(m)):"equals"==e?k(x,m):l()}function x(e){return"keyword"==e?(f="string",k()):"string"==e?k(h):l()}function h(e){return"string"==e?k(h):l()}n.r(t),n.d(t,{tiki:()=>b});const b={name:"tiki",startState:function(){return{tokenize:a,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=e.indentation()),e.eatSpace())return null;f=o=u=null;var n=t.tokenize(e,t);if((n||o)&&"comment"!=n)for(c=t;!(t.cc.pop()||g)(o||n););return t.startOfLine=!1,f||n},indent:function(e,t,n){var r=e.context;if(r&&r.noIndent)return 0;for(r&&/^{\//.test(t)&&(r=r.prev);r&&!r.startOfLine;)r=r.prev;return r?r.indent+n.unit:0}}}}]); +//# sourceMappingURL=3805.thebe-core.min.js.map \ No newline at end of file diff --git a/4401.thebe-core.min.js b/4401.thebe-core.min.js new file mode 100644 index 00000000..35cded6a --- /dev/null +++ b/4401.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4401],{34401:(r,e,t)=>{t.r(e),t.d(e,{rpmChanges:()=>o,rpmSpec:()=>h});var a=/^-+$/,n=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,c=/^[\w+.-]+@[\w.-]+/;const o={name:"rpmchanges",token:function(r){if(r.sol()){if(r.match(a))return"tag";if(r.match(n))return"tag"}return r.match(c)?"string":(r.next(),null)}};var i=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,p=/^[a-zA-Z0-9()]+:/,u=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,s=/^%(ifnarch|ifarch|if)/,l=/^%(else|endif)/,m=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const h={name:"rpmspec",startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(r,e){if("#"==r.peek())return r.skipToEnd(),"comment";if(r.sol()){if(r.match(p))return"header";if(r.match(u))return"atom"}if(r.match(/^\$\w+/))return"def";if(r.match(/^\$\{\w+\}/))return"def";if(r.match(l))return"keyword";if(r.match(s))return e.controlFlow=!0,"keyword";if(e.controlFlow){if(r.match(m))return"operator";if(r.match(/^(\d+)/))return"number";r.eol()&&(e.controlFlow=!1)}if(r.match(i))return r.eol()&&(e.controlFlow=!1),"number";if(r.match(/^%[\w]+/))return r.match("(")&&(e.macroParameters=!0),"keyword";if(e.macroParameters){if(r.match(/^\d+/))return"number";if(r.match(")"))return e.macroParameters=!1,"keyword"}return r.match(/^%\{\??[\w \-\:\!]+\}/)?(r.eol()&&(e.controlFlow=!1),"def"):(r.next(),null)}}}}]); +//# sourceMappingURL=4401.thebe-core.min.js.map \ No newline at end of file diff --git a/4424.thebe-core.min.js b/4424.thebe-core.min.js new file mode 100644 index 00000000..d607cba2 --- /dev/null +++ b/4424.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4424],{74424:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;r_});var i="body catch class do else enum for foreach foreach_reverse if in interface mixin out scope struct switch try union unittest version while with";const o={keywords:r("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue debug default delegate delete deprecated export extern final finally function goto immutable import inout invariant is lazy macro module new nothrow override package pragma private protected public pure ref return shared short static super synchronized template this throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters "+i),blockKeywords:r(i),builtin:r("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte ucent uint ulong ushort wchar wstring void size_t sizediff_t"),atoms:r("exit failure success true false null"),hooks:{"@":function(e,t){return e.eatWhile(/[\w\$_]/),"meta"}}};var a,l=o.statementIndentUnit,u=o.keywords,s=o.builtin,c=o.blockKeywords,f=o.atoms,d=o.hooks,p=o.multiLineStrings,m=/[+\-*&%=<>!?|\/]/;function h(e,t){var n,r=e.next();if(d[r]){var i=d[r](e,t);if(!1!==i)return i}if('"'==r||"'"==r||"`"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!p)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(r))return a=r,null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("+"))return t.tokenize=b,b(e,t);if(e.eat("*"))return t.tokenize=y,y(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(m.test(r))return e.eatWhile(m),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var o=e.current();return u.propertyIsEnumerable(o)?(c.propertyIsEnumerable(o)&&(a="newstatement"),"keyword"):s.propertyIsEnumerable(o)?(c.propertyIsEnumerable(o)&&(a="newstatement"),"builtin"):f.propertyIsEnumerable(o)?"atom":"variable"}function y(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="+"==n}return"comment"}function k(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function v(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new k(r,t,n,null,e.context)}function w(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const _={name:"d",startState:function(e){return{tokenize:null,context:new k(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;a=null;var r=(t.tokenize||h)(e,t);if("comment"==r||"meta"==r)return r;if(null==n.align&&(n.align=!0),";"!=a&&":"!=a&&","!=a||"statement"!=n.type)if("{"==a)v(t,e.column(),"}");else if("["==a)v(t,e.column(),"]");else if("("==a)v(t,e.column(),")");else if("}"==a){for(;"statement"==n.type;)n=w(t);for("}"==n.type&&(n=w(t));"statement"==n.type;)n=w(t)}else a==n.type?w(t):(("}"==n.type||"top"==n.type)&&";"!=a||"statement"==n.type&&"newstatement"==a)&&v(t,e.column(),"statement");else w(t);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=h&&null!=e.tokenize)return null;var r=e.context,i=t&&t.charAt(0);"statement"==r.type&&"}"==i&&(r=r.prev);var o=i==r.type;return"statement"==r.type?r.indented+("{"==i?0:l||n.unit):r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); +//# sourceMappingURL=4424.thebe-core.min.js.map \ No newline at end of file diff --git a/4448.thebe-core.min.js b/4448.thebe-core.min.js new file mode 100644 index 00000000..e6cf1d4e --- /dev/null +++ b/4448.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4448],{14448:(e,O,a)=>{a.r(O),a.d(O,{css:()=>R,cssCompletionSource:()=>_,cssLanguage:()=>W,defineCSSCompletionSource:()=>x});var t=a(73643),o=a(49913);const r=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];function l(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}function i(e){return e>=48&&e<=57}const n=new t.Lu(((e,O)=>{for(let a=!1,t=0,o=0;;o++){let{next:r}=e;if(l(r)||45==r||95==r||a&&i(r))!a&&(45!=r||o>0)&&(a=!0),t===o&&45==r&&t++,e.advance();else{if(92!=r||10==e.peek(1)){a&&e.acceptToken(40==r?100:2==t&&O.canShift(2)?2:101);break}e.advance(),e.next>-1&&e.advance(),a=!0}}})),s=new t.Lu((e=>{if(r.includes(e.peek(-1))){let{next:O}=e;(l(O)||95==O||35==O||46==O||91==O||58==O&&l(e.peek(1))||45==O||38==O)&&e.acceptToken(99)}})),d=new t.Lu((e=>{if(!r.includes(e.peek(-1))){let{next:O}=e;if(37==O&&(e.advance(),e.acceptToken(1)),l(O)){do{e.advance()}while(l(e.next)||i(e.next));e.acceptToken(1)}}})),c=(0,o.pn)({"AtKeyword import charset namespace keyframes media supports":o._A.definitionKeyword,"from to selector":o._A.keyword,NamespaceName:o._A.namespace,KeyframeName:o._A.labelName,KeyframeRangeName:o._A.operatorKeyword,TagName:o._A.tagName,ClassName:o._A.className,PseudoClassName:o._A.constant(o._A.className),IdName:o._A.labelName,"FeatureName PropertyName":o._A.propertyName,AttributeName:o._A.attributeName,NumberLiteral:o._A.number,KeywordQuery:o._A.keyword,UnaryQueryOp:o._A.operatorKeyword,"CallTag ValueName":o._A.atom,VariableName:o._A.variableName,Callee:o._A.operatorKeyword,Unit:o._A.unit,"UniversalSelector NestingSelector":o._A.definitionOperator,MatchOp:o._A.compareOperator,"ChildOp SiblingOp, LogicOp":o._A.logicOperator,BinOp:o._A.arithmeticOperator,Important:o._A.modifier,Comment:o._A.blockComment,ColorLiteral:o._A.color,"ParenthesizedContent StringLiteral":o._A.string,":":o._A.punctuation,"PseudoOp #":o._A.derefOperator,"; ,":o._A.separator,"( )":o._A.paren,"[ ]":o._A.squareBracket,"{ }":o._A.brace}),Q={__proto__:null,lang:32,"nth-child":32,"nth-last-child":32,"nth-of-type":32,"nth-last-of-type":32,dir:32,"host-context":32,url:60,"url-prefix":60,domain:60,regexp:60,selector:138},p={__proto__:null,"@import":118,"@media":142,"@charset":146,"@namespace":150,"@keyframes":156,"@supports":168},u={__proto__:null,not:132,only:132},S=t.U1.deserialize({version:14,states:":^QYQ[OOO#_Q[OOP#fOWOOOOQP'#Cd'#CdOOQP'#Cc'#CcO#kQ[O'#CfO$_QXO'#CaO$fQ[O'#ChO$qQ[O'#DTO$vQ[O'#DWOOQP'#Em'#EmO${QdO'#DgO%jQ[O'#DtO${QdO'#DvO%{Q[O'#DxO&WQ[O'#D{O&`Q[O'#ERO&nQ[O'#ETOOQS'#El'#ElOOQS'#EW'#EWQYQ[OOO&uQXO'#CdO'jQWO'#DcO'oQWO'#EsO'zQ[O'#EsQOQWOOP(UO#tO'#C_POOO)C@[)C@[OOQP'#Cg'#CgOOQP,59Q,59QO#kQ[O,59QO(aQ[O'#E[O({QWO,58{O)TQ[O,59SO$qQ[O,59oO$vQ[O,59rO(aQ[O,59uO(aQ[O,59wO(aQ[O,59xO)`Q[O'#DbOOQS,58{,58{OOQP'#Ck'#CkOOQO'#DR'#DROOQP,59S,59SO)gQWO,59SO)lQWO,59SOOQP'#DV'#DVOOQP,59o,59oOOQO'#DX'#DXO)qQ`O,59rOOQS'#Cp'#CpO${QdO'#CqO)yQvO'#CsO+ZQtO,5:ROOQO'#Cx'#CxO)lQWO'#CwO+oQWO'#CyO+tQ[O'#DOOOQS'#Ep'#EpOOQO'#Dj'#DjO+|Q[O'#DqO,[QWO'#EtO&`Q[O'#DoO,jQWO'#DrOOQO'#Eu'#EuO)OQWO,5:`O,oQpO,5:bOOQS'#Dz'#DzO,wQWO,5:dO,|Q[O,5:dOOQO'#D}'#D}O-UQWO,5:gO-ZQWO,5:mO-cQWO,5:oOOQS-E8U-E8UO${QdO,59}O-kQ[O'#E^O-xQWO,5;_O-xQWO,5;_POOO'#EV'#EVP.TO#tO,58yPOOO,58y,58yOOQP1G.l1G.lO.zQXO,5:vOOQO-E8Y-E8YOOQS1G.g1G.gOOQP1G.n1G.nO)gQWO1G.nO)lQWO1G.nOOQP1G/Z1G/ZO/XQ`O1G/^O/rQXO1G/aO0YQXO1G/cO0pQXO1G/dO1WQWO,59|O1]Q[O'#DSO1dQdO'#CoOOQP1G/^1G/^O${QdO1G/^O1kQpO,59]OOQS,59_,59_O${QdO,59aO1sQWO1G/mOOQS,59c,59cO1xQ!bO,59eOOQS'#DP'#DPOOQS'#EY'#EYO2QQ[O,59jOOQS,59j,59jO2YQWO'#DjO2eQWO,5:VO2jQWO,5:]O&`Q[O,5:XO&`Q[O'#E_O2rQWO,5;`O2}QWO,5:ZO(aQ[O,5:^OOQS1G/z1G/zOOQS1G/|1G/|OOQS1G0O1G0OO3`QWO1G0OO3eQdO'#EOOOQS1G0R1G0ROOQS1G0X1G0XOOQS1G0Z1G0ZO3pQtO1G/iOOQO,5:x,5:xO4WQ[O,5:xOOQO-E8[-E8[O4eQWO1G0yPOOO-E8T-E8TPOOO1G.e1G.eOOQP7+$Y7+$YOOQP7+$x7+$xO${QdO7+$xOOQS1G/h1G/hO4pQXO'#ErO4wQWO,59nO4|QtO'#EXO5tQdO'#EoO6OQWO,59ZO6TQpO7+$xOOQS1G.w1G.wOOQS1G.{1G.{OOQS7+%X7+%XO6]QWO1G/POOQS-E8W-E8WOOQS1G/U1G/UO${QdO1G/qOOQO1G/w1G/wOOQO1G/s1G/sO6bQWO,5:yOOQO-E8]-E8]O6pQXO1G/xOOQS7+%j7+%jO6wQYO'#CsOOQO'#EQ'#EQO7SQ`O'#EPOOQO'#EP'#EPO7_QWO'#E`O7gQdO,5:jOOQS,5:j,5:jO7rQtO'#E]O${QdO'#E]O8sQdO7+%TOOQO7+%T7+%TOOQO1G0d1G0dO9WQpO<OAN>OO:xQdO,5:uOOQO-E8X-E8XOOQO<T![;'S%^;'S;=`%o<%lO%^l;TUo`Oy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^l;nYo`#e[Oy%^z!Q%^!Q![;g![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^l[[o`#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^n?VSt^Oy%^z;'S%^;'S;=`%o<%lO%^l?hWjWOy%^z!O%^!O!P;O!P!Q%^!Q![>T![;'S%^;'S;=`%o<%lO%^n@VU#bQOy%^z!Q%^!Q![;g![;'S%^;'S;=`%o<%lO%^~@nTjWOy%^z{@}{;'S%^;'S;=`%o<%lO%^~AUSo`#[~Oy%^z;'S%^;'S;=`%o<%lO%^lAg[#e[Oy%^z!O%^!O!P;g!P!Q%^!Q![>T![!g%^!g!h<^!h#X%^#X#Y<^#Y;'S%^;'S;=`%o<%lO%^bBbU]QOy%^z![%^![!]Bt!];'S%^;'S;=`%o<%lO%^bB{S^Qo`Oy%^z;'S%^;'S;=`%o<%lO%^nC^S!Y^Oy%^z;'S%^;'S;=`%o<%lO%^dCoS|SOy%^z;'S%^;'S;=`%o<%lO%^bDQU!OQOy%^z!`%^!`!aDd!a;'S%^;'S;=`%o<%lO%^bDkS!OQo`Oy%^z;'S%^;'S;=`%o<%lO%^bDzWOy%^z!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^bEk[![Qo`Oy%^z}%^}!OEd!O!Q%^!Q![Ed![!c%^!c!}Ed!}#T%^#T#oEd#o;'S%^;'S;=`%o<%lO%^nFfSq^Oy%^z;'S%^;'S;=`%o<%lO%^nFwSp^Oy%^z;'S%^;'S;=`%o<%lO%^bGWUOy%^z#b%^#b#cGj#c;'S%^;'S;=`%o<%lO%^bGoUo`Oy%^z#W%^#W#XHR#X;'S%^;'S;=`%o<%lO%^bHYS!bQo`Oy%^z;'S%^;'S;=`%o<%lO%^bHiUOy%^z#f%^#f#gHR#g;'S%^;'S;=`%o<%lO%^fIQS!TUOy%^z;'S%^;'S;=`%o<%lO%^nIcS!S^Oy%^z;'S%^;'S;=`%o<%lO%^fItU!RQOy%^z!_%^!_!`6y!`;'S%^;'S;=`%o<%lO%^`JZP;=`<%l$}",tokenizers:[s,d,n,1,2,3,4,new t.uC("m~RRYZ[z{a~~g~aO#^~~dP!P!Qg~lO#_~~",28,105)],topRules:{StyleSheet:[0,4],Styles:[1,86]},specialized:[{term:100,get:e=>Q[e]||-1},{term:58,get:e=>p[e]||-1},{term:101,get:e=>u[e]||-1}],tokenPrec:1200});var m=a(29587),g=a(79066);let h=null;function b(){if(!h&&"object"==typeof document&&document.body){let{style:e}=document.body,O=[],a=new Set;for(let t in e)"cssText"!=t&&"cssFloat"!=t&&"string"==typeof e[t]&&(/[A-Z]/.test(t)&&(t=t.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),a.has(t)||(O.push(t),a.add(t)));h=O.sort().map((e=>({type:"property",label:e})))}return h||[]}const $=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map((e=>({type:"class",label:e}))),y=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((e=>({type:"keyword",label:e}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((e=>({type:"constant",label:e})))),f=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((e=>({type:"type",label:e}))),P=/^(\w[\w-]*|-\w[\w-]*|)$/,X=/^-(-[\w-]*)?$/,w=new g.RY,z=["Declaration"];function v(e){for(let O=e;;){if(O.type.isTop)return O;if(!(O=O.parent))return e}}function k(e,O,a){if(O.to-O.from>4096){let t=w.get(O);if(t)return t;let o=[],r=new Set,l=O.cursor(g.Qj.IncludeAnonymous);if(l.firstChild())do{for(let O of k(e,l.node,a))r.has(O.label)||(r.add(O.label),o.push(O))}while(l.nextSibling());return w.set(O,o),o}{let t=[],o=new Set;return O.cursor().iterate((O=>{var r;if(a(O)&&O.matchContext(z)&&":"==(null===(r=O.node.nextSibling)||void 0===r?void 0:r.name)){let a=e.sliceString(O.from,O.to);o.has(a)||(o.add(a),t.push({label:a,type:"variable"}))}})),t}}const x=e=>O=>{let{state:a,pos:t}=O,o=(0,m.mv)(a).resolveInner(t,-1),r=o.type.isError&&o.from==o.to-1&&"-"==a.doc.sliceString(o.from,o.to);if("PropertyName"==o.name||(r||"TagName"==o.name)&&/^(Block|Styles)$/.test(o.resolve(o.to).name))return{from:o.from,options:b(),validFor:P};if("ValueName"==o.name)return{from:o.from,options:y,validFor:P};if("PseudoClassName"==o.name)return{from:o.from,options:$,validFor:P};if(e(o)||(O.explicit||r)&&function(e,O){var a;if(("("==e.name||e.type.isError)&&(e=e.parent||e),"ArgList"!=e.name)return!1;let t=null===(a=e.parent)||void 0===a?void 0:a.firstChild;return"Callee"==(null==t?void 0:t.name)&&"var"==O.sliceString(t.from,t.to)}(o,a.doc))return{from:e(o)||r?o.from:t,options:k(a.doc,v(o),e),validFor:X};if("TagName"==o.name){for(let{parent:e}=o;e;e=e.parent)if("Block"==e.name)return{from:o.from,options:b(),validFor:P};return{from:o.from,options:f,validFor:P}}if(!O.explicit)return null;let l=o.resolve(t),i=l.childBefore(t);return i&&":"==i.name&&"PseudoClassSelector"==l.name?{from:t,options:$,validFor:P}:i&&":"==i.name&&"Declaration"==l.name||"ArgList"==l.name?{from:t,options:y,validFor:P}:"Block"==l.name||"Styles"==l.name?{from:t,options:b(),validFor:P}:null},_=x((e=>"VariableName"==e.name)),W=m.bj.define({name:"css",parser:S.configure({props:[m.Oh.add({Declaration:(0,m.mz)()}),m.b_.add({"Block KeyframeList":m.yd})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function R(){return new m.Yy(W,W.data.of({autocomplete:_}))}}}]); +//# sourceMappingURL=4448.thebe-core.min.js.map \ No newline at end of file diff --git a/4451.thebe-core.min.js b/4451.thebe-core.min.js new file mode 100644 index 00000000..f52107fa --- /dev/null +++ b/4451.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4451],{34451:(e,t,r)=>{function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}r.r(t),r.d(t,{idl:()=>d});var a=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extract","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"],_=i(a),o=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"],l=i(o),s=new RegExp("^[_a-z¡-￿][_a-z0-9¡-￿]*","i"),n=/[+\-*&=<>\/@#~$]/,c=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");const d={name:"idl",token:function(e){return function(e){if(e.eatSpace())return null;if(e.match(";"))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(l)?"keyword":e.match(_)?"builtin":e.match(s)?"variable":e.match(n)||e.match(c)?"operator":(e.next(),null)}(e)},languageData:{autocomplete:a.concat(o)}}}}]); +//# sourceMappingURL=4451.thebe-core.min.js.map \ No newline at end of file diff --git a/4501.thebe-core.min.js b/4501.thebe-core.min.js new file mode 100644 index 00000000..bb8c2801 --- /dev/null +++ b/4501.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4501],{4501:(e,t,n)=>{n.r(t),n.d(t,{cypher:()=>h});var r,a=function(e){return new RegExp("^(?:"+e.join("|")+")$","i")},o=function(e){r=null;var t=e.next();if('"'===t)return e.match(/^.*?"/),"string";if("'"===t)return e.match(/^.*?'/),"string";if(/[{}\(\),\.;\[\]]/.test(t))return r=t,"punctuation";if("/"===t&&e.eat("/"))return e.skipToEnd(),"comment";if(u.test(t))return e.eatWhile(u),null;if(e.eatWhile(/[_\w\d]/),e.eat(":"))return e.eatWhile(/[\w\d_\-]/),"atom";var n=e.current();return l.test(n)?"builtin":c.test(n)?"def":d.test(n)||p.test(n)?"keyword":"variable"},s=function(e,t,n){return e.context={prev:e.context,indent:e.indent,col:n,type:t}},i=function(e){return e.indent=e.context.indent,e.context=e.context.prev},l=a(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]),c=a(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]),d=a(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]),p=a(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]),u=/[*+\-<>=&|~%^]/;const h={name:"cypher",startState:function(){return{tokenize:o,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"!==n&&t.context&&null==t.context.align&&"pattern"!==t.context.type&&(t.context.align=!0),"("===r)s(t,")",e.column());else if("["===r)s(t,"]",e.column());else if("{"===r)s(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"===t.context.type;)i(t);t.context&&r===t.context.type&&i(t)}else"."===r&&t.context&&"pattern"===t.context.type?i(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?s(t,"pattern",e.column()):"pattern"!==t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),a=e.context;if(/[\]\}]/.test(r))for(;a&&"pattern"===a.type;)a=a.prev;var o=a&&r===a.type;return a?"keywords"===a.type?null:a.align?a.col+(o?0:1):a.indent+(o?0:n.unit):0}}}}]); +//# sourceMappingURL=4501.thebe-core.min.js.map \ No newline at end of file diff --git a/4704.thebe-core.min.js b/4704.thebe-core.min.js new file mode 100644 index 00000000..5a174e05 --- /dev/null +++ b/4704.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4704],{94704:(e,t,r)=>{function n(e,t,r){return t(r),r(e,t)}r.r(t),r.d(t,{elm:()=>b});var i=/[a-z]/,o=/[A-Z]/,a=/[a-zA-Z0-9_]/,u=/[0-9]/,f=/[0-9A-Fa-f]/,s=/[-&*+.\\/<>=?^|:]/,l=/[(),[\]{}]/,c=/[ \v\f]/;function p(){return function(e,t){if(e.eatWhile(c))return null;var r=e.next();if(l.test(r))return"{"===r&&e.eat("-")?n(e,t,h(1)):"["===r&&e.match("glsl|")?n(e,t,g):"builtin";if("'"===r)return n(e,t,x);if('"'===r)return e.eat('"')?e.eat('"')?n(e,t,k):"string":n(e,t,m);if(o.test(r))return e.eatWhile(a),"type";if(i.test(r)){var p=1===e.pos;return e.eatWhile(a),p?"def":"variable"}if(u.test(r)){if("0"===r){if(e.eat(/[xX]/))return e.eatWhile(f),"number"}else e.eatWhile(u);return e.eat(".")&&e.eatWhile(u),e.eat(/[eE]/)&&(e.eat(/[-+]/),e.eatWhile(u)),"number"}return s.test(r)?"-"===r&&e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(s),"keyword"):"_"===r?"keyword":"error"}}function h(e){return 0==e?p():function(t,r){for(;!t.eol();){var n=t.next();if("{"==n&&t.eat("-"))++e;else if("-"==n&&t.eat("}")&&0==--e)return r(p()),"comment"}return r(h(e)),"comment"}}function k(e,t){for(;!e.eol();)if('"'===e.next()&&e.eat('"')&&e.eat('"'))return t(p()),"string";return"string"}function m(e,t){for(;e.skipTo('\\"');)e.next(),e.next();return e.skipTo('"')?(e.next(),t(p()),"string"):(e.skipToEnd(),t(p()),"error")}function x(e,t){for(;e.skipTo("\\'");)e.next(),e.next();return e.skipTo("'")?(e.next(),t(p()),"string"):(e.skipToEnd(),t(p()),"error")}function g(e,t){for(;!e.eol();)if("|"===e.next()&&e.eat("]"))return t(p()),"string";return"string"}var d={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const b={name:"elm",startState:function(){return{f:p()}},copyState:function(e){return{f:e.f}},token:function(e,t){var r=t.f(e,(function(e){t.f=e})),n=e.current();return d.hasOwnProperty(n)?"keyword":r},languageData:{commentTokens:{line:"--"}}}}}]); +//# sourceMappingURL=4704.thebe-core.min.js.map \ No newline at end of file diff --git a/4756.thebe-core.min.js b/4756.thebe-core.min.js new file mode 100644 index 00000000..ba9262a5 --- /dev/null +++ b/4756.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4756],{54756:(e,t,r)=>{r.r(t),r.d(t,{stylus:()=>oe});var i=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],a=["domain","regexp","url-prefix","url"],o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],n=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],l=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],s=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],c=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],d=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],u=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],m=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],p=["for","if","else","unless","from","to"],h=["null","true","false","href","title","type","not-allowed","readonly","disabled"],b=i.concat(a,o,n,l,s,d,u,c,m,p,h,["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"]);function g(e){return e=e.sort((function(e,t){return t>e})),new RegExp("^(("+e.join(")|(")+"))\\b")}function f(e){for(var t={},r=0;r]=?|\?:|\~)/,E=g(m),O=f(p),W=new RegExp(/^\-(moz|ms|o|webkit)-/i),A=f(h),R="",S={};function X(e,t){if(R=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),t.context.line.firstWord=R?R[0].replace(/^\s*/,""):"",t.context.line.indent=e.indentation(),k=e.peek(),e.match("//"))return e.skipToEnd(),["comment","comment"];if(e.match("/*"))return t.tokenize=Y,Y(e,t);if('"'==k||"'"==k)return e.next(),t.tokenize=Z(k),t.tokenize(e,t);if("@"==k)return e.next(),e.eatWhile(/[\w\\-]/),["def",e.current()];if("#"==k){if(e.next(),e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if(e.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return e.match(W)?["meta","vendor-prefixes"]:e.match(/^-?[0-9]?\.?[0-9]/)?(e.eatWhile(/[a-z%]/i),["number","unit"]):"!"==k?(e.next(),[e.match(/^(important|optional)/i)?"keyword":"operator","important"]):"."==k&&e.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:e.match(N)?("("==e.peek()&&(t.tokenize=T),["property","word"]):e.match(/^[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","mixin"]):e.match(/^(\+|-)[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","block-mixin"]):e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(e.backUp(1),["variableName.special","reference"]):e.match(/^&{1}\s*$/)?["variableName.special","reference"]:e.match(E)?["operator","operator"]:e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?e.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!H(e.current())?(e.match("."),["variable","variable-name"]):["variable","word"]:e.match(U)?["operator",e.current()]:/[:;,{}\[\]\(\)]/.test(k)?(e.next(),[null,k]):(e.next(),[null,null])}function Y(e,t){for(var r,i=!1;null!=(r=e.next());){if(i&&"/"==r){t.tokenize=null;break}i="*"==r}return["comment","comment"]}function Z(e){return function(t,r){for(var i,a=!1;null!=(i=t.next());){if(i==e&&!a){")"==e&&t.backUp(1);break}a=!a&&"\\"==i}return(i==e||!a&&")"!=e)&&(r.tokenize=null),["string","string"]}}function T(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=Z(")"),[null,"("]}function D(e,t,r,i){this.type=e,this.indent=t,this.prev=r,this.line=i||{firstWord:"",indent:0}}function F(e,t,r,i){return i=i>=0?i:t.indentUnit,e.context=new D(r,t.indentation()+i,e.context),r}function I(e,t,r){var i=e.context.indent-t.indentUnit;return r=r||!1,e.context=e.context.prev,r&&(e.context.indent=i),e.context.type}function G(e,t,r,i){for(var a=i||1;a>0;a--)r.context=r.context.prev;return function(e,t,r){return S[r.context.type](e,t,r)}(e,t,r)}function H(e){return e.toLowerCase()in x}function J(e){return(e=e.toLowerCase())in q||e in P}function K(e){return e.toLowerCase()in O}function M(e){return e.toLowerCase().match(W)}function Q(e){var t=e.toLowerCase(),r="variable";return H(e)?r="tag":K(e)?r="block-keyword":J(e)?r="property":t in j||t in A?r="atom":"return"==t||t in B?r="keyword":e.match(/^[A-Z]/)&&(r="string"),r}function V(e,t){return ie(t)&&("{"==e||"]"==e||"hash"==e||"qualifier"==e)||"block-mixin"==e}function ee(e,t){return"{"==e&&t.match(/^\s*\$?[\w-]+/i,!1)}function te(e,t){return":"==e&&t.match(/^[a-z-]+/,!1)}function re(e){return e.sol()||e.string.match(new RegExp("^\\s*"+e.current().replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")))}function ie(e){return e.eol()||e.match(/^\s*$/,!1)}function ae(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i,r="string"==typeof e?e.match(t):e.string.match(t);return r?r[0].replace(/^\s*/,""):""}S.block=function(e,t,r){if("comment"==e&&re(t)||","==e&&ie(t)||"mixin"==e)return F(r,t,"block",0);if(ee(e,t))return F(r,t,"interpolation");if(ie(t)&&"]"==e&&!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!H(ae(t)))return F(r,t,"block",0);if(V(e,t))return F(r,t,"block");if("}"==e&&ie(t))return F(r,t,"block",0);if("variable-name"==e)return t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||K(ae(t))?F(r,t,"variableName"):F(r,t,"variableName",0);if("="==e)return ie(t)||K(ae(t))?F(r,t,"block"):F(r,t,"block",0);if("*"==e&&(ie(t)||t.match(/\s*(,|\.|#|\[|:|{)/,!1)))return v="tag",F(r,t,"block");if(te(e,t))return F(r,t,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(e))return F(r,t,ie(t)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return F(r,t,"keyframes");if(/@extends?/.test(e))return F(r,t,"extend",0);if(e&&"@"==e.charAt(0))return t.indentation()>0&&J(t.current().slice(1))?(v="variable","block"):/(@import|@require|@charset)/.test(e)?F(r,t,"block",0):F(r,t,"block");if("reference"==e&&ie(t))return F(r,t,"block");if("("==e)return F(r,t,"parens");if("vendor-prefixes"==e)return F(r,t,"vendorPrefixes");if("word"==e){var i=t.current();if("property"==(v=Q(i)))return re(t)?F(r,t,"block",0):(v="atom","block");if("tag"==v){if(/embed|menu|pre|progress|sub|table/.test(i)&&J(ae(t)))return v="atom","block";if(t.string.match(new RegExp("\\[\\s*"+i+"|"+i+"\\s*\\]")))return v="atom","block";if(z.test(i)&&(re(t)&&t.string.match(/=/)||!re(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!H(ae(t))))return v="variable",K(ae(t))?"block":F(r,t,"block",0);if(ie(t))return F(r,t,"block")}if("block-keyword"==v)return v="keyword",t.current(/(if|unless)/)&&!re(t)?"block":F(r,t,"block");if("return"==i)return F(r,t,"block",0);if("variable"==v&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return F(r,t,"block")}return r.context.type},S.parens=function(e,t,r){if("("==e)return F(r,t,"parens");if(")"==e)return"parens"==r.context.prev.type?I(r,t):t.string.match(/^[a-z][\w-]*\(/i)&&ie(t)||K(ae(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(ae(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&H(ae(t))?F(r,t,"block"):t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)?F(r,t,"block",0):ie(t)?F(r,t,"block"):F(r,t,"block",0);if(e&&"@"==e.charAt(0)&&J(t.current().slice(1))&&(v="variable"),"word"==e){var i=t.current();"tag"==(v=Q(i))&&z.test(i)&&(v="variable"),"property"!=v&&"to"!=i||(v="atom")}return"variable-name"==e?F(r,t,"variableName"):te(e,t)?F(r,t,"pseudo"):r.context.type},S.vendorPrefixes=function(e,t,r){return"word"==e?(v="property",F(r,t,"block",0)):I(r,t)},S.pseudo=function(e,t,r){return J(ae(t.string))?G(e,t,r):(t.match(/^[a-z-]+/),v="variableName.special",ie(t)?F(r,t,"block"):I(r,t))},S.atBlock=function(e,t,r){if("("==e)return F(r,t,"atBlock_parens");if(V(e,t))return F(r,t,"block");if(ee(e,t))return F(r,t,"interpolation");if("word"==e){var i=t.current().toLowerCase();if("tag"==(v=/^(only|not|and|or)$/.test(i)?"keyword":C.hasOwnProperty(i)?"tag":L.hasOwnProperty(i)?"attribute":_.hasOwnProperty(i)?"property":$.hasOwnProperty(i)?"string.special":Q(t.current()))&&ie(t))return F(r,t,"block")}return"operator"==e&&/^(not|and|or)$/.test(t.current())&&(v="keyword"),r.context.type},S.atBlock_parens=function(e,t,r){if("{"==e||"}"==e)return r.context.type;if(")"==e)return ie(t)?F(r,t,"block"):F(r,t,"atBlock");if("word"==e){var i=t.current().toLowerCase();return v=Q(i),/^(max|min)/.test(i)&&(v="property"),"tag"==v&&(v=z.test(i)?"variable":"atom"),r.context.type}return S.atBlock(e,t,r)},S.keyframes=function(e,t,r){return"0"==t.indentation()&&("}"==e&&re(t)||"]"==e||"hash"==e||"qualifier"==e||H(t.current()))?G(e,t,r):"{"==e?F(r,t,"keyframes"):"}"==e?re(t)?I(r,t,!0):F(r,t,"keyframes"):"unit"==e&&/^[0-9]+\%$/.test(t.current())?F(r,t,"keyframes"):"word"==e&&"block-keyword"==(v=Q(t.current()))?(v="keyword",F(r,t,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(e)?F(r,t,ie(t)?"block":"atBlock"):"mixin"==e?F(r,t,"block",0):r.context.type},S.interpolation=function(e,t,r){return"{"==e&&I(r,t)&&F(r,t,"block"),"}"==e?t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&H(ae(t))?F(r,t,"block"):!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,!1)?F(r,t,"block",0):F(r,t,"block"):"variable-name"==e?F(r,t,"variableName",0):("word"==e&&"tag"==(v=Q(t.current()))&&(v="atom"),r.context.type)},S.extend=function(e,t,r){return"["==e||"="==e?"extend":"]"==e?I(r,t):"word"==e?(v=Q(t.current()),"extend"):I(r,t)},S.variableName=function(e,t,r){return"string"==e||"["==e||"]"==e||t.current().match(/^(\.|\$)/)?(t.current().match(/^\.[\w-]+/i)&&(v="variable"),"variableName"):G(e,t,r)};const oe={name:"stylus",startState:function(){return{tokenize:null,state:"block",context:new D("block",0,null)}},token:function(e,t){return!t.tokenize&&e.eatSpace()?null:((w=(t.tokenize||X)(e,t))&&"object"==typeof w&&(y=w[1],w=w[0]),v=w,t.state=S[t.state](y,e,t),v)},indent:function(e,t,r){var i=e.context,a=t&&t.charAt(0),o=i.indent,n=ae(t),l=i.line.indent,s=e.context.prev?e.context.prev.line.firstWord:"",c=e.context.prev?e.context.prev.line.indent:l;return i.prev&&("}"==a&&("block"==i.type||"atBlock"==i.type||"keyframes"==i.type)||")"==a&&("parens"==i.type||"atBlock_parens"==i.type)||"{"==a&&"at"==i.type)?o=i.indent-r.unit:/(\})/.test(a)||(/@|\$|\d/.test(a)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(s)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||K(n)?o=l:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(a)||H(n)?o=/\,\s*$/.test(s)?c:e.sol()||!/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(s)&&!H(s)?l:l<=c?c:c+r.unit:/,\s*$/.test(t)||!M(n)&&!J(n)||(o=K(s)?l<=c?c:c+r.unit:/^\{/.test(s)?l<=c?l:c+r.unit:M(s)||J(s)?l>=c?c:l:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(s)||/=\s*$/.test(s)||H(s)||/^\$[\w-\.\[\]\'\"]/.test(s)?c+r.unit:l)),o},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:b}}}}]); +//# sourceMappingURL=4756.thebe-core.min.js.map \ No newline at end of file diff --git a/4872.thebe-core.min.js b/4872.thebe-core.min.js new file mode 100644 index 00000000..2ea4a7ae --- /dev/null +++ b/4872.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4872],{4872:(t,e,n)=>{var r;function a(t,e){return r=e,t}function u(t,e){var n,r=t.next();if("<"!=r||!t.eat("!")){if("<"==r&&t.eat("?"))return e.tokenize=function(t,e){for(;!t.eol();){if(t.match("?>")){e.tokenize=u;break}t.next()}return"meta"},a("meta",r);if("#"==r&&t.eatWhile(/[\w]/))return a("atom","tag");if("|"==r)return a("keyword","separator");if(r.match(/[\(\)\[\]\-\.,\+\?>]/))return a(null,r);if(r.match(/[\[\]]/))return a("rule",r);if('"'==r||"'"==r)return e.tokenize=(n=r,function(t,e){for(var r,i=!1;null!=(r=t.next());){if(r==n&&!i){e.tokenize=u;break}i=!i&&"\\"==r}return a("string","tag")}),e.tokenize(t,e);if(t.eatWhile(/[a-zA-Z\?\+\d]/)){var l=t.current();return null!==l.substr(l.length-1,l.length).match(/\?|\+/)&&t.backUp(1),a("tag","tag")}return"%"==r||"*"==r?a("number","number"):(t.eatWhile(/[\w\\\-_%.{,]/),a(null,null))}return t.eatWhile(/[\-]/)?(e.tokenize=i,i(t,e)):t.eatWhile(/[\w]/)?a("keyword","doindent"):void 0}function i(t,e){for(var n,r=0;null!=(n=t.next());){if(r>=2&&">"==n){e.tokenize=u;break}r="-"==n?r+1:0}return a("comment","comment")}n.r(e),n.d(e,{dtd:()=>l});const l={name:"dtd",startState:function(){return{tokenize:u,baseIndent:0,stack:[]}},token:function(t,e){if(t.eatSpace())return null;var n=e.tokenize(t,e),a=e.stack[e.stack.length-1];return"["==t.current()||"doindent"===r||"["==r?e.stack.push("rule"):"endtag"===r?e.stack[e.stack.length-1]="endtag":"]"==t.current()||"]"==r||">"==r&&"rule"==a?e.stack.pop():"["==r&&e.stack.push("["),n},indent:function(t,e,n){var a=t.stack.length;return"]"===e.charAt(0)?a--:">"===e.substr(e.length-1,e.length)&&("<"===e.substr(0,1)||"doindent"==r&&e.length>1||("doindent"==r?a--:">"==r&&e.length>1||"tag"==r&&">"!==e||("tag"==r&&"rule"==t.stack[t.stack.length-1]?a--:"tag"==r?a++:">"===e&&"rule"==t.stack[t.stack.length-1]&&">"===r?a--:">"===e&&"rule"==t.stack[t.stack.length-1]||("<"!==e.substr(0,1)&&">"===e.substr(0,1)?a-=1:">"===e||(a-=1)))),null!=r&&"]"!=r||a--),t.baseIndent+a*n.unit},languageData:{indentOnInput:/^\s*[\]>]$/}}}}]); +//# sourceMappingURL=4872.thebe-core.min.js.map \ No newline at end of file diff --git a/4922.thebe-core.min.js b/4922.thebe-core.min.js new file mode 100644 index 00000000..2049c77c --- /dev/null +++ b/4922.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4922],{94922:(e,t,n)=>{n.r(t),n.d(t,{shell:()=>k});var r={};function s(e,t){for(var n=0;n1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=c(n,"("==n?"quote":"{"==n?"def":"string"),h(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function h(e,t){return(t.tokens[0]||a)(e,t)}const k={name:"shell",startState:function(){return{tokens:[]}},token:function(e,t){return h(e,t)},languageData:{autocomplete:i.concat(o,u),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=4922.thebe-core.min.js.map \ No newline at end of file diff --git a/4957.thebe-core.min.js b/4957.thebe-core.min.js new file mode 100644 index 00000000..f6f46016 --- /dev/null +++ b/4957.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[4957],{24957:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rp});var a=r("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),i=r("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),o=r("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),s=/[+\-*&%=<>!?:\/|]/;function l(e,t,n){return t.tokenize=n,n(e,t)}function u(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if("'"==r&&!t.inString&&t.inParams)return t.lastTokenWasBuiltin=!1,l(e,t,f(r));if('"'!=r){if(/[\[\]{}\(\),;\.]/.test(r))return"("==r&&n?t.inParams=!0:")"==r&&(t.inParams=!1,t.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(/[\w\.]/),"number";if("#"==r&&e.eat("*"))return t.lastTokenWasBuiltin=!1,l(e,t,c);if("#"==r&&e.match(/ *\[ *\[/))return t.lastTokenWasBuiltin=!1,l(e,t,k);if("#"==r&&e.eat("#"))return t.lastTokenWasBuiltin=!1,e.skipToEnd(),"comment";if("$"==r)return e.eat("!"),e.eatWhile(/[\w\d\$_\.{}-]/),o&&o.propertyIsEnumerable(e.current())?"keyword":(t.lastTokenWasBuiltin=!0,t.beforeParams=!0,"builtin");if(s.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(s),"operator";e.eatWhile(/[\w\$_{}@]/);var u=e.current();return a&&a.propertyIsEnumerable(u)?"keyword":i&&i.propertyIsEnumerable(u)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&"("==e.peek()&&(!i||!i.propertyIsEnumerable(u.toLowerCase()))?(t.beforeParams=!0,t.lastTokenWasBuiltin=!1,"keyword"):t.inString?(t.lastTokenWasBuiltin=!1,"string"):e.pos>u.length&&"."==e.string.charAt(e.pos-u.length-1)&&t.lastTokenWasBuiltin?"builtin":(t.lastTokenWasBuiltin=!1,null)}return t.lastTokenWasBuiltin=!1,t.inString?(t.inString=!1,"string"):t.inParams?l(e,t,f(r)):void 0}function f(e){return function(t,n){for(var r,a=!1,i=!1;null!=(r=t.next());){if(r==e&&!a){i=!0;break}if('"'==e&&"$"==t.peek()&&!a){n.inString=!0,i=!0;break}a=!a&&"\\"==r}return i&&(n.tokenize=u),"string"}}function c(e,t){for(var n,r=!1;n=e.next();){if("#"==n&&r){t.tokenize=u;break}r="*"==n}return"comment"}function k(e,t){for(var n,r=0;n=e.next();){if("#"==n&&2==r){t.tokenize=u;break}"]"==n?r++:" "!=n&&(r=0)}return"meta"}const p={name:"velocity",startState:function(){return{tokenize:u,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"##",block:{open:"#*",close:"*#"}}}}}}]); +//# sourceMappingURL=4957.thebe-core.min.js.map \ No newline at end of file diff --git a/51.thebe-lite.min.js b/51.thebe-lite.min.js new file mode 100644 index 00000000..6e55d39a --- /dev/null +++ b/51.thebe-lite.min.js @@ -0,0 +1,3 @@ +/*! For license information please see 51.thebe-lite.min.js.LICENSE.txt */ +"use strict";(self.webpackChunkthebe_lite=self.webpackChunkthebe_lite||[]).push([[51],{7051:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{var Ni=Object.create,Ge=Object.defineProperty,qi=Object.getOwnPropertyDescriptor,Li=Object.getOwnPropertyNames,Fi=Object.getPrototypeOf,$i=Object.prototype.hasOwnProperty,se=(e,t)=>()=>(e&&(t=e(e=0)),t),F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bi=(e,t)=>{for(var i in t)Ge(e,i,{get:t[i],enumerable:!0})},Wi=(e,t,i,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of Li(t))!$i.call(e,n)&&n!==i&&Ge(e,n,{get:()=>t[n],enumerable:!(a=qi(t,n))||a.enumerable});return e},le=(e,t,i)=>(i=null!=e?Ni(Fi(e)):{},Wi(!t&&e&&e.__esModule?i:Ge(i,"default",{value:e,enumerable:!0}),e)),Xe=F(((e,t)=>{var i,a;i=e,a=function(e){function t(e,t){let i=0;for(let a of e)if(!1===t(a,i++))return!1;return!0}var i;e.ArrayExt=void 0,function(e){function t(e,t,i=0,a=-1){let n,o=e.length;if(0===o)return-1;i=i<0?Math.max(0,i+o):Math.min(i,o-1),n=(a=a<0?Math.max(0,a+o):Math.min(a,o-1))=i)return;let a=e[t];for(let a=t+1;a0;){let a=s>>1,n=r+a;i(e[n],t)<0?(r=n+1,s-=a+1):s=a}return r},e.upperBound=function(e,t,i,a=0,n=-1){let o=e.length;if(0===o)return 0;let r=a=a<0?Math.max(0,a+o):Math.min(a,o-1),s=(n=n<0?Math.max(0,n+o):Math.min(n,o-1))-a+1;for(;s>0;){let a=s>>1,n=r+a;i(e[n],t)>0?s=a:(r=n+1,s-=a+1)}return r},e.shallowEqual=function(e,t,i){if(e===t)return!0;if(e.length!==t.length)return!1;for(let a=0,n=e.length;a=r&&(i=n<0?r-1:r),void 0===a?a=n<0?-1:r:a<0?a=Math.max(a+r,n<0?-1:0):a>=r&&(a=n<0?r-1:r),o=n<0&&a>=i||n>0&&i>=a?0:n<0?Math.floor((a-i+1)/n+1):Math.floor((a-i-1)/n+1);let s=[];for(let t=0;t=(a=a<0?Math.max(0,a+n):Math.min(a,n-1)))return;let r=a-i+1;if(t>0?t%=r:t<0&&(t=(t%r+r)%r),0===t)return;let s=i+t;o(e,i,s-1),o(e,s,a),o(e,i,a)},e.fill=function(e,t,i=0,a=-1){let n,o=e.length;if(0!==o){i=i<0?Math.max(0,i+o):Math.min(i,o-1),n=(a=a<0?Math.max(0,a+o):Math.min(a,o-1))t;--i)e[i]=e[i-1];e[t]=i},e.removeAt=r,e.removeFirstOf=function(e,i,a=0,n=-1){let o=t(e,i,a,n);return-1!==o&&r(e,o),o},e.removeLastOf=function(e,t,a=-1,n=0){let o=i(e,t,a,n);return-1!==o&&r(e,o),o},e.removeAllOf=function(e,t,i=0,a=-1){let n=e.length;if(0===n)return 0;i=i<0?Math.max(0,i+n):Math.min(i,n-1),a=a<0?Math.max(0,a+n):Math.min(a,n-1);let o=0;for(let r=0;r=i&&r<=a&&e[r]===t||a=i)&&e[r]===t?o++:o>0&&(e[r-o]=e[r]);return o>0&&(e.length=n-o),o},e.removeFirstWhere=function(e,t,i=0,n=-1){let o,s=a(e,t,i,n);return-1!==s&&(o=r(e,s)),{index:s,value:o}},e.removeLastWhere=function(e,t,i=-1,a=0){let o,s=n(e,t,i,a);return-1!==s&&(o=r(e,s)),{index:s,value:o}},e.removeAllWhere=function(e,t,i=0,a=-1){let n=e.length;if(0===n)return 0;i=i<0?Math.max(0,i+n):Math.min(i,n-1),a=a<0?Math.max(0,a+n):Math.min(a,n-1);let o=0;for(let r=0;r=i&&r<=a&&t(e[r],r)||a=i)&&t(e[r],r)?o++:o>0&&(e[r-o]=e[r]);return o>0&&(e.length=n-o),o}}(e.ArrayExt||(e.ArrayExt={})),(i||(i={})).rangeLength=function(e,t,i){return 0===i?1/0:e>t&&i>0||et?1:0}}(e.StringExt||(e.StringExt={})),e.chain=function*(...e){for(let t of e)yield*t},e.each=function(e,t){let i=0;for(let a of e)if(!1===t(a,i++))return},e.empty=function*(){},e.enumerate=function*(e,t=0){for(let i of e)yield[t++,i]},e.every=t,e.filter=function*(e,t){let i=0;for(let a of e)t(a,i++)&&(yield a)},e.find=function(e,t){let i=0;for(let a of e)if(t(a,i++))return a},e.findIndex=function(e,t){let i=0;for(let a of e)if(t(a,i++))return i-1;return-1},e.map=function*(e,t){let i=0;for(let a of e)yield t(a,i++)},e.max=function(e,t){let i;for(let a of e)void 0!==i?t(a,i)>0&&(i=a):i=a;return i},e.min=function(e,t){let i;for(let a of e)void 0!==i?t(a,i)<0&&(i=a):i=a;return i},e.minmax=function(e,t){let i,a,n=!0;for(let o of e)n?(i=o,a=o,n=!1):t(o,i)<0?i=o:t(o,a)>0&&(a=o);return n?void 0:[i,a]},e.once=function*(e){yield e},e.range=function*(e,t,a){void 0===t?(t=e,e=0,a=1):void 0===a&&(a=1);let n=i.rangeLength(e,t,a);for(let t=0;t-1;t--)yield e[t]},e.some=function(e,t){let i=0;for(let a of e)if(t(a,i++))return!0;return!1},e.stride=function*(e,t){let i=0;for(let a of e)i++%t==0&&(yield a)},e.take=function*(e,t){if(t<1)return;let i,a=e[Symbol.iterator]();for(;0e[Symbol.iterator]())),a=i.map((e=>e.next()));for(;t(a,(e=>!e.done));a=i.map((e=>e.next())))yield a.map((e=>e.value))}},"object"==typeof e&&void 0!==t?a(e):"function"==typeof define&&__webpack_require__.amdO?define(["exports"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_algorithm={})})),de=F(((e,t)=>{var i,a;i=e,a=function(e,t){var i;function a(e){let t=0;for(let i=0,a=e.length;i>>0),e[i]=255&t,t>>>=8}e.JSONExt=void 0,function(e){function t(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e}function i(e){return Array.isArray(e)}e.emptyObject=Object.freeze({}),e.emptyArray=Object.freeze([]),e.isPrimitive=t,e.isArray=i,e.isObject=function(e){return!t(e)&&!i(e)},e.deepEqual=function e(a,n){if(a===n)return!0;if(t(a)||t(n))return!1;let o=i(a),r=i(n);return o===r&&(o&&r?function(t,i){if(t===i)return!0;if(t.length!==i.length)return!1;for(let a=0,n=t.length;a{if(a===e.provides)return!0;let r=i.get(a);if(!r)return!1;let s=t.get(r),l=[...s.requires,...s.optional];return 0!==l.length&&(o.push(r),!!l.some(n)||(o.pop(),!1))};if(!e.provides||0===a.length)return;let o=[e.id];if(a.some(n))throw new ReferenceError(`Cycle detected: ${o.join(" -> ")}.`)},e.findDependents=function(e,i,a){let n=new Array,o=e=>{let t=i.get(e),o=[...t.requires,...t.optional];n.push(...o.reduce(((t,i)=>{let n=a.get(i);return n&&t.push([e,n]),t}),[]))};for(let e of i.keys())o(e);let r=n.filter((t=>t[1]===e)),s=0;for(;r.length>s;){let e=r.length,t=new Set(r.map((e=>e[0])));for(let e of t)n.filter((t=>t[1]===e)).forEach((e=>{r.includes(e)||r.push(e)}));s=e}let l=t.topologicSort(r),p=l.findIndex((t=>t===e));return-1===p?[e]:l.slice(0,p+1)},e.collectStartupPlugins=function(e,t){let i=new Set;for(let t of e.keys())!0===e.get(t).autoStart&&i.add(t);if(t.startPlugins)for(let e of t.startPlugins)i.add(e);if(t.ignorePlugins)for(let e of t.ignorePlugins)i.delete(e);return Array.from(i)}}(i||(i={})),e.Random=void 0,(e.Random||(e.Random={})).getRandomValues=(()=>{let e="undefined"!=typeof window&&(window.crypto||window.msCrypto)||null;return e&&"function"==typeof e.getRandomValues?function(t){return e.getRandomValues(t)}:a})(),e.UUID=void 0,(e.UUID||(e.UUID={})).uuid4=function(e){let t=new Uint8Array(16),i=new Array(256);for(let e=0;e<16;++e)i[e]="0"+e.toString(16);for(let e=16;e<256;++e)i[e]=e.toString(16);return function(){return e(t),t[6]=64|15&t[6],t[8]=128|63&t[8],i[t[0]]+i[t[1]]+i[t[2]]+i[t[3]]+"-"+i[t[4]]+i[t[5]]+"-"+i[t[6]]+i[t[7]]+"-"+i[t[8]]+i[t[9]]+"-"+i[t[10]]+i[t[11]]+i[t[12]]+i[t[13]]+i[t[14]]+i[t[15]]}}(e.Random.getRandomValues),e.MimeData=class{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return-1!==this._types.indexOf(e)}getData(e){let t=this._types.indexOf(e);return-1!==t?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);-1!==t&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}},e.PluginRegistry=class{constructor(e={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,e.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=e.validatePlugin)}get application(){return this._application}set application(e){if(null!==this._application)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=e}get deferredPlugins(){return Array.from(this._plugins).filter((([e,t])=>"defer"===t.autoStart)).map((([e,t])=>e))}getPluginDescription(e){var t,i;return null!==(i=null===(t=this._plugins.get(e))||void 0===t?void 0:t.description)&&void 0!==i?i:""}hasPlugin(e){return this._plugins.has(e)}isPluginActivated(e){var t,i;return null!==(i=null===(t=this._plugins.get(e))||void 0===t?void 0:t.activated)&&void 0!==i&&i}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(e){if(this._plugins.has(e.id))throw new TypeError(`Plugin '${e.id}' is already registered.`);if(!this._validatePlugin(e))throw new Error(`Plugin '${e.id}' is not valid.`);let t=i.createPluginData(e);i.ensureNoCycle(t,this._plugins,this._services),t.provides&&this._services.set(t.provides,t.id),this._plugins.set(t.id,t)}registerPlugins(e){for(let t of e)this.registerPlugin(t)}deregisterPlugin(e,t){let i=this._plugins.get(e);if(i){if(i.activated&&!t)throw new Error(`Plugin '${e}' is still active.`);this._plugins.delete(e)}}async activatePlugin(e){let t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(t.activated)return;if(t.promise)return t.promise;let i=t.requires.map((e=>this.resolveRequiredService(e))),a=t.optional.map((e=>this.resolveOptionalService(e)));return t.promise=Promise.all([...i,...a]).then((e=>t.activate.apply(void 0,[this.application,...e]))).then((e=>{t.service=e,t.activated=!0,t.promise=null})).catch((e=>{throw t.promise=null,e})),t.promise}async activatePlugins(e,t={}){switch(e){case"defer":{let e=this.deferredPlugins.filter((e=>this._plugins.get(e).autoStart)).map((e=>this.activatePlugin(e)));await Promise.all(e);break}case"startUp":{let e=i.collectStartupPlugins(this._plugins,t).map((async e=>{try{return await this.activatePlugin(e)}catch(t){console.error(`Plugin '${e}' failed to activate.`,t)}}));await Promise.all(e);break}}}async deactivatePlugin(e){let t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(!t.activated)return[];if(!t.deactivate)throw new TypeError(`Plugin '${e}'#deactivate() method missing`);let a=i.findDependents(e,this._plugins,this._services),n=a.map((e=>this._plugins.get(e)));for(let t of n)if(!t.deactivate)throw new TypeError(`Plugin ${t.id}#deactivate() method missing (depends on ${e})`);for(let e of n){let t=[...e.requires,...e.optional].map((e=>{let t=this._services.get(e);return t?this._plugins.get(t).service:null}));await e.deactivate(this.application,...t),e.service=null,e.activated=!1}return a.pop(),a}async resolveRequiredService(e){let t=this._services.get(e);if(!t)throw new TypeError(`No provider for: ${e.name}.`);let i=this._plugins.get(t);return i.activated||await this.activatePlugin(t),i.service}async resolveOptionalService(e){let t=this._services.get(e);if(!t)return null;let i=this._plugins.get(t);if(!i.activated)try{await this.activatePlugin(t)}catch(e){return console.error(e),null}return i.service}},e.PromiseDelegate=class{constructor(){this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){(0,this._resolve)(e)}reject(e){(0,this._reject)(e)}},e.Token=class{constructor(e,t){this.name=e,this.description=null!=t?t:"",this._tokenStructuralPropertyT=null}}},"object"==typeof e&&void 0!==t?a(e,Xe()):"function"==typeof define&&__webpack_require__.amdO?define(["exports","@lumino/algorithm"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_coreutils={},i.lumino_algorithm)})),Ot=F(((e,t)=>{var i,a;i=e,a=function(e,t,i){class a{constructor(e){this.sender=e}connect(e,t){return o.connect(this,e,t)}disconnect(e,t){return o.disconnect(this,e,t)}emit(e){o.emit(this,e)}}var n,o;(n=a||(a={})).disconnectBetween=function(e,t){o.disconnectBetween(e,t)},n.disconnectSender=function(e){o.disconnectSender(e)},n.disconnectReceiver=function(e){o.disconnectReceiver(e)},n.disconnectAll=function(e){o.disconnectAll(e)},n.clearData=function(e){o.disconnectAll(e)},n.getExceptionHandler=function(){return o.exceptionHandler},n.setExceptionHandler=function(e){let t=o.exceptionHandler;return o.exceptionHandler=e,t};class r extends a{constructor(){super(...arguments),this._pending=new i.PromiseDelegate}async*[Symbol.asyncIterator](){let e=this._pending;for(;;)try{let{args:t,next:i}=await e.promise;e=i,yield t}catch{return}}emit(e){let t=this._pending,a=this._pending=new i.PromiseDelegate;t.resolve({args:e,next:a}),super.emit(e)}stop(){this._pending.promise.catch((()=>{})),this._pending.reject("stop"),this._pending=new i.PromiseDelegate}}(function(e){function i(e){let t=n.get(e);if(t&&0!==t.length){for(let e of t){if(!e.signal)continue;let t=e.thisArg||e.slot;e.signal=null,c(o.get(t))}c(t)}}function a(e){let t=o.get(e);if(t&&0!==t.length){for(let e of t){if(!e.signal)continue;let t=e.signal.sender;e.signal=null,c(n.get(t))}c(t)}}e.exceptionHandler=e=>{console.error(e)},e.connect=function(e,t,i){i=i||void 0;let a=n.get(e.sender);if(a||(a=[],n.set(e.sender,a)),l(a,e,t,i))return!1;let r=i||t,s=o.get(r);s||(s=[],o.set(r,s));let p={signal:e,slot:t,thisArg:i};return a.push(p),s.push(p),!0},e.disconnect=function(e,t,i){i=i||void 0;let a=n.get(e.sender);if(!a||0===a.length)return!1;let r=l(a,e,t,i);if(!r)return!1;let s=i||t,p=o.get(s);return r.signal=null,c(a),c(p),!0},e.disconnectBetween=function(e,t){let i=n.get(e);if(!i||0===i.length)return;let a=o.get(t);if(a&&0!==a.length){for(let t of a)t.signal&&t.signal.sender===e&&(t.signal=null);c(i),c(a)}},e.disconnectSender=i,e.disconnectReceiver=a,e.disconnectAll=function(e){i(e),a(e)},e.emit=function(e,t){let i=n.get(e.sender);if(i&&0!==i.length)for(let a=0,n=i.length;ae.signal===i&&e.slot===a&&e.thisArg===n))}function p(t,i){let{signal:a,slot:n,thisArg:o}=t;try{n.call(o,a.sender,i)}catch(t){e.exceptionHandler(t)}}function c(e){0===r.size&&s(d),r.add(e)}function d(){r.forEach(m),r.clear()}function m(e){t.ArrayExt.removeAllWhere(e,u)}function u(e){return null===e.signal}})(o||(o={})),e.Signal=a,e.Stream=r},"object"==typeof e&&void 0!==t?a(e,Xe(),de()):"function"==typeof define&&__webpack_require__.amdO?define(["exports","@lumino/algorithm","@lumino/coreutils"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_signaling={},i.lumino_algorithm,i.lumino_coreutils)})),Rt=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ActivityMonitor=void 0;var t=Ot();e.ActivityMonitor=class{constructor(e){this._timer=-1,this._timeout=-1,this._isDisposed=!1,this._activityStopped=new t.Signal(this),e.signal.connect(this._onSignalFired,this),this._timeout=e.timeout||1e3}get activityStopped(){return this._activityStopped}get timeout(){return this._timeout}set timeout(e){this._timeout=e}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,t.Signal.clearData(this))}_onSignalFired(e,t){clearTimeout(this._timer),this._sender=e,this._args=t,this._timer=setTimeout((()=>{this._activityStopped.emit({sender:this._sender,args:this._args})}),this._timeout)}}})),Mt=F((e=>{Object.defineProperty(e,"__esModule",{value:!0})})),It=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LruCache=void 0,e.LruCache=class{constructor(e={}){this._map=new Map,this._maxSize=(null==e?void 0:e.maxSize)||128}get size(){return this._map.size}clear(){this._map.clear()}get(e){let t=this._map.get(e)||null;return null!=t&&(this._map.delete(e),this._map.set(e,t)),t}set(e,t){this._map.size>=this._maxSize&&this._map.delete(this._map.keys().next().value),this._map.set(e,t)}}})),At=F((e=>{var t;Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownCodeBlocks=void 0,function(e){e.CODE_BLOCK_MARKER="```";let t=[".markdown",".mdown",".mkdn",".md",".mkd",".mdwn",".mdtxt",".mdtext",".text",".txt",".Rmd"];class i{constructor(e){this.startLine=e,this.code="",this.endLine=-1}}e.MarkdownCodeBlock=i,e.isMarkdown=function(e){return t.indexOf(e)>-1},e.findMarkdownCodeBlocks=function(t){if(!t||""===t)return[];let a=t.split("\n"),n=[],o=null;for(let t=0;t{function i(e){return!("number"!=typeof e&&!/^0x[0-9a-f]+$/i.test(e))||/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function a(e,t){return"constructor"===t&&"function"==typeof e[t]||"__proto__"===t}t.exports=function(e,t){t||(t={});var n={bools:{},strings:{},unknownFn:null};"function"==typeof t.unknown&&(n.unknownFn=t.unknown),"boolean"==typeof t.boolean&&t.boolean?n.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach((function(e){n.bools[e]=!0}));var o={};function r(e){return o[e].some((function(e){return n.bools[e]}))}Object.keys(t.alias||{}).forEach((function(e){o[e]=[].concat(t.alias[e]),o[e].forEach((function(t){o[t]=[e].concat(o[e].filter((function(e){return t!==e})))}))})),[].concat(t.string).filter(Boolean).forEach((function(e){n.strings[e]=!0,o[e]&&[].concat(o[e]).forEach((function(e){n.strings[e]=!0}))}));var s=t.default||{},l={_:[]};function p(e,t,i){for(var o=e,r=0;r{function i(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function a(e,t){for(var i,a="",n=0,o=-1,r=0,s=0;s<=e.length;++s){if(s2){var l=a.lastIndexOf("/");if(l!==a.length-1){-1===l?(a="",n=0):n=(a=a.slice(0,l)).length-1-a.lastIndexOf("/"),o=s,r=0;continue}}else if(2===a.length||1===a.length){a="",n=0,o=s,r=0;continue}t&&(a.length>0?a+="/..":a="..",n=2)}else a.length>0?a+="/"+e.slice(o+1,s):a=e.slice(o+1,s),n=s-o-1;o=s,r=0}else 46===i&&-1!==r?++r:r=-1}return a}var n={resolve:function(){for(var e,t="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){var r;o>=0?r=arguments[o]:(void 0===e&&(e=process.cwd()),r=e),i(r),0!==r.length&&(t=r+"/"+t,n=47===r.charCodeAt(0))}return t=a(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(i(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0===(e=a(e,!t)).length&&!t&&(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return i(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t0&&(void 0===e?e=a:e+="/"+a)}return void 0===e?".":n.normalize(e)},relative:function(e,t){if(i(e),i(t),e===t||(e=n.resolve(e))===(t=n.resolve(t)))return"";for(var a=1;ap){if(47===t.charCodeAt(s+d))return t.slice(s+d+1);if(0===d)return t.slice(s+d)}else r>p&&(47===e.charCodeAt(a+d)?c=d:0===d&&(c=0));break}var m=e.charCodeAt(a+d);if(m!==t.charCodeAt(s+d))break;47===m&&(c=d)}var u="";for(d=a+c+1;d<=o;++d)(d===o||47===e.charCodeAt(d))&&(0===u.length?u+="..":u+="/..");return u.length>0?u+t.slice(s+c):(s+=c,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(i(e),0===e.length)return".";for(var t=e.charCodeAt(0),a=47===t,n=-1,o=!0,r=e.length-1;r>=1;--r)if(47===(t=e.charCodeAt(r))){if(!o){n=r;break}}else o=!1;return-1===n?a?"/":".":a&&1===n?"//":e.slice(0,n)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');i(e);var a,n=0,o=-1,r=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,l=-1;for(a=e.length-1;a>=0;--a){var p=e.charCodeAt(a);if(47===p){if(!r){n=a+1;break}}else-1===l&&(r=!1,l=a+1),s>=0&&(p===t.charCodeAt(s)?-1==--s&&(o=a):(s=-1,o=l))}return n===o?o=l:-1===o&&(o=e.length),e.slice(n,o)}for(a=e.length-1;a>=0;--a)if(47===e.charCodeAt(a)){if(!r){n=a+1;break}}else-1===o&&(r=!1,o=a+1);return-1===o?"":e.slice(n,o)},extname:function(e){i(e);for(var t=-1,a=0,n=-1,o=!0,r=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===n&&(o=!1,n=s+1),46===l?-1===t?t=s:1!==r&&(r=1):-1!==t&&(r=-1);else if(!o){a=s+1;break}}return-1===t||-1===n||0===r||1===r&&t===n-1&&t===a+1?"":e.slice(t,n)},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 i=t.dir||t.root,a=t.base||(t.name||"")+(t.ext||"");return i?i===t.root?i+a:i+"/"+a:a}(0,e)},parse:function(e){i(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var a,n=e.charCodeAt(0),o=47===n;o?(t.root="/",a=1):a=0;for(var r=-1,s=0,l=-1,p=!0,c=e.length-1,d=0;c>=a;--c)if(47!==(n=e.charCodeAt(c)))-1===l&&(p=!1,l=c+1),46===n?-1===r?r=c:1!==d&&(d=1):-1!==r&&(d=-1);else if(!p){s=c+1;break}return-1===r||-1===l||0===d||1===d&&r===l-1&&r===s+1?-1!==l&&(t.base=t.name=0===s&&o?e.slice(1,l):e.slice(s,l)):(0===s&&o?(t.name=e.slice(1,r),t.base=e.slice(1,l)):(t.name=e.slice(s,r),t.base=e.slice(s,l)),t.ext=e.slice(r,l)),s>0?t.dir=e.slice(0,s-1):o&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,t.exports=n})),Bt=F(((e,t)=>{t.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}})),Kt=F((e=>{var t=Object.prototype.hasOwnProperty;function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return null}}function a(e){try{return encodeURIComponent(e)}catch{return null}}e.stringify=function(e,i){i=i||"";var n,o,r=[];for(o in"string"!=typeof i&&(i="?"),e)if(t.call(e,o)){if(!(n=e[o])&&(null==n||isNaN(n))&&(n=""),o=a(o),n=a(n),null===o||null===n)continue;r.push(o+"="+n)}return r.length?i+r.join("&"):""},e.parse=function(e){for(var t,a=/([^=?#&]+)=?([^&]*)/g,n={};t=a.exec(e);){var o=i(t[1]),r=i(t[2]);null===o||null===r||o in n||(n[o]=r)}return n}})),ei=F(((e,t)=>{var i=Bt(),a=Kt(),n=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o=/[\n\r\t]/g,r=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,s=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,p=/^[a-zA-Z]:/;function c(e){return(e||"").toString().replace(n,"")}var d=[["#","hash"],["?","query"],function(e,t){return f(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],m={hash:1,query:1};function u(e){var t,i=("undefined"!=typeof window?window:void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{}).location||{},a={},n=typeof(e=e||i);if("blob:"===e.protocol)a=new v(unescape(e.pathname),{});else if("string"===n)for(t in a=new v(e,{}),m)delete a[t];else if("object"===n){for(t in e)t in m||(a[t]=e[t]);void 0===a.slashes&&(a.slashes=r.test(e.href))}return a}function f(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function h(e,t){e=(e=c(e)).replace(o,""),t=t||{};var i,a=l.exec(e),n=a[1]?a[1].toLowerCase():"",r=!!a[2],s=!!a[3],p=0;return r?s?(i=a[2]+a[3]+a[4],p=a[2].length+a[3].length):(i=a[2]+a[4],p=a[2].length):s?(i=a[3]+a[4],p=a[3].length):i=a[4],"file:"===n?p>=2&&(i=i.slice(2)):f(n)?i=a[4]:n?r&&(i=i.slice(2)):p>=2&&f(t.protocol)&&(i=a[4]),{protocol:n,slashes:r||f(n),slashesCount:p,rest:i}}function v(e,t,n){if(e=(e=c(e)).replace(o,""),!(this instanceof v))return new v(e,t,n);var r,s,l,m,g,x,y=d.slice(),w=typeof t,b=this,_=0;for("object"!==w&&"string"!==w&&(n=t,t=null),n&&"function"!=typeof n&&(n=a.parse),r=!(s=h(e||"",t=u(t))).protocol&&!s.slashes,b.slashes=s.slashes||r&&t.slashes,b.protocol=s.protocol||t.protocol||"",e=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||p.test(e))||!s.slashes&&(s.protocol||s.slashesCount<2||!f(b.protocol)))&&(y[3]=[/(.*)/,"pathname"]);_{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.URLExt=void 0;var i,a=De(),n=t(ei());!function(e){function t(e){if("undefined"!=typeof document&&document){let t=document.createElement("a");return t.href=e,t}return(0,n.default)(e)}function i(...e){let t=(0,n.default)(e[0],{}),i=""===t.protocol&&t.slashes;i&&(t=(0,n.default)(e[0],"https:"+e[0]));let o=`${i?"":t.protocol}${t.slashes?"//":""}${t.auth}${t.auth?"@":""}${t.host}`,r=a.posix.join(`${o&&"/"!==t.pathname[0]?"/":""}${t.pathname}`,...e.slice(1));return`${o}${"."===r?"":r}`}e.parse=t,e.getHostName=function(e){return(0,n.default)(e).hostname},e.normalize=function(e){return e&&t(e).toString()},e.join=i,e.encodeParts=function(e){return i(...e.split("/").map(encodeURIComponent))},e.objectToQueryString=function(e){let t=Object.keys(e).filter((e=>e.length>0));return t.length?"?"+t.map((t=>{let i=encodeURIComponent(String(e[t]));return t+(i?"="+i:"")})).join("&"):""},e.queryStringToObject=function(e){return e.replace(/^\?/,"").split("&").reduce(((e,t)=>{let[i,a]=t.split("=");return i.length>0&&(e[i]=decodeURIComponent(a||"")),e}),{})},e.isLocal=function(e,i=!1){let{protocol:a}=t(e);return(!a||0!==e.toLowerCase().indexOf(a))&&(i?0!==e.indexOf("//"):0!==e.indexOf("/"))}}(i||(e.URLExt=i={}))})),ii=F(((exports,module)=>{var __importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageConfig=void 0;var coreutils_1=de(),minimist_1=__importDefault(qt()),url_1=at(),PageConfig;(function(PageConfig){function getOption(name){if(configData)return configData[name]||getBodyData(name);configData=Object.create(null);let found=!1;if("undefined"!=typeof document&&document){let e=document.getElementById("jupyter-config-data");e&&(configData=JSON.parse(e.textContent||""),found=!0)}if(!found&&"undefined"!=typeof process&&process.argv)try{let cli=(0,minimist_1.default)(process.argv.slice(2)),path=De(),fullPath="";"jupyter-config-data"in cli?fullPath=path.resolve(cli["jupyter-config-data"]):"JUPYTER_CONFIG_DATA"in{}&&(fullPath=path.resolve({}.JUPYTER_CONFIG_DATA)),fullPath&&(configData=eval("require")(fullPath))}catch(e){console.error(e)}if(coreutils_1.JSONExt.isObject(configData))for(let e in configData)"string"!=typeof configData[e]&&(configData[e]=JSON.stringify(configData[e]));else configData=Object.create(null);return configData[name]||getBodyData(name)}function setOption(e,t){let i=getOption(e);return configData[e]=t,i}function getBaseUrl(){return url_1.URLExt.normalize(getOption("baseUrl")||"/")}function getTreeUrl(){return url_1.URLExt.join(getBaseUrl(),getOption("treeUrl"))}function getShareUrl(){return url_1.URLExt.normalize(getOption("shareUrl")||getBaseUrl())}function getTreeShareUrl(){return url_1.URLExt.normalize(url_1.URLExt.join(getShareUrl(),getOption("treeUrl")))}function getUrl(e){var t,i,a,n;let o=e.toShare?getShareUrl():getBaseUrl(),r=null!==(t=e.mode)&&void 0!==t?t:getOption("mode"),s=null!==(i=e.workspace)&&void 0!==i?i:getOption("workspace"),l="single-document"===r?"doc":"lab";o=url_1.URLExt.join(o,l),s!==PageConfig.defaultWorkspace&&(o=url_1.URLExt.join(o,"workspaces",encodeURIComponent(null!==(a=getOption("workspace"))&&void 0!==a?a:PageConfig.defaultWorkspace)));let p=null!==(n=e.treePath)&&void 0!==n?n:getOption("treePath");return p&&(o=url_1.URLExt.join(o,"tree",url_1.URLExt.encodeParts(p))),o}function getWsUrl(e){let t=getOption("wsUrl");if(!t){if(0!==(e=e?url_1.URLExt.normalize(e):getBaseUrl()).indexOf("http"))return"";t="ws"+e.slice(4)}return url_1.URLExt.normalize(t)}function getNBConvertURL({path:e,format:t,download:i}){let a=url_1.URLExt.encodeParts(e),n=url_1.URLExt.join(getBaseUrl(),"nbconvert",t,a);return i?n+"?download=true":n}function getToken(){return getOption("token")||getBodyData("jupyterApiToken")}function getNotebookVersion(){let e=getOption("notebookVersion");return""===e?[0,0,0]:JSON.parse(e)}PageConfig.getOption=getOption,PageConfig.setOption=setOption,PageConfig.getBaseUrl=getBaseUrl,PageConfig.getTreeUrl=getTreeUrl,PageConfig.getShareUrl=getShareUrl,PageConfig.getTreeShareUrl=getTreeShareUrl,PageConfig.getUrl=getUrl,PageConfig.defaultWorkspace="default",PageConfig.getWsUrl=getWsUrl,PageConfig.getNBConvertURL=getNBConvertURL,PageConfig.getToken=getToken,PageConfig.getNotebookVersion=getNotebookVersion;let configData=null,Extension;function getBodyData(e){if("undefined"==typeof document||!document.body)return"";let t=document.body.dataset[e];return void 0===t?"":decodeURIComponent(t)}!function(e){function t(e){try{let t=getOption(e);if(t)return JSON.parse(t)}catch(t){console.warn(`Unable to parse ${e}.`,t)}return[]}e.deferred=t("deferredExtensions"),e.disabled=t("disabledExtensions"),e.isDeferred=function(t){let i=t.indexOf(":"),a="";return-1!==i&&(a=t.slice(0,i)),e.deferred.some((e=>e===t||a&&e===a))},e.isDisabled=function(t){let i=t.indexOf(":"),a="";return-1!==i&&(a=t.slice(0,i)),e.disabled.some((e=>e===t||a&&e===a))}}(Extension=PageConfig.Extension||(PageConfig.Extension={}))})(PageConfig||(exports.PageConfig=PageConfig={}))})),ai=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.PathExt=void 0;var t,i=De();!function(e){function t(e){return 0===e.indexOf("/")&&(e=e.slice(1)),e}e.join=function(...e){let a=i.posix.join(...e);return"."===a?"":t(a)},e.joinWithLeadingSlash=function(...e){let t=i.posix.join(...e);return"."===t?"":t},e.basename=function(e,t){return i.posix.basename(e,t)},e.dirname=function(e){let a=t(i.posix.dirname(e));return"."===a?"":a},e.extname=function(e){return i.posix.extname(e)},e.normalize=function(e){return""===e?"":t(i.posix.normalize(e))},e.resolve=function(...e){return t(i.posix.resolve(...e))},e.relative=function(e,a){return t(i.posix.relative(e,a))},e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e},e.removeSlash=t}(t||(e.PathExt=t={}))})),oi=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.signalToPromise=void 0;var t=de();e.signalToPromise=function(e,i){let a=new t.PromiseDelegate;function n(){e.disconnect(o)}function o(e,t){n(),a.resolve([e,t])}return e.connect(o),(null!=i?i:0)>0&&setTimeout((()=>{n(),a.reject(`Signal not emitted within ${i} ms.`)}),i),a.promise}})),si=F((e=>{var t,i;Object.defineProperty(e,"__esModule",{value:!0}),e.Text=void 0,(i=t||(e.Text=t={})).jsIndexToCharIndex=function(e,t){return e},i.charIndexToJsIndex=function(e,t){return e},i.camelCase=function(e,t=!1){return e.replace(/^(\w)|[\s-_:]+(\w)/g,(function(e,i,a){return a?a.toUpperCase():t?i.toUpperCase():i.toLowerCase()}))},i.titleCase=function(e){return(e||"").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")}})),ci=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Time=void 0;var t,i,a=[{name:"years",milliseconds:31536e6},{name:"months",milliseconds:2592e6},{name:"days",milliseconds:864e5},{name:"hours",milliseconds:36e5},{name:"minutes",milliseconds:6e4},{name:"seconds",milliseconds:1e3}];(i=t||(e.Time=t={})).formatHuman=function(e,t="long"){let i=document.documentElement.lang||"en",n=new Intl.RelativeTimeFormat(i,{numeric:"auto",style:t}),o=new Date(e).getTime()-Date.now();for(let e of a){let t=Math.ceil(o/e.milliseconds);if(0!==t)return n.format(t,e.name)}return n.format(0,"seconds")},i.format=function(e){let t=document.documentElement.lang||"en";return new Intl.DateTimeFormat(t,{dateStyle:"short",timeStyle:"short"}).format(new Date(e))}})),ge=F((e=>{var t=e&&e.__createBinding||(Object.create?function(e,t,i,a){void 0===a&&(a=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,a,n)}:function(e,t,i,a){void 0===a&&(a=i),e[a]=t[i]}),i=e&&e.__exportStar||function(e,i){for(var a in e)"default"!==a&&!Object.prototype.hasOwnProperty.call(i,a)&&t(i,e,a)};Object.defineProperty(e,"__esModule",{value:!0}),i(Rt(),e),i(Mt(),e),i(It(),e),i(At(),e),i(ii(),e),i(ai(),e),i(oi(),e),i(si(),e),i(ci(),e),i(at(),e)})),di=F(((e,t)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e{t.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]}})),hi=F(((e,t)=>{t.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}})),gi=F(((e,t)=>{var i=di();t.exports=new i(mi(),hi())})),xi,yi,ot,Cn,G,ae,jn,rt=se((()=>{var e;xi=le(ge()),yi=le(gi()),ot=le(de()),Cn=new ot.Token("@jupyterlite/contents:IContents"),(e=G||(G={})).JSON="application/json",e.PLAIN_TEXT="text/plain",e.OCTET_STREAM="octet/stream",function(e){let t=JSON.parse(xi.PageConfig.getOption("fileTypes")||"{}");e.getType=function(e,i=null){e=e.toLowerCase();for(let i of Object.values(t))for(let t of i.extensions||[])if(t===e&&i.mimeTypes&&i.mimeTypes.length)return i.mimeTypes[0];return yi.default.getType(e)||i||G.OCTET_STREAM},e.hasFormat=function(e,i){e=e.toLowerCase();for(let a of Object.values(t))if(a.fileFormat===i)for(let t of a.extensions||[])if(t===e)return!0;return!1}}(ae||(ae={})),jn=new ot.Token("@jupyterlite/contents:IBroadcastChannelWrapper")})),oe,Z,_i,wi,bi,xe,st,lt,$e,ki=se((()=>{oe=le(ge()),Z=le(ge()),rt(),_i=le(de()),wi="JupyterLite Storage",bi=5,xe=new TextEncoder,st=new TextDecoder("utf-8"),lt=class{constructor(e){this.reduceBytesToString=(e,t)=>e+String.fromCharCode(t),this._serverContents=new Map,this._storageName=wi,this._storageDrivers=null,this._localforage=e.localforage,this._storageName=e.storageName||wi,this._storageDrivers=e.storageDrivers||null,this._ready=new _i.PromiseDelegate}async initialize(){await this.initStorage(),this._ready.resolve(void 0)}async initStorage(){this._storage=this.createDefaultStorage(),this._counters=this.createDefaultCounters(),this._checkpoints=this.createDefaultCheckpoints()}get ready(){return this._ready.promise}get storage(){return this.ready.then((()=>this._storage))}get counters(){return this.ready.then((()=>this._counters))}get checkpoints(){return this.ready.then((()=>this._checkpoints))}get defaultStorageOptions(){let e=this._storageDrivers&&this._storageDrivers.length?this._storageDrivers:null;return{version:1,name:this._storageName,...e?{driver:e}:{}}}createDefaultStorage(){return this._localforage.createInstance({description:"Offline Storage for Notebooks and Files",storeName:"files",...this.defaultStorageOptions})}createDefaultCounters(){return this._localforage.createInstance({description:"Store the current file suffix counters",storeName:"counters",...this.defaultStorageOptions})}createDefaultCheckpoints(){return this._localforage.createInstance({description:"Offline Storage for Checkpoints",storeName:"checkpoints",...this.defaultStorageOptions})}async newUntitled(e){var t,i,a;let n,o=null!==(t=null==e?void 0:e.path)&&void 0!==t?t:"",r=null!==(i=null==e?void 0:e.type)&&void 0!==i?i:"notebook",s=(new Date).toISOString(),l=Z.PathExt.dirname(o),p=Z.PathExt.basename(o),c=Z.PathExt.extname(o),d=await this.get(l),m="";switch(o&&!c&&d?(l=`${o}/`,m=""):l&&p?(l=`${l}/`,m=p):(l="",m=o),r){case"directory":m=`Untitled Folder${await this._incrementCounter("directory")||""}`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:"json",mimetype:"",content:null,size:0,writable:!0,type:"directory"};break;case"notebook":{let e=await this._incrementCounter("notebook");m=m||`Untitled${e||""}.ipynb`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:"json",mimetype:G.JSON,content:$e.EMPTY_NB,size:xe.encode(JSON.stringify($e.EMPTY_NB)).length,writable:!0,type:"notebook"};break}default:{let t,i=null!==(a=null==e?void 0:e.ext)&&void 0!==a?a:".txt",o=await this._incrementCounter("file"),r=ae.getType(i)||G.OCTET_STREAM;t=ae.hasFormat(i,"text")||-1!==r.indexOf("text")?"text":-1!==i.indexOf("json")||-1!==i.indexOf("ipynb")?"json":"base64",m=m||`untitled${o||""}${i}`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:t,mimetype:r,content:"",size:0,writable:!0,type:"file"};break}}let u=n.path;return await(await this.storage).setItem(u,n),n}async copy(e,t){let i=Z.PathExt.basename(e);for(t=""===t?"":`${Z.PathExt.removeSlash(t)}/`;await this.get(`${t}${i}`,{content:!0});){let e=Z.PathExt.extname(i);i=`${i.replace(e,"")} (copy)${e}`}let a=`${t}${i}`,n=await this.get(e,{content:!0});if(!n)throw Error(`Could not find file with path ${e}`);return n={...n,name:i,path:a},await(await this.storage).setItem(a,n),n}async get(e,t){if(""===(e=decodeURIComponent(e.replace(/^\//,""))))return await this._getFolder(e);let i=await this.storage,a=await i.getItem(e),n=await this._getServerContents(e,t),o=a||n;if(!o)return null;if(null==t||!t.content)return{size:0,...o,content:null};if("directory"===o.type){let t=new Map;await i.iterate(((i,a)=>{a===`${e}/${i.name}`&&t.set(i.name,i)}));let a=n?n.content:Array.from((await this._getServerDirectory(e)).values());for(let e of a)t.has(e.name)||t.set(e.name,e);let r=[...t.values()];return{name:Z.PathExt.basename(e),path:e,last_modified:o.last_modified,created:o.created,format:"json",mimetype:G.JSON,content:r,size:0,writable:!0,type:"directory"}}return o}async rename(e,t){let i=decodeURIComponent(e),a=await this.get(i,{content:!0});if(!a)throw Error(`Could not find file with path ${i}`);let n=(new Date).toISOString(),o=Z.PathExt.basename(t),r={...a,name:o,path:t,last_modified:n},s=await this.storage;if(await s.setItem(t,r),await s.removeItem(i),await(await this.checkpoints).removeItem(i),"directory"===a.type){let i;for(i of a.content)await this.rename(oe.URLExt.join(e,i.name),oe.URLExt.join(t,i.name))}return r}async save(e,t={}){var i;e=decodeURIComponent(e);let a=Z.PathExt.extname(null!==(i=t.name)&&void 0!==i?i:""),n=t.chunk,o=!!n&&(n>1||-1===n),r=await this.get(e,{content:o});if(r||(r=await this.newUntitled({path:e,ext:a,type:"file"})),!r)return null;let s=r.content,l=(new Date).toISOString();if(r={...r,...t,last_modified:l},t.content&&"base64"===t.format){let e=!n||-1===n,i=this._handleUploadChunk(t.content,s,o);if(".ipynb"===a){let t=e?JSON.parse(st.decode(this._binaryStringToBytes(i))):i;r={...r,content:t,format:"json",type:"notebook",size:i.length}}else if(ae.hasFormat(a,"json")){let t=e?JSON.parse(st.decode(this._binaryStringToBytes(i))):i;r={...r,content:t,format:"json",type:"file",size:i.length}}else if(ae.hasFormat(a,"text")){let t=e?st.decode(this._binaryStringToBytes(i)):i;r={...r,content:t,format:"text",type:"file",size:i.length}}else{let t=e?btoa(i):i;r={...r,content:t,format:"base64",type:"file",size:i.length}}}if(r.content)switch(t.format){case"json":r={...r,size:xe.encode(JSON.stringify(r.content)).length};break;case"text":r={...r,size:xe.encode(r.content).length};break;case"base64":break;default:r={...r,size:0}}else r={...r,size:0};return await(await this.storage).setItem(e,r),r}async delete(e){let t=`${e=decodeURIComponent(e)}/`,i=(await(await this.storage).keys()).filter((i=>i===e||i.startsWith(t)));await Promise.all(i.map(this.forgetPath,this))}async forgetPath(e){await Promise.all([(await this.storage).removeItem(e),(await this.checkpoints).removeItem(e)])}async createCheckpoint(e){var t;let i=await this.checkpoints;e=decodeURIComponent(e);let a=await this.get(e,{content:!0});if(!a)throw Error(`Could not find file with path ${e}`);let n=(null!==(t=await i.getItem(e))&&void 0!==t?t:[]).filter(Boolean);return n.push(a),n.length>bi&&n.splice(0,n.length-bi),await i.setItem(e,n),{id:""+(n.length-1),last_modified:a.last_modified}}async listCheckpoints(e){return(await(await this.checkpoints).getItem(e)||[]).filter(Boolean).map(this.normalizeCheckpoint,this)}normalizeCheckpoint(e,t){return{id:t.toString(),last_modified:e.last_modified}}async restoreCheckpoint(e,t){e=decodeURIComponent(e);let i=(await(await this.checkpoints).getItem(e)||[])[parseInt(t)];await(await this.storage).setItem(e,i)}async deleteCheckpoint(e,t){e=decodeURIComponent(e);let i=await(await this.checkpoints).getItem(e)||[],a=parseInt(t);i.splice(a,1),await(await this.checkpoints).setItem(e,i)}_handleUploadChunk(e,t,i){let a=atob(e);return i?t+a:a}_binaryStringToBytes(e){let t=new Uint8Array(e.length);for(let i=0;i{i.includes("/")||t.set(e.path,e)}));for(let i of(await this._getServerDirectory(e)).values())t.has(i.path)||t.set(i.path,i);return e&&0===t.size?null:{name:"",path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"json",mimetype:G.JSON,content:Array.from(t.values()),size:0,writable:!0,type:"directory"}}async _getServerContents(e,t){let i=Z.PathExt.basename(e),a=(await this._getServerDirectory(oe.URLExt.join(e,".."))).get(i);if(!a)return null;if(a=a||{name:i,path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"text",mimetype:G.PLAIN_TEXT,type:"file",writable:!0,size:0,content:""},null!=t&&t.content)if("directory"===a.type){let t=await this._getServerDirectory(e);a={...a,content:Array.from(t.values())}}else{let t=oe.URLExt.join(oe.PageConfig.getBaseUrl(),"files",e),n=await fetch(t);if(!n.ok)return null;let o=a.mimetype||n.headers.get("Content-Type"),r=Z.PathExt.extname(i);if("notebook"===a.type||ae.hasFormat(r,"json")||-1!==(null==o?void 0:o.indexOf("json"))||e.match(/\.(ipynb|[^/]*json[^/]*)$/)){let e=await n.text();a={...a,content:JSON.parse(e),format:"json",mimetype:a.mimetype||G.JSON,size:xe.encode(e).length}}else if(ae.hasFormat(r,"text")||-1!==o.indexOf("text")){let e=await n.text();a={...a,content:e,format:"text",mimetype:o||G.PLAIN_TEXT,size:xe.encode(e).length}}else{let e=await n.arrayBuffer(),t=new Uint8Array(e);a={...a,content:btoa(t.reduce(this.reduceBytesToString,"")),format:"base64",mimetype:o||G.OCTET_STREAM,size:t.length}}}return a}async _getServerDirectory(e){let t=this._serverContents.get(e)||new Map;if(!this._serverContents.has(e)){let i=oe.URLExt.join(oe.PageConfig.getBaseUrl(),"api/contents",e,"all.json");try{let e=await fetch(i),a=JSON.parse(await e.text());for(let e of a.content)t.set(e.name,e)}catch(e){console.warn(`don't worry, about ${e}... nothing's broken. If there had been a\n file at ${i}, you might see some more files.`)}this._serverContents.set(e,t)}return t}async _incrementCounter(e){var t;let i=await this.counters,a=(null!==(t=await i.getItem(e))&&void 0!==t?t:-1)+1;return await i.setItem(e,a),a}},($e||($e={})).EMPTY_NB={metadata:{orig_nbformat:4},nbformat_minor:4,nbformat:4,cells:[]}}));function ct(e){return"node"in e}var ye,Pi,Si,Ci,pt=se((()=>{ye=16895,Pi=33206,Si=1,Ci=2})),Oi,dt,Ke,On,En,ji,Be,We,He,fe,we,Ve=se((()=>{pt(),Oi=":",dt="/api/drive.v1",Ke=4096,On=new TextEncoder,En=new TextDecoder("utf-8"),ji={0:!1,1:!0,2:!0,64:!0,65:!0,66:!0,129:!0,193:!0,514:!0,577:!0,578:!0,705:!0,706:!0,1024:!0,1025:!0,1026:!0,1089:!0,1090:!0,1153:!0,1154:!0,1217:!0,1218:!0,4096:!0,4098:!0},Be=class{constructor(e){this.fs=e}open(e){let t=this.fs.realPath(e.node);this.fs.FS.isFile(e.node.mode)&&(e.file=this.fs.API.get(t))}close(e){if(!this.fs.FS.isFile(e.node.mode)||!e.file)return;let t=this.fs.realPath(e.node),i=e.flags,a="string"==typeof i?parseInt(i,10):i;a&=8191;let n=!0;a in ji&&(n=ji[a]),n&&this.fs.API.put(t,e.file),e.file=void 0}read(e,t,i,a,n){if(a<=0||void 0===e.file||n>=(e.file.data.length||0))return 0;let o=Math.min(e.file.data.length-n,a);return t.set(e.file.data.subarray(n,n+o),i),o}write(e,t,i,a,n){var o;if(a<=0||void 0===e.file)return 0;if(e.node.timestamp=Date.now(),n+a>((null===(o=e.file)||void 0===o?void 0:o.data.length)||0)){let t=e.file.data?e.file.data:new Uint8Array;e.file.data=new Uint8Array(n+a),e.file.data.set(t)}return e.file.data.set(t.subarray(i,i+a),n),a}llseek(e,t,i){let a=t;if(1===i)a+=e.position;else if(2===i&&this.fs.FS.isFile(e.node.mode)){if(void 0===e.file)throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EPERM);a+=e.file.data.length}if(a<0)throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EINVAL);return a}},We=class{constructor(e){this.fs=e}node(e){return ct(e)?e.node:e}getattr(e){let t=this.node(e);return{...this.fs.API.getattr(this.fs.realPath(t)),mode:t.mode,ino:t.id}}setattr(e,t){let i=this.node(e);for(let[e,a]of Object.entries(t))switch(e){case"mode":i.mode=a;break;case"timestamp":i.timestamp=a;break;case"size":{let e=a,t=this.fs.realPath(i);if(this.fs.FS.isFile(i.mode)&&e>=0){let i=this.fs.API.get(t),a=i.data?i.data:new Uint8Array;e!==a.length&&(e=400)throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL);return JSON.parse(t.responseText)}get endpoint(){return`${this._baseUrl}api/drive`}},we=class{constructor(e){this.FS=e.FS,this.PATH=e.PATH,this.ERRNO_CODES=e.ERRNO_CODES,this.API=this.createAPI(e),this.driveName=e.driveName,this.node_ops=new We(this),this.stream_ops=new Be(this)}createAPI(e){return new fe(e.baseUrl,e.driveName,e.mountpoint,e.FS,e.ERRNO_CODES)}mount(e){return this.createNode(null,e.mountpoint,16895,0)}createNode(e,t,i,a){let n=this.FS;if(!n.isDir(i)&&!n.isFile(i))throw new n.ErrnoError(this.ERRNO_CODES.EINVAL);let o=n.createNode(e,t,i,a);return o.node_ops=this.node_ops,o.stream_ops=this.stream_ops,o}getMode(e){return this.API.getmode(e)}realPath(e){let t=[],i=e;for(t.push(i.name);i.parent!==i;)i=i.parent,t.push(i.name);return t.reverse(),this.PATH.join.apply(null,t)}}})),ut,be,mt=se((()=>{ut=le(ge()),Ve(),be=class{constructor(e){this.contentsManager=e.contentsManager}async processDriveRequest(e){switch(e.method){case"readdir":return this.readdir(e);case"rmdir":return this.rmdir(e);case"rename":return this.rename(e);case"getmode":return this.getmode(e);case"lookup":return this.lookup(e);case"mknod":return this.mknod(e);case"getattr":return this.getattr(e);case"get":return this.get(e);case"put":return this.put(e)}throw`Drive request ${e.method} does not exist.`}async readdir(e){let t=await this.contentsManager.get(e.path,{content:!0}),i=[];return"directory"===t.type&&t.content&&(i=t.content.map((e=>e.name))),i}async rmdir(e){return await this.contentsManager.delete(e.path),null}async rename(e){return await this.contentsManager.rename(e.path,e.data.newPath),null}async getmode(e){let t;return t="directory"===(await this.contentsManager.get(e.path)).type?16895:33206,t}async lookup(e){let t;try{t={ok:!0,mode:"directory"===(await this.contentsManager.get(e.path)).type?16895:33206}}catch{t={ok:!1}}return t}async mknod(e){let t=await this.contentsManager.newUntitled({path:ut.PathExt.dirname(e.path),type:16895===e.data.mode?"directory":"file",ext:ut.PathExt.extname(e.path)});return await this.contentsManager.rename(t.path,e.path),null}async getattr(e){let t=await this.contentsManager.get(e.path),i=new Date(0).toISOString();return{dev:1,nlink:1,uid:0,gid:0,rdev:0,size:t.size||0,blksize:Ke,blocks:Math.ceil(t.size||0/Ke),atime:t.last_modified||i,mtime:t.last_modified||i,ctime:t.created||i,timestamp:0}}async get(e){let t,i=await this.contentsManager.get(e.path,{content:!0});return"directory"!==i.type&&(t={content:"json"===i.format?JSON.stringify(i.content):i.content,format:i.format}),t}async put(e){return await this.contentsManager.save(e.path,{content:"json"===e.data.format?JSON.parse(e.data.data):e.data.data,type:"file",format:e.data.format}),null}}})),ft,Ei=se((()=>{Ve(),mt(),ft=class{constructor(e){this.isDisposed=!1,this._onMessage=async e=>{if(!this._channel)return;let t=e.data;if("broadcast.ts"!==(null==t?void 0:t.receiver))return;let i=await this._driveContentsProcessor.processDriveRequest(t);this._channel.postMessage(i)},this._channel=null,this._enabled=!1,this._contents=e.contents,this._driveContentsProcessor=new be({contentsManager:this._contents})}get enabled(){return this._enabled}enable(){this._channel?console.warn("BroadcastChannel already created and enabled"):(this._channel=new BroadcastChannel(dt),this._channel.addEventListener("message",this._onMessage),this._enabled=!0)}disable(){this._channel&&(this._channel.removeEventListener("message",this._onMessage),this._channel=null),this._enabled=!1}dispose(){this.isDisposed||(this.disable(),this.isDisposed=!0)}}})),Ri={};Bi(Ri,{BLOCK_SIZE:()=>Ke,BroadcastChannelWrapper:()=>ft,Contents:()=>lt,ContentsAPI:()=>He,DIR_MODE:()=>ye,DRIVE_API_PATH:()=>dt,DRIVE_SEPARATOR:()=>Oi,DriveContentsProcessor:()=>be,DriveFS:()=>we,DriveFSEmscriptenNodeOps:()=>We,DriveFSEmscriptenStreamOps:()=>Be,FILE:()=>ae,FILE_MODE:()=>Pi,IBroadcastChannelWrapper:()=>jn,IContents:()=>Cn,MIME:()=>G,SEEK_CUR:()=>Si,SEEK_END:()=>Ci,ServiceWorkerContentsAPI:()=>fe,instanceOfStream:()=>ct});var ht=se((()=>{ki(),Ve(),rt(),Ei(),pt(),mt()})),yt=Symbol("Comlink.proxy"),Hi=Symbol("Comlink.endpoint"),Ki=Symbol("Comlink.releaseProxy"),Ye=Symbol("Comlink.finalizer"),ke=Symbol("Comlink.thrown"),wt=e=>"object"==typeof e&&null!==e||"function"==typeof e,Vi={canHandle:e=>wt(e)&&e[yt],serialize(e){let{port1:t,port2:i}=new MessageChannel;return je(e,t),[i,[i]]},deserialize:e=>(e.start(),Zi(e))},Ji={canHandle:e=>wt(e)&&ke in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},bt=new Map([["proxy",Vi],["throw",Ji]]);function Gi(e,t){for(let i of e)if(t===i||"*"===i||i instanceof RegExp&&i.test(t))return!0;return!1}function je(e,t=globalThis,i=["*"]){t.addEventListener("message",(function a(n){if(!n||!n.data)return;if(!Gi(i,n.origin))return void console.warn(`Invalid origin '${n.origin}' for comlink proxy`);let o,{id:r,type:s,path:l}=Object.assign({path:[]},n.data),p=(n.data.argumentList||[]).map(ce);try{let t=l.slice(0,-1).reduce(((e,t)=>e[t]),e),i=l.reduce(((e,t)=>e[t]),e);switch(s){case"GET":o=i;break;case"SET":t[l.slice(-1)[0]]=ce(n.data.value),o=!0;break;case"APPLY":o=i.apply(t,p);break;case"CONSTRUCT":o=nn(new i(...p));break;case"ENDPOINT":{let{port1:t,port2:i}=new MessageChannel;je(e,i),o=tn(t,[t])}break;case"RELEASE":o=void 0;break;default:return}}catch(e){o={value:e,[ke]:0}}Promise.resolve(o).catch((e=>({value:e,[ke]:0}))).then((i=>{let[n,o]=Ce(i);t.postMessage(Object.assign(Object.assign({},n),{id:r}),o),"RELEASE"===s&&(t.removeEventListener("message",a),_t(t),Ye in e&&"function"==typeof e[Ye]&&e[Ye]())})).catch((e=>{let[i,a]=Ce({value:new TypeError("Unserializable return value"),[ke]:0});t.postMessage(Object.assign(Object.assign({},i),{id:r}),a)}))})),t.start&&t.start()}function Yi(e){return"MessagePort"===e.constructor.name}function _t(e){Yi(e)&&e.close()}function Zi(e,t){let i=new Map;return e.addEventListener("message",(function(e){let{data:t}=e;if(!t||!t.id)return;let a=i.get(t.id);if(a)try{a(t)}finally{i.delete(t.id)}})),Ze(e,i,[],t)}function _e(e){if(e)throw new Error("Proxy has been released and is not useable")}function kt(e){return pe(e,new Map,{type:"RELEASE"}).then((()=>{_t(e)}))}var Pe=new WeakMap,Se="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{let t=(Pe.get(e)||0)-1;Pe.set(e,t),0===t&&kt(e)}));function Xi(e,t){let i=(Pe.get(t)||0)+1;Pe.set(t,i),Se&&Se.register(e,t,e)}function Qi(e){Se&&Se.unregister(e)}function Ze(e,t,i=[],a=function(){}){let n=!1,o=new Proxy(a,{get(a,r){if(_e(n),r===Ki)return()=>{Qi(o),kt(e),t.clear(),n=!0};if("then"===r){if(0===i.length)return{then:()=>o};let a=pe(e,t,{type:"GET",path:i.map((e=>e.toString()))}).then(ce);return a.then.bind(a)}return Ze(e,t,[...i,r])},set(a,o,r){_e(n);let[s,l]=Ce(r);return pe(e,t,{type:"SET",path:[...i,o].map((e=>e.toString())),value:s},l).then(ce)},apply(a,o,r){_e(n);let s=i[i.length-1];if(s===Hi)return pe(e,t,{type:"ENDPOINT"}).then(ce);if("bind"===s)return Ze(e,t,i.slice(0,-1));let[l,p]=xt(r);return pe(e,t,{type:"APPLY",path:i.map((e=>e.toString())),argumentList:l},p).then(ce)},construct(a,o){_e(n);let[r,s]=xt(o);return pe(e,t,{type:"CONSTRUCT",path:i.map((e=>e.toString())),argumentList:r},s).then(ce)}});return Xi(o,e),o}function en(e){return Array.prototype.concat.apply([],e)}function xt(e){let t=e.map(Ce);return[t.map((e=>e[0])),en(t.map((e=>e[1])))]}var Pt=new WeakMap;function tn(e,t){return Pt.set(e,t),e}function nn(e){return Object.assign(e,{[yt]:!0})}function Ce(e){for(let[t,i]of bt)if(i.canHandle(e)){let[a,n]=i.serialize(e);return[{type:"HANDLER",name:t,value:a},n]}return[{type:"RAW",value:e},Pt.get(e)||[]]}function ce(e){switch(e.type){case"HANDLER":return bt.get(e.name).deserialize(e.value);case"RAW":return e.value}}function pe(e,t,i,a){return new Promise((n=>{let o=an();t.set(o,n),e.start&&e.start(),e.postMessage(Object.assign({id:o},i),a)}))}function an(){return new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-")}ht();var Je=class{constructor(){this._options=null,this._initializer=null,this._pyodide=null,this._localPath="",this._driveName="",this._driveFS=null,this._sendWorkerMessage=()=>{},this._initialized=new Promise(((e,t)=>{this._initializer={resolve:e,reject:t}}))}async initialize(e){var t;if(this._options=e,e.location.includes(":")){let t=e.location.split(":");this._driveName=t[0],this._localPath=t[1]}else this._driveName="",this._localPath=e.location;await this.initRuntime(e),await this.initFilesystem(e),await this.initPackageManager(e),await this.initKernel(e),await this.initGlobals(e),null==(t=this._initializer)||t.resolve()}async initRuntime(e){let t,{pyodideUrl:i,indexUrl:a}=e;i.endsWith(".mjs")?t=(await __webpack_require__(903)(i)).loadPyodide:(importScripts(i),t=self.loadPyodide),this._pyodide=await t({indexURL:a,...e.loadPyodideOptions})}async initPackageManager(e){if(!this._options)throw new Error("Uninitialized");let{pipliteWheelUrl:t,disablePyPIFallback:i,pipliteUrls:a,loadPyodideOptions:n}=this._options,o=(n||{}).packages||[];o.includes("micropip")||await this._pyodide.loadPackage(["micropip"]),o.includes("piplite")||await this._pyodide.runPythonAsync(`\n import micropip\n await micropip.install('${t}', keep_going=True)\n `),await this._pyodide.runPythonAsync(`\n import piplite.piplite\n piplite.piplite._PIPLITE_DISABLE_PYPI = ${i?"True":"False"}\n piplite.piplite._PIPLITE_URLS = ${JSON.stringify(a)}\n `)}async initKernel(e){let t=(e.loadPyodideOptions||{}).packages||[],i=["ssl","sqlite3","ipykernel","comm","pyodide_kernel","ipython"],a=[];for(let e of i)t.includes(e)||a.push(`await piplite.install('${e}', keep_going=True)`);a.push("import pyodide_kernel"),e.mountDrive&&this._localPath&&a.push("import os",`os.chdir("${this._localPath}")`),await this._pyodide.runPythonAsync(a.join("\n"))}async initGlobals(e){let{globals:t}=this._pyodide;this._kernel=t.get("pyodide_kernel").kernel_instance.copy(),this._stdout_stream=t.get("pyodide_kernel").stdout_stream.copy(),this._stderr_stream=t.get("pyodide_kernel").stderr_stream.copy(),this._interpreter=this._kernel.interpreter.copy(),this._interpreter.send_comm=this.sendComm.bind(this)}async initFilesystem(e){if(e.mountDrive){let t="/drive",{FS:i,PATH:a,ERRNO_CODES:n}=this._pyodide,{baseUrl:o}=e,{DriveFS:r}=await Promise.resolve().then((()=>(ht(),Ri))),s=new r({FS:i,PATH:a,ERRNO_CODES:n,baseUrl:o,driveName:this._driveName,mountpoint:t});i.mkdirTree(t),i.mount(s,{},t),i.chdir(t),this._driveFS=s}}mapToObject(e){let t=e instanceof Array?[]:{};return e.forEach(((e,i)=>{t[i]=e instanceof Map||e instanceof Array?this.mapToObject(e):e})),t}formatResult(e){if(!(e instanceof this._pyodide.ffi.PyProxy))return e;let t=e.toJs();return this.mapToObject(t)}registerCallback(e){this._sendWorkerMessage=e}async setup(e){await this._initialized,this._kernel._parent_header=this._pyodide.toPy(e)}async execute(e,t){await this.setup(t);let i=(e,t)=>{let i={name:this.formatResult(e),text:this.formatResult(t)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:i,type:"stream"})};this._stdout_stream.publish_stream_callback=i,this._stderr_stream.publish_stream_callback=i,this._interpreter.display_pub.clear_output_callback=e=>{let t={wait:this.formatResult(e)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:t,type:"clear_output"})},this._interpreter.display_pub.display_data_callback=(e,t,i)=>{let a={data:this.formatResult(e),metadata:this.formatResult(t),transient:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"display_data"})},this._interpreter.display_pub.update_display_data_callback=(e,t,i)=>{let a={data:this.formatResult(e),metadata:this.formatResult(t),transient:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"update_display_data"})},this._interpreter.displayhook.publish_execution_result=(e,t,i)=>{let a={execution_count:e,data:this.formatResult(t),metadata:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"execute_result"})},this._interpreter.input=this.input.bind(this),this._interpreter.getpass=this.getpass.bind(this);let a=await this._kernel.run(e.code),n=this.formatResult(a);return"error"===n.status&&((e,t,i)=>{let a={ename:e,evalue:t,traceback:i};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"execute_error"})})(n.ename,n.evalue,n.traceback),n}async complete(e,t){await this.setup(t);let i=this._kernel.complete(e.code,e.cursor_pos);return this.formatResult(i)}async inspect(e,t){await this.setup(t);let i=this._kernel.inspect(e.code,e.cursor_pos,e.detail_level);return this.formatResult(i)}async isComplete(e,t){await this.setup(t);let i=this._kernel.is_complete(e.code);return this.formatResult(i)}async commInfo(e,t){await this.setup(t);let i=this._kernel.comm_info(e.target_name);return{comms:this.formatResult(i),status:"ok"}}async commOpen(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_open(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async commMsg(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_msg(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async commClose(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_close(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async inputReply(e,t){await this.setup(t),this._resolveInputReply(e)}async sendInputRequest(e,t){let i={prompt:e,password:t};this._sendWorkerMessage({type:"input_request",parentHeader:this.formatResult(this._kernel._parent_header).header,content:i})}async getpass(e){return e=void 0===e?"":e,await this.sendInputRequest(e,!0),(await new Promise((e=>{this._resolveInputReply=e}))).value}async input(e){return e=void 0===e?"":e,await this.sendInputRequest(e,!1),(await new Promise((e=>{this._resolveInputReply=e}))).value}async sendComm(e,t,i,a,n){this._sendWorkerMessage({type:e,content:this.formatResult(t),metadata:this.formatResult(i),ident:this.formatResult(a),buffers:this.formatResult(n),parentHeader:this.formatResult(this._kernel._parent_header).header})}},vt=class extends we{createAPI(e){return new fe(e.baseUrl,e.driveName,e.mountpoint,e.FS,e.ERRNO_CODES)}},gt=class extends Je{constructor(){super(),this._sendWorkerMessage=e=>{postMessage({_kernelMessage:e})}}async initFilesystem(e){if(e.mountDrive){let t="/drive",{FS:i,PATH:a,ERRNO_CODES:n}=this._pyodide,{baseUrl:o}=e,r=new vt({FS:i,PATH:a,ERRNO_CODES:n,baseUrl:o,driveName:this._driveName,mountpoint:t});i.mkdirTree(t),i.mount(r,{},t),i.chdir(t),this._driveFS=r}}},Rn=new gt;je(Rn)}}]); +//# sourceMappingURL=51.thebe-lite.min.js.map \ No newline at end of file diff --git a/5106.thebe-core.min.js b/5106.thebe-core.min.js new file mode 100644 index 00000000..f9dda3e5 --- /dev/null +++ b/5106.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5106],{35106:(e,t,n)=>{n.r(t),n.d(t,{solr:()=>a});var r=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,o=/[\|\!\+\-\*\?\~\^\&]/,u=/^(OR|AND|NOT|TO)$/;function i(e,t){var n,a,k=e.next();return'"'==k?t.tokenize=(a=k,function(e,t){for(var n,r=!1;null!=(n=e.next())&&(n!=a||r);)r=!r&&"\\"==n;return r||(t.tokenize=i),"string"}):o.test(k)?t.tokenize=(n=k,function(e,t){return"|"==n?e.eat(/\|/):"&"==n&&e.eat(/\&/),t.tokenize=i,"operator"}):r.test(k)&&(t.tokenize=function(e){return function(t,n){for(var o=e;(e=t.peek())&&null!=e.match(r);)o+=t.next();return n.tokenize=i,u.test(o)?"operator":function(e){return parseFloat(e).toString()===e}(o)?"number":":"==t.peek()?"propertyName":"string"}}(k)),t.tokenize!=i?t.tokenize(e,t):null}const a={name:"solr",startState:function(){return{tokenize:i}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}}}}]); +//# sourceMappingURL=5106.thebe-core.min.js.map \ No newline at end of file diff --git a/5237.thebe-core.min.js b/5237.thebe-core.min.js new file mode 100644 index 00000000..39c419a5 --- /dev/null +++ b/5237.thebe-core.min.js @@ -0,0 +1,2 @@ +(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5237],{55237:e=>{e.exports={}}}]); +//# sourceMappingURL=5237.thebe-core.min.js.map \ No newline at end of file diff --git a/5258.thebe-core.min.js b/5258.thebe-core.min.js new file mode 100644 index 00000000..5ca20588 --- /dev/null +++ b/5258.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5258],{95258:(e,t,n)=>{function r(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function a(e,t,n){return n.tokenize.push(e),e(t,n)}n.r(t),n.d(t,{crystal:()=>S});var u=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,i=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,c=/^(?:\[\][?=]?)/,o=/^(?:\.(?:\.{2})?|->|[?:])/,s=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,l=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,f=r(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),m=r(["true","false","nil","self"]),h=r(["def","fun","macro","class","module","struct","lib","enum","union","do","for"]),p=r(["if","unless","case","while","until","begin","then"]),k=["end","else","elsif","rescue","ensure"],d=r(k),F=["\\)","\\}","\\]"],_=new RegExp("^(?:"+F.join("|")+")$"),z={def:y,fun:y,macro:function(e,t){if(e.eatSpace())return null;var n;if(n=e.match(s)){if("def"==n)return"keyword";e.eat(/[?!]/)}return t.tokenize.pop(),"def"},class:I,module:I,struct:I,lib:I,enum:I,union:I},b={"[":"]","{":"}","(":")","<":">"};function g(e,t){if(e.eatSpace())return null;if("\\"!=t.lastToken&&e.match("{%",!1))return a(x("%","%"),e,t);if("\\"!=t.lastToken&&e.match("{{",!1))return a(x("{","}"),e,t);if("#"==e.peek())return e.skipToEnd(),"comment";var n;if(e.match(s))return e.eat(/[?!]/),n=e.current(),e.eat(":")?"atom":"."==t.lastToken?"property":f.test(n)?(h.test(n)?"fun"==n&&t.blocks.indexOf("lib")>=0||"def"==n&&"abstract"==t.lastToken||(t.blocks.push(n),t.currentIndent+=1):"operator"!=t.lastStyle&&t.lastStyle||!p.test(n)?"end"==n&&(t.blocks.pop(),t.currentIndent-=1):(t.blocks.push(n),t.currentIndent+=1),z.hasOwnProperty(n)&&t.tokenize.push(z[n]),"keyword"):m.test(n)?"atom":"variable";if(e.eat("@"))return"["==e.peek()?a(w("[","]","meta"),e,t):(e.eat("@"),e.match(s)||e.match(l),"propertyName");if(e.match(l))return"tag";if(e.eat(":"))return e.eat('"')?a(v('"',"atom",!1),e,t):e.match(s)||e.match(l)||e.match(u)||e.match(i)||e.match(c)?"atom":(e.eat(":"),"operator");if(e.eat('"'))return a(v('"',"string",!0),e,t);if("%"==e.peek()){var r,k="string",d=!0;if(e.match("%r"))k="string.special",r=e.next();else if(e.match("%w"))d=!1,r=e.next();else if(e.match("%q"))d=!1,r=e.next();else if(r=e.match(/^%([^\w\s=])/))r=r[1];else{if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(e.eat("%"))return"operator"}return b.hasOwnProperty(r)&&(r=b[r]),a(v(r,k,d),e,t)}return(n=e.match(/^<<-('?)([A-Z]\w*)\1/))?a(function(e,t){return function(n,r){if(n.sol()&&(n.eatSpace(),n.match(e)))return r.tokenize.pop(),"string";for(var a=!1;n.peek();)if(a)n.next(),a=!1;else{if(n.match("{%",!1))return r.tokenize.push(x("%","%")),"string";if(n.match("{{",!1))return r.tokenize.push(x("{","}")),"string";if(t&&n.match("#{",!1))return r.tokenize.push(w("#{","}","meta")),"string";a="\\"==n.next()&&t}return"string"}}(n[2],!n[1]),e,t):e.eat("'")?(e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),e.eat("'"),"atom"):e.eat("0")?(e.eat("x")?e.match(/^[0-9a-fA-F_]+/):e.eat("o")?e.match(/^[0-7_]+/):e.eat("b")&&e.match(/^[01_]+/),"number"):e.eat(/^\d/)?(e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):e.match(u)?(e.eat("="),"operator"):e.match(i)||e.match(o)?"operator":(n=e.match(/[({[]/,!1))?a(w(n=n[0],b[n],null),e,t):e.eat("\\")?(e.next(),"meta"):(e.next(),null)}function w(e,t,n,r){return function(a,u){if(!r&&a.match(e))return u.tokenize[u.tokenize.length-1]=w(e,t,n,!0),u.currentIndent+=1,n;var i=g(a,u);return a.current()===t&&(u.tokenize.pop(),u.currentIndent-=1,i=n),i}}function x(e,t,n){return function(r,a){return!n&&r.match("{"+e)?(a.currentIndent+=1,a.tokenize[a.tokenize.length-1]=x(e,t,!0),"meta"):r.match(t+"}")?(a.currentIndent-=1,a.tokenize.pop(),"meta"):g(r,a)}}function y(e,t){return e.eatSpace()?null:(e.match(s)?e.eat(/[!?]/):e.match(u)||e.match(i)||e.match(c),t.tokenize.pop(),"def")}function I(e,t){return e.eatSpace()?null:(e.match(l),t.tokenize.pop(),"def")}function v(e,t,n){return function(r,a){for(var u=!1;r.peek();)if(u)r.next(),u=!1;else{if(r.match("{%",!1))return a.tokenize.push(x("%","%")),t;if(r.match("{{",!1))return a.tokenize.push(x("{","}")),t;if(n&&r.match("#{",!1))return a.tokenize.push(w("#{","}","meta")),t;var i=r.next();if(i==e)return a.tokenize.pop(),t;u=n&&"\\"==i}return t}}const S={name:"crystal",startState:function(){return{tokenize:[g],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t),r=e.current();return n&&"comment"!=n&&(t.lastToken=r,t.lastStyle=n),n},indent:function(e,t,n){return t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),d.test(t)||_.test(t)?n.unit*(e.currentIndent-1):n.unit*e.currentIndent},languageData:{indentOnInput:r(F.concat(k),!0),commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=5258.thebe-core.min.js.map \ No newline at end of file diff --git a/5260.thebe-core.min.js b/5260.thebe-core.min.js new file mode 100644 index 00000000..3282bfc1 --- /dev/null +++ b/5260.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5260],{15260:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{cython:()=>u,mkPython:()=>l,python:()=>c});var i=r(["and","or","not","is"]),a=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],o=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function s(e){return e.scopes[e.scopes.length-1]}function l(e){for(var t="error",n=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,l=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],c=0;ci?v(e,n):a0&&x(e,n)&&(o+=" "+t),o}return k(e,n)}function k(r,a,o){if(r.eatSpace())return null;if(!o&&r.match(/^#.*/))return"comment";if(r.match(/^[0-9\.]/,!1)){var s=!1;if(r.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(s=!0),r.match(/^[\d_]+\.\d*/)&&(s=!0),r.match(/^\.\d+/)&&(s=!0),s)return r.eat(/J/i),"number";var c=!1;if(r.match(/^0x[0-9a-f_]+/i)&&(c=!0),r.match(/^0b[01_]+/i)&&(c=!0),r.match(/^0o[0-7_]+/i)&&(c=!0),r.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(r.eat(/J/i),c=!0),r.match(/^0(?![\dx])/i)&&(c=!0),c)return r.eat(/L/i),"number"}if(r.match(h))return-1!==r.current().toLowerCase().indexOf("f")?(a.tokenize=function(n,r){for(;"rubf".indexOf(n.charAt(0).toLowerCase())>=0;)n=n.substr(1);var i=1==n.length,a="string";function o(e){return function(t,n){var r=k(t,n,!0);return"punctuation"==r&&("{"==t.current()?n.tokenize=o(e+1):"}"==t.current()&&(n.tokenize=e>1?o(e-1):s)),r}}function s(s,l){for(;!s.eol();)if(s.eatWhile(/[^'"\{\}\\]/),s.eat("\\")){if(s.next(),i&&s.eol())return a}else{if(s.match(n))return l.tokenize=r,a;if(s.match("{{"))return a;if(s.match("{",!1))return l.tokenize=o(0),s.current()?a:l.tokenize(s,l);if(s.match("}}"))return a;if(s.match("}"))return t;s.eat(/['"]/)}if(i){if(e.singleLineStringErrors)return t;l.tokenize=r}return a}return s.isString=!0,s}(r.current(),a.tokenize),a.tokenize(r,a)):(a.tokenize=function(n,r){for(;"rubf".indexOf(n.charAt(0).toLowerCase())>=0;)n=n.substr(1);var i=1==n.length,a="string";function o(o,s){for(;!o.eol();)if(o.eatWhile(/[^'"\\]/),o.eat("\\")){if(o.next(),i&&o.eol())return a}else{if(o.match(n))return s.tokenize=r,a;o.eat(/['"]/)}if(i){if(e.singleLineStringErrors)return t;s.tokenize=r}return a}return o.isString=!0,o}(r.current(),a.tokenize),a.tokenize(r,a));for(var u=0;u1&&s(t).offset>n;){if("py"!=s(t).type)return!0;t.scopes.pop()}return s(t).offset!=n}return{name:"python",startState:function(){return{tokenize:y,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:!1,dedent:0}},token:function(e,n){var r=n.errorToken;r&&(n.errorToken=!1);var i=function(e,n){e.sol()&&(n.beginningOfLine=!0,n.dedent=!1);var r=n.tokenize(e,n),i=e.current();if(n.beginningOfLine&&"@"==i)return e.match(m,!1)?"meta":d?"operator":t;if(/\S/.test(i)&&(n.beginningOfLine=!1),"variable"!=r&&"builtin"!=r||"meta"!=n.lastToken||(r="meta"),"pass"!=i&&"return"!=i||(n.dedent=!0),"lambda"==i&&(n.lambda=!0),":"==i&&!n.lambda&&"py"==s(n).type&&e.match(/^\s*(?:#|$)/,!1)&&v(e,n),1==i.length&&!/string|comment/.test(r)){var a="[({".indexOf(i);if(-1!=a&&function(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:e.column()+1;t.scopes.push({offset:t.indent+(u||e.indentUnit),type:n,align:r})}(e,n,"])}".slice(a,a+1)),-1!=(a="])}".indexOf(i))){if(s(n).type!=i)return t;n.indent=n.scopes.pop().offset-(u||e.indentUnit)}}return n.dedent&&e.eol()&&"py"==s(n).type&&n.scopes.length>1&&n.scopes.pop(),r}(e,n);return i&&"comment"!=i&&(n.lastToken="keyword"==i||"punctuation"==i?e.current():i),"punctuation"==i&&(i=null),e.eol()&&n.lambda&&(n.lambda=!1),r?t:i},indent:function(e,t,n){if(e.tokenize!=y)return e.tokenize.isString?null:0;var r=s(e),i=r.type==t.charAt(0)||"py"==r.type&&!e.dedent&&/^(else:|elif |except |finally:)/.test(t);return null!=r.align?r.align-(i?1:0):r.offset-(i?u||n.unit:0)},languageData:{autocomplete:a.concat(o).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}const c=l({}),u=l({extra_keywords:"by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE".split(" ")})}}]); +//# sourceMappingURL=5260.thebe-core.min.js.map \ No newline at end of file diff --git a/5292.thebe-core.min.js b/5292.thebe-core.min.js new file mode 100644 index 00000000..bc1f5284 --- /dev/null +++ b/5292.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5292],{25292:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rv});var i,a=r("abstract as assert boolean break byte case catch char class const continue def default do double else enum extends final finally float for goto if implements import in instanceof int interface long native new package private protected public return short static strictfp super switch synchronized threadsafe throw throws trait transient try void volatile while"),o=r("catch class def do else enum finally for if interface switch trait try while"),l=r("return break continue"),s=r("null true false this");function u(e,t){var n=e.next();if('"'==n||"'"==n)return c(n,e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return i=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),e.eat(/eE/)&&(e.eat(/\+\-/),e.eatWhile(/\d/)),"number";if("/"==n){if(e.eat("*"))return t.tokenize.push(k),k(e,t);if(e.eat("/"))return e.skipToEnd(),"comment";if(m(t.lastToken,!1))return c(n,e,t)}if("-"==n&&e.eat(">"))return i="->",null;if(/[+\-*&%=<>!?|\/~]/.test(n))return e.eatWhile(/[+\-*&%=<>|~]/),"operator";if(e.eatWhile(/[\w\$_]/),"@"==n)return e.eatWhile(/[\w\$_\.]/),"meta";if("."==t.lastToken)return"property";if(e.eat(":"))return i="proplabel","property";var r=e.current();return s.propertyIsEnumerable(r)?"atom":a.propertyIsEnumerable(r)?(o.propertyIsEnumerable(r)?i="newstatement":l.propertyIsEnumerable(r)&&(i="standalone"),"keyword"):"variable"}function c(e,t,n){var r=!1;if("/"!=e&&t.eat(e)){if(!t.eat(e))return"string";r=!0}function i(t,n){for(var i,a=!1,o=!r;null!=(i=t.next());){if(i==e&&!a){if(!r)break;if(t.match(e+e)){o=!0;break}}if('"'==e&&"$"==i&&!a){if(t.eat("{"))return n.tokenize.push(f()),"string";if(t.match(/^\w/,!1))return n.tokenize.push(p),"string"}a=!a&&"\\"==i}return o&&n.tokenize.pop(),"string"}return n.tokenize.push(i),i(t,n)}function f(){var e=1;function t(t,n){if("}"==t.peek()){if(0==--e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)}else"{"==t.peek()&&e++;return u(t,n)}return t.isBase=!0,t}function p(e,t){var n=e.match(/^(\.|[\w\$_]+)/);return n?"."==n[0]?null:"variable":(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t))}function k(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize.pop();break}r="*"==n}return"comment"}function m(e,t){return!e||"operator"==e||"->"==e||/[\.\[\{\(,;:]/.test(e)||"newstatement"==e||"keyword"==e||"proplabel"==e||"standalone"==e&&!t}function h(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function d(e,t,n){return e.context=new h(e.indented,t,n,null,e.context)}function y(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}u.isBase=!0;const v={name:"groovy",startState:function(e){return{tokenize:[u],context:new h(-e,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"statement"!=n.type||m(t.lastToken,!0)||(y(t),n=t.context)),e.eatSpace())return null;i=null;var r=t.tokenize[t.tokenize.length-1](e,t);if("comment"==r)return r;if(null==n.align&&(n.align=!0),";"!=i&&":"!=i||"statement"!=n.type)if("->"==i&&"statement"==n.type&&"}"==n.prev.type)y(t),t.context.align=!1;else if("{"==i)d(t,e.column(),"}");else if("["==i)d(t,e.column(),"]");else if("("==i)d(t,e.column(),")");else if("}"==i){for(;"statement"==n.type;)n=y(t);for("}"==n.type&&(n=y(t));"statement"==n.type;)n=y(t)}else i==n.type?y(t):("}"==n.type||"top"==n.type||"statement"==n.type&&"newstatement"==i)&&d(t,e.column(),"statement");else y(t);return t.startOfLine=!1,t.lastToken=i||r,r},indent:function(e,t,n){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=t&&t.charAt(0),i=e.context;"statement"!=i.type||m(e.lastToken,!0)||(i=i.prev);var a=r==i.type;return"statement"==i.type?i.indented+("{"==r?0:n.unit):i.align?i.column+(a?0:1):i.indented+(a?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}}]); +//# sourceMappingURL=5292.thebe-core.min.js.map \ No newline at end of file diff --git a/5298.thebe-core.min.js b/5298.thebe-core.min.js new file mode 100644 index 00000000..3d65e0f1 --- /dev/null +++ b/5298.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5298],{25298:(e,t,n)=>{n.r(t),n.d(t,{vb:()=>R});var r="error";function a(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var i=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),o=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),c=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),s=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),u=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),l=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),d=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],h=["else","elseif","case","catch","finally"],m=["next","loop"],f=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],p=a(f),b=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],g=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],k=a(b),y=a(g),v=a(d),w=a(h),x=a(m),I=a(["end"]),z=a(["do"]);function L(e,t){t.currentIndent++}function E(e,t){t.currentIndent--}function C(e,t){if(e.eatSpace())return null;var n,a,d;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var h=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(h=!0),h)return e.eat(/J/i),"number";var m=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?m=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),m=!0):e.match(/^0(?![\dx])/i)&&(m=!0),m)return e.eat(/L/i),"number"}return e.match('"')?(t.tokenize=(n=e.current(),a=1==n.length,d="string",function(e,t){for(;!e.eol();){if(e.eatWhile(/[^'"]/),e.match(n))return t.tokenize=C,d;e.eat(/['"]/)}return a&&(t.tokenize=C),d}),t.tokenize(e,t)):e.match(u)||e.match(s)?null:e.match(c)||e.match(i)||e.match(p)?"operator":e.match(o)?null:e.match(z)?(L(0,t),t.doInCurrentLine=!0,"keyword"):e.match(v)?(t.doInCurrentLine?t.doInCurrentLine=!1:L(0,t),"keyword"):e.match(w)?"keyword":e.match(I)?(E(0,t),E(0,t),"keyword"):e.match(x)?(E(0,t),"keyword"):e.match(y)||e.match(k)?"keyword":e.match(l)?"variable":(e.next(),r)}const R={name:"vb",startState:function(){return{tokenize:C,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=function(e,t){var n=t.tokenize(e,t),a=e.current();if("."===a)return"variable"===(n=t.tokenize(e,t))?"variable":r;var i="[({".indexOf(a);return-1!==i&&L(0,t),-1!==(i="])}".indexOf(a))&&E(0,t)?r:n}(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(x)||r.match(I)||r.match(w)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:d.concat(h).concat(m).concat(f).concat(b).concat(g)}}}}]); +//# sourceMappingURL=5298.thebe-core.min.js.map \ No newline at end of file diff --git a/5350.thebe-core.min.js b/5350.thebe-core.min.js new file mode 100644 index 00000000..f20b6026 --- /dev/null +++ b/5350.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5350],{75350:(e,t,n)=>{function r(e){for(var t={},n=0,r=e.length;nb});var a,i=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],o=r(i),u=r(["def","class","case","for","while","until","module","catch","loop","proc","begin"]),l=r(["end","until"]),f={"[":"]","{":"}","(":")"},s={"]":"[","}":"{",")":"("};function c(e,t,n){return n.tokenize.push(e),e(t,n)}function d(e,t){if(e.sol()&&e.match("=begin")&&e.eol())return t.tokenize.push(m),"comment";if(e.eatSpace())return null;var n,r,i,o=e.next();if("`"==o||"'"==o||'"'==o)return c(h(o,"string",'"'==o||"`"==o),e,t);if("/"==o)return function(e){for(var t,n=e.pos,r=0,a=!1,i=!1;null!=(t=e.next());)if(i)i=!1;else{if("[{(".indexOf(t)>-1)r++;else if("]})".indexOf(t)>-1){if(--r<0)break}else if("/"==t&&0==r){a=!0;break}i="\\"==t}return e.backUp(e.pos-n),a}(e)?c(h(o,"string.special",!0),e,t):"operator";if("%"==o){var u="string",l=!0;e.eat("s")?u="atom":e.eat(/[WQ]/)?u="string":e.eat(/[r]/)?u="string.special":e.eat(/[wxq]/)&&(u="string",l=!1);var s=e.eat(/[^\w\s=]/);return s?(f.propertyIsEnumerable(s)&&(s=f[s]),c(h(s,u,l,!0),e,t)):"operator"}if("#"==o)return e.skipToEnd(),"comment";if("<"==o&&(n=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return c((r=n[2],i=n[1],function(e,t){return i&&e.eatSpace(),e.match(r)?t.tokenize.pop():e.skipToEnd(),"string"}),e,t);if("0"==o)return e.eat("x")?e.eatWhile(/[\da-fA-F]/):e.eat("b")?e.eatWhile(/[01]/):e.eatWhile(/[0-7]/),"number";if(/\d/.test(o))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if("?"==o){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}if(":"==o)return e.eat("'")?c(h("'","atom",!1),e,t):e.eat('"')?c(h('"',"atom",!0),e,t):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if("@"==o&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if("$"==o)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(o))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if("|"!=o||!t.varList&&"{"!=t.lastTok&&"do"!=t.lastTok){if(/[\(\)\[\]{}\\;]/.test(o))return a=o,null;if("-"==o&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(o)){var d=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return"."!=o||d||(a="."),"operator"}return null}return a="|",null}function p(e){return e||(e=1),function(t,n){if("}"==t.peek()){if(1==e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=p(e-1)}else"{"==t.peek()&&(n.tokenize[n.tokenize.length-1]=p(e+1));return d(t,n)}}function k(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,d(t,n))}}function h(e,t,n,r){return function(a,i){var o,u=!1;for("read-quoted-paused"===i.context.type&&(i.context=i.context.prev,a.eat("}"));null!=(o=a.next());){if(o==e&&(r||!u)){i.tokenize.pop();break}if(n&&"#"==o&&!u){if(a.eat("{")){"}"==e&&(i.context={prev:i.context,type:"read-quoted-paused"}),i.tokenize.push(p());break}if(/[@\$]/.test(a.peek())){i.tokenize.push(k());break}}u=!u&&"\\"==o}return t}}function m(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}const b={name:"ruby",startState:function(e){return{tokenize:[d],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){a=null,e.sol()&&(t.indented=e.indentation());var n,r=t.tokenize[t.tokenize.length-1](e,t),i=a;if("variable"==r){var f=e.current();"keyword"==(r="."==t.lastTok?"property":o.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(f)?"tag":"def"==t.lastTok||"class"==t.lastTok||t.varList?"def":"variable")&&(i=f,u.propertyIsEnumerable(f)?n="indent":l.propertyIsEnumerable(f)?n="dedent":"if"!=f&&"unless"!=f||e.column()!=e.indentation()?"do"==f&&t.context.indented{t.r(n),t.d(n,{apl:()=>o});var l={"+":["conjugate","add"],"−":["negate","subtract"],"×":["signOf","multiply"],"÷":["reciprocal","divide"],"⌈":["ceiling","greaterOf"],"⌊":["floor","lesserOf"],"∣":["absolute","residue"],"⍳":["indexGenerate","indexOf"],"?":["roll","deal"],"⋆":["exponentiate","toThePowerOf"],"⍟":["naturalLog","logToTheBase"],"○":["piTimes","circularFuncs"],"!":["factorial","binomial"],"⌹":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"≤":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"≥":[null,"greaterThanOrEqual"],"≠":[null,"notEqual"],"≡":["depth","match"],"≢":[null,"notMatch"],"∈":["enlist","membership"],"⍷":[null,"find"],"∪":["unique","union"],"∩":[null,"intersection"],"∼":["not","without"],"∨":[null,"or"],"∧":[null,"and"],"⍱":[null,"nor"],"⍲":[null,"nand"],"⍴":["shapeOf","reshape"],",":["ravel","catenate"],"⍪":[null,"firstAxisCatenate"],"⌽":["reverse","rotate"],"⊖":["axis1Reverse","axis1Rotate"],"⍉":["transpose",null],"↑":["first","take"],"↓":[null,"drop"],"⊂":["enclose","partitionWithAxis"],"⊃":["diclose","pick"],"⌷":[null,"index"],"⍋":["gradeUp",null],"⍒":["gradeDown",null],"⊤":["encode",null],"⊥":["decode",null],"⍕":["format","formatByExample"],"⍎":["execute",null],"⊣":["stop","left"],"⊢":["pass","right"]},a=/[\.\/⌿⍀¨⍣]/,r=/⍬/,u=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,i=/←/,s=/[⍝#].*$/;const o={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(e,n){var t,o,c;return e.eatSpace()?null:'"'===(t=e.next())||"'"===t?(e.eatWhile((o=t,c=!1,function(e){return c=e,e!==o||"\\"===c})),e.next(),n.prev=!0,"string"):/[\[{\(]/.test(t)?(n.prev=!1,null):/[\]}\)]/.test(t)?(n.prev=!0,null):r.test(t)?(n.prev=!1,"atom"):/[¯\d]/.test(t)?(n.func?(n.func=!1,n.prev=!1):n.prev=!0,e.eatWhile(/[\w\.]/),"number"):a.test(t)||i.test(t)?"operator":u.test(t)?(n.func=!0,n.prev=!1,l[t]?"variableName.function.standard":"variableName.function"):s.test(t)?(e.skipToEnd(),"comment"):"∘"===t&&"."===e.peek()?(e.next(),"variableName.function"):(e.eatWhile(/[\w\$_]/),n.prev=!0,"keyword")}}}}]); +//# sourceMappingURL=5351.thebe-core.min.js.map \ No newline at end of file diff --git a/545.thebe-lite.min.js b/545.thebe-lite.min.js new file mode 100644 index 00000000..f24e8a73 --- /dev/null +++ b/545.thebe-lite.min.js @@ -0,0 +1,3 @@ +/*! For license information please see 545.thebe-lite.min.js.LICENSE.txt */ +"use strict";(self.webpackChunkthebe_lite=self.webpackChunkthebe_lite||[]).push([[545],{7497:(e,t,s)=>{s.d(t,{PyodideKernel:()=>ee});const n="function",a="64e10b34-2bf7-4616-9668-f99de5aa046e",r="get",i="has",o="set",{isArray:c}=Array;let{SharedArrayBuffer:l,window:p}=globalThis,{notify:d,wait:u,waitAsync:h}=Atomics,g=null;h||(h=e=>({value:new Promise((t=>{let s=new Worker("data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))");s.onmessage=t,s.postMessage(e)}))}));try{new l(4)}catch(e){l=ArrayBuffer;const t=new WeakMap;if(p){const e=new Map,{prototype:{postMessage:s}}=Worker,n=t=>{const s=t.data?.[a];if(!c(s)){t.stopImmediatePropagation();const{id:n,sb:a}=s;e.get(n)(a)}};g=function(e,...r){const i=e?.[a];if(c(i)){const[e,s]=i;t.set(s,e),this.addEventListener("message",n)}return s.call(this,e,...r)},h=s=>({value:new Promise((n=>{e.set(t.get(s),n)})).then((n=>{e.delete(t.get(s)),t.delete(s);for(let e=0;e({[a]:{id:e,sb:t}});d=s=>{postMessage(e(t.get(s),s))},addEventListener("message",(e=>{const s=e.data?.[a];if(c(s)){const[e,n]=s;t.set(n,e)}}))}}const{Int32Array:m,Map:y,Uint16Array:_}=globalThis,{BYTES_PER_ELEMENT:v}=m,{BYTES_PER_ELEMENT:f}=_,w=new WeakSet,b=new WeakMap,M={value:{then:e=>e()}};let k=0;const E=(e,{parse:t=JSON.parse,stringify:s=JSON.stringify,transform:p,interrupt:E}=JSON)=>{if(!b.has(e)){const x=g||e.postMessage,R=(t,...s)=>x.call(e,{[a]:s},{transfer:t}),H=typeof E===n?E:E?.handler,T=E?.delay||42,P=new TextDecoder("utf-16"),C=(e,t)=>e?h(t,0):(H?((e,t,s)=>{for(;"timed-out"===u(e,0,0,t);)s()})(t,T,H):u(t,0),M);let K=!1;b.set(e,new Proxy(new y,{[i]:(e,t)=>"string"==typeof t&&!t.startsWith("_"),[r]:(s,n)=>"then"===n?null:(...s)=>{const a=k++;let r=new m(new l(2*v)),i=[];w.has(s.at(-1)||i)&&w.delete(i=s.pop()),R(i,a,r,n,p?s.map(p):s);const o=e!==globalThis;let c=0;return K&&o&&(c=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${n}(...args) is awaited`)),C(o,r).value.then((()=>{clearTimeout(c);const e=r[1];if(!e)return;const s=f*e;return r=new m(new l(s+s%v)),R([],a,r),C(o,r).value.then((()=>t(P.decode(new _(r.buffer).slice(0,e)))))}))},[o](t,r,i){const o=typeof i;if(o!==n)throw new Error(`Unable to assign ${r} as ${o}`);if(!t.size){const n=new y;e.addEventListener("message",(async e=>{const r=e.data?.[a];if(c(r)){e.stopImmediatePropagation();const[a,i,...o]=r;let c;if(o.length){const[e,r]=o;if(t.has(e)){K=!0;try{const o=await t.get(e)(...r);if(void 0!==o){const e=s(p?p(o):o);n.set(a,e),i[1]=e.length}}catch(e){c=e}finally{K=!1}}else c=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=n.get(a);n.delete(a);for(let t=new _(i.buffer),s=0;s(w.add(e),e);const x=E,R=Symbol("Comlink.proxy"),H=Symbol("Comlink.endpoint"),T=Symbol("Comlink.releaseProxy"),P=Symbol("Comlink.finalizer"),C=Symbol("Comlink.thrown"),K=e=>"object"==typeof e&&null!==e||"function"==typeof e,A=new Map([["proxy",{canHandle:e=>K(e)&&e[R],serialize(e){const{port1:t,port2:s}=new MessageChannel;return q(e,t),[s,[s]]},deserialize:e=>(e.start(),S(e))}],["throw",{canHandle:e=>K(e)&&C in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){if(e.isError)throw Object.assign(new Error(e.value.message),e.value);throw e.value}}]]);function q(e,t=globalThis,s=["*"]){t.addEventListener("message",(function n(a){if(!a||!a.data)return;if(!function(e,t){for(const s of e){if(t===s||"*"===s)return!0;if(s instanceof RegExp&&s.test(t))return!0}return!1}(s,a.origin))return void console.warn(`Invalid origin '${a.origin}' for comlink proxy`);const{id:r,type:i,path:o}=Object.assign({path:[]},a.data),c=(a.data.argumentList||[]).map(B);let l;try{const t=o.slice(0,-1).reduce(((e,t)=>e[t]),e),s=o.reduce(((e,t)=>e[t]),e);switch(i){case"GET":l=s;break;case"SET":t[o.slice(-1)[0]]=B(a.data.value),l=!0;break;case"APPLY":l=s.apply(t,c);break;case"CONSTRUCT":l=function(e){return Object.assign(e,{[R]:!0})}(new s(...c));break;case"ENDPOINT":{const{port1:t,port2:s}=new MessageChannel;q(e,s),l=function(e,t){return j.set(e,t),e}(t,[t])}break;case"RELEASE":l=void 0;break;default:return}}catch(e){l={value:e,[C]:0}}Promise.resolve(l).catch((e=>({value:e,[C]:0}))).then((s=>{const[a,o]=z(s);t.postMessage(Object.assign(Object.assign({},a),{id:r}),o),"RELEASE"===i&&(t.removeEventListener("message",n),O(t),P in e&&"function"==typeof e[P]&&e[P]())})).catch((e=>{const[s,n]=z({value:new TypeError("Unserializable return value"),[C]:0});t.postMessage(Object.assign(Object.assign({},s),{id:r}),n)}))})),t.start&&t.start()}function O(e){(function(e){return"MessagePort"===e.constructor.name})(e)&&e.close()}function S(e,t){const s=new Map;return e.addEventListener("message",(function(e){const{data:t}=e;if(!t||!t.id)return;const n=s.get(t.id);if(n)try{n(t)}finally{s.delete(t.id)}})),U(e,s,[],t)}function D(e){if(e)throw new Error("Proxy has been released and is not useable")}function W(e){return F(e,new Map,{type:"RELEASE"}).then((()=>{O(e)}))}const L=new WeakMap,I="FinalizationRegistry"in globalThis&&new FinalizationRegistry((e=>{const t=(L.get(e)||0)-1;L.set(e,t),0===t&&W(e)}));function U(e,t,s=[],n=function(){}){let a=!1;const r=new Proxy(n,{get(n,i){if(D(a),i===T)return()=>{!function(e){I&&I.unregister(e)}(r),W(e),t.clear(),a=!0};if("then"===i){if(0===s.length)return{then:()=>r};const n=F(e,t,{type:"GET",path:s.map((e=>e.toString()))}).then(B);return n.then.bind(n)}return U(e,t,[...s,i])},set(n,r,i){D(a);const[o,c]=z(i);return F(e,t,{type:"SET",path:[...s,r].map((e=>e.toString())),value:o},c).then(B)},apply(n,r,i){D(a);const o=s[s.length-1];if(o===H)return F(e,t,{type:"ENDPOINT"}).then(B);if("bind"===o)return U(e,t,s.slice(0,-1));const[c,l]=N(i);return F(e,t,{type:"APPLY",path:s.map((e=>e.toString())),argumentList:c},l).then(B)},construct(n,r){D(a);const[i,o]=N(r);return F(e,t,{type:"CONSTRUCT",path:s.map((e=>e.toString())),argumentList:i},o).then(B)}});return function(e,t){const s=(L.get(t)||0)+1;L.set(t,s),I&&I.register(e,t,e)}(r,e),r}function N(e){const t=e.map(z);return[t.map((e=>e[0])),(s=t.map((e=>e[1])),Array.prototype.concat.apply([],s))];var s}const j=new WeakMap;function z(e){for(const[t,s]of A)if(s.canHandle(e)){const[n,a]=s.serialize(e);return[{type:"HANDLER",name:t,value:n},a]}return[{type:"RAW",value:e},j.get(e)||[]]}function B(e){switch(e.type){case"HANDLER":return A.get(e.name).deserialize(e.value);case"RAW":return e.value}}function F(e,t,s,n){return new Promise((a=>{const r=new Array(4).fill(0).map((()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16))).join("-");t.set(r,a),e.start&&e.start(),e.postMessage(Object.assign({id:r},s),n)}))}var $=s(5764),Y=s(8925),G=s(7883),J=s(8571);class X{constructor(e){this._history=[],this._executionCount=0,this._isDisposed=!1,this._disposed=new J.Signal(this),this._parentHeader=void 0,this._parent=void 0;const{id:t,name:s,location:n,sendMessage:a}=e;this._id=t,this._name=s,this._location=n,this._sendMessage=a}get ready(){return Promise.resolve()}get isDisposed(){return this._isDisposed}get disposed(){return this._disposed}get id(){return this._id}get name(){return this._name}get location(){return this._location}get executionCount(){return this._executionCount}get parentHeader(){return this._parentHeader}get parent(){return this._parent}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(void 0))}async handleMessage(e){switch(this._busy(e),this._parent=e,e.header.msg_type){case"kernel_info_request":await this._kernelInfo(e);break;case"execute_request":await this._execute(e);break;case"input_reply":this.inputReply(e.content);break;case"inspect_request":await this._inspect(e);break;case"is_complete_request":await this._isCompleteRequest(e);break;case"complete_request":await this._complete(e);break;case"history_request":await this._historyRequest(e);break;case"comm_open":await this.commOpen(e);break;case"comm_msg":await this.commMsg(e);break;case"comm_close":await this.commClose(e)}this._idle(e)}stream(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"iopub",msgType:"stream",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}displayData(e,t=void 0){var s,n;const a=void 0!==t?t:this._parentHeader;e.metadata=null!==(s=e.metadata)&&void 0!==s?s:{};const r=G.KernelMessage.createMessage({channel:"iopub",msgType:"display_data",session:null!==(n=null==a?void 0:a.session)&&void 0!==n?n:"",parentHeader:a,content:e});this._sendMessage(r)}inputRequest(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"stdin",msgType:"input_request",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}publishExecuteResult(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"iopub",msgType:"execute_result",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}publishExecuteError(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"iopub",msgType:"error",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}updateDisplayData(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"iopub",msgType:"update_display_data",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}clearOutput(e,t=void 0){var s;const n=void 0!==t?t:this._parentHeader,a=G.KernelMessage.createMessage({channel:"iopub",msgType:"clear_output",session:null!==(s=null==n?void 0:n.session)&&void 0!==s?s:"",parentHeader:n,content:e});this._sendMessage(a)}handleComm(e,t,s,n,a=void 0){var r;const i=void 0!==a?a:this._parentHeader,o=G.KernelMessage.createMessage({channel:"iopub",msgType:e,session:null!==(r=null==i?void 0:i.session)&&void 0!==r?r:"",parentHeader:i,content:t,metadata:s,buffers:n});this._sendMessage(o)}_idle(e){const t=G.KernelMessage.createMessage({msgType:"status",session:e.header.session,parentHeader:e.header,channel:"iopub",content:{execution_state:"idle"}});this._sendMessage(t)}_busy(e){const t=G.KernelMessage.createMessage({msgType:"status",session:e.header.session,parentHeader:e.header,channel:"iopub",content:{execution_state:"busy"}});this._sendMessage(t)}async _kernelInfo(e){const t=await this.kernelInfoRequest(),s=G.KernelMessage.createMessage({msgType:"kernel_info_reply",channel:"shell",session:e.header.session,parentHeader:e.header,content:t});this._sendMessage(s)}async _historyRequest(e){const t=e,s=G.KernelMessage.createMessage({msgType:"history_reply",channel:"shell",parentHeader:t.header,session:e.header.session,content:{status:"ok",history:this._history}});this._sendMessage(s)}_executeInput(e){const t=e,s=t.content.code,n=G.KernelMessage.createMessage({msgType:"execute_input",parentHeader:t.header,channel:"iopub",session:e.header.session,content:{code:s,execution_count:this._executionCount}});this._sendMessage(n)}async _execute(e){const t=e,s=t.content;s.store_history&&this._executionCount++,this._parentHeader=t.header,this._executeInput(t),s.store_history&&this._history.push([0,0,s.code]);const n=await this.executeRequest(t.content),a=G.KernelMessage.createMessage({msgType:"execute_reply",channel:"shell",parentHeader:t.header,session:e.header.session,content:n});this._sendMessage(a)}async _complete(e){const t=e,s=await this.completeRequest(t.content),n=G.KernelMessage.createMessage({msgType:"complete_reply",parentHeader:t.header,channel:"shell",session:e.header.session,content:s});this._sendMessage(n)}async _inspect(e){const t=e,s=await this.inspectRequest(t.content),n=G.KernelMessage.createMessage({msgType:"inspect_reply",parentHeader:t.header,channel:"shell",session:e.header.session,content:s});this._sendMessage(n)}async _isCompleteRequest(e){const t=e,s=await this.isCompleteRequest(t.content),n=G.KernelMessage.createMessage({msgType:"is_complete_reply",parentHeader:t.header,channel:"shell",session:e.header.session,content:s});this._sendMessage(n)}}const Q=s.p+"pypi/all.json",V=s.p+"pypi/piplite-0.4.7-py3-none-any.whl";var Z=s(2115);class ee extends X{constructor(e){super(e),this._ready=new $.PromiseDelegate,this._worker=this.initWorker(e),this._remoteKernel=this.initRemote(e),this._contentsManager=e.contentsManager}initWorker(e){return crossOriginIsolated?new Worker(new URL(s.p+s.u(284),s.b),{type:void 0}):new Worker(new URL(s.p+s.u(903),s.b),{type:void 0})}initRemote(e){let t;crossOriginIsolated?(t=x(this._worker),t.processWorkerMessage=this._processWorkerMessage.bind(this),t.processDriveRequest=async e=>{if(!Z.l)throw new Error("File system calls over Atomics.wait is only supported with jupyterlite>=0.4.0a3");return void 0===this._contentsProcessor&&(this._contentsProcessor=new Z.l({contentsManager:this._contentsManager})),await this._contentsProcessor.processDriveRequest(e)}):(t=S(this._worker),this._worker.addEventListener("message",(e=>{var t;void 0!==(null===(t=null==e?void 0:e.data)||void 0===t?void 0:t._kernelMessage)&&this._processWorkerMessage(e.data._kernelMessage)})));const s=this.initRemoteOptions(e);return t.initialize(s).then(this._ready.resolve.bind(this._ready)),t}initRemoteOptions(e){const{pyodideUrl:t}=e,s=t.slice(0,t.lastIndexOf("/")+1),n=Y.PageConfig.getBaseUrl(),a=[...e.pipliteUrls||[],Q],r=!!e.disablePyPIFallback;return{baseUrl:n,pyodideUrl:t,indexUrl:s,pipliteWheelUrl:e.pipliteWheelUrl||V,pipliteUrls:a,disablePyPIFallback:r,location:this.location,mountDrive:e.mountDrive,loadPyodideOptions:e.loadPyodideOptions||{}}}dispose(){this.isDisposed||(this._worker.terminate(),this._worker=null,super.dispose())}get ready(){return this._ready.promise}_processWorkerMessage(e){var t,s,n,a,r,i,o;if(e.type)switch(e.type){case"stream":{const s=null!==(t=e.bundle)&&void 0!==t?t:{name:"stdout",text:""};this.stream(s,e.parentHeader);break}case"input_request":{const t=null!==(s=e.content)&&void 0!==s?s:{prompt:"",password:!1};this.inputRequest(t,e.parentHeader);break}case"display_data":{const t=null!==(n=e.bundle)&&void 0!==n?n:{data:{},metadata:{},transient:{}};this.displayData(t,e.parentHeader);break}case"update_display_data":{const t=null!==(a=e.bundle)&&void 0!==a?a:{data:{},metadata:{},transient:{}};this.updateDisplayData(t,e.parentHeader);break}case"clear_output":{const t=null!==(r=e.bundle)&&void 0!==r?r:{wait:!1};this.clearOutput(t,e.parentHeader);break}case"execute_result":{const t=null!==(i=e.bundle)&&void 0!==i?i:{execution_count:0,data:{},metadata:{}};this.publishExecuteResult(t,e.parentHeader);break}case"execute_error":{const t=null!==(o=e.bundle)&&void 0!==o?o:{ename:"",evalue:"",traceback:[]};this.publishExecuteError(t,e.parentHeader);break}case"comm_msg":case"comm_open":case"comm_close":this.handleComm(e.type,e.content,e.metadata,e.buffers,e.parentHeader)}}async kernelInfoRequest(){return{implementation:"pyodide",implementation_version:"0.1.0",language_info:{codemirror_mode:{name:"python",version:3},file_extension:".py",mimetype:"text/x-python",name:"python",nbconvert_exporter:"python",pygments_lexer:"ipython3",version:"3.8"},protocol_version:"5.3",status:"ok",banner:"A WebAssembly-powered Python kernel backed by Pyodide",help_links:[{text:"Python (WASM) Kernel",url:"https://pyodide.org"}]}}async executeRequest(e){await this.ready;const t=await this._remoteKernel.execute(e,this.parent);return t.execution_count=this.executionCount,t}async completeRequest(e){return await this._remoteKernel.complete(e,this.parent)}async inspectRequest(e){return await this._remoteKernel.inspect(e,this.parent)}async isCompleteRequest(e){return await this._remoteKernel.isComplete(e,this.parent)}async commInfoRequest(e){return await this._remoteKernel.commInfo(e,this.parent)}async commOpen(e){return await this._remoteKernel.commOpen(e,this.parent)}async commMsg(e){return await this._remoteKernel.commMsg(e,this.parent)}async commClose(e){return await this._remoteKernel.commClose(e,this.parent)}async inputReply(e){return await this._remoteKernel.inputReply(e,this.parent)}}}}]); +//# sourceMappingURL=545.thebe-lite.min.js.map \ No newline at end of file diff --git a/5455.thebe-core.min.js b/5455.thebe-core.min.js new file mode 100644 index 00000000..e5584cfd --- /dev/null +++ b/5455.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5455],{45455:(t,e,n)=>{n.r(e),n.d(e,{commonLisp:()=>d});var r,o=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,c=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,a=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,l=/[^\s'`,@()\[\]";]/;function i(t){for(var e;e=t.next();)if("\\"==e)t.next();else if(!l.test(e)){t.backUp(1);break}return t.current()}function u(t,e){if(t.eatSpace())return r="ws",null;if(t.match(a))return"number";var n;if("\\"==(n=t.next())&&(n=t.next()),'"'==n)return(e.tokenize=s)(t,e);if("("==n)return r="open","bracket";if(")"==n)return r="close","bracket";if(";"==n)return t.skipToEnd(),r="ws","comment";if(/['`,@]/.test(n))return null;if("|"==n)return t.skipTo("|")?(t.next(),"variableName"):(t.skipToEnd(),"error");if("#"==n)return"("==(n=t.next())?(r="open","bracket"):/[+\-=\.']/.test(n)||/\d/.test(n)&&t.match(/^\d*#/)?null:"|"==n?(e.tokenize=f)(t,e):":"==n?(i(t),"meta"):"\\"==n?(t.next(),i(t),"string.special"):"error";var l=i(t);return"."==l?null:(r="symbol","nil"==l||"t"==l||":"==l.charAt(0)?"atom":"open"==e.lastType&&(o.test(l)||c.test(l))?"keyword":"&"==l.charAt(0)?"variableName.special":"variableName")}function s(t,e){for(var n,r=!1;n=t.next();){if('"'==n&&!r){e.tokenize=u;break}r=!r&&"\\"==n}return"string"}function f(t,e){for(var n,o;n=t.next();){if("#"==n&&"|"==o){e.tokenize=u;break}o=n}return r="ws","comment"}const d={name:"commonlisp",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:u}},token:function(t,e){t.sol()&&"number"!=typeof e.ctx.indentTo&&(e.ctx.indentTo=e.ctx.start+1),r=null;var n=e.tokenize(t,e);return"ws"!=r&&(null==e.ctx.indentTo?"symbol"==r&&c.test(t.current())?e.ctx.indentTo=e.ctx.start+t.indentUnit:e.ctx.indentTo="next":"next"==e.ctx.indentTo&&(e.ctx.indentTo=t.column()),e.lastType=r),"open"==r?e.ctx={prev:e.ctx,start:t.column(),indentTo:null}:"close"==r&&(e.ctx=e.ctx.prev||e.ctx),n},indent:function(t){var e=t.ctx.indentTo;return"number"==typeof e?e:t.ctx.start+1},languageData:{commentTokens:{line:";;",block:{open:"#|",close:"|#"}},closeBrackets:{brackets:["(","[","{",'"']}}}}}]); +//# sourceMappingURL=5455.thebe-core.min.js.map \ No newline at end of file diff --git a/5515.thebe-core.min.js b/5515.thebe-core.min.js new file mode 100644 index 00000000..440d2541 --- /dev/null +++ b/5515.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5515],{95515:(e,t,n)=>{n.r(t),n.d(t,{q:()=>p});var r,o=new RegExp("^("+["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"].join("|")+")$"),i=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;function s(e,t){var n=e.sol(),a=e.next();if(r=null,n){if("/"==a)return(t.tokenize=c)(e,t);if("\\"==a)return e.eol()||/\s/.test(e.peek())?(e.skipToEnd(),/^\\\s*$/.test(e.current())?(t.tokenize=l)(e):t.tokenize=s,"comment"):(t.tokenize=s,"builtin")}if(/\s/.test(a))return"/"==e.peek()?(e.skipToEnd(),"comment"):"null";if('"'==a)return(t.tokenize=u)(e,t);if("`"==a)return e.eatWhile(/[A-Za-z\d_:\/.]/),"macroName";if("."==a&&/\d/.test(e.peek())||/\d/.test(a)){var d=null;return e.backUp(1),e.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||e.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||e.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||e.match(/^\d+[ptuv]{1}/)?d="temporal":(e.match(/^0[NwW]{1}/)||e.match(/^0x[\da-fA-F]*/)||e.match(/^[01]+[b]{1}/)||e.match(/^\d+[chijn]{1}/)||e.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))&&(d="number"),!d||(a=e.peek())&&!i.test(a)?(e.next(),"error"):d}return/[A-Za-z]|\./.test(a)?(e.eatWhile(/[A-Za-z._\d]/),o.test(e.current())?"keyword":"variable"):/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(a)||/[{}\(\[\]\)]/.test(a)?null:"error"}function c(e,t){return e.skipToEnd(),/\/\s*$/.test(e.current())?(t.tokenize=a)(e,t):t.tokenize=s,"comment"}function a(e,t){var n=e.sol()&&"\\"==e.peek();return e.skipToEnd(),n&&/^\\\s*$/.test(e.current())&&(t.tokenize=s),"comment"}function l(e){return e.skipToEnd(),"comment"}function u(e,t){for(var n,r=!1,o=!1;n=e.next();){if('"'==n&&!r){o=!0;break}r=!r&&"\\"==n}return o&&(t.tokenize=s),"string"}function d(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function m(e){e.indent=e.context.indent,e.context=e.context.prev}const p={name:"q",startState:function(){return{tokenize:s,context:null,indent:0,col:0}},token:function(e,t){e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation());var n=t.tokenize(e,t);if("comment"!=n&&t.context&&null==t.context.align&&"pattern"!=t.context.type&&(t.context.align=!0),"("==r)d(t,")",e.column());else if("["==r)d(t,"]",e.column());else if("{"==r)d(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"==t.context.type;)m(t);t.context&&r==t.context.type&&m(t)}else"."==r&&t.context&&"pattern"==t.context.type?m(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?d(t,"pattern",e.column()):"pattern"!=t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),o=e.context;if(/[\]\}]/.test(r))for(;o&&"pattern"==o.type;)o=o.prev;var i=o&&r==o.type;return o?"pattern"==o.type?o.col:o.align?o.col+(i?0:1):o.indent+(i?0:n.unit):0}}}}]); +//# sourceMappingURL=5515.thebe-core.min.js.map \ No newline at end of file diff --git a/5525.thebe-core.min.js b/5525.thebe-core.min.js new file mode 100644 index 00000000..346363de --- /dev/null +++ b/5525.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5525],{15525:(e,t,n)=>{function r(e,t,n){return void 0===n&&(n=""),void 0===t&&(t="\\b"),new RegExp("^"+n+"(("+e.join(")|(")+"))"+t)}n.r(t),n.d(t,{julia:()=>E});var a=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],i=r(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),s=/^[;,()[\]{}]/,u=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,o=r(["\\\\[0-7]{1,3}","\\\\x[A-Fa-f0-9]{1,2}","\\\\[abefnrtv0%?'\"\\\\]","([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"],"'"),c=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],l=["true","false","nothing","NaN","Inf"],m=r(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),f=r(["end","else","elseif","catch","finally"]),p=r(c),h=r(l),d=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,F=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,k=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,b=r(a,"","@"),g=r(a,"",":");function v(e){return e.nestedArrays>0}function x(e,t){return void 0===t&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function A(e,t){if(e.match("#=",!1))return t.tokenize=y,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r,a,o=e.peek();if("#"===o)return e.skipToEnd(),"comment";if("["===o&&(t.scopes.push("["),t.nestedArrays++),"("===o&&(t.scopes.push("("),t.nestedGenerators++),v(t)&&"]"===o){for(;t.scopes.length&&"["!==x(t);)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(function(e){return e.nestedGenerators>0}(t)&&")"===o){for(;t.scopes.length&&"("!==x(t);)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(v(t)){if("end"==t.lastToken&&e.match(":"))return"operator";if(e.match("end"))return"number"}if((r=e.match(m,!1))&&t.scopes.push(r[0]),e.match(f,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=z,t.tokenize(e,t);if(!n&&(e.match(F)||e.match(g)))return"builtin";if(e.match(i))return"operator";if(e.match(/^\.?\d/,!1)){var c=RegExp(/^im\b/),l=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(l=!0),e.match(/^0x[0-9a-f_]+/i)&&(l=!0),e.match(/^0b[01_]+/i)&&(l=!0),e.match(/^0o[0-7_]+/i)&&(l=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(l=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(l=!0),l)return e.match(c),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=_,t.tokenize(e,t);if(e.match(k))return t.tokenize=('"""'===(a=e.current()).substr(-3)?a='"""':'"'===a.substr(-1)&&(a='"'),function(e,t){if(e.eat("\\"))e.next();else{if(e.match(a))return t.tokenize=A,t.leavingExpr=!0,"string";e.eat(/[`"]/)}return e.eatWhile(/[^\\`"]/),"string"}),t.tokenize(e,t);if(e.match(d)||e.match(b))return"meta";if(e.match(s))return null;if(e.match(p))return"keyword";if(e.match(h))return"builtin";var E=t.isDefinition||"function"==t.lastToken||"macro"==t.lastToken||"type"==t.lastToken||"struct"==t.lastToken||"immutable"==t.lastToken;return e.match(u)?E?"."===e.peek()?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function z(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():0==t.nestedParameters&&(t.tokenize=A),"builtin"}function y(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,0==t.nestedComments&&(t.tokenize=A)),"comment"}function _(e,t){var n,r=!1;if(e.match(o))r=!0;else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i))((a=parseInt(n[1],16))<=55295||a>=57344)&&(r=!0,e.next());else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var a;(a=parseInt(n[1],16))<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=A,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=A),"error")}const E={name:"julia",startState:function(){return{tokenize:A,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,t,n){var r=0;return("]"===t||")"===t||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:c.concat(l)}}}}]); +//# sourceMappingURL=5525.thebe-core.min.js.map \ No newline at end of file diff --git a/5595.thebe-core.min.js b/5595.thebe-core.min.js new file mode 100644 index 00000000..7d5d52a4 --- /dev/null +++ b/5595.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5595],{35595:(E,T,I)=>{I.r(T),I.d(T,{cobol:()=>S});var N="string",R="atom";function A(E){for(var T={},I=E.split(" "),N=0;N >= "),D={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};const S={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(E,T){if(null==T.indentStack&&E.sol()&&(T.indentation=6),E.eatSpace())return null;var I=null;if("string"===T.mode){for(var A=!1;null!=(A=E.next());)if(('"'==A||"'"==A)&&!E.match(/['"]/,!1)){T.mode=!1;break}I=N}else{var S=E.next(),U=E.column();if(U>=0&&U<=5)I="def";else if(U>=72&&U<=79)E.skipToEnd(),I="header";else if("*"==S&&6==U)E.skipToEnd(),I="comment";else if('"'==S||"'"==S)T.mode="string",I=N;else if("'"!=S||D.digit_or_colon.test(E.peek()))if("."==S)I="link";else if(function(E,T){return"0"===E&&T.eat(/x/i)?(T.eatWhile(D.hex),!0):("+"!=E&&"-"!=E||!D.digit.test(T.peek())||(T.eat(D.sign),E=T.next()),!!D.digit.test(E)&&(T.eat(E),T.eatWhile(D.digit),"."==T.peek()&&(T.eat("."),T.eatWhile(D.digit)),T.eat(D.exponent)&&(T.eat(D.sign),T.eatWhile(D.digit)),!0))}(S,E))I="number";else{if(E.current().match(D.symbol))for(;U<71&&void 0!==E.eat(D.symbol);)U++;I=C&&C.propertyIsEnumerable(E.current().toUpperCase())?"keyword":L&&L.propertyIsEnumerable(E.current().toUpperCase())?"builtin":O&&O.propertyIsEnumerable(E.current().toUpperCase())?R:null}else I=R}return I},indent:function(E){return null==E.indentStack?E.indentation:E.indentStack.indent}}}}]); +//# sourceMappingURL=5595.thebe-core.min.js.map \ No newline at end of file diff --git a/560.thebe-core.min.js b/560.thebe-core.min.js new file mode 100644 index 00000000..261c996e --- /dev/null +++ b/560.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[560],{70560:(e,t,n)=>{function $(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}n.r(t),n.d(t,{mumps:()=>l});var o=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]"),a=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))"),r=new RegExp("^[\\.,:]"),c=new RegExp("[()]"),m=new RegExp("^[%A-Za-z][A-Za-z0-9]*"),s=$(["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"]),i=$(["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"]);const l={name:"mumps",startState:function(){return{label:!1,commandMode:0}},token:function(e,t){var n=function(e,t){e.sol()&&(t.label=!0,t.commandMode=0);var n=e.peek();return" "==n||"\t"==n?(t.label=!1,0==t.commandMode?t.commandMode=1:(t.commandMode<0||2==t.commandMode)&&(t.commandMode=0)):"."!=n&&t.commandMode>0&&(t.commandMode=":"==n?-1:2),"("!==n&&"\t"!==n||(t.label=!1),";"===n?(e.skipToEnd(),"comment"):e.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/)?"number":'"'==n?e.skipTo('"')?(e.next(),"string"):(e.skipToEnd(),"error"):e.match(a)||e.match(o)?"operator":e.match(r)?null:c.test(n)?(e.next(),"bracket"):t.commandMode>0&&e.match(i)?"controlKeyword":e.match(s)?"builtin":e.match(m)?"variable":"$"===n||"^"===n?(e.next(),"builtin"):"@"===n?(e.next(),"string.special"):/[\w%]/.test(n)?(e.eatWhile(/[\w%]/),"variable"):(e.next(),"error")}(e,t);return t.label?"tag":n}}}}]); +//# sourceMappingURL=560.thebe-core.min.js.map \ No newline at end of file diff --git a/567.thebe-core.min.js b/567.thebe-core.min.js new file mode 100644 index 00000000..d5cdb7e8 --- /dev/null +++ b/567.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[567],{60567:(e,i,$)=>{function r(e){for(var i={},$=e.split(" "),r=0;r<$.length;++r)i[$[r]]=!0;return i}$.r(i),$.d(i,{mirc:()=>m});var t=r("$! $$ $& $? $+ $abook $abs $active $activecid $activewid $address $addtok $agent $agentname $agentstat $agentver $alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime $asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind $binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes $chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color $com $comcall $comchan $comerr $compact $compress $comval $cos $count $cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight $dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress $deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll $dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error $eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir $finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve $fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt $group $halted $hash $height $hfind $hget $highlight $hnick $hotline $hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil $inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect $insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile $isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive $lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock $lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer $maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext $menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode $modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile $nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly $opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree $pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo $readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex $reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline $sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin $site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname $sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped $syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp $timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel $ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver $version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor"),a=r("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice away background ban bcopy beep bread break breplace bset btrunc bunset bwrite channel clear clearall cline clipboard close cnick color comclose comopen comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver debug dec describe dialog did didtok disable disconnect dlevel dline dll dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable events exit fclose filter findtext finger firewall flash flist flood flush flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear ialmark identd if ignore iline inc invite iuser join kick linesep links list load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice qme qmsg query queryn quit raw reload remini remote remove rename renwin reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini say scid scon server set showmirc signam sline sockaccept sockclose socklist socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs elseif else goto menu nicklist status title icon size option text edit button check radio box scroll list combo link tab item"),n=r("if elseif else and not or eq ne in ni for foreach while switch"),o=/[+\-*&%=<>!?^\/\|]/;function s(e,i,$){return i.tokenize=$,$(e,i)}function l(e,i){var $=i.beforeParams;i.beforeParams=!1;var r=e.next();if(/[\[\]{}\(\),\.]/.test(r))return"("==r&&$?i.inParams=!0:")"==r&&(i.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("\\"==r)return e.eat("\\"),e.eat(/./),"number";if("/"==r&&e.eat("*"))return s(e,i,c);if(";"==r&&e.match(/ *\( *\(/))return s(e,i,d);if(";"!=r||i.inParams){if('"'==r)return e.eat(/"/),"keyword";if("$"==r)return e.eatWhile(/[$_a-z0-9A-Z\.:]/),t&&t.propertyIsEnumerable(e.current().toLowerCase())?"keyword":(i.beforeParams=!0,"builtin");if("%"==r)return e.eatWhile(/[^,\s()]/),i.beforeParams=!0,"string";if(o.test(r))return e.eatWhile(o),"operator";e.eatWhile(/[\w\$_{}]/);var l=e.current().toLowerCase();return a&&a.propertyIsEnumerable(l)?"keyword":n&&n.propertyIsEnumerable(l)?(i.beforeParams=!0,"keyword"):null}return e.skipToEnd(),"comment"}function c(e,i){for(var $,r=!1;$=e.next();){if("/"==$&&r){i.tokenize=l;break}r="*"==$}return"comment"}function d(e,i){for(var $,r=0;$=e.next();){if(";"==$&&2==r){i.tokenize=l;break}")"==$?r++:" "!=$&&(r=0)}return"meta"}const m={name:"mirc",startState:function(){return{tokenize:l,beforeParams:!1,inParams:!1}},token:function(e,i){return e.eatSpace()?null:i.tokenize(e,i)}}}}]); +//# sourceMappingURL=567.thebe-core.min.js.map \ No newline at end of file diff --git a/5687.thebe-core.min.js b/5687.thebe-core.min.js new file mode 100644 index 00000000..a925146c --- /dev/null +++ b/5687.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5687],{45687:(e,t,r)=>{function o(e){var t,r,o=(e={...q,...e}).inline,i=e.tokenHooks,a=e.documentTypes||{},n=e.mediaTypes||{},l=e.mediaFeatures||{},s=e.mediaValueKeywords||{},c=e.propertyKeywords||{},d=e.nonStandardPropertyKeywords||{},p=e.fontProperties||{},u=e.counterDescriptors||{},m=e.colorKeywords||{},g=e.valueKeywords||{},h=e.allowNested,b=e.lineComment,f=!0===e.supportsAtComponent,k=!1!==e.highlightNonStandardPropertyKeywords;function y(e,r){return t=r,e}function w(e,t){var r=e.next();if(i[r]){var o=i[r](e,t);if(!1!==o)return o}return"@"==r?(e.eatWhile(/[\w\\\-]/),y("def",e.current())):"="==r||("~"==r||"|"==r)&&e.eat("=")?y(null,"compare"):'"'==r||"'"==r?(t.tokenize=v(r),t.tokenize(e,t)):"#"==r?(e.eatWhile(/[\w\\\-]/),y("atom","hash")):"!"==r?(e.match(/^\s*\w*/),y("keyword","important")):/\d/.test(r)||"."==r&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),y("number","unit")):"-"!==r?/[,+>*\/]/.test(r)?y(null,"select-op"):"."==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?y("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(r)?y(null,r):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=x),y("variableName.function","variable")):/[\w\\\-]/.test(r)?(e.eatWhile(/[\w\\\-]/),y("property","word")):y(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),y("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?y("def","variable-definition"):y("variableName","variable")):e.match(/^\w+-/)?y("meta","meta"):void 0}function v(e){return function(t,r){for(var o,i=!1;null!=(o=t.next());){if(o==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==o}return(o==e||!i&&")"!=e)&&(r.tokenize=null),y("string","string")}}function x(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=v(")"),y(null,"(")}function z(e,t,r){this.type=e,this.indent=t,this.prev=r}function j(e,t,r,o){return e.context=new z(r,t.indentation()+(!1===o?0:t.indentUnit),e.context),r}function K(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function _(e,t,r){return O[r.context.type](e,t,r)}function B(e,t,r,o){for(var i=o||1;i>0;i--)r.context=r.context.prev;return _(e,t,r)}function C(e){var t=e.current().toLowerCase();r=g.hasOwnProperty(t)?"atom":m.hasOwnProperty(t)?"keyword":"variable"}var O={top:function(e,t,o){if("{"==e)return j(o,t,"block");if("}"==e&&o.context.prev)return K(o);if(f&&/@component/i.test(e))return j(o,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return j(o,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return j(o,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return o.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return j(o,t,"at");if("hash"==e)r="builtin";else if("word"==e)r="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return j(o,t,"interpolation");if(":"==e)return"pseudo";if(h&&"("==e)return j(o,t,"parens")}return o.context.type},block:function(e,t,o){if("word"==e){var i=t.current().toLowerCase();return c.hasOwnProperty(i)?(r="property","maybeprop"):d.hasOwnProperty(i)?(r=k?"string.special":"property","maybeprop"):h?(r=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(r="error","maybeprop")}return"meta"==e?"block":h||"hash"!=e&&"qualifier"!=e?O.top(e,t,o):(r="error","block")},maybeprop:function(e,t,r){return":"==e?j(r,t,"prop"):_(e,t,r)},prop:function(e,t,o){if(";"==e)return K(o);if("{"==e&&h)return j(o,t,"propBlock");if("}"==e||"{"==e)return B(e,t,o);if("("==e)return j(o,t,"parens");if("hash"!=e||/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t.current())){if("word"==e)C(t);else if("interpolation"==e)return j(o,t,"interpolation")}else r="error";return"prop"},propBlock:function(e,t,o){return"}"==e?K(o):"word"==e?(r="property","maybeprop"):o.context.type},parens:function(e,t,r){return"{"==e||"}"==e?B(e,t,r):")"==e?K(r):"("==e?j(r,t,"parens"):"interpolation"==e?j(r,t,"interpolation"):("word"==e&&C(t),"parens")},pseudo:function(e,t,o){return"meta"==e?"pseudo":"word"==e?(r="variableName.constant",o.context.type):_(e,t,o)},documentTypes:function(e,t,o){return"word"==e&&a.hasOwnProperty(t.current())?(r="tag",o.context.type):O.atBlock(e,t,o)},atBlock:function(e,t,o){if("("==e)return j(o,t,"atBlock_parens");if("}"==e||";"==e)return B(e,t,o);if("{"==e)return K(o)&&j(o,t,h?"block":"top");if("interpolation"==e)return j(o,t,"interpolation");if("word"==e){var i=t.current().toLowerCase();r="only"==i||"not"==i||"and"==i||"or"==i?"keyword":n.hasOwnProperty(i)?"attribute":l.hasOwnProperty(i)?"property":s.hasOwnProperty(i)?"keyword":c.hasOwnProperty(i)?"property":d.hasOwnProperty(i)?k?"string.special":"property":g.hasOwnProperty(i)?"atom":m.hasOwnProperty(i)?"keyword":"error"}return o.context.type},atComponentBlock:function(e,t,o){return"}"==e?B(e,t,o):"{"==e?K(o)&&j(o,t,h?"block":"top",!1):("word"==e&&(r="error"),o.context.type)},atBlock_parens:function(e,t,r){return")"==e?K(r):"{"==e||"}"==e?B(e,t,r,2):O.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,o){return"{"==e?j(o,t,"restricted_atBlock"):"word"==e&&"@counter-style"==o.stateArg?(r="variable","restricted_atBlock_before"):_(e,t,o)},restricted_atBlock:function(e,t,o){return"}"==e?(o.stateArg=null,K(o)):"word"==e?(r="@font-face"==o.stateArg&&!p.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==o.stateArg&&!u.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,o){return"word"==e?(r="variable","keyframes"):"{"==e?j(o,t,"top"):_(e,t,o)},at:function(e,t,o){return";"==e?K(o):"{"==e||"}"==e?B(e,t,o):("word"==e?r="tag":"hash"==e&&(r="builtin"),"at")},interpolation:function(e,t,o){return"}"==e?K(o):"{"==e||";"==e?B(e,t,o):("word"==e?r="variable":"variable"!=e&&"("!=e&&")"!=e&&(r="error"),"interpolation")}};return{name:e.name,startState:function(){return{tokenize:null,state:o?"block":"top",stateArg:null,context:new z(o?"block":"top",0,null)}},token:function(e,o){if(!o.tokenize&&e.eatSpace())return null;var i=(o.tokenize||w)(e,o);return i&&"object"==typeof i&&(t=i[1],i=i[0]),r=i,"comment"!=t&&(o.state=O[o.state](t,e,o)),r},indent:function(e,t,r){var o=e.context,i=t&&t.charAt(0),a=o.indent;return"prop"!=o.type||"}"!=i&&")"!=i||(o=o.prev),o.prev&&("}"!=i||"block"!=o.type&&"top"!=o.type&&"interpolation"!=o.type&&"restricted_atBlock"!=o.type?(")"!=i||"parens"!=o.type&&"atBlock_parens"!=o.type)&&("{"!=i||"at"!=o.type&&"atBlock"!=o.type)||(a=Math.max(0,o.indent-r.unit)):a=(o=o.prev).indent),a},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:b,block:{open:"/*",close:"*/"}},autocomplete:P}}}function i(e){for(var t={},r=0;rK,gss:()=>O,keywords:()=>j,less:()=>C,mkCSS:()=>o,sCSS:()=>B});var a=["domain","regexp","url","url-prefix"],n=i(a),l=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],s=i(l),c=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme","dynamic-range","video-dynamic-range"],d=i(c),p=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light","standard","high"],u=i(p),m=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],g=i(m),h=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],b=i(h),f=["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],k=i(f),y=i(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),w=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],v=i(w),x=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],z=i(x),P=a.concat(l).concat(c).concat(p).concat(m).concat(h).concat(w).concat(x);const j={properties:m,colors:w,fonts:f,values:x,all:P},q={documentTypes:n,mediaTypes:s,mediaFeatures:d,mediaValueKeywords:u,propertyKeywords:g,nonStandardPropertyKeywords:b,fontProperties:k,counterDescriptors:y,colorKeywords:v,valueKeywords:z,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=_,_(e,t))}}},K=o({name:"css"});function _(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&"/"==r){t.tokenize=null;break}o="*"==r}return["comment","comment"]}const B=o({name:"scss",mediaTypes:s,mediaFeatures:d,mediaValueKeywords:u,propertyKeywords:g,nonStandardPropertyKeywords:b,colorKeywords:v,valueKeywords:z,fontProperties:k,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=_,_(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName.special","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}}}),C=o({name:"less",mediaTypes:s,mediaFeatures:d,mediaValueKeywords:u,propertyKeywords:g,nonStandardPropertyKeywords:b,colorKeywords:v,valueKeywords:z,fontProperties:k,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=_,_(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName","variable"])},"&":function(){return["atom","atom"]}}}),O=o({name:"gss",documentTypes:n,mediaTypes:s,mediaFeatures:d,propertyKeywords:g,nonStandardPropertyKeywords:b,fontProperties:k,counterDescriptors:y,colorKeywords:v,valueKeywords:z,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=_,_(e,t))}}})}}]); +//# sourceMappingURL=5687.thebe-core.min.js.map \ No newline at end of file diff --git a/5945.thebe-core.min.js b/5945.thebe-core.min.js new file mode 100644 index 00000000..8f73d031 --- /dev/null +++ b/5945.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[5945],{5945:(e,t,n)=>{n.r(t),n.d(t,{factor:()=>r});const r=(0,n(45286).I)({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}})},45286:(e,t,n)=>{function r(e){a(e,"start");var t={},n=e.languageData||{},r=!1;for(var g in e)if(g!=n&&e.hasOwnProperty(g))for(var l=t[g]=[],u=e[g],d=0;d2&&s.token&&"string"!=typeof s.token){n.pending=[];for(var l=2;l-1)return null;var a=n.indent.length-1,o=e[n.state];e:for(;;){for(var s=0;sr})}}]); +//# sourceMappingURL=5945.thebe-core.min.js.map \ No newline at end of file diff --git a/6099.thebe-core.min.js b/6099.thebe-core.min.js new file mode 100644 index 00000000..1743ef59 --- /dev/null +++ b/6099.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6099],{6099:(e,t,i)=>{i.r(t),i.d(t,{properties:()=>n});const n={name:"properties",token:function(e,t){var i=e.sol()||t.afterSection,n=e.eol();if(t.afterSection=!1,i&&(t.nextMultiline?(t.inMultiline=!0,t.nextMultiline=!1):t.position="def"),n&&!t.nextMultiline&&(t.inMultiline=!1,t.position="def"),i)for(;e.eatSpace(););var o=e.next();return!i||"#"!==o&&"!"!==o&&";"!==o?i&&"["===o?(t.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):"="===o||":"===o?(t.position="quote",null):("\\"===o&&"quote"===t.position&&e.eol()&&(t.nextMultiline=!0),t.position):(t.position="comment",e.skipToEnd(),"comment")},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}}}}]); +//# sourceMappingURL=6099.thebe-core.min.js.map \ No newline at end of file diff --git a/615.thebe-core.min.js b/615.thebe-core.min.js new file mode 100644 index 00000000..2438ac2c --- /dev/null +++ b/615.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[615],{70615:(t,e,a)=>{a.r(e),a.d(e,{troff:()=>h});var r={};function n(t){if(t.eatSpace())return null;var e=t.sol(),a=t.next();if("\\"===a)return t.match("fB")||t.match("fR")||t.match("fI")||t.match("u")||t.match("d")||t.match("%")||t.match("&")?"string":t.match("m[")?(t.skipTo("]"),t.next(),"string"):t.match("s+")||t.match("s-")?(t.eatWhile(/[\d-]/),"string"):t.match("(")||t.match("*(")?(t.eatWhile(/[\w-]/),"string"):"string";if(e&&("."===a||"'"===a)&&t.eat("\\")&&t.eat('"'))return t.skipToEnd(),"comment";if(e&&"."===a){if(t.match("B ")||t.match("I ")||t.match("R "))return"attribute";if(t.match("TH ")||t.match("SH ")||t.match("SS ")||t.match("HP "))return t.skipToEnd(),"quote";if(t.match(/[A-Z]/)&&t.match(/[A-Z]/)||t.match(/[a-z]/)&&t.match(/[a-z]/))return"attribute"}t.eatWhile(/[\w-]/);var n=t.current();return r.hasOwnProperty(n)?r[n]:null}function c(t,e){return(e.tokens[0]||n)(t,e)}const h={name:"troff",startState:function(){return{tokens:[]}},token:function(t,e){return c(t,e)}}}}]); +//# sourceMappingURL=615.thebe-core.min.js.map \ No newline at end of file diff --git a/6162.thebe-core.min.js b/6162.thebe-core.min.js new file mode 100644 index 00000000..4ff10a62 --- /dev/null +++ b/6162.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6162],{96162:(e,t,a)=>{function n(e){return new RegExp("^(?:"+e.join("|")+")$","i")}a.r(t),a.d(t,{lua:()=>m});var r=n(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),o=n(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),i=n(["function","if","repeat","do","\\(","{"]),s=n(["end","until","\\)","}"]),l=new RegExp("^(?:"+["end","until","\\)","}","else","elseif"].join("|")+")","i");function u(e){for(var t=0;e.eat("=");)++t;return e.eat("["),t}function c(e,t){var a,n=e.next();return"-"==n&&e.eat("-")?e.eat("[")&&e.eat("[")?(t.cur=g(u(e),"comment"))(e,t):(e.skipToEnd(),"comment"):'"'==n||"'"==n?(t.cur=(a=n,function(e,t){for(var n,r=!1;null!=(n=e.next())&&(n!=a||r);)r=!r&&"\\"==n;return r||(t.cur=c),"string"}))(e,t):"["==n&&/[\[=]/.test(e.peek())?(t.cur=g(u(e),"string"))(e,t):/\d/.test(n)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(n)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function g(e,t){return function(a,n){for(var r,o=null;null!=(r=a.next());)if(null==o)"]"==r&&(o=0);else if("="==r)++o;else{if("]"==r&&o==e){n.cur=c;break}o=null}return t}}const m={name:"lua",startState:function(){return{basecol:0,indentDepth:0,cur:c}},token:function(e,t){if(e.eatSpace())return null;var a=t.cur(e,t),n=e.current();return"variable"==a&&(o.test(n)?a="keyword":r.test(n)&&(a="builtin")),"comment"!=a&&"string"!=a&&(i.test(n)?++t.indentDepth:s.test(n)&&--t.indentDepth),a},indent:function(e,t,a){var n=l.test(t);return e.basecol+a.unit*(e.indentDepth-(n?1:0))},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:"--",block:{open:"--[[",close:"]]--"}}}}}}]); +//# sourceMappingURL=6162.thebe-core.min.js.map \ No newline at end of file diff --git a/6205.thebe-core.min.js b/6205.thebe-core.min.js new file mode 100644 index 00000000..857bab9b --- /dev/null +++ b/6205.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6205],{86205:(t,e,n)=>{n.r(e),n.d(e,{textile:()=>p});var i={addition:"inserted",attributes:"propertyName",bold:"strong",cite:"keyword",code:"monospace",definitionList:"list",deletion:"deleted",div:"punctuation",em:"emphasis",footnote:"variable",footCite:"qualifier",header:"heading",html:"comment",image:"atom",italic:"emphasis",link:"link",linkDefinition:"link",list1:"list",list2:"list.special",list3:"list",notextile:"string.special",pre:"operator",p:"content",quote:"bracket",span:"quote",specialChar:"character",strong:"strong",sub:"content.special",sup:"content.special",table:"variableName.special",tableHeading:"operator"};function a(t,e,n){if("_"===n)return t.eat("_")?r(t,e,"italic",/__/,2):r(t,e,"em",/_/,1);if("*"===n)return t.eat("*")?r(t,e,"bold",/\*\*/,2):r(t,e,"strong",/\*/,1);if("["===n)return t.match(/\d+\]/)&&(e.footCite=!0),l(e);if("("===n&&t.match(/^(r|tm|c)\)/))return i.specialChar;if("<"===n&&t.match(/(\w+)[^>]+>[^<]+<\/\1>/))return i.html;if("?"===n&&t.eat("?"))return r(t,e,"cite",/\?\?/,2);if("="===n&&t.eat("="))return r(t,e,"notextile",/==/,2);if("-"===n&&!t.eat("-"))return r(t,e,"deletion",/-/,1);if("+"===n)return r(t,e,"addition",/\+/,1);if("~"===n)return r(t,e,"sub",/~/,1);if("^"===n)return r(t,e,"sup",/\^/,1);if("%"===n)return r(t,e,"span",/%/,1);if("@"===n)return r(t,e,"code",/@/,1);if("!"===n){var a=r(t,e,"image",/(?:\([^\)]+\))?!/,1);return t.match(/^:\S+/),a}return l(e)}function r(t,e,n,i,a){var r=t.pos>a?t.string.charAt(t.pos-a-1):null,o=t.peek();if(e[n]){if((!o||/\W/.test(o))&&r&&/\S/.test(r)){var u=l(e);return e[n]=!1,u}}else(!r||/\W/.test(r))&&o&&/\S/.test(o)&&t.match(new RegExp("^.*\\S"+i.source+"(?:\\W|$)"),!1)&&(e[n]=!0,e.mode=c.attributes);return l(e)}function l(t){var e=o(t);if(e)return e;var n=[];return t.layoutType&&n.push(i[t.layoutType]),n=n.concat(function(t){for(var e=[],n=1;n]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(t){switch(t){case"drawTable":return u.makeRe("^",u.single.drawTable,"$");case"html":return u.makeRe("^",u.single.html,"(?:",u.single.html,")*","$");case"linkDefinition":return u.makeRe("^",u.single.linkDefinition,"$");case"listLayout":return u.makeRe("^",u.single.list,s("allAttributes"),"*\\s+");case"tableCellAttributes":return u.makeRe("^",u.choiceRe(u.single.tableCellAttributes,s("allAttributes")),"+\\.");case"type":return u.makeRe("^",s("allTypes"));case"typeLayout":return u.makeRe("^",s("allTypes"),s("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return u.makeRe("^",s("allAttributes"),"+");case"allTypes":return u.choiceRe(u.single.div,u.single.foot,u.single.header,u.single.bc,u.single.bq,u.single.notextile,u.single.pre,u.single.table,u.single.para);case"allAttributes":return u.choiceRe(u.attributes.selector,u.attributes.css,u.attributes.lang,u.attributes.align,u.attributes.pad);default:return u.makeRe("^",u.single[t])}},makeRe:function(){for(var t="",e=0;e{n.r(t),n.d(t,{yacas:()=>k});var r=function(){for(var e={},t="Assert BackQuote D Defun Deriv For ForEach FromFile FromString Function Integrate InverseTaylor Limit LocalSymbols Macro MacroRule MacroRulePattern NIntegrate Rule RulePattern Subst TD TExplicitSum TSum Taylor Taylor1 Taylor2 Taylor3 ToFile ToStdout ToString TraceRule Until While".split(" "),n=0;n|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?"operator":"error"}function s(e,t){for(var n,r=!1,o=!1;null!=(n=e.next());){if('"'===n&&!o){r=!0;break}o=!o&&"\\"===n}return r&&!o&&(t.tokenize=l),"string"}function p(e,t){for(var n,r;null!=(r=e.next());){if("*"===n&&"/"===r){t.tokenize=l;break}n=r}return"comment"}function f(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}const k={name:"yacas",startState:function(){return{tokenize:l,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==l&&null!==e.tokenize)return null;var r=0;return"]"!==t&&"];"!==t&&"}"!==t&&"};"!==t&&");"!==t||(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}}]); +//# sourceMappingURL=6211.thebe-core.min.js.map \ No newline at end of file diff --git a/6240.thebe-core.min.js b/6240.thebe-core.min.js new file mode 100644 index 00000000..20c9b84b --- /dev/null +++ b/6240.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6240],{36240:(e,n,t)=>{t.r(n),t.d(n,{dockerFile:()=>k});var r=t(45286),o="from",a=new RegExp("^(\\s*)\\b("+o+")\\b","i"),s=["run","cmd","entrypoint","shell"],l=new RegExp("^(\\s*)("+s.join("|")+")(\\s+\\[)","i"),i="expose",u=new RegExp("^(\\s*)("+i+")(\\s+)","i"),g="("+[o,i].concat(s).concat(["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"]).join("|")+")",d=new RegExp("^(\\s*)"+g+"(\\s*)(#.*)?$","i"),x=new RegExp("^(\\s*)"+g+"(\\s+)","i");const k=(0,r.I)({start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:a,token:[null,"keyword"],sol:!0,next:"from"},{regex:d,token:[null,"keyword",null,"error"],sol:!0},{regex:l,token:[null,"keyword",null],sol:!0,next:"array"},{regex:u,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:x,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],languageData:{commentTokens:{line:"#"}}})},45286:(e,n,t)=>{function r(e){o(e,"start");var n={},t=e.languageData||{},r=!1;for(var i in e)if(i!=t&&e.hasOwnProperty(i))for(var u=n[i]=[],g=e[i],d=0;d2&&s.token&&"string"!=typeof s.token){t.pending=[];for(var u=2;u-1)return null;var o=t.indent.length-1,a=e[t.state];e:for(;;){for(var s=0;sr})}}]); +//# sourceMappingURL=6240.thebe-core.min.js.map \ No newline at end of file diff --git a/6292.thebe-core.min.js b/6292.thebe-core.min.js new file mode 100644 index 00000000..51999da2 --- /dev/null +++ b/6292.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6292],{46292:(t,e,a)=>{function r(t){var e=t.match(/^\s*\S/);return t.skipToEnd(),e?"error":null}a.r(e),a.d(e,{asciiArmor:()=>s});const s={name:"asciiarmor",token:function(t,e){var a;if("top"==e.state)return t.sol()&&(a=t.match(/^-----BEGIN (.*)?-----\s*$/))?(e.state="headers",e.type=a[1],"tag"):r(t);if("headers"==e.state){if(t.sol()&&t.match(/^\w+:/))return e.state="header","atom";var s=r(t);return s&&(e.state="body"),s}return"header"==e.state?(t.skipToEnd(),e.state="headers","string"):"body"==e.state?t.sol()&&(a=t.match(/^-----END (.*)?-----\s*$/))?a[1]!=e.type?"error":(e.state="end","tag"):t.eatWhile(/[A-Za-z0-9+\/=]/)?null:(t.next(),"error"):"end"==e.state?r(t):void 0},blankLine:function(t){"headers"==t.state&&(t.state="body")},startState:function(){return{state:"top",type:null}}}}}]); +//# sourceMappingURL=6292.thebe-core.min.js.map \ No newline at end of file diff --git a/636.thebe-core.min.js b/636.thebe-core.min.js new file mode 100644 index 00000000..d3cdfe6c --- /dev/null +++ b/636.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[636],{70636:(e,n,t)=>{t.r(n),t.d(n,{jinja2:()=>l});var a=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","do","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","set","raw","endraw","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","call","endcall","macro","endmacro","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","without","context","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","pluralize","autoescape","endautoescape"],i=/^[+\-*&%=<>!?|~^]/,r=/^[:\[\(\{]/,o=["true","false"],c=/^(\d[+\-\*\/])?\d+(\.\d+)?/;function s(e,n){var t=e.peek();if(n.incomment)return e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(n.intag){if(n.operator){if(n.operator=!1,e.match(o))return"atom";if(e.match(c))return"number"}if(n.sign){if(n.sign=!1,e.match(o))return"atom";if(e.match(c))return"number"}if(n.instring)return t==n.instring&&(n.instring=!1),e.next(),"string";if("'"==t||'"'==t)return n.instring=t,e.next(),"string";if(n.inbraces>0&&")"==t)e.next(),n.inbraces--;else if("("==t)e.next(),n.inbraces++;else if(n.inbrackets>0&&"]"==t)e.next(),n.inbrackets--;else if("["==t)e.next(),n.inbrackets++;else{if(!n.lineTag&&(e.match(n.intag+"}")||e.eat("-")&&e.match(n.intag+"}")))return n.intag=!1,"tag";if(e.match(i))return n.operator=!0,"operator";if(e.match(r))n.sign=!0;else{if(1==e.column()&&n.lineTag&&e.match(a))return"keyword";if(e.eat(" ")||e.sol()){if(e.match(a))return"keyword";if(e.match(o))return"atom";if(e.match(c))return"number";e.sol()&&e.next()}else e.next()}}return"variable"}if(e.eat("{")){if(e.eat("#"))return n.incomment=!0,e.skipTo("#}")?(e.eatWhile(/\#|}/),n.incomment=!1):e.skipToEnd(),"comment";if(t=e.eat(/\{|%/))return n.intag=t,n.inbraces=0,n.inbrackets=0,"{"==t&&(n.intag="}"),e.eat("-"),"tag"}else if(e.eat("#")){if("#"==e.peek())return e.skipToEnd(),"comment";if(!e.eol())return n.intag=!0,n.lineTag=!0,n.inbraces=0,n.inbrackets=0,"tag"}e.next()}a=new RegExp("(("+a.join(")|(")+"))\\b"),o=new RegExp("(("+o.join(")|(")+"))\\b");const l={name:"jinja2",startState:function(){return{tokenize:s,inbrackets:0,inbraces:0}},token:function(e,n){var t=n.tokenize(e,n);return e.eol()&&n.lineTag&&!n.instring&&0==n.inbraces&&0==n.inbrackets&&(n.intag=!1,n.lineTag=!1),t},languageData:{commentTokens:{block:{open:"{#",close:"#}",line:"##"}}}}}}]); +//# sourceMappingURL=636.thebe-core.min.js.map \ No newline at end of file diff --git a/6367.thebe-core.min.js b/6367.thebe-core.min.js new file mode 100644 index 00000000..9b9414fe --- /dev/null +++ b/6367.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6367],{66367:(O,e,r)=>{r.r(e),r.d(e,{json:()=>c,jsonLanguage:()=>Q,jsonParseLinter:()=>o});var t=r(73643),a=r(49913);const P=(0,a.pn)({String:a._A.string,Number:a._A.number,"True False":a._A.bool,PropertyName:a._A.propertyName,Null:a._A.null,",":a._A.separator,"[ ]":a._A.squareBracket,"{ }":a._A.brace}),s=t.U1.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#CjOOQO'#Cp'#CpQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CrOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59U,59UO!iQPO,59UOVQPO,59QOqQPO'#CkO!nQPO,59^OOQO1G.k1G.kOVQPO'#ClO!vQPO,59aOOQO1G.p1G.pOOQO1G.l1G.lOOQO,59V,59VOOQO-E6i-E6iOOQO,59W,59WOOQO-E6j-E6j",stateData:"#O~OcOS~OQSORSOSSOTSOWQO]ROePO~OVXOeUO~O[[O~PVOg^O~Oh_OVfX~OVaO~OhbO[iX~O[dO~Oh_OVfa~OhbO[ia~O",goto:"!kjPPPPPPkPPkqwPPk{!RPPP!XP!ePP!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",12,"["],["closedBy",8,"}",13,"]"]],propSources:[P],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oc~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Oe~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zOh~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yOg~~'OO]~~'TO[~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0});var n=r(29587);const o=()=>O=>{try{JSON.parse(O.state.doc.toString())}catch(e){if(!(e instanceof SyntaxError))throw e;const r=function(O,e){let r;return(r=O.message.match(/at position (\d+)/))?Math.min(+r[1],e.length):(r=O.message.match(/at line (\d+) column (\d+)/))?Math.min(e.line(+r[1]).from+ +r[2]-1,e.length):0}(e,O.state.doc);return[{from:r,message:e.message,severity:"error",to:r}]}return[]},Q=n.bj.define({name:"json",parser:s.configure({props:[n.Oh.add({Object:(0,n.mz)({except:/^\s*\}/}),Array:(0,n.mz)({except:/^\s*\]/})}),n.b_.add({"Object Array":n.yd})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function c(){return new n.Yy(Q)}}}]); +//# sourceMappingURL=6367.thebe-core.min.js.map \ No newline at end of file diff --git a/6446.thebe-core.min.js b/6446.thebe-core.min.js new file mode 100644 index 00000000..5946416f --- /dev/null +++ b/6446.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6446],{76446:(O,Q,$)=>{$.r(Q),$.d(Q,{cpp:()=>W,cppLanguage:()=>n});var X=$(73643),e=$(49913);const i=new X.Lu((O=>{if(76==O.next||85==O.next?O.advance():117==O.next&&(O.advance(),56==O.next&&O.advance()),82!=O.next)return;if(O.advance(),34!=O.next)return;O.advance();let Q="";for(;40!=O.next;){if(32==O.next||O.next<=13||41==O.next)return;Q+=String.fromCharCode(O.next),O.advance()}for(O.advance();;){if(O.next<0)return O.acceptToken(1);if(41==O.next){let $=!0;for(let X=0;$&&X{if(62==O.next)62==O.peek(1)&&O.acceptToken(2,1);else{let Q=!1,$=0;for(;;$++){if(O.next>=65&&O.next<=90)Q=!0;else{if(O.next>=97&&O.next<=122)return;if(95!=O.next&&!(O.next>=48&&O.next<=57))break}O.advance()}Q&&$>1&&O.acceptToken(3)}}),{extend:!0}),r=(0,e.pn)({"typedef struct union enum class typename decltype auto template operator friend noexcept namespace using requires concept import export module __attribute__ __declspec __based":e._A.definitionKeyword,"extern MsCallModifier MsPointerModifier extern static register thread_local inline const volatile restrict _Atomic mutable constexpr constinit consteval virtual explicit VirtualSpecifier Access":e._A.modifier,"if else switch for while do case default return break continue goto throw try catch":e._A.controlKeyword,"co_return co_yield co_await":e._A.controlKeyword,"new sizeof delete static_assert":e._A.operatorKeyword,"NULL nullptr":e._A.null,this:e._A.self,"True False":e._A.bool,"TypeSize PrimitiveType":e._A.standard(e._A.typeName),TypeIdentifier:e._A.typeName,FieldIdentifier:e._A.propertyName,"CallExpression/FieldExpression/FieldIdentifier":e._A.function(e._A.propertyName),"ModuleName/Identifier":e._A.namespace,PartitionName:e._A.labelName,StatementIdentifier:e._A.labelName,"Identifier DestructorName":e._A.variableName,"CallExpression/Identifier":e._A.function(e._A.variableName),"CallExpression/ScopedIdentifier/Identifier":e._A.function(e._A.variableName),"FunctionDeclarator/Identifier FunctionDeclarator/DestructorName":e._A.function(e._A.definition(e._A.variableName)),NamespaceIdentifier:e._A.namespace,OperatorName:e._A.operator,ArithOp:e._A.arithmeticOperator,LogicOp:e._A.logicOperator,BitOp:e._A.bitwiseOperator,CompareOp:e._A.compareOperator,AssignOp:e._A.definitionOperator,UpdateOp:e._A.updateOperator,LineComment:e._A.lineComment,BlockComment:e._A.blockComment,Number:e._A.number,String:e._A.string,"RawString SystemLibString":e._A.special(e._A.string),CharLiteral:e._A.character,EscapeSequence:e._A.escape,"UserDefinedLiteral/Identifier":e._A.literal,PreProcArg:e._A.meta,"PreprocDirectiveName #include #ifdef #ifndef #if #define #else #endif #elif":e._A.processingInstruction,MacroName:e._A.special(e._A.name),"( )":e._A.paren,"[ ]":e._A.squareBracket,"{ }":e._A.brace,"< >":e._A.angleBracket,". ->":e._A.derefOperator,", ;":e._A.separator}),P={__proto__:null,bool:34,char:34,int:34,float:34,double:34,void:34,size_t:34,ssize_t:34,intptr_t:34,uintptr_t:34,charptr_t:34,int8_t:34,int16_t:34,int32_t:34,int64_t:34,uint8_t:34,uint16_t:34,uint32_t:34,uint64_t:34,char8_t:34,char16_t:34,char32_t:34,char64_t:34,const:68,volatile:70,restrict:72,_Atomic:74,mutable:76,constexpr:78,constinit:80,consteval:82,struct:86,__declspec:90,final:148,override:148,public:152,private:152,protected:152,virtual:154,extern:160,static:162,register:164,inline:166,thread_local:168,__attribute__:172,__based:178,__restrict:180,__uptr:180,__sptr:180,_unaligned:180,__unaligned:180,noexcept:194,requires:198,TRUE:784,true:784,FALSE:786,false:786,typename:218,class:220,template:234,throw:248,__cdecl:256,__clrcall:256,__stdcall:256,__fastcall:256,__thiscall:256,__vectorcall:256,try:260,catch:264,export:282,import:286,case:296,default:298,if:308,else:314,switch:318,do:322,while:324,for:330,return:334,break:338,continue:342,goto:346,co_return:350,co_yield:354,using:362,typedef:366,namespace:380,new:398,delete:400,co_await:402,concept:406,enum:410,static_assert:414,friend:422,union:424,explicit:430,operator:444,module:456,signed:518,unsigned:518,long:518,short:518,decltype:528,auto:530,sizeof:566,NULL:572,nullptr:586,this:588},U={__proto__:null,"<":131},t={__proto__:null,">":135},Y={__proto__:null,operator:388,new:576,delete:582},S=X.U1.deserialize({version:14,states:"$:|Q!QQVOOP'gOUOOO(XOWO'#CdO,RQUO'#CgO,]QUO'#FjO-sQbO'#CwO.UQUO'#CwO0TQUO'#KZO0[QUO'#CvO0gOpO'#DvO0oQ!dO'#D]OOQR'#JO'#JOO5XQVO'#GUO5fQUO'#JVOOQQ'#JV'#JVO8zQUO'#KmO{QVO'#E^O?]QUO'#E^OOQQ'#Ed'#EdOOQQ'#Ee'#EeO?bQVO'#EfO@XQVO'#EiOBUQUO'#FPOBvQUO'#FhOOQR'#Fj'#FjOB{QUO'#FjOOQR'#LQ'#LQOOQR'#LP'#LPOETQVO'#KQOFxQUO'#LVOGVQUO'#KqOGkQUO'#LVOH]QUO'#LXOOQR'#HU'#HUOOQR'#HV'#HVOOQR'#HW'#HWOOQR'#K|'#K|OOQR'#J_'#J_Q!QQVOOOHkQVO'#FOOIWQUO'#EhOI_QUOOOKZQVO'#HgOKkQUO'#HgONVQUO'#KqONaQUO'#KqOOQQ'#Kq'#KqO!!_QUO'#KqOOQQ'#Jq'#JqO!!lQUO'#HxOOQQ'#KZ'#KZO!&^QUO'#KZO!&zQUO'#KQO!(zQVO'#I]O!(zQVO'#I`OCQQUO'#KQOOQQ'#Ip'#IpOOQQ'#KQ'#KQO!,}QUO'#KZOOQR'#KY'#KYO!-UQUO'#DYO!/mQUO'#KnOOQQ'#Kn'#KnO!/tQUO'#KnO!/{QUO'#ETO!0QQUO'#EWO!0VQUO'#FRO8zQUO'#FPO!QQVO'#F^O!0[Q#vO'#F`O!0gQUO'#FkO!0oQUO'#FpO!0tQVO'#FrO!0oQUO'#FuO!3sQUO'#FvO!3xQVO'#FxO!4SQUO'#FzO!4XQUO'#F|O!4^QUO'#GOO!4cQVO'#GQO!(zQVO'#GSO!4jQUO'#GpO!4xQUO'#GYO!(zQVO'#FeO!6VQUO'#FeO!6[QVO'#G`O!6cQUO'#GaO!6nQUO'#GnO!6sQUO'#GrO!6xQUO'#GzO!7jQ&lO'#HiO!:mQUO'#GuO!:}QUO'#HXO!;YQUO'#HZO!;bQUO'#DWO!;bQUO'#HuO!;bQUO'#HvO!;yQUO'#HwO!<[QUO'#H|O!=PQUO'#H}O!>uQVO'#IbO!(zQVO'#IdO!?PQUO'#IgO!?WQVO'#IjP!@}{,UO'#CbP!6n{,UO'#CbP!AY{7[O'#CbP!6n{,UO'#CbP!A_{,UO'#CbP!AjOSO'#IzPOOO)CEn)CEnOOOO'#I|'#I|O!AtOWO,59OOOQR,59O,59OO!(zQVO,59UOOQQ,59W,59WO!(zQVO,5;ROOQR,5qOOQR'#IX'#IXOOQR'#IY'#IYOOQR'#IZ'#IZOOQR'#I['#I[O!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!(zQVO,5>rO!DOQVO,5>zOOQQ,5?W,5?WO!EqQVO'#ChO!IjQUO'#CyOOQQ,59c,59cOOQQ,59b,59bOOQQ,5<},5<}O!IwQ&lO,5=mO!?PQUO,5?RO!LkQVO,5?UO!LrQbO,59cO!L}QVO'#FYOOQQ,5?P,5?PO!M_QVO,59VO!MfO`O,5:bO!MkQbO'#D^O!M|QbO'#K^O!N[QbO,59wO!NdQbO'#CwO!NuQUO'#CwO!NzQUO'#KZO# UQUO'#CvOOQR-E<|-E<|O# aQUO,5AoO# hQVO'#EfO@XQVO'#EiOBUQUO,5;kOOQR,5l,5>lO#3gQUO'#CgO#4]QUO,5>pO#6OQUO'#IeOOQR'#I}'#I}O#6WQUO,5:xO#6tQUO,5:xO#7eQUO,5:xO#8YQUO'#CtO!0QQUO'#ClOOQQ'#JW'#JWO#6tQUO,5:xO#8bQUO,5;QO!4xQUO'#C}O#9kQUO,5;QO#9pQUO,5>QO#:|QUO'#C}O#;dQUO,5>{O#;iQUO'#KwO#}QUO'#L[O#?UQUO,5>UO#?ZQbO'#CwO#?fQUO'#GcO#?kQUO'#E^O#@[QUO,5;kO#@sQUO'#K}O#@{QUO,5;rOKkQUO'#HfOBUQUO'#HgO#AQQUO'#KqO!6nQUO'#HjO#AxQUO'#CtO!0tQVO,5PO$(WQUO'#E[O$(eQUO,5>ROOQQ,5>S,5>SO$,RQVO'#C{OOQQ-E=o-E=oOOQQ,5>d,5>dOOQQ,59`,59`O$,]QUO,5>wO$.]QUO,5>zO!6nQUO,59tO$.pQUO,5;qO$.}QUO,5<{O!0QQUO,5:oOOQQ,5:r,5:rO$/YQUO,5;mO$/_QUO'#KmOBUQUO,5;kOOQR,5;x,5;xO$0OQUO'#FbO$0^QUO'#FbO$0cQUO,5;zO$3|QVO'#FmO!0tQVO,5eQUO,5pQUO,5=[O$>uQUO,5=[O!4xQUO,5}QUO,5uQUO,5<{O$DQQUO,5<{O$D]QUO,5=YO!(zQVO,5=^O!(zQVO,5=fO#NeQUO,5=mOOQQ,5>T,5>TO$FbQUO,5>TO$FlQUO,5>TO$FqQUO,5>TO$FvQUO,5>TO!6nQUO,5>TO$HtQUO'#KZO$H{QUO,5=oO$IWQUO,5=aOKkQUO,5=oO$JQQUO,5=sOOQR,5=s,5=sO$JYQUO,5=sO$LeQVO'#H[OOQQ,5=u,5=uO!;]QUO,5=uO%#`QUO'#KjO%#gQUO'#K[O%#{QUO'#KjO%$VQUO'#DyO%$hQUO'#D|O%'eQUO'#K[OOQQ'#K['#K[O%)WQUO'#K[O%#gQUO'#K[O%)]QUO'#K[OOQQ,59r,59rOOQQ,5>a,5>aOOQQ,5>b,5>bO%)eQUO'#HzO%)mQUO,5>cOOQQ,5>c,5>cO%-XQUO,5>cO%-dQUO,5>hO%1OQVO,5>iO%1VQUO,5>|O# hQVO'#EfO%4]QUO,5>|OOQQ,5>|,5>|O%4|QUO,5?OO%7QQUO,5?RO!<[QUO,5?RO%8|QUO,5?UO%sQUO1G0mOOQQ1G0m1G0mO%@PQUO'#CoO%B`QbO'#CwO%BkQUO'#CrO%BpQUO'#CrO%BuQUO1G.tO#AxQUO'#CqOOQQ1G.t1G.tO%DxQUO1G4]O%FOQUO1G4^O%GqQUO1G4^O%IdQUO1G4^O%KVQUO1G4^O%LxQUO1G4^O%NkQUO1G4^O&!^QUO1G4^O&$PQUO1G4^O&%rQUO1G4^O&'eQUO1G4^O&)WQUO1G4^O&*yQUO'#KPO&,SQUO'#KPO&,[QUO,59SOOQQ,5=P,5=PO&.dQUO,5=PO&.nQUO,5=PO&.sQUO,5=PO&.xQUO,5=PO!6nQUO,5=PO#NeQUO1G3XO&/SQUO1G4mO!<[QUO1G4mO&1OQUO1G4pO&2qQVO1G4pOOQQ1G.}1G.}OOQQ1G.|1G.|OOQQ1G2i1G2iO!IwQ&lO1G3XO&2xQUO'#LOO@XQVO'#EiO&4RQUO'#F]OOQQ'#Ja'#JaO&4WQUO'#FZO&4cQUO'#LOO&4kQUO,5;tO&4pQUO1G.qOOQQ1G.q1G.qOOQR1G/|1G/|O&6cQ!dO'#JPO&6hQbO,59xO&8yQ!eO'#D`O&9QQ!dO'#JRO&9VQbO,5@xO&9VQbO,5@xOOQR1G/c1G/cO&9bQbO1G/cO&9gQ&lO'#GeO&:eQbO,59cOOQR1G7Z1G7ZO#@[QUO1G1VO&:pQUO1G1^OBUQUO1G1VO&=RQUO'#CyO#*wQbO,59cO&@tQUO1G6sOOQR-E<{-E<{O&BWQUO1G0dO#6WQUO1G0dOOQQ-E=U-E=UO#6tQUO1G0dOOQQ1G0l1G0lO&B{QUO,59iOOQQ1G3l1G3lO&CcQUO,59iO&CyQUO,59iO!M_QVO1G4gO!(zQVO'#JYO&DeQUO,5AcOOQQ1G0o1G0oO!(zQVO1G0oO!6nQUO'#JnO&DmQUO,5AvOOQQ1G3p1G3pOOQR1G1V1G1VO&HjQVO'#FOO!M_QVO,5;sOOQQ,5;s,5;sOBUQUO'#JcO&JfQUO,5AiO&JnQVO'#E[OOQR1G1^1G1^O&M]QUO'#L[OOQR1G1n1G1nOOQR-E=f-E=fOOQR1G7]1G7]O#DhQUO1G7]OGVQUO1G7]O#DhQUO1G7_OOQR1G7_1G7_O&MeQUO'#G}O&MmQUO'#LWOOQQ,5=h,5=hO&M{QUO,5=jO&NQQUO,5=kOOQR1G7`1G7`O#EfQVO1G7`O&NVQUO1G7`O' ]QVO,5=kOOQR1G1U1G1UO$.vQUO'#E]O'!RQUO'#E]OOQQ'#Ky'#KyO'!lQUO'#KxO'!wQUO,5;UO'#PQUO'#ElO'#dQUO'#ElO'#wQUO'#EtOOQQ'#J['#J[O'#|QUO,5;cO'$sQUO,5;cO'%nQUO,5;dO'&tQVO,5;dOOQQ,5;d,5;dO''OQVO,5;dO'&tQVO,5;dO''VQUO,5;bO'(SQUO,5;eO'(_QUO'#KpO'(gQUO,5:vO'(lQUO,5;fOOQQ1G0n1G0nOOQQ'#J]'#J]O''VQUO,5;bO!4xQUO'#E}OOQQ,5;b,5;bO')gQUO'#E`O'+aQUO'#E{OHrQUO1G0nO'+fQUO'#EbOOQQ'#JX'#JXO'-OQUO'#KrOOQQ'#Kr'#KrO'-xQUO1G0eO'.pQUO1G3kO'/vQVO1G3kOOQQ1G3k1G3kO'0QQVO1G3kO'0XQUO'#L_O'1eQUO'#KXO'1sQUO'#KWO'2OQUO,59gO'2WQUO1G/`O'2]QUO'#FPOOQR1G1]1G1]OOQR1G2g1G2gO$>uQUO1G2gO'2gQUO1G2gO'2rQUO1G0ZOOQR'#J`'#J`O'2wQVO1G1XO'8pQUO'#FTO'8uQUO1G1VO!6nQUO'#JdO'9TQUO,5;|O$0^QUO,5;|OOQQ'#Fc'#FcOOQQ,5;|,5;|O'9cQUO1G1fOOQR1G1f1G1fO'9kQUO,5}QUO1G2`OOQQ'#Cu'#CuO'CzQUO'#G[O'DuQUO'#G[O'DzQUO'#LRO'EYQUO'#G_OOQQ'#LS'#LSO'EhQUO1G2`O'EmQVO1G1kO'HOQVO'#GUOBUQUO'#FWOOQR'#Je'#JeO'EmQVO1G1kO'HYQUO'#FvOOQR1G2f1G2fO'H_QUO1G2gO'HdQUO'#JgO'2gQUO1G2gO!(zQVO1G2tO'HlQUO1G2xO'IuQUO1G3QO'J{QUO1G3XOOQQ1G3o1G3oO'KaQUO1G3oOOQR1G3Z1G3ZO'KfQUO'#KZO'2]QUO'#LTOGkQUO'#LVOOQR'#Gy'#GyO#DhQUO'#LXOOQR'#HQ'#HQO'KpQUO'#GvO'#wQUO'#GuOOQR1G2{1G2{O'LmQUO1G2{O'MdQUO1G3ZO'MoQUO1G3_O'MtQUO1G3_OOQR1G3_1G3_O'M|QUO'#H]OOQR'#H]'#H]O( VQUO'#H]O!(zQVO'#H`O!(zQVO'#H_OOQR'#LZ'#LZO( [QUO'#LZOOQR'#Jk'#JkO( aQVO,5=vOOQQ,5=v,5=vO( hQUO'#H^O( pQUO'#HZOOQQ1G3a1G3aO( zQUO,5@vOOQQ,5@v,5@vO%)WQUO,5@vO%)]QUO,5@vO%$VQUO,5:eO(%iQUO'#KkO(%wQUO'#KkOOQQ,5:e,5:eOOQQ'#JS'#JSO(&SQUO'#D}O(&^QUO'#KqOGkQUO'#LVO('YQUO'#D}OOQQ'#Hp'#HpOOQQ'#Hr'#HrOOQQ'#Hs'#HsOOQQ'#Kl'#KlOOQQ'#JU'#JUO('dQUO,5:hOOQQ,5:h,5:hO((aQUO'#LVO((nQUO'#HtO()UQUO,5@vO()]QUO'#H{O()hQUO'#L^O()pQUO,5>fO()uQUO'#L]OOQQ1G3}1G3}O(-lQUO1G3}O(-sQUO1G3}O(-zQUO1G4TO(/QQUO1G4TO(/VQUO,5A|O!6nQUO1G4hO!(zQVO'#IiOOQQ1G4m1G4mO(/[QUO1G4mO(1_QVO1G4pPOOO1G.h1G.hP!A_{,UO1G.hP(3_QUO'#LeP(3j{,UO1G.hP(3o{7[O1G.hPO{O-E=s-E=sPOOO,5A},5A}P(3w{,UO,5A}POOO1G5Q1G5QO!(zQVO7+$[O(3|QUO'#CyOOQQ,59^,59^O(4XQbO,59cO(4dQbO,59^OOQQ,59],59]OOQQ7+)w7+)wO!M_QVO'#JtO(4oQUO,5@kOOQQ1G.n1G.nOOQQ1G2k1G2kO(4wQUO1G2kO(4|QUO7+(sOOQQ7+*X7+*XO(7bQUO7+*XO(7iQUO7+*XO(1_QVO7+*[O#NeQUO7+(sO(7vQVO'#JbO(8ZQUO,5AjO(8cQUO,5;vOOQQ'#Co'#CoOOQQ,5;w,5;wO!(zQVO'#F[OOQQ-E=_-E=_O!M_QVO,5;uOOQQ1G1`1G1`OOQQ,5?k,5?kOOQQ-E<}-E<}OOQR'#Dg'#DgOOQR'#Di'#DiOOQR'#Dl'#DlO(9lQ!eO'#K_O(9sQMkO'#K_O(9zQ!eO'#K_OOQR'#K_'#K_OOQR'#JQ'#JQO(:RQ!eO,59zOOQQ,59z,59zO(:YQbO,5?mOOQQ-E=P-E=PO(:hQbO1G6dOOQR7+$}7+$}OOQR7+&q7+&qOOQR7+&x7+&xO'8uQUO7+&qO(:sQUO7+&OO#6WQUO7+&OO(;hQUO1G/TO(]QUO,5?tOOQQ-E=W-E=WO(?fQUO7+&ZOOQQ,5@Y,5@YOOQQ-E=l-E=lO(?kQUO'#LOO@XQVO'#EiO(@wQUO1G1_OOQQ1G1_1G1_O(BQQUO,5?}OOQQ,5?},5?}OOQQ-E=a-E=aO(BfQUO'#KpOOQR7+,w7+,wO#DhQUO7+,wOOQR7+,y7+,yO(BsQUO,5=iO#DsQUO'#JjO(CUQUO,5ArOOQR1G3U1G3UOOQR1G3V1G3VO(CdQUO7+,zOOQR7+,z7+,zO(E[QUO,5:wO(FyQUO'#EwO!(zQVO,5;VO(GlQUO,5:wO(GvQUO'#EpO(HXQUO'#EzOOQQ,5;Z,5;ZO#K]QVO'#ExO(HoQUO,5:wO(HvQUO'#EyO#GgQUO'#JZO(J`QUO,5AdOOQQ1G0p1G0pO(JkQUO,5;WO!<[QUO,5;^O(KUQUO,5;_O(KdQUO,5;WO(MvQUO,5;`OOQQ-E=Y-E=YO(NOQUO1G0}OOQQ1G1O1G1OO(NyQUO1G1OO)!PQVO1G1OO)!WQVO1G1OO)!bQUO1G0|OOQQ1G0|1G0|OOQQ1G1P1G1PO)#_QUO'#JoO)#iQUO,5A[OOQQ1G0b1G0bOOQQ-E=Z-E=ZO)#qQUO,5;iO!<[QUO,5;iO)$nQVO,5:zO)$uQUO,5;gO$ mQUO7+&YOOQQ7+&Y7+&YO!(zQVO'#EfO)$|QUO,5:|OOQQ'#Ks'#KsOOQQ-E=V-E=VOOQQ,5A^,5A^OOQQ'#Jl'#JlO)(qQUO7+&PPOQQ7+&P7+&POOQQ7+)V7+)VO))iQUO7+)VO)*oQVO7+)VOOQQ,5>m,5>mO$)YQVO'#JsO)*vQUO,5@rOOQQ1G/R1G/ROOQQ7+$z7+$zO)+RQUO7+(RO)+WQUO7+(ROOQR7+(R7+(RO$>uQUO7+(ROOQQ7+%u7+%uOOQR-E=^-E=^O!0VQUO,5;oOOQQ,5@O,5@OOOQQ-E=b-E=bO$0^QUO1G1hOOQQ1G1h1G1hOOQR7+'Q7+'QOOQR1G1s1G1sOBUQUO,5;rO)+tQUO,5hQUO,5}QUO7+(dO)?SQVO7+(dOOQQ7+(l7+(lOOQQ7+)Z7+)ZO)?[QUO'#KjO)?fQUO'#KjOOQR,5=b,5=bO)?sQUO,5=bO!;bQUO,5=bO!;bQUO,5=bO!;bQUO,5=bOOQR7+(g7+(gOOQR7+(u7+(uOOQR7+(y7+(yOOQR,5=w,5=wO)?xQUO,5=zO)AOQUO,5=yOOQR,5Au,5AuOOQR-E=i-E=iOOQQ1G3b1G3bO)BUQUO,5=xO)BZQVO'#EfOOQQ1G6b1G6bO%)WQUO1G6bO%)]QUO1G6bOOQQ1G0P1G0POOQQ-E=Q-E=QO)DrQUO,5AVO(%iQUO'#JTO)D}QUO,5AVO)D}QUO,5AVO)EVQUO,5:iO8zQUO,5:iOOQQ,5>],5>]O)EaQUO,5AqO)EhQUO'#EVO)FrQUO'#EVO)G]QUO,5:iO)GgQUO'#HlO)GgQUO'#HmOOQQ'#Ko'#KoO)HUQUO'#KoO!(zQVO'#HnOOQQ,5:i,5:iO)HvQUO,5:iO!M_QVO,5:iOOQQ-E=S-E=SOOQQ1G0S1G0SOOQQ,5>`,5>`O)H{QUO1G6bO!(zQVO,5>gO)LjQUO'#JrO)LuQUO,5AxOOQQ1G4Q1G4QO)L}QUO,5AwOOQQ,5Aw,5AwOOQQ7+)i7+)iO*!lQUO7+)iOOQQ7+)o7+)oO*'kQVO1G7hO*)mQUO7+*SO*)rQUO,5?TO**xQUO7+*[POOO7+$S7+$SP*,kQUO'#LfP*,sQUO,5BPP*,x{,UO7+$SPOOO1G7i1G7iO*,}QUO<XQUO7+&jO*?_QVO7+&jOOQQ7+&h7+&hOOQQ,5@Z,5@ZOOQQ-E=m-E=mO*@ZQUO1G1TO*@eQUO1G1TO*AOQUO1G0fOOQQ1G0f1G0fO*BUQUO'#K{O*B^QUO1G1ROOQQ<uQUO<VO)GgQUO'#JpO*NQQUO1G0TO*NcQVO1G0TOOQQ1G3u1G3uO*NjQUO,5>WO*NuQUO,5>XO+ dQUO,5>YO+!jQUO1G0TO%)]QUO7++|O+#pQUO1G4ROOQQ,5@^,5@^OOQQ-E=p-E=pOOQQ<n,5>nO+/iQUOANAXOOQRANAXANAXO+/nQUO7+'`OOQRAN@cAN@cO+0zQVOAN@nO+1RQUOAN@nO!0tQVOAN@nO+2[QUOAN@nO+2aQUOAN@}O+2lQUOAN@}O+3rQUOAN@}OOQRAN@nAN@nO!M_QVOAN@}OOQRANAOANAOO+3wQUO7+'|O)7VQUO7+'|OOQQ7+(O7+(OO+4YQUO7+(OO+5`QVO7+(OO+5gQVO7+'hO+5nQUOANAjOOQR7+(h7+(hOOQR7+)P7+)PO+5sQUO7+)PO+5xQUO7+)POOQQ<= h<= hO+6QQUO7+,]O+6YQUO1G5ZOOQQ1G5Z1G5ZO+6eQUO7+%oOOQQ7+%o7+%oO+6vQUO7+%oO*NcQVO7+%oOOQQ7+)a7+)aO+6{QUO7+%oO+8RQUO7+%oO!M_QVO7+%oO+8]QUO1G0]O*LkQUO1G0]O)EhQUO1G0]OOQQ1G0a1G0aO+8zQUO1G3qO+:QQVO1G3qOOQQ1G3q1G3qO+:[QVO1G3qO+:cQUO,5@[OOQQ-E=n-E=nOOQQ1G3r1G3rO%)WQUO<= hOOQQ7+*Z7+*ZPOQQ,5@b,5@bPOQQ-E=t-E=tOOQQ1G/}1G/}OOQQ,5?x,5?xOOQQ-E=[-E=[OOQRG26sG26sO+:zQUOG26YO!0tQVOG26YO+QQUO<uAN>uO+BpQUOAN>uO+CvQUOAN>uO!M_QVOAN>uO+C{QUO<nQUO'#KZO,?OQUO'#CyO,?^QbO,59cO,6VQUO7+&OO,OP>i>{?aFXMX!&]!,sP!3m!4b!5VP!5qPPPPPPPP!6[P!7tPP!9V!:oP!:uPPPPPP!:xP!:xPP!:xPPPPPPPPP!;U!>lP!>oPP!?]!@QPPPPP!@UP>l!AgPP>l!Cn!Eo!E}!Gd!ITP!I`P!Io!Io!MP#!`##v#'S#*^!Eo#*hPP!Eo#*o#*u#*h#*h#*xP#*|#+k#+k#+k#+k!ITP#,U#,g#.|P#/bP#0}P#1R#1Z#2O#2Z#4i#4q#4q#1RP#1RP#4x#5OP#5YPP#5u#6d#7U#5uP#7v#8SP#5uP#5uPP#5u#5uP#5uP#5uP#5uP#5uP#5uP#5uP#8V#5Y#8sP#9YP#9o#9o#9o#9o#9|#1RP#:d#?`#?}PPPPPPPP#@uP#ATP#ATP#Aa#Dn#9OPP#@}#EQP#Ee#Ep#Ev#Ev#@}#FlP#1R#1R#1R#1R#1RP!Io#GW#G_#G_#G_#Gc!Ly#Gm!Ly#Gq!E}!E}!E}#Gt#L^!E}>l>l>l$#V!@Q!@Q!@Q!@Q!@Q!@Q!6[!6[!6[$#jP$%V$%e!6[$%kPP!6[$'y$'|#@l$(P:t7j$+V$-Q$.q$0a7jPP7j$2T7jP7j7jP7jP$5Z7jP7jPP7j$5gPPPPPPPPP*[P$8o$8u$;^$=d$=j$>Q$>[$>g$>v$>|$@[$AZ$Ab$Ai$Ao$Aw$BR$BX$Bd$Bj$Bs$B{$CW$C^$Ch$Cn$Cx$DP$D`$Df$DlP$Dr$Dz$ER$Ea$F}$GT$GZ$Gb$GkPPPPPPPP$Gq$GuPPPPP$Nw$'y$Nz%$S%&[P%&i%&lPPPPPPPPPP%&x%'{%(R%(V%)|%+Z%+|%,T%.d%.jPPP%.t%/P%/S%/Y%0a%0d%0n%0x%0|%2Q%2s%2y#@uP%3d%3t%3w%4X%4e%4i%4o%4u$'y$'|$'|%4x%4{P%5V%5YR#cP'`mO[aefwx{!W!X!g!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&S&W&b&f&x&y&|'O'P'b'i'j'y(`(b(i)l)r*h*i*l*q*r*v+W+Y+h+j+k,P,R,n,q,w-]-^-a-g.P.Q.U.}/Q/[/c/l/n/s/u0h0{1Q1a1b1l1p1z1|2c2f2i2u2z2}3i4O4R4W4a5Y5e5q6_6c6f6h6j6t6v6{7b7j7m8e8g8m8s8t9R9V9]9_9l9o9p9{:O:U:W:]:b:fU%om%p7QQ&m!`Q(j#]d0P)}/|/}0O0R4}5O5P5S8QR7Q3Tb}Oaewx{!g&S*q&v$i[!W!X!k!n!r!s!v!x#X#Y#[#g#i#l#q#r#s#t#u#v#w#x#y#z#{#}$U$W$Y$e$f$k%]%m&Q&W&b&f&x&y&|'O'P'b'i'j'y(`(b(i)l)r*h*i*l*r*v+W+Y+h+j+k,P,R,n,q,w-]-^-a-g.P.Q.U.}/Q/[/c/l/n/s/u0{1a1b1l1p1z1|2c2f2i2u2z2}3i4O4R4W4a5Y5e5q6_6c6f6h6j6t6v6{7b7j7m8e8g8m8s8t9R9V9]9_9l9o9p9{:O:U:W:]:b:fS%`f0h#d%jgnp|#O$g$|$}%S%d%h%i%w&s't'u(Q*Y*`*b*t+],l,v-_-p-w.f.m.o0]0y0z1O1S2_2j5a6g;W;X;Y;`;a;b;o;p;q;r;v;w;x;y MacroName LineComment BlockComment PreprocDirective #include String EscapeSequence SystemLibString Identifier ArgumentList ( ConditionalExpression AssignmentExpression CallExpression PrimitiveType FieldExpression FieldIdentifier DestructorName TemplateMethod ScopedFieldIdentifier NamespaceIdentifier TemplateType TypeIdentifier ScopedTypeIdentifier ScopedNamespaceIdentifier :: NamespaceIdentifier TypeIdentifier TemplateArgumentList < TypeDescriptor const volatile restrict _Atomic mutable constexpr constinit consteval StructSpecifier struct MsDeclspecModifier __declspec ) Attribute AttributeName Identifier AttributeArgs { } [ ] UpdateOp ArithOp ArithOp ArithOp LogicOp BitOp BitOp BitOp CompareOp CompareOp CompareOp > CompareOp BitOp UpdateOp , Number CharLiteral AttributeArgs VirtualSpecifier BaseClassClause Access virtual FieldDeclarationList FieldDeclaration extern static register inline thread_local AttributeSpecifier __attribute__ PointerDeclarator MsBasedModifier __based MsPointerModifier FunctionDeclarator ParameterList ParameterDeclaration PointerDeclarator FunctionDeclarator Noexcept noexcept RequiresClause requires True False ParenthesizedExpression CommaExpression LambdaExpression LambdaCaptureSpecifier TemplateParameterList OptionalParameterDeclaration TypeParameterDeclaration typename class VariadicParameterDeclaration VariadicDeclarator ReferenceDeclarator OptionalTypeParameterDeclaration VariadicTypeParameterDeclaration TemplateTemplateParameterDeclaration template AbstractFunctionDeclarator AbstractPointerDeclarator AbstractArrayDeclarator AbstractParenthesizedDeclarator AbstractReferenceDeclarator ThrowSpecifier throw TrailingReturnType CompoundStatement FunctionDefinition MsCallModifier TryStatement try CatchClause catch LinkageSpecification Declaration InitDeclarator InitializerList InitializerPair SubscriptDesignator FieldDesignator ExportDeclaration export ImportDeclaration import ModuleName PartitionName HeaderName CaseStatement case default LabeledStatement StatementIdentifier ExpressionStatement IfStatement if ConditionClause Declaration else SwitchStatement switch DoStatement do while WhileStatement ForStatement for ReturnStatement return BreakStatement break ContinueStatement continue GotoStatement goto CoReturnStatement co_return CoYieldStatement co_yield AttributeStatement ForRangeLoop AliasDeclaration using TypeDefinition typedef PointerDeclarator FunctionDeclarator ArrayDeclarator ParenthesizedDeclarator ThrowStatement NamespaceDefinition namespace ScopedIdentifier Identifier OperatorName operator ArithOp BitOp CompareOp LogicOp new delete co_await ConceptDefinition concept UsingDeclaration enum StaticAssertDeclaration static_assert ConcatenatedString TemplateDeclaration FriendDeclaration friend union FunctionDefinition ExplicitFunctionSpecifier explicit FieldInitializerList FieldInitializer DefaultMethodClause DeleteMethodClause FunctionDefinition OperatorCast operator TemplateInstantiation FunctionDefinition FunctionDefinition Declaration ModuleDeclaration module RequiresExpression RequirementList SimpleRequirement TypeRequirement CompoundRequirement ReturnTypeRequirement ConstraintConjuction LogicOp ConstraintDisjunction LogicOp ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator TemplateFunction OperatorName StructuredBindingDeclarator ArrayDeclarator ParenthesizedDeclarator ReferenceDeclarator BitfieldClause FunctionDefinition FunctionDefinition Declaration FunctionDefinition Declaration AccessSpecifier UnionSpecifier ClassSpecifier EnumSpecifier SizedTypeSpecifier TypeSize EnumeratorList Enumerator DependentType Decltype decltype auto PlaceholderTypeSpecifier ParameterPackExpansion ParameterPackExpansion FieldIdentifier PointerExpression SubscriptExpression BinaryExpression ArithOp LogicOp LogicOp BitOp UnaryExpression LogicOp BitOp UpdateExpression CastExpression SizeofExpression sizeof CoAwaitExpression CompoundLiteralExpression NULL NewExpression new NewDeclarator DeleteExpression delete ParameterPackExpansion nullptr this UserDefinedLiteral ParamPack #define PreprocArg #if #ifdef #ifndef #else #endif #elif PreprocDirectiveName Macro Program",maxTerm:425,nodeProps:[["group",-35,1,8,11,14,15,16,18,71,72,100,101,102,104,191,208,229,242,243,270,271,272,277,280,281,282,284,285,286,287,290,292,293,294,295,296,"Expression",-13,17,24,25,26,42,255,256,257,258,262,263,265,266,"Type",-19,126,129,147,150,152,153,158,160,163,164,166,168,170,172,174,176,178,179,188,"Statement"],["isolate",-4,4,5,8,10,""]],propSources:[r],skippedNodes:[0,3,4,5,6,7,10,297,298,299,300,301,302,303,304,305,306,347,348],repeatNodeCount:41,tokenData:"&*r7ZR!UOX$eXY({YZ.gZ]$e]^+P^p$epq({qr.}rs0}st2ktu$euv!7dvw!9bwx!;exy!O{|!?R|}!AV}!O!BQ!O!P!DX!P!Q#+y!Q!R#Az!R![$(x![!]$Ag!]!^$Cc!^!_$D^!_!`%1W!`!a%2X!a!b%5_!b!c$e!c!n%6Y!n!o%7q!o!w%6Y!w!x%7q!x!}%6Y!}#O%:n#O#P%u#Y#]4Y#]#^NZ#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e4eb)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#o4Y#o;'S$e;'S;=`(u<%lO$e4e5xd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#X4Y#X#Y7W#Y#o4Y#o;'S$e;'S;=`(u<%lO$e4e7cd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#Y4Y#Y#Z8q#Z#o4Y#o;'S$e;'S;=`(u<%lO$e4e8|d)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#]4Y#]#^:[#^#o4Y#o;'S$e;'S;=`(u<%lO$e4e:gd)ZW(pQ'f&j'm.oOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![4Y![!c$e!c!}4Y!}#O$e#O#P&f#P#R$e#R#S4Y#S#T$e#T#b4Y#b#c;u#c#o4Y#o;'S$e;'S;=`(u<%lO$e4e][)S,g)ZW(pQ%Z!b'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!?`^)ZW(pQ%Z!b!Y,g'f&jOY$eZr$ers%^sw$ewx(Ox{$e{|!@[|!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!@gY)ZW!X-y(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!AbY!h,k)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!B__)ZW(pQ%Z!b!Y,g'f&jOY$eZr$ers%^sw$ewx(Ox}$e}!O!@[!O!_$e!_!`!8g!`!a!C^!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o!CiY(x-y)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Dd^)ZW(pQ'f&j(w,gOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!E`!P!Q$e!Q![!GY![#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!Ei[)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!O$e!O!P!F_!P#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2a!FjY)X,k)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]!Gen)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx!Icx!Q$e!Q![!GY![!g$e!g!h#$w!h!i#*Y!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#X$e#X#Y#$w#Y#Z#*Y#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2T!IjY(pQ'f&jOY(OZr(Ors%}s!Q(O!Q![!JY![#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O2T!Jcn(pQ!i,g'f&jOY(OZr(Ors%}sw(Owx!Icx!Q(O!Q![!JY![!g(O!g!h!La!h!i##`!i!n(O!n!o##`!o!r(O!r!s!La!s!w(O!w!x##`!x#O(O#O#P&f#P#X(O#X#Y!La#Y#Z##`#Z#`(O#`#a##`#a#d(O#d#e!La#e#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ljl(pQ!i,g'f&jOY(OZr(Ors%}s{(O{|!Nb|}(O}!O!Nb!O!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T!Ni^(pQ'f&jOY(OZr(Ors%}s!Q(O!Q![# e![!c(O!c!i# e!i#O(O#O#P&f#P#T(O#T#Z# e#Z;'S(O;'S;=`(o<%lO(O2T# nj(pQ!i,g'f&jOY(OZr(Ors%}sw(Owx!Nbx!Q(O!Q![# e![!c(O!c!h# e!h!i# e!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#T(O#T#Y# e#Y#Z# e#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2T##id(pQ!i,g'f&jOY(OZr(Ors%}s!h(O!h!i##`!i!n(O!n!o##`!o!w(O!w!x##`!x#O(O#O#P&f#P#Y(O#Y#Z##`#Z#`(O#`#a##`#a#i(O#i#j##`#j;'S(O;'S;=`(o<%lO(O2]#%Sn)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx(Ox{$e{|#'Q|}$e}!O#'Q!O!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#'Z`)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![#(]![!c$e!c!i#(]!i#O$e#O#P&f#P#T$e#T#Z#(]#Z;'S$e;'S;=`(u<%lO$e2]#(hj)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx!Nbx!Q$e!Q![#(]![!c$e!c!h#(]!h!i#(]!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#Y#(]#Y#Z#(]#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e2]#*ef)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx(Ox!h$e!h!i#*Y!i!n$e!n!o#*Y!o!w$e!w!x#*Y!x#O$e#O#P&f#P#Y$e#Y#Z#*Y#Z#`$e#`#a#*Y#a#i$e#i#j#*Y#j;'S$e;'S;=`(u<%lO$e7Z#,W`)ZW(pQ%Z!b![,g'f&jOY$eZr$ers%^sw$ewx(Oxz$ez{#-Y{!P$e!P!Q#:s!Q!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#-c])ZW(pQ'f&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y1e#._TOz#.[z{#.n{;'S#.[;'S;=`#/]<%lO#.[1e#.qVOz#.[z{#.n{!P#.[!P!Q#/W!Q;'S#.[;'S;=`#/]<%lO#.[1e#/]OT1e1e#/`P;=`<%l#.[7X#/jZ)ZW'f&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7P#0bX'f&jOY#0]YZ#.[Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1SZ'f&jOY#0]YZ#.[Zz#0]z{#0}{!P#0]!P!Q#1u!Q#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#1|UT1e'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}7P#2eZ'f&jOY#0]YZ#0]Z]#0]]^#3W^z#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3]X'f&jOY#0]YZ#0]Zz#0]z{#0}{#O#0]#O#P#2`#P;'S#0];'S;=`#3x<%lO#0]7P#3{P;=`<%l#0]7X#4V])ZW'f&jOY#/cYZ#.[Zw#/cwx#0]xz#/cz{#4O{!P#/c!P!Q#5O!Q#O#/c#O#P#2`#P;'S#/c;'S;=`#5q<%lO#/c7X#5XW)ZWT1e'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^7X#5tP;=`<%l#/c7R#6OZ(pQ'f&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#6x](pQ'f&jOY#5wYZ#.[Zr#5wrs#0]sz#5wz{#6q{!P#5w!P!Q#7q!Q#O#5w#O#P#2`#P;'S#5w;'S;=`#8d<%lO#5w7R#7zW(pQT1e'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O7R#8gP;=`<%l#5w7Z#8s_)ZW(pQ'f&jOY#-YYZ#.[Zr#-Yrs#/csw#-Ywx#5wxz#-Yz{#8j{!P#-Y!P!Q#9r!Q#O#-Y#O#P#2`#P;'S#-Y;'S;=`#:m<%lO#-Y7Z#9}Y)ZW(pQT1e'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z#:pP;=`<%l#-Y7Z#;OY)ZW(pQS1e'f&jOY#:sZr#:srs#;nsw#:swx#@{x#O#:s#O#P#[<%lO#b#P;'S#[<%lO#[<%lO#_P;=`<%l#i]S1e'f&jOY#b#P#b#[<%lO#[<%lO#b#P#b#[<%lO#t!R![$2V![!c$e!c!i$2V!i#O$e#O#P&f#P#T$e#T#Z$2V#Z;'S$e;'S;=`(u<%lO$e2]$?Pv)ZW(pQ!i,g'f&jOY$eZr$ers%^sw$ewx$4lx!O$e!O!P$ m!P!Q$e!Q![$2V![!c$e!c!g$2V!g!h$:p!h!i$2V!i!n$e!n!o#*Y!o!r$e!r!s#$w!s!w$e!w!x#*Y!x#O$e#O#P&f#P#T$e#T#U$2V#U#V$2V#V#X$2V#X#Y$:p#Y#Z$2V#Z#`$e#`#a#*Y#a#d$e#d#e#$w#e#i$e#i#j#*Y#j#l$e#l#m$0z#m;'S$e;'S;=`(u<%lO$e4e$Ar[(v-X)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox![$e![!]$Bh!]#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3s$BsYl-})ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e2]$CnY)W,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7V$Dk_p,g%]!b)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!^$Ej!^!_%+w!_!`%.U!`!a%0]!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej*[$Es])ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ejp$FoTO!`$Fl!`!a$GO!a;'S$Fl;'S;=`$GT<%lO$Flp$GTO$Wpp$GWP;=`<%l$Fl*Y$GbZ)ZW'f&jOY$GZYZ$FlZw$GZwx$HTx!`$GZ!`!a%(U!a#O$GZ#O#P$Ib#P;'S$GZ;'S;=`%(y<%lO$GZ*Q$HYX'f&jOY$HTYZ$FlZ!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q$IOU$WpY#t'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}*Q$Ig['f&jOY$HTYZ$HTZ]$HT]^$J]^!`$HT!`!a$NO!a#O$HT#O#P%&n#P;'S$HT;'S;=`%'f;=`<%l%$z<%lO$HT*Q$JbX'f&jOY$HTYZ$J}Z!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT'[$KSX'f&jOY$J}YZ$FlZ!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$KvU$Wp'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}'[$L_Z'f&jOY$J}YZ$J}Z]$J}]^$MQ^!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MVX'f&jOY$J}YZ$J}Z!`$J}!`!a$Ko!a#O$J}#O#P$LY#P;'S$J};'S;=`$Mr<%lO$J}'[$MuP;=`<%l$J}*Q$M{P;=`<%l$HT*Q$NVW$Wp'f&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`$NtW'f&jOY$NoZ!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`% eUY#t'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%})`% |Y'f&jOY$NoYZ$NoZ]$No]^%!l^#O$No#O#P%#d#P;'S$No;'S;=`%$[;=`<%l%$z<%lO$No)`%!qX'f&jOY$NoYZ%}Z!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%#aP;=`<%l$No)`%#iZ'f&jOY$NoYZ%}Z]$No]^%!l^!`$No!`!a% ^!a#O$No#O#P% w#P;'S$No;'S;=`%#^<%lO$No)`%$_XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$No<%lO%$z#t%$}WOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h<%lO%$z#t%%lOY#t#t%%oRO;'S%$z;'S;=`%%x;=`O%$z#t%%{XOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l%$z<%lO%$z#t%&kP;=`<%l%$z*Q%&sZ'f&jOY$HTYZ$J}Z]$HT]^$J]^!`$HT!`!a$Hu!a#O$HT#O#P$Ib#P;'S$HT;'S;=`$Mx<%lO$HT*Q%'iXOY%$zZ!`%$z!`!a%%g!a#O%$z#O#P%%l#P;'S%$z;'S;=`%&h;=`<%l$HT<%lO%$z*Y%(aW$WpY#t)ZW'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^*Y%(|P;=`<%l$GZ*S%)WZ(pQ'f&jOY%)PYZ$FlZr%)Prs$HTs!`%)P!`!a%)y!a#O%)P#O#P$Ib#P;'S%)P;'S;=`%*n<%lO%)P*S%*UW$WpY#t(pQ'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O*S%*qP;=`<%l%)P*[%+RY$WpY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e*[%+tP;=`<%l$Ej7V%,U^)ZW(pQ%[!b!f,g'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!_$Ej!_!`%-Q!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%-]]!g-y)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%*t!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%.c]%]!b!b,g)ZW(pQ'f&jOY$EjYZ$FlZr$Ejrs$GZsw$Ejwx%)Px!`$Ej!`!a%/[!a#O$Ej#O#P$Ib#P;'S$Ej;'S;=`%+q<%lO$Ej7V%/mY%]!b!b,g$WpY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e)j%0hYY#t)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%1c[)j!c)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`0Q!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%2f]%]!b)ZW(pQ!d,g'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`%3_!`!a%4[!a#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%3lY%]!b!b,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%4i[)ZW(pQ%[!b!f,g'f&jOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%5jY(uP)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z%6ib)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e7Z%8Qb)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e5P%9cW)ZW(o/]'f&jOY%^Zw%^wx%}x#O%^#O#P&f#P;'S%^;'S;=`'x<%lO%^2T%:UW(pQ)Y,g'f&jOY(OZr(Ors%}s#O(O#O#P&f#P;'S(O;'S;=`(o<%lO(O3o%:yZ!V-y)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox!}$e!}#O%;l#O#P&f#P;'S$e;'S;=`(u<%lO$e&u%;wY)PP)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e4e%[Z]%=q]^%?Z^!Q%=q!Q![%?w![!w%=q!w!x%AX!x#O%=q#O#P%H_#P#i%=q#i#j%Ds#j#l%=q#l#m%IR#m;'S%=q;'S;=`%Kt<%lO%=q&t%=xUXY'f&jOY%}Z#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}4e%>e[XY(n.o'f&jOX%}XY-OYZ*[Z]%}]^-O^p%}pq-Oq#O%}#O#P,^#P;'S%};'S;=`'r<%lO%}4e%?bVXY'f&jOY%}YZ-OZ#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@OWXY'f&jOY%}Z!Q%}!Q![%@h![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%@oWXY'f&jOY%}Z!Q%}!Q![%=q![#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%A^['f&jOY%}Z!Q%}!Q![%BS![!c%}!c!i%BS!i#O%}#O#P&f#P#T%}#T#Z%BS#Z;'S%};'S;=`'r<%lO%}&t%BX['f&jOY%}Z!Q%}!Q![%B}![!c%}!c!i%B}!i#O%}#O#P&f#P#T%}#T#Z%B}#Z;'S%};'S;=`'r<%lO%}&t%CS['f&jOY%}Z!Q%}!Q![%Cx![!c%}!c!i%Cx!i#O%}#O#P&f#P#T%}#T#Z%Cx#Z;'S%};'S;=`'r<%lO%}&t%C}['f&jOY%}Z!Q%}!Q![%Ds![!c%}!c!i%Ds!i#O%}#O#P&f#P#T%}#T#Z%Ds#Z;'S%};'S;=`'r<%lO%}&t%Dx['f&jOY%}Z!Q%}!Q![%En![!c%}!c!i%En!i#O%}#O#P&f#P#T%}#T#Z%En#Z;'S%};'S;=`'r<%lO%}&t%Es['f&jOY%}Z!Q%}!Q![%Fi![!c%}!c!i%Fi!i#O%}#O#P&f#P#T%}#T#Z%Fi#Z;'S%};'S;=`'r<%lO%}&t%Fn['f&jOY%}Z!Q%}!Q![%Gd![!c%}!c!i%Gd!i#O%}#O#P&f#P#T%}#T#Z%Gd#Z;'S%};'S;=`'r<%lO%}&t%Gi['f&jOY%}Z!Q%}!Q![%=q![!c%}!c!i%=q!i#O%}#O#P&f#P#T%}#T#Z%=q#Z;'S%};'S;=`'r<%lO%}&t%HfXXY'f&jOY%}YZ%}Z]%}]^'W^#O%}#O#P&f#P;'S%};'S;=`'r<%lO%}&t%IW['f&jOY%}Z!Q%}!Q![%I|![!c%}!c!i%I|!i#O%}#O#P&f#P#T%}#T#Z%I|#Z;'S%};'S;=`'r<%lO%}&t%JR['f&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KO[XY'f&jOY%}Z!Q%}!Q![%Jw![!c%}!c!i%Jw!i#O%}#O#P&f#P#T%}#T#Z%Jw#Z;'S%};'S;=`'r<%lO%}&t%KwP;=`<%l%=q2a%LVZ!W,V)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P#Q%Lx#Q;'S$e;'S;=`(u<%lO$e'Y%MTY)]d)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o%NQ[)ZW(pQ%[!b'f&j!_,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e7Z& Vd)ZW(yS(pQ!R,f(r%y'f&jOY$eZr$ers%9Ysw$ewx%9{x!Q$e!Q!Y%6Y!Y!Z%7q!Z![%6Y![!c$e!c!}%6Y!}#O$e#O#P&f#P#R$e#R#S%6Y#S#T$e#T#o%6Y#o;'S$e;'S;=`(u<%lO$e2]&!pY!T,g)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e3o&#m^)ZW(pQ%[!b'f&j!^,gOY$eZr$ers%^sw$ewx(Ox!_$e!_!`!8g!`#O$e#O#P&f#P#p$e#p#q&$i#q;'S$e;'S;=`(u<%lO$e3o&$vY)T,g%^!b)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e'V&%qY!Ua)ZW(pQ'f&jOY$eZr$ers%^sw$ewx(Ox#O$e#O#P&f#P;'S$e;'S;=`(u<%lO$e(]&&nc)ZW(pQ%[!b'RP'f&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&(Sc)ZW(pQ'f&jOX$eXY&'yZp$epq&'yqr$ers%^sw$ewx(Ox!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e&y&)jb)ZW(pQdT'f&jOY$eZr$ers%^sw$ewx(Ox!Q$e!Q![&)_![!c$e!c!}&)_!}#O$e#O#P&f#P#R$e#R#S&)_#S#T$e#T#o&)_#o;'S$e;'S;=`(u<%lO$e",tokenizers:[i,a,0,1,2,3,4,5,6,7,8,9],topRules:{Program:[0,307]},dynamicPrecedences:{87:1,94:1,119:1,184:1,187:-10,240:-10,241:1,244:-1,246:-10,247:1,262:-1,267:2,268:2,306:-10,365:3,417:1,418:3,419:1,420:1},specialized:[{term:356,get:O=>P[O]||-1},{term:32,get:O=>U[O]||-1},{term:66,get:O=>t[O]||-1},{term:363,get:O=>Y[O]||-1}],tokenPrec:24891});var l=$(29587);const n=l.bj.define({name:"cpp",parser:S.configure({props:[l.Oh.add({IfStatement:(0,l.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,l.mz)({except:/^\s*({|catch)\b/}),LabeledStatement:l._Y,CaseStatement:O=>O.baseIndent+O.unit,BlockComment:()=>null,CompoundStatement:(0,l.Ay)({closing:"}"}),Statement:(0,l.mz)({except:/^{/})}),l.b_.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":l.yd,BlockComment:O=>({from:O.from+2,to:O.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function W(){return new l.Yy(n)}}}]); +//# sourceMappingURL=6446.thebe-core.min.js.map \ No newline at end of file diff --git a/647.thebe-core.min.js b/647.thebe-core.min.js new file mode 100644 index 00000000..38b76d57 --- /dev/null +++ b/647.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[647],{647:(e,t,n)=>{function r(e){for(var t={},n=0;nA});var i=r(["_","var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super","convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is","break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while","defer","return","inout","mutating","nonmutating","isolated","nonisolated","catch","do","rethrows","throw","throws","async","await","try","didSet","get","set","willSet","assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right","Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"]),a=r(["var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"]),o=r(["true","false","nil","self","super","_"]),u=r(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String","UInt8","UInt16","UInt32","UInt64","Void"]),c="+-/*%=|&<>~^?!",s=":;,.(){}[]",f=/^\-?0b[01][01_]*/,l=/^\-?0o[0-7][0-7_]*/,p=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,d=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,h=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,m=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,_=/^\#[A-Za-z]+/,v=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function k(e,t,n){if(e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;var r,k=e.peek();if("/"==k){if(e.match("//"))return e.skipToEnd(),"comment";if(e.match("/*"))return t.tokenize.push(y),y(e,t)}if(e.match(_))return"builtin";if(e.match(v))return"attribute";if(e.match(f))return"number";if(e.match(l))return"number";if(e.match(p))return"number";if(e.match(d))return"number";if(e.match(m))return"property";if(c.indexOf(k)>-1)return e.next(),"operator";if(s.indexOf(k)>-1)return e.next(),e.match(".."),"punctuation";if(r=e.match(/("""|"|')/)){var w=x.bind(null,r[0]);return t.tokenize.push(w),w(e,t)}if(e.match(h)){var b=e.current();return u.hasOwnProperty(b)?"type":o.hasOwnProperty(b)?"atom":i.hasOwnProperty(b)?(a.hasOwnProperty(b)&&(t.prev="define"),"keyword"):"define"==n?"def":"variable"}return e.next(),null}function w(){var e=0;return function(t,n,r){var i=k(t,n,r);if("punctuation"==i)if("("==t.current())++e;else if(")"==t.current()){if(0==e)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}return i}}function x(e,t,n){for(var r,i=1==e.length,a=!1;r=t.peek();)if(a){if(t.next(),"("==r)return n.tokenize.push(w()),"string";a=!1}else{if(t.match(e))return n.tokenize.pop(),"string";t.next(),a="\\"==r}return i&&n.tokenize.pop(),"string"}function y(e,t){for(var n;n=e.next();)if("/"===n&&e.eat("*"))t.tokenize.push(y);else if("*"===n&&e.eat("/")){t.tokenize.pop();break}return"comment"}function b(e,t,n){this.prev=e,this.align=t,this.indented=n}function g(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new b(e.context,n,e.indented)}function z(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}const A={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=(t.tokenize[t.tokenize.length-1]||k)(e,t,n);if(r&&"comment"!=r?t.prev||(t.prev=r):t.prev=n,"punctuation"==r){var i=/[\(\[\{]|([\]\)\}])/.exec(e.current());i&&(i[1]?z:g)(t,e)}return r},indent:function(e,t,n){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(t);return null!=r.align?r.align-(i?1:0):r.indented+(i?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}}]); +//# sourceMappingURL=647.thebe-core.min.js.map \ No newline at end of file diff --git a/6473.thebe-core.min.js b/6473.thebe-core.min.js new file mode 100644 index 00000000..a263cf29 --- /dev/null +++ b/6473.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6473],{96473:(e,t,n)=>{n.r(t),n.d(t,{protobuf:()=>u});var r=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],a=new RegExp("^(("+r.join(")|(")+"))\\b","i"),i=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*");const u={name:"protobuf",token:function(e){if(e.eatSpace())return null;if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(a)?"keyword":e.match(i)?"variable":(e.next(),null)},languageData:{autocomplete:r}}}}]); +//# sourceMappingURL=6473.thebe-core.min.js.map \ No newline at end of file diff --git a/6590.thebe-core.min.js b/6590.thebe-core.min.js new file mode 100644 index 00000000..02d9631c --- /dev/null +++ b/6590.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6590],{86590:(e,t,n)=>{n.r(t),n.d(t,{xQuery:()=>y});var r=function(){function e(e){return{type:e,style:"keyword"}}for(var t=e("operator"),n={type:"atom",style:"atom"},r={type:"axis_specifier",style:"qualifier"},a={",":{type:"punctuation",style:null}},i=["after","all","allowing","ancestor","ancestor-or-self","any","array","as","ascending","at","attribute","base-uri","before","boundary-space","by","case","cast","castable","catch","child","collation","comment","construction","contains","content","context","copy","copy-namespaces","count","decimal-format","declare","default","delete","descendant","descendant-or-self","descending","diacritics","different","distance","document","document-node","element","else","empty","empty-sequence","encoding","end","entire","every","exactly","except","external","first","following","following-sibling","for","from","ftand","ftnot","ft-option","ftor","function","fuzzy","greatest","group","if","import","in","inherit","insensitive","insert","instance","intersect","into","invoke","is","item","language","last","lax","least","let","levels","lowercase","map","modify","module","most","namespace","next","no","node","nodes","no-inherit","no-preserve","not","occurs","of","only","option","order","ordered","ordering","paragraph","paragraphs","parent","phrase","preceding","preceding-sibling","preserve","previous","processing-instruction","relationship","rename","replace","return","revalidation","same","satisfies","schema","schema-attribute","schema-element","score","self","sensitive","sentence","sentences","sequence","skip","sliding","some","stable","start","stemming","stop","strict","strip","switch","text","then","thesaurus","times","to","transform","treat","try","tumbling","type","typeswitch","union","unordered","update","updating","uppercase","using","validate","value","variable","version","weight","when","where","wildcards","window","with","without","word","words","xquery"],s=0,o=i.length;s",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"];for(s=0,o=u.length;s\"\'\/?]/);)b+=v;return a(e,t,function(e,t){return function(n,r){return n.eatSpace(),t&&n.eat(">")?(h(r),r.tokenize=i,"tag"):(n.eat("/")||d(r,{type:"tag",name:e,tokenize:i}),n.eat(">")?(r.tokenize=i,"tag"):(r.tokenize=u,"tag"))}}(b,k))}if("{"==n)return d(t,{type:"codeblock"}),null;if("}"==n)return h(t),null;if(m(t))return">"==n?"tag":"/"==n&&e.eat(">")?(h(t),"tag"):"variable";if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),"atom";if("("===n&&e.eat(":"))return d(t,{type:"comment"}),a(e,t,s);if(y||'"'!==n&&"'"!==n){if("$"===n)return a(e,t,c);if(":"===n&&e.eat("="))return"keyword";if("("===n)return d(t,{type:"paren"}),null;if(")"===n)return h(t),null;if("["===n)return d(t,{type:"bracket"}),null;if("]"===n)return h(t),null;var z=r.propertyIsEnumerable(n)&&r[n];if(y&&'"'===n)for(;'"'!==e.next(););if(y&&"'"===n)for(;"'"!==e.next(););z||e.eatWhile(/[\w\$_-]/);var w=e.eat(":");!e.eat(":")&&w&&e.eatWhile(/[\w\$_-]/),e.match(/^[ \t]*\(/,!1)&&(g=!0);var I=e.current();return z=r.propertyIsEnumerable(I)&&r[I],g&&!z&&(z={type:"function_call",style:"def"}),function(e){return x(e,"xmlconstructor")}(t)?(h(t),"variable"):("element"!=I&&"attribute"!=I&&"axis_specifier"!=z.type||d(t,{type:"xmlconstructor"}),z?z.style:"variable")}return a(e,t,o(n))}function s(e,t){for(var n,r=!1,a=!1,i=0;n=e.next();){if(")"==n&&r){if(!(i>0)){h(t);break}i--}else":"==n&&a&&i++;r=":"==n,a="("==n}return"comment"}function o(e,t){return function(n,r){var a;if(function(e){return x(e,"string")}(r)&&n.current()==e)return h(r),t&&(r.tokenize=t),"string";if(d(r,{type:"string",name:e,tokenize:o(e,t)}),n.match("{",!1)&&g(r))return r.tokenize=i,"string";for(;a=n.next();){if(a==e){h(r),t&&(r.tokenize=t);break}if(n.match("{",!1)&&g(r))return r.tokenize=i,"string"}return"string"}}function c(e,t){var n=/[\w\$_-]/;if(e.eat('"')){for(;'"'!==e.next(););e.eat(":")}else e.eatWhile(n),e.match(":=",!1)||e.eat(":");return e.eatWhile(n),t.tokenize=i,"variable"}function u(e,t){var n=e.next();return"/"==n&&e.eat(">")?(g(t)&&h(t),m(t)&&h(t),"tag"):">"==n?(g(t)&&h(t),"tag"):"="==n?null:'"'==n||"'"==n?a(e,t,o(n,u)):(g(t)||d(t,{type:"attribute",tokenize:u}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(">",!1)||e.match("/",!1))&&(h(t),t.tokenize=i),"attribute")}function l(e,t){for(var n;n=e.next();)if("-"==n&&e.match("->",!0))return t.tokenize=i,"comment"}function f(e,t){for(var n;n=e.next();)if("]"==n&&e.match("]",!0))return t.tokenize=i,"comment"}function p(e,t){for(var n;n=e.next();)if("?"==n&&e.match(">",!0))return t.tokenize=i,"processingInstruction"}function m(e){return x(e,"tag")}function g(e){return x(e,"attribute")}function x(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function d(e,t){e.stack.push(t)}function h(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||i}const y={name:"xquery",startState:function(){return{tokenize:i,cc:[],stack:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"(:",close:":)"}}}}}}]); +//# sourceMappingURL=6590.thebe-core.min.js.map \ No newline at end of file diff --git a/6643.thebe-core.min.js b/6643.thebe-core.min.js new file mode 100644 index 00000000..a5159196 --- /dev/null +++ b/6643.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6643],{76643:(e,r,t)=>{function n(e){for(var r={},t=e.split(" "),n=0;nu});var a=n("Tcl safe after append array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd close concat continue dde eof encoding error eval exec exit expr fblocked fconfigure fcopy file fileevent filename filename flush for foreach format gets glob global history http if incr info interp join lappend lindex linsert list llength load lrange lreplace lsearch lset lsort memory msgcat namespace open package parray pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp registry regsub rename resource return scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest tclvars tell time trace unknown unset update uplevel upvar variable vwait"),o=n("if elseif else and not or eq ne in ni for foreach while switch"),i=/[+\-*&%=<>!?^\/\|]/;function l(e,r,t){return r.tokenize=t,t(e,r)}function s(e,r){var t=r.beforeParams;r.beforeParams=!1;var n,u=e.next();if('"'!=u&&"'"!=u||!r.inParams){if(/[\[\]{}\(\),;\.]/.test(u))return"("==u&&t?r.inParams=!0:")"==u&&(r.inParams=!1),null;if(/\d/.test(u))return e.eatWhile(/[\w\.]/),"number";if("#"==u)return e.eat("*")?l(e,r,c):"#"==u&&e.match(/ *\[ *\[/)?l(e,r,f):(e.skipToEnd(),"comment");if('"'==u)return e.skipTo(/"/),"comment";if("$"==u)return e.eatWhile(/[$_a-z0-9A-Z\.{:]/),e.eatWhile(/}/),r.beforeParams=!0,"builtin";if(i.test(u))return e.eatWhile(i),"comment";e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var m=e.current().toLowerCase();return a&&a.propertyIsEnumerable(m)?"keyword":o&&o.propertyIsEnumerable(m)?(r.beforeParams=!0,"keyword"):null}return l(e,r,(n=u,function(e,r){for(var t,a=!1,o=!1;null!=(t=e.next());){if(t==n&&!a){o=!0;break}a=!a&&"\\"==t}return o&&(r.tokenize=s),"string"}))}function c(e,r){for(var t,n=!1;t=e.next();){if("#"==t&&n){r.tokenize=s;break}n="*"==t}return"comment"}function f(e,r){for(var t,n=0;t=e.next();){if("#"==t&&2==n){r.tokenize=s;break}"]"==t?n++:" "!=t&&(n=0)}return"meta"}const u={name:"tcl",startState:function(){return{tokenize:s,beforeParams:!1,inParams:!1}},token:function(e,r){return e.eatSpace()?null:r.tokenize(e,r)},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=6643.thebe-core.min.js.map \ No newline at end of file diff --git a/6742.thebe-core.min.js b/6742.thebe-core.min.js new file mode 100644 index 00000000..8aad7e64 --- /dev/null +++ b/6742.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6742],{76742:(e,t,n)=>{function a(e){for(var t={},n=0;n_});var i=a(["abstract","accept","allocatable","allocate","array","assign","asynchronous","backspace","bind","block","byte","call","case","class","close","common","contains","continue","cycle","data","deallocate","decode","deferred","dimension","do","elemental","else","encode","end","endif","entry","enumerator","equivalence","exit","external","extrinsic","final","forall","format","function","generic","go","goto","if","implicit","import","include","inquire","intent","interface","intrinsic","module","namelist","non_intrinsic","non_overridable","none","nopass","nullify","open","optional","options","parameter","pass","pause","pointer","print","private","program","protected","public","pure","read","recursive","result","return","rewind","save","select","sequence","stop","subroutine","target","then","to","type","use","value","volatile","where","while","write"]),r=a(["abort","abs","access","achar","acos","adjustl","adjustr","aimag","aint","alarm","all","allocated","alog","amax","amin","amod","and","anint","any","asin","associated","atan","besj","besjn","besy","besyn","bit_size","btest","cabs","ccos","ceiling","cexp","char","chdir","chmod","clog","cmplx","command_argument_count","complex","conjg","cos","cosh","count","cpu_time","cshift","csin","csqrt","ctime","c_funloc","c_loc","c_associated","c_null_ptr","c_null_funptr","c_f_pointer","c_null_char","c_alert","c_backspace","c_form_feed","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","dabs","dacos","dasin","datan","date_and_time","dbesj","dbesj","dbesjn","dbesy","dbesy","dbesyn","dble","dcos","dcosh","ddim","derf","derfc","dexp","digits","dim","dint","dlog","dlog","dmax","dmin","dmod","dnint","dot_product","dprod","dsign","dsinh","dsin","dsqrt","dtanh","dtan","dtime","eoshift","epsilon","erf","erfc","etime","exit","exp","exponent","extends_type_of","fdate","fget","fgetc","float","floor","flush","fnum","fputc","fput","fraction","fseek","fstat","ftell","gerror","getarg","get_command","get_command_argument","get_environment_variable","getcwd","getenv","getgid","getlog","getpid","getuid","gmtime","hostnm","huge","iabs","iachar","iand","iargc","ibclr","ibits","ibset","ichar","idate","idim","idint","idnint","ieor","ierrno","ifix","imag","imagpart","index","int","ior","irand","isatty","ishft","ishftc","isign","iso_c_binding","is_iostat_end","is_iostat_eor","itime","kill","kind","lbound","len","len_trim","lge","lgt","link","lle","llt","lnblnk","loc","log","logical","long","lshift","lstat","ltime","matmul","max","maxexponent","maxloc","maxval","mclock","merge","move_alloc","min","minexponent","minloc","minval","mod","modulo","mvbits","nearest","new_line","nint","not","or","pack","perror","precision","present","product","radix","rand","random_number","random_seed","range","real","realpart","rename","repeat","reshape","rrspacing","rshift","same_type_as","scale","scan","second","selected_int_kind","selected_real_kind","set_exponent","shape","short","sign","signal","sinh","sin","sleep","sngl","spacing","spread","sqrt","srand","stat","sum","symlnk","system","system_clock","tan","tanh","time","tiny","transfer","transpose","trim","ttynam","ubound","umask","unlink","unpack","verify","xor","zabs","zcos","zexp","zlog","zsin","zsqrt"]),c=a(["c_bool","c_char","c_double","c_double_complex","c_float","c_float_complex","c_funptr","c_int","c_int16_t","c_int32_t","c_int64_t","c_int8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_int_fast8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_least8_t","c_intmax_t","c_intptr_t","c_long","c_long_double","c_long_double_complex","c_long_long","c_ptr","c_short","c_signed_char","c_size_t","character","complex","double","integer","logical","real"]),o=/[+\-*&=<>\/\:]/,s=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function l(e,t){if(e.match(s))return"operator";var n,a=e.next();if("!"==a)return e.skipToEnd(),"comment";if('"'==a||"'"==a)return t.tokenize=(n=a,function(e,t){for(var a,i=!1,r=!1;null!=(a=e.next());){if(a==n&&!i){r=!0;break}i=!i&&"\\"==a}return!r&&i||(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]\(\),]/.test(a))return null;if(/\d/.test(a))return e.eatWhile(/[\w\.]/),"number";if(o.test(a))return e.eatWhile(o),"operator";e.eatWhile(/[\w\$_]/);var l=e.current().toLowerCase();return i.hasOwnProperty(l)?"keyword":r.hasOwnProperty(l)||c.hasOwnProperty(l)?"builtin":"variable"}const _={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,t){return e.eatSpace()?null:(t.tokenize||l)(e,t)}}}}]); +//# sourceMappingURL=6742.thebe-core.min.js.map \ No newline at end of file diff --git a/6828.thebe-core.min.js b/6828.thebe-core.min.js new file mode 100644 index 00000000..708377c5 --- /dev/null +++ b/6828.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[6828],{16828:(e,t,r)=>{function a(e){var t=e.client||{},r=e.atoms||{false:!0,true:!0,null:!0},a=e.builtin||l(c),i=e.keywords||l(s),n=e.operatorChars||/^[*+\-%<>!=&|~^\/]/,o=e.support||{},u=e.hooks||{},d=e.dateSQL||{date:!0,time:!0,timestamp:!0},m=!1!==e.backslashStringEscapes,p=e.brackets||/^[\{}\(\)\[\]]/,g=e.punctuation||/^[;.,:]/;function h(e,s){var l=e.next();if(u[l]){var c=u[l](e,s);if(!1!==c)return c}if(o.hexNumber&&("0"==l&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==l||"X"==l)&&e.match(/^'[0-9a-fA-F]*'/)))return"number";if(o.binaryNumber&&(("b"==l||"B"==l)&&e.match(/^'[01]+'/)||"0"==l&&e.match(/^b[01]*/)))return"number";if(l.charCodeAt(0)>47&&l.charCodeAt(0)<58)return e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),o.decimallessFloat&&e.match(/^\.(?!\.)/),"number";if("?"==l&&(e.eatSpace()||e.eol()||e.eat(";")))return"macroName";if("'"==l||'"'==l&&o.doubleQuote)return s.tokenize=b(l),s.tokenize(e,s);if((o.nCharCast&&("n"==l||"N"==l)||o.charsetCast&&"_"==l&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(o.escapeConstant&&("e"==l||"E"==l)&&("'"==e.peek()||'"'==e.peek()&&o.doubleQuote))return s.tokenize=function(e,t){return(t.tokenize=b(e.next(),!0))(e,t)},"keyword";if(o.commentSlashSlash&&"/"==l&&e.eat("/"))return e.skipToEnd(),"comment";if(o.commentHash&&"#"==l||"-"==l&&e.eat("-")&&(!o.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==l&&e.eat("*"))return s.tokenize=f(1),s.tokenize(e,s);if("."!=l){if(n.test(l))return e.eatWhile(n),"operator";if(p.test(l))return"bracket";if(g.test(l))return e.eatWhile(g),"punctuation";if("{"==l&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var m=e.current().toLowerCase();return d.hasOwnProperty(m)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":r.hasOwnProperty(m)?"atom":a.hasOwnProperty(m)?"type":i.hasOwnProperty(m)?"keyword":t.hasOwnProperty(m)?"builtin":null}return o.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":e.match(/^\.+/)?null:o.ODBCdotTable&&e.match(/^[\w\d_$#]+/)?"type":void 0}function b(e,t){return function(r,a){for(var i,n=!1;null!=(i=r.next());){if(i==e&&!n){a.tokenize=h;break}n=(m||t)&&!n&&"\\"==i}return"string"}}function f(e){return function(t,r){var a=t.match(/^.*?(\/\*|\*\/)/);return a?"/*"==a[1]?r.tokenize=f(e+1):r.tokenize=e>1?f(e-1):h:t.skipToEnd(),"comment"}}function _(e,t,r){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:r}}return{name:"sql",startState:function(){return{tokenize:h,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),t.tokenize==h&&e.eatSpace())return null;var r=t.tokenize(e,t);if("comment"==r)return r;t.context&&null==t.context.align&&(t.context.align=!0);var a=e.current();return"("==a?_(e,t,")"):"["==a?_(e,t,"]"):t.context&&t.context.type==a&&function(e){e.indent=e.context.indent,e.context=e.context.prev}(t),r},indent:function(e,t,r){var a=e.context;if(!a)return null;var i=t.charAt(0)==a.type;return a.align?a.col+(i?0:1):a.indent+(i?0:r.unit)},languageData:{commentTokens:{line:o.commentSlashSlash?"//":o.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function i(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function n(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"string.special"):e.eat('"')?(e.match(/^.*"/),"string.special"):e.eat("`")?(e.match(/^.*`/),"string.special"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function o(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"string.special":null}r.r(t),r.d(t,{cassandra:()=>h,esper:()=>w,gpSQL:()=>v,gql:()=>y,hive:()=>f,mariaDB:()=>p,msSQL:()=>d,mySQL:()=>m,pgSQL:()=>_,plSQL:()=>b,sparkSQL:()=>x,sql:()=>a,sqlite:()=>g,standardSQL:()=>u});var s="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function l(e){for(var t={},r=e.split(" "),a=0;a!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:l("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":n}}),m=a({client:l("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:l(s+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":i,"\\":o}}),p=a({client:l("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:l(s+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":n,"`":i,"\\":o}}),g=a({client:l("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:l(s+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:l("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:l("date time timestamp datetime"),support:l("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":n,":":n,"?":n,$:n,'"':function(e){for(var t;null!=(t=e.next());)if('"'==t&&!e.eat('"'))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null},"`":i}}),h=a({client:{},keywords:l("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:l("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:l("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:l("commentSlashSlash decimallessFloat"),hooks:{}}),b=a({client:l("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:l("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:l("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:l("date time timestamp"),support:l("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),f=a({keywords:l("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:l("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:l("date timestamp"),support:l("ODBCdotTable doubleQuote binaryNumber hexNumber")}),_=a({client:l("source"),keywords:l(s+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:l("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:l("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),y=a({keywords:l("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:l("false true"),builtin:l("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),v=a({client:l("source"),keywords:l("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:l("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),x=a({keywords:l("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:l("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:l("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable doubleQuote zerolessFloat")}),w=a({client:l("source"),keywords:l("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:l("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:l("time"),support:l("decimallessFloat zerolessFloat binaryNumber hexNumber")})}}]); +//# sourceMappingURL=6828.thebe-core.min.js.map \ No newline at end of file diff --git a/7077.thebe-core.min.js b/7077.thebe-core.min.js new file mode 100644 index 00000000..cc251eed --- /dev/null +++ b/7077.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7077],{27077:(e,t,r)=>{function n(e){for(var t={},r=0,n=e.length;rs});var a=n(["note","across","when","variant","until","unique","undefine","then","strip","select","retry","rescue","require","rename","reference","redefine","prefix","once","old","obsolete","loop","local","like","is","inspect","infix","include","if","frozen","from","external","export","ensure","end","elseif","else","do","creation","create","check","alias","agent","separate","invariant","inherit","indexing","feature","expanded","deferred","class","Void","True","Result","Precursor","False","Current","create","attached","detachable","as","and","implies","not","or"]),i=n([":=","and then","and","or","<<",">>"]);function o(e,t){if(e.eatSpace())return null;var r,n=e.next();return'"'==n||"'"==n?function(e,t,r){return r.tokenize.push(e),e(t,r)}((r=n,function(e,t){for(var n,a=!1;null!=(n=e.next());){if(n==r&&!a){t.tokenize.pop();break}a=!a&&"%"==n}return"string"}),e,t):"-"==n&&e.eat("-")?(e.skipToEnd(),"comment"):":"==n&&e.eat("=")?"operator":/[0-9]/.test(n)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),"variable"):/[a-zA-Z_0-9]/.test(n)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),"variable"):/[=+\-\/*^%<>~]/.test(n)?(e.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}const s={name:"eiffel",startState:function(){return{tokenize:[o]}},token:function(e,t){var r=t.tokenize[t.tokenize.length-1](e,t);if("variable"==r){var n=e.current();r=a.propertyIsEnumerable(e.current())?"keyword":i.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(n)?"tag":/^0[bB][0-1]+$/g.test(n)||/^0[cC][0-7]+$/g.test(n)||/^0[xX][a-fA-F0-9]+$/g.test(n)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(n)||/^[0-9]+$/g.test(n)?"number":"variable"}return r},languageData:{commentTokens:{line:"--"}}}}}]); +//# sourceMappingURL=7077.thebe-core.min.js.map \ No newline at end of file diff --git a/7197.thebe-core.min.js b/7197.thebe-core.min.js new file mode 100644 index 00000000..17c87f5a --- /dev/null +++ b/7197.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7197],{37197:(e,t,r)=>{function n(e){var t,r,n=e.statementIndent,a=e.jsonld,i=e.json||a,o=e.typescript,u=e.wordCharacters||/[\w$\xa1-\uffff]/,s=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),a=e("keyword d"),i=e("operator"),o={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:a,break:a,continue:a,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n}}(),c=/[+\-*&%=<>!?|~^@]/,l=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function f(e,n,a){return t=e,r=a,n}function d(e,t){var r,n=e.next();if('"'==n||"'"==n)return t.tokenize=(r=n,function(e,t){var n,i=!1;if(a&&"@"==e.peek()&&e.match(l))return t.tokenize=d,f("jsonld-keyword","meta");for(;null!=(n=e.next())&&(n!=r||i);)i=!i&&"\\"==n;return i||(t.tokenize=d),f("string","string")}),t.tokenize(e,t);if("."==n&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return f("number","number");if("."==n&&e.match(".."))return f("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(n))return f(n);if("="==n&&e.eat(">"))return f("=>","operator");if("0"==n&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return f("number","number");if(/\d/.test(n))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),f("number","number");if("/"==n)return e.eat("*")?(t.tokenize=m,m(e,t)):e.eat("/")?(e.skipToEnd(),f("comment","comment")):function(e,t){return t.tokenize==d&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-1))}(e,t)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),f("regexp","string.special")):(e.eat("="),f("operator","operator",e.current()));if("`"==n)return t.tokenize=p,p(e,t);if("#"==n&&"!"==e.peek())return e.skipToEnd(),f("meta","meta");if("#"==n&&e.eatWhile(u))return f("variable","property");if("<"==n&&e.match("!--")||"-"==n&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),f("comment","comment");if(c.test(n))return">"==n&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=n&&"="!=n||e.eat("="):/[<>*+\-|&?]/.test(n)&&(e.eat(n),">"==n&&e.eat(n))),"?"==n&&e.eat(".")?f("."):f("operator","operator",e.current());if(u.test(n)){e.eatWhile(u);var i=e.current();if("."!=t.lastType){if(s.propertyIsEnumerable(i)){var o=s[i];return f(o.type,o.style,i)}if("async"==i&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return f("async","keyword",i)}return f("variable","variable",i)}}function m(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=d;break}n="*"==r}return f("comment","comment")}function p(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=d;break}n=!n&&"\\"==r}return f("quasi","string.special",e.current())}var k="([{}])";function v(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(o){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var a=0,i=!1,s=r-1;s>=0;--s){var c=e.string.charAt(s),l=k.indexOf(c);if(l>=0&&l<3){if(!a){++s;break}if(0==--a){"("==c&&(i=!0);break}}else if(l>=3&&l<6)++a;else if(u.test(c))i=!0;else if(/["'\/`]/.test(c))for(;;--s){if(0==s)return;if(e.string.charAt(s-1)==c&&"\\"!=e.string.charAt(s-2)){s--;break}}else if(i&&!a){++s;break}}i&&!a&&(t.fatArrowAt=s)}}var y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function w(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function b(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}var h={state:null,column:null,marked:null,cc:null};function x(){for(var e=arguments.length-1;e>=0;e--)h.cc.push(arguments[e])}function g(){return x.apply(null,arguments),!0}function V(e,t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}function A(t){var r=h.state;if(h.marked="def",r.context)if("var"==r.lexical.info&&r.context&&r.context.block){var n=z(t,r.context);if(null!=n)return void(r.context=n)}else if(!V(t,r.localVars))return void(r.localVars=new $(t,r.localVars));e.globalVars&&!V(t,r.globalVars)&&(r.globalVars=new $(t,r.globalVars))}function z(e,t){if(t){if(t.block){var r=z(e,t.prev);return r?r==t.prev?t:new T(r,t.vars,!0):null}return V(e,t.vars)?t:new T(t.prev,new $(e,t.vars),!1)}return null}function j(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function T(e,t,r){this.prev=e,this.vars=t,this.block=r}function $(e,t){this.name=e,this.next=t}var _=new $("this",new $("arguments",null));function O(){h.state.context=new T(h.state.context,h.state.localVars,!1),h.state.localVars=_}function q(){h.state.context=new T(h.state.context,h.state.localVars,!0),h.state.localVars=null}function E(){h.state.localVars=h.state.context.vars,h.state.context=h.state.context.prev}function I(e,t){var r=function(){var r=h.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var a=r.lexical;a&&")"==a.type&&a.align;a=a.prev)n=a.indented;r.lexical=new w(n,h.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function C(){var e=h.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function S(e){return function t(r){return r==e?g():";"==e||"}"==r||")"==r||"]"==r?x():g(t)}}function N(e,t){return"var"==e?g(I("vardef",t),he,S(";"),C):"keyword a"==e?g(I("form"),D,N,C):"keyword b"==e?g(I("form"),N,C):"keyword d"==e?h.stream.match(/^\s*$/,!1)?g():g(I("stat"),U,S(";"),C):"debugger"==e?g(S(";")):"{"==e?g(I("}"),q,ae,C,E):";"==e?g():"if"==e?("else"==h.state.lexical.info&&h.state.cc[h.state.cc.length-1]==C&&h.state.cc.pop()(),g(I("form"),D,N,C,je)):"function"==e?g(Oe):"for"==e?g(I("form"),q,Te,N,E,C):"class"==e||o&&"interface"==t?(h.marked="keyword",g(I("form","class"==e?e:t),Se,C)):"variable"==e?o&&"declare"==t?(h.marked="keyword",g(N)):o&&("module"==t||"enum"==t||"type"==t)&&h.stream.match(/^\s*\w/,!1)?(h.marked="keyword","enum"==t?g(Le):"type"==t?g(Ee,S("operator"),ce,S(";")):g(I("form"),xe,S("{"),I("}"),ae,C,C)):o&&"namespace"==t?(h.marked="keyword",g(I("form"),W,N,C)):o&&"abstract"==t?(h.marked="keyword",g(N)):g(I("stat"),X):"switch"==e?g(I("form"),D,S("{"),I("}","switch"),q,ae,C,C,E):"case"==e?g(W,S(":")):"default"==e?g(S(":")):"catch"==e?g(I("form"),O,P,N,C,E):"export"==e?g(I("stat"),Be,C):"import"==e?g(I("stat"),Fe,C):"async"==e?g(N):"@"==t?g(W,N):x(I("stat"),W,S(";"),C)}function P(e){if("("==e)return g(Ie,S(")"))}function W(e,t){return F(e,t,!1)}function B(e,t){return F(e,t,!0)}function D(e){return"("!=e?x():g(I(")"),U,S(")"),C)}function F(e,t,r){if(h.state.fatArrowAt==h.stream.start){var n=r?M:L;if("("==e)return g(O,I(")"),re(Ie,")"),C,S("=>"),n,E);if("variable"==e)return x(O,xe,S("=>"),n,E)}var a=r?H:G;return y.hasOwnProperty(e)?g(a):"function"==e?g(Oe,a):"class"==e||o&&"interface"==t?(h.marked="keyword",g(I("form"),Ce,C)):"keyword c"==e||"async"==e?g(r?B:W):"("==e?g(I(")"),U,S(")"),C,a):"operator"==e||"spread"==e?g(r?B:W):"["==e?g(I("]"),Ke,C,a):"{"==e?ne(Z,"}",null,a):"quasi"==e?x(J,a):"new"==e?g(function(e){return function(t){return"."==t?g(e?R:Q):"variable"==t&&o?g(ye,e?H:G):x(e?B:W)}}(r)):g()}function U(e){return e.match(/[;\}\)\],]/)?x():x(W)}function G(e,t){return","==e?g(U):H(e,t,!1)}function H(e,t,r){var n=0==r?G:H,a=0==r?W:B;return"=>"==e?g(O,r?M:L,E):"operator"==e?/\+\+|--/.test(t)||o&&"!"==t?g(n):o&&"<"==t&&h.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?g(I(">"),re(ce,">"),C,n):"?"==t?g(W,S(":"),a):g(a):"quasi"==e?x(J,n):";"!=e?"("==e?ne(B,")","call",n):"."==e?g(Y,n):"["==e?g(I("]"),U,S("]"),C,n):o&&"as"==t?(h.marked="keyword",g(ce,n)):"regexp"==e?(h.state.lastType=h.marked="operator",h.stream.backUp(h.stream.pos-h.stream.start-1),g(a)):void 0:void 0}function J(e,t){return"quasi"!=e?x():"${"!=t.slice(t.length-2)?g(J):g(U,K)}function K(e){if("}"==e)return h.marked="string.special",h.state.tokenize=p,g(J)}function L(e){return v(h.stream,h.state),x("{"==e?N:W)}function M(e){return v(h.stream,h.state),x("{"==e?N:B)}function Q(e,t){if("target"==t)return h.marked="keyword",g(G)}function R(e,t){if("target"==t)return h.marked="keyword",g(H)}function X(e){return":"==e?g(C,N):x(G,S(";"),C)}function Y(e){if("variable"==e)return h.marked="property",g()}function Z(e,t){return"async"==e?(h.marked="property",g(Z)):"variable"==e||"keyword"==h.style?(h.marked="property","get"==t||"set"==t?g(ee):(o&&h.state.fatArrowAt==h.stream.start&&(r=h.stream.match(/^\s*:\s*/,!1))&&(h.state.fatArrowAt=h.stream.pos+r[0].length),g(te))):"number"==e||"string"==e?(h.marked=a?"property":h.style+" property",g(te)):"jsonld-keyword"==e?g(te):o&&j(t)?(h.marked="keyword",g(Z)):"["==e?g(W,ie,S("]"),te):"spread"==e?g(B,te):"*"==t?(h.marked="keyword",g(Z)):":"==e?x(te):void 0;var r}function ee(e){return"variable"!=e?x(te):(h.marked="property",g(Oe))}function te(e){return":"==e?g(B):"("==e?x(Oe):void 0}function re(e,t,r){function n(a,i){if(r?r.indexOf(a)>-1:","==a){var o=h.state.lexical;return"call"==o.info&&(o.pos=(o.pos||0)+1),g((function(r,n){return r==t||n==t?x():x(e)}),n)}return a==t||i==t?g():r&&r.indexOf(";")>-1?x(e):g(S(t))}return function(r,a){return r==t||a==t?g():x(e,n)}}function ne(e,t,r){for(var n=3;n"),ce):"quasi"==e?x(me,ve):void 0}function le(e){if("=>"==e)return g(ce)}function fe(e){return e.match(/[\}\)\]]/)?g():","==e||";"==e?g(fe):x(de,fe)}function de(e,t){return"variable"==e||"keyword"==h.style?(h.marked="property",g(de)):"?"==t||"number"==e||"string"==e?g(de):":"==e?g(ce):"["==e?g(S("variable"),oe,S("]"),de):"("==e?x(qe,de):e.match(/[;\}\)\],]/)?void 0:g()}function me(e,t){return"quasi"!=e?x():"${"!=t.slice(t.length-2)?g(me):g(ce,pe)}function pe(e){if("}"==e)return h.marked="string.special",h.state.tokenize=p,g(me)}function ke(e,t){return"variable"==e&&h.stream.match(/^\s*[?:]/,!1)||"?"==t?g(ke):":"==e?g(ce):"spread"==e?g(ke):x(ce)}function ve(e,t){return"<"==t?g(I(">"),re(ce,">"),C,ve):"|"==t||"."==e||"&"==t?g(ce):"["==e?g(ce,S("]"),ve):"extends"==t||"implements"==t?(h.marked="keyword",g(ce)):"?"==t?g(ce,S(":"),ce):void 0}function ye(e,t){if("<"==t)return g(I(">"),re(ce,">"),C,ve)}function we(){return x(ce,be)}function be(e,t){if("="==t)return g(ce)}function he(e,t){return"enum"==t?(h.marked="keyword",g(Le)):x(xe,ie,Ae,ze)}function xe(e,t){return o&&j(t)?(h.marked="keyword",g(xe)):"variable"==e?(A(t),g()):"spread"==e?g(xe):"["==e?ne(Ve,"]"):"{"==e?ne(ge,"}"):void 0}function ge(e,t){return"variable"!=e||h.stream.match(/^\s*:/,!1)?("variable"==e&&(h.marked="property"),"spread"==e?g(xe):"}"==e?x():"["==e?g(W,S("]"),S(":"),ge):g(S(":"),xe,Ae)):(A(t),g(Ae))}function Ve(){return x(xe,Ae)}function Ae(e,t){if("="==t)return g(B)}function ze(e){if(","==e)return g(he)}function je(e,t){if("keyword b"==e&&"else"==t)return g(I("form","else"),N,C)}function Te(e,t){return"await"==t?g(Te):"("==e?g(I(")"),$e,C):void 0}function $e(e){return"var"==e?g(he,_e):"variable"==e?g(_e):x(_e)}function _e(e,t){return")"==e?g():";"==e?g(_e):"in"==t||"of"==t?(h.marked="keyword",g(W,_e)):x(W,_e)}function Oe(e,t){return"*"==t?(h.marked="keyword",g(Oe)):"variable"==e?(A(t),g(Oe)):"("==e?g(O,I(")"),re(Ie,")"),C,ue,N,E):o&&"<"==t?g(I(">"),re(we,">"),C,Oe):void 0}function qe(e,t){return"*"==t?(h.marked="keyword",g(qe)):"variable"==e?(A(t),g(qe)):"("==e?g(O,I(")"),re(Ie,")"),C,ue,E):o&&"<"==t?g(I(">"),re(we,">"),C,qe):void 0}function Ee(e,t){return"keyword"==e||"variable"==e?(h.marked="type",g(Ee)):"<"==t?g(I(">"),re(we,">"),C):void 0}function Ie(e,t){return"@"==t&&g(W,Ie),"spread"==e?g(Ie):o&&j(t)?(h.marked="keyword",g(Ie)):o&&"this"==e?g(ie,Ae):x(xe,ie,Ae)}function Ce(e,t){return"variable"==e?Se(e,t):Ne(e,t)}function Se(e,t){if("variable"==e)return A(t),g(Ne)}function Ne(e,t){return"<"==t?g(I(">"),re(we,">"),C,Ne):"extends"==t||"implements"==t||o&&","==e?("implements"==t&&(h.marked="keyword"),g(o?ce:W,Ne)):"{"==e?g(I("}"),Pe,C):void 0}function Pe(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||o&&j(t))&&h.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1)?(h.marked="keyword",g(Pe)):"variable"==e||"keyword"==h.style?(h.marked="property",g(We,Pe)):"number"==e||"string"==e?g(We,Pe):"["==e?g(W,ie,S("]"),We,Pe):"*"==t?(h.marked="keyword",g(Pe)):o&&"("==e?x(qe,Pe):";"==e||","==e?g(Pe):"}"==e?g():"@"==t?g(W,Pe):void 0}function We(e,t){if("!"==t||"?"==t)return g(We);if(":"==e)return g(ce,Ae);if("="==t)return g(B);var r=h.state.lexical.prev;return x(r&&"interface"==r.info?qe:Oe)}function Be(e,t){return"*"==t?(h.marked="keyword",g(Je,S(";"))):"default"==t?(h.marked="keyword",g(W,S(";"))):"{"==e?g(re(De,"}"),Je,S(";")):x(N)}function De(e,t){return"as"==t?(h.marked="keyword",g(S("variable"))):"variable"==e?x(B,De):void 0}function Fe(e){return"string"==e?g():"("==e?x(W):"."==e?x(G):x(Ue,Ge,Je)}function Ue(e,t){return"{"==e?ne(Ue,"}"):("variable"==e&&A(t),"*"==t&&(h.marked="keyword"),g(He))}function Ge(e){if(","==e)return g(Ue,Ge)}function He(e,t){if("as"==t)return h.marked="keyword",g(Ue)}function Je(e,t){if("from"==t)return h.marked="keyword",g(W)}function Ke(e){return"]"==e?g():x(re(B,"]"))}function Le(){return x(I("form"),xe,S("{"),I("}"),re(Me,"}"),C,C)}function Me(){return x(xe,Ae)}return O.lex=q.lex=!0,E.lex=!0,C.lex=!0,{name:e.name,startState:function(t){var r={tokenize:d,lastType:"sof",cc:[],lexical:new w(-t,0,"block",!1),localVars:e.localVars,context:e.localVars&&new T(null,null,!1),indented:0};return e.globalVars&&"object"==typeof e.globalVars&&(r.globalVars=e.globalVars),r},token:function(e,n){if(e.sol()&&(n.lexical.hasOwnProperty("align")||(n.lexical.align=!1),n.indented=e.indentation(),v(e,n)),n.tokenize!=m&&e.eatSpace())return null;var a=n.tokenize(e,n);return"comment"==t?a:(n.lastType="operator"!=t||"++"!=r&&"--"!=r?t:"incdec",function(e,t,r,n,a){var o=e.cc;for(h.state=e,h.stream=a,h.marked=null,h.cc=o,h.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():i?W:N)(r,n)){for(;o.length&&o[o.length-1].lex;)o.pop()();return h.marked?h.marked:"variable"==r&&b(e,n)?"variableName.local":t}}(n,a,t,r,e))},indent:function(t,r,a){if(t.tokenize==m||t.tokenize==p)return null;if(t.tokenize!=d)return 0;var i,o=r&&r.charAt(0),u=t.lexical;if(!/^\s*else\b/.test(r))for(var s=t.cc.length-1;s>=0;--s){var l=t.cc[s];if(l==C)u=u.prev;else if(l!=je&&l!=E)break}for(;("stat"==u.type||"form"==u.type)&&("}"==o||(i=t.cc[t.cc.length-1])&&(i==G||i==H)&&!/^[,\.=+\-*:?[\(]/.test(r));)u=u.prev;n&&")"==u.type&&"stat"==u.prev.type&&(u=u.prev);var f=u.type,k=o==f;return"vardef"==f?u.indented+("operator"==t.lastType||","==t.lastType?u.info.length+1:0):"form"==f&&"{"==o?u.indented:"form"==f?u.indented+a.unit:"stat"==f?u.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||c.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,r)?n||a.unit:0):"switch"!=u.info||k||0==e.doubleIndentSwitch?u.align?u.column+(k?0:1):u.indented+(k?0:a.unit):u.indented+(/^(?:case|default)\b/.test(r)?a.unit:2*a.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:i?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}r.r(t),r.d(t,{javascript:()=>a,json:()=>i,jsonld:()=>o,typescript:()=>u});const a=n({name:"javascript"}),i=n({name:"json",json:!0}),o=n({name:"json",jsonld:!0}),u=n({name:"typescript",typescript:!0})}}]); +//# sourceMappingURL=7197.thebe-core.min.js.map \ No newline at end of file diff --git a/7220.thebe-core.min.js b/7220.thebe-core.min.js new file mode 100644 index 00000000..577a8e35 --- /dev/null +++ b/7220.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7220],{27220:(e,t,r)=>{function n(e,t,r){return t(r),r(e,t)}r.r(t),r.d(t,{haskell:()=>F});var a=/[a-z_]/,i=/[A-Z]/,o=/\d/,l=/[0-9A-Fa-f]/,u=/[0-7]/,s=/[a-z_A-Z0-9'\xa1-\uffff]/,c=/[-!#$%&*+.\/<=>?@\\^|~:]/,f=/[(),;[\]`{}]/,d=/[ \t\v\f]/;function m(e,t){if(e.eatWhile(d))return null;var r=e.next();if(f.test(r)){if("{"==r&&e.eat("-")){var m="comment";return e.eat("#")&&(m="meta"),n(e,t,h(m,1))}return null}if("'"==r)return e.eat("\\"),e.next(),e.eat("'")?"string":"error";if('"'==r)return n(e,t,p);if(i.test(r))return e.eatWhile(s),e.eat(".")?"qualifier":"type";if(a.test(r))return e.eatWhile(s),"variable";if(o.test(r)){if("0"==r){if(e.eat(/[xX]/))return e.eatWhile(l),"integer";if(e.eat(/[oO]/))return e.eatWhile(u),"number"}return e.eatWhile(o),m="number",e.match(/^\.\d+/)&&(m="number"),e.eat(/[eE]/)&&(m="number",e.eat(/[-+]/),e.eatWhile(o)),m}return"."==r&&e.eat(".")?"keyword":c.test(r)?"-"==r&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(c))?(e.skipToEnd(),"comment"):(e.eatWhile(c),"variable"):"error"}function h(e,t){return 0==t?m:function(r,n){for(var a=t;!r.eol();){var i=r.next();if("{"==i&&r.eat("-"))++a;else if("-"==i&&r.eat("}")&&0==--a)return n(m),e}return n(h(e,a)),e}}function p(e,t){for(;!e.eol();){var r=e.next();if('"'==r)return t(m),"string";if("\\"==r){if(e.eol()||e.eat(d))return t(g),"string";e.eat("&")||e.next()}}return t(m),"error"}function g(e,t){return e.eat("\\")?n(e,t,p):(e.next(),t(m),"error")}var w=function(){var e={};function t(t){return function(){for(var r=0;r","@","~","=>"),t("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),t("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),t("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3"),e}();const F={name:"haskell",startState:function(){return{f:m}},copyState:function(e){return{f:e.f}},token:function(e,t){var r=t.f(e,(function(e){t.f=e})),n=e.current();return w.hasOwnProperty(n)?w[n]:r},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}}}}]); +//# sourceMappingURL=7220.thebe-core.min.js.map \ No newline at end of file diff --git a/7230.thebe-core.min.js b/7230.thebe-core.min.js new file mode 100644 index 00000000..7ae4140e --- /dev/null +++ b/7230.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7230],{77230:(e,t,n)=>{function i(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,i=e.noIndentKeywords||[],r=e.multiLineStrings,a=e.hooks||{};function o(e){for(var t={},n=e.split(" "),i=0;i=0)return o}var l=e.context,s=i&&i.charAt(0);"statement"==l.type&&"}"==s&&(l=l.prev);var c=!1,d=i.match(k);return d&&(c=$(d[0],l.type)),"statement"==l.type?l.indented+("{"==s?0:t||r.unit):y.test(l.type)&&l.align&&!n?l.column+(c?0:1):")"!=l.type||c?l.indented+(c?0:r.unit):l.indented+(t||r.unit)},languageData:{indentOnInput:function(){var e=[];for(var t in w)if(w[t]){var n=w[t].split(";");for(var i in n)e.push(n[i])}return new RegExp("[{}()\\[\\]]|("+e.join("|")+")$")}(),commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}n.r(t),n.d(t,{tlv:()=>d,verilog:()=>r});const r=i({});var a={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"contentSeparator","/":"property","/-":"property","@":"variableName.special","@-":"variableName.special","@++":"variableName.special","@+=":"variableName.special","@+=-":"variableName.special","@--":"variableName.special","@-=":"variableName.special","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable","**":"variable","\\":"keyword",'"':"comment"},o={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},l=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,s=/^[! ] */,c=/^\/[\/\*]/;const d=i({hooks:{electricInput:!1,token:function(e,t){var n,i=void 0;if(e.sol()&&!t.tlvInBlockComment){"\\"==e.peek()&&(i="def",e.skipToEnd(),e.string.match(/\\SV/)?t.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(t.tlvCodeActive=!0)),t.tlvCodeActive&&0==e.pos&&0==t.indented&&(n=e.match(s,!1))&&(t.indented=n[0].length);var r=t.indented,d=r/3;if(d<=t.tlvIndentationStyle.length){var u=e.string.length==r,f=3*d;if(f0||(t.tlvIndentationStyle[d]=o[m],d++))}if(!u)for(;t.tlvIndentationStyle.length>d;)t.tlvIndentationStyle.pop()}t.tlvNextIndent=r}if(t.tlvCodeActive)if(void 0!==i);else if(t.tlvInBlockComment)e.match(/^.*?\*\//)?t.tlvInBlockComment=!1:e.skipToEnd(),i="comment";else if((n=e.match(c))&&!t.tlvInBlockComment)"//"==n[0]?e.skipToEnd():t.tlvInBlockComment=!0,i="comment";else if(n=e.match(l)){var v=n[1],g=n[2];a.hasOwnProperty(v)&&(g.length>0||e.eol())?i=a[v]:e.backUp(e.current().length-1)}else e.match(/^\t+/)?i="invalid":e.match(/^[\[\]{}\(\);\:]+/)?i="meta":(n=e.match(/^[mM]4([\+_])?[\w\d_]*/))?i="+"==n[1]?"keyword.special":"keyword":e.match(/^ +/)?e.eol()&&(i="error"):e.match(/^[\w\d_]+/)?i="number":e.next();else e.match(/^[mM]4([\w\d_]*)/)&&(i="keyword");return i},indent:function(e){return 1==e.tlvCodeActive?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1}}})}}]); +//# sourceMappingURL=7230.thebe-core.min.js.map \ No newline at end of file diff --git a/7364.thebe-core.min.js b/7364.thebe-core.min.js new file mode 100644 index 00000000..2f409a78 --- /dev/null +++ b/7364.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7364],{87364:(e,n,t)=>{t.r(n),t.d(n,{puppet:()=>c});var i={},a=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function o(e,n){for(var t=n.split(" "),a=0;a.*/,!1),c=e.match(/(\s+)?[\w:_]+(\s+)?{/,!1),r=e.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),u=e.next();if("$"===u)return e.match(a)?n.continueString?"variableName.special":"variable":"error";if(n.continueString)return e.backUp(1),s(e,n);if(n.inDefinition){if(e.match(/(\s+)?[\w:_]+(\s+)?/))return"def";e.match(/\s+{/),n.inDefinition=!1}return n.inInclude?(e.match(/(\s+)?\S+(\s+)?/),n.inInclude=!1,"def"):e.match(/(\s+)?\w+\(/)?(e.backUp(1),"def"):o?(e.match(/(\s+)?\w+/),"tag"):t&&i.hasOwnProperty(t)?(e.backUp(1),e.match(/[\w]+/),e.match(/\s+\S+\s+{/,!1)&&(n.inDefinition=!0),"include"==t&&(n.inInclude=!0),i[t]):/(^|\s+)[A-Z][\w:_]+/.test(t)?(e.backUp(1),e.match(/(^|\s+)[A-Z][\w:_]+/),"def"):c?(e.match(/(\s+)?[\w:_]+/),"def"):r?(e.match(/(\s+)?[@]{1,2}/),"atom"):"#"==u?(e.skipToEnd(),"comment"):"'"==u||'"'==u?(n.pending=u,s(e,n)):"{"==u||"}"==u?"bracket":"/"==u?(e.match(/^[^\/]*\//),"string.special"):u.match(/[0-9]/)?(e.eatWhile(/[0-9]+/),"number"):"="==u?(">"==e.peek()&&e.next(),"operator"):(e.eatWhile(/[\w-]/),null)}(e,n)}}}}]); +//# sourceMappingURL=7364.thebe-core.min.js.map \ No newline at end of file diff --git a/746.thebe-lite.min.js b/746.thebe-lite.min.js new file mode 100644 index 00000000..e41c16ec --- /dev/null +++ b/746.thebe-lite.min.js @@ -0,0 +1,3 @@ +/*! For license information please see 746.thebe-lite.min.js.LICENSE.txt */ +"use strict";(self.webpackChunkthebe_lite=self.webpackChunkthebe_lite||[]).push([[746],{2746:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{var $i=Object.create,Je=Object.defineProperty,Wi=Object.getOwnPropertyDescriptor,Hi=Object.getOwnPropertyNames,Ki=Object.getPrototypeOf,Ji=Object.prototype.hasOwnProperty,pe=(e,t)=>()=>(e&&(t=e(e=0)),t),F=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Vi=(e,t)=>{for(var i in t)Je(e,i,{get:t[i],enumerable:!0})},Yi=(e,t,i,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let n of Hi(t))!Ji.call(e,n)&&n!==i&&Je(e,n,{get:()=>t[n],enumerable:!(a=Wi(t,n))||a.enumerable});return e},de=(e,t,i)=>(i=null!=e?$i(Ki(e)):{},Yi(!t&&e&&e.__esModule?i:Je(i,"default",{value:e,enumerable:!0}),e)),it=F(((e,t)=>{var i,a;i=e,a=function(e){function t(e,t){let i=0;for(let a of e)if(!1===t(a,i++))return!1;return!0}var i;e.ArrayExt=void 0,function(e){function t(e,t,i=0,a=-1){let n,o=e.length;if(0===o)return-1;i=i<0?Math.max(0,i+o):Math.min(i,o-1),n=(a=a<0?Math.max(0,a+o):Math.min(a,o-1))=i)return;let a=e[t];for(let a=t+1;a0;){let a=s>>1,n=r+a;i(e[n],t)<0?(r=n+1,s-=a+1):s=a}return r},e.upperBound=function(e,t,i,a=0,n=-1){let o=e.length;if(0===o)return 0;let r=a=a<0?Math.max(0,a+o):Math.min(a,o-1),s=(n=n<0?Math.max(0,n+o):Math.min(n,o-1))-a+1;for(;s>0;){let a=s>>1,n=r+a;i(e[n],t)>0?s=a:(r=n+1,s-=a+1)}return r},e.shallowEqual=function(e,t,i){if(e===t)return!0;if(e.length!==t.length)return!1;for(let a=0,n=e.length;a=r&&(i=n<0?r-1:r),void 0===a?a=n<0?-1:r:a<0?a=Math.max(a+r,n<0?-1:0):a>=r&&(a=n<0?r-1:r),o=n<0&&a>=i||n>0&&i>=a?0:n<0?Math.floor((a-i+1)/n+1):Math.floor((a-i-1)/n+1);let s=[];for(let t=0;t=(a=a<0?Math.max(0,a+n):Math.min(a,n-1)))return;let r=a-i+1;if(t>0?t%=r:t<0&&(t=(t%r+r)%r),0===t)return;let s=i+t;o(e,i,s-1),o(e,s,a),o(e,i,a)},e.fill=function(e,t,i=0,a=-1){let n,o=e.length;if(0!==o){i=i<0?Math.max(0,i+o):Math.min(i,o-1),n=(a=a<0?Math.max(0,a+o):Math.min(a,o-1))t;--i)e[i]=e[i-1];e[t]=i},e.removeAt=r,e.removeFirstOf=function(e,i,a=0,n=-1){let o=t(e,i,a,n);return-1!==o&&r(e,o),o},e.removeLastOf=function(e,t,a=-1,n=0){let o=i(e,t,a,n);return-1!==o&&r(e,o),o},e.removeAllOf=function(e,t,i=0,a=-1){let n=e.length;if(0===n)return 0;i=i<0?Math.max(0,i+n):Math.min(i,n-1),a=a<0?Math.max(0,a+n):Math.min(a,n-1);let o=0;for(let r=0;r=i&&r<=a&&e[r]===t||a=i)&&e[r]===t?o++:o>0&&(e[r-o]=e[r]);return o>0&&(e.length=n-o),o},e.removeFirstWhere=function(e,t,i=0,n=-1){let o,s=a(e,t,i,n);return-1!==s&&(o=r(e,s)),{index:s,value:o}},e.removeLastWhere=function(e,t,i=-1,a=0){let o,s=n(e,t,i,a);return-1!==s&&(o=r(e,s)),{index:s,value:o}},e.removeAllWhere=function(e,t,i=0,a=-1){let n=e.length;if(0===n)return 0;i=i<0?Math.max(0,i+n):Math.min(i,n-1),a=a<0?Math.max(0,a+n):Math.min(a,n-1);let o=0;for(let r=0;r=i&&r<=a&&t(e[r],r)||a=i)&&t(e[r],r)?o++:o>0&&(e[r-o]=e[r]);return o>0&&(e.length=n-o),o}}(e.ArrayExt||(e.ArrayExt={})),(i||(i={})).rangeLength=function(e,t,i){return 0===i?1/0:e>t&&i>0||et?1:0}}(e.StringExt||(e.StringExt={})),e.chain=function*(...e){for(let t of e)yield*t},e.each=function(e,t){let i=0;for(let a of e)if(!1===t(a,i++))return},e.empty=function*(){},e.enumerate=function*(e,t=0){for(let i of e)yield[t++,i]},e.every=t,e.filter=function*(e,t){let i=0;for(let a of e)t(a,i++)&&(yield a)},e.find=function(e,t){let i=0;for(let a of e)if(t(a,i++))return a},e.findIndex=function(e,t){let i=0;for(let a of e)if(t(a,i++))return i-1;return-1},e.map=function*(e,t){let i=0;for(let a of e)yield t(a,i++)},e.max=function(e,t){let i;for(let a of e)void 0!==i?t(a,i)>0&&(i=a):i=a;return i},e.min=function(e,t){let i;for(let a of e)void 0!==i?t(a,i)<0&&(i=a):i=a;return i},e.minmax=function(e,t){let i,a,n=!0;for(let o of e)n?(i=o,a=o,n=!1):t(o,i)<0?i=o:t(o,a)>0&&(a=o);return n?void 0:[i,a]},e.once=function*(e){yield e},e.range=function*(e,t,a){void 0===t?(t=e,e=0,a=1):void 0===a&&(a=1);let n=i.rangeLength(e,t,a);for(let t=0;t-1;t--)yield e[t]},e.some=function(e,t){let i=0;for(let a of e)if(t(a,i++))return!0;return!1},e.stride=function*(e,t){let i=0;for(let a of e)i++%t==0&&(yield a)},e.take=function*(e,t){if(t<1)return;let i,a=e[Symbol.iterator]();for(;0e[Symbol.iterator]())),a=i.map((e=>e.next()));for(;t(a,(e=>!e.done));a=i.map((e=>e.next())))yield a.map((e=>e.value))}},"object"==typeof e&&void 0!==t?a(e):"function"==typeof define&&__webpack_require__.amdO?define(["exports"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_algorithm={})})),me=F(((e,t)=>{var i,a;i=e,a=function(e,t){var i;function a(e){let t=0;for(let i=0,a=e.length;i>>0),e[i]=255&t,t>>>=8}e.JSONExt=void 0,function(e){function t(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e}function i(e){return Array.isArray(e)}e.emptyObject=Object.freeze({}),e.emptyArray=Object.freeze([]),e.isPrimitive=t,e.isArray=i,e.isObject=function(e){return!t(e)&&!i(e)},e.deepEqual=function e(a,n){if(a===n)return!0;if(t(a)||t(n))return!1;let o=i(a),r=i(n);return o===r&&(o&&r?function(t,i){if(t===i)return!0;if(t.length!==i.length)return!1;for(let a=0,n=t.length;a{if(a===e.provides)return!0;let r=i.get(a);if(!r)return!1;let s=t.get(r),l=[...s.requires,...s.optional];return 0!==l.length&&(o.push(r),!!l.some(n)||(o.pop(),!1))};if(!e.provides||0===a.length)return;let o=[e.id];if(a.some(n))throw new ReferenceError(`Cycle detected: ${o.join(" -> ")}.`)},e.findDependents=function(e,i,a){let n=new Array,o=e=>{let t=i.get(e),o=[...t.requires,...t.optional];n.push(...o.reduce(((t,i)=>{let n=a.get(i);return n&&t.push([e,n]),t}),[]))};for(let e of i.keys())o(e);let r=n.filter((t=>t[1]===e)),s=0;for(;r.length>s;){let e=r.length,t=new Set(r.map((e=>e[0])));for(let e of t)n.filter((t=>t[1]===e)).forEach((e=>{r.includes(e)||r.push(e)}));s=e}let l=t.topologicSort(r),p=l.findIndex((t=>t===e));return-1===p?[e]:l.slice(0,p+1)},e.collectStartupPlugins=function(e,t){let i=new Set;for(let t of e.keys())!0===e.get(t).autoStart&&i.add(t);if(t.startPlugins)for(let e of t.startPlugins)i.add(e);if(t.ignorePlugins)for(let e of t.ignorePlugins)i.delete(e);return Array.from(i)}}(i||(i={})),e.Random=void 0,(e.Random||(e.Random={})).getRandomValues=(()=>{let e="undefined"!=typeof window&&(window.crypto||window.msCrypto)||null;return e&&"function"==typeof e.getRandomValues?function(t){return e.getRandomValues(t)}:a})(),e.UUID=void 0,(e.UUID||(e.UUID={})).uuid4=function(e){let t=new Uint8Array(16),i=new Array(256);for(let e=0;e<16;++e)i[e]="0"+e.toString(16);for(let e=16;e<256;++e)i[e]=e.toString(16);return function(){return e(t),t[6]=64|15&t[6],t[8]=128|63&t[8],i[t[0]]+i[t[1]]+i[t[2]]+i[t[3]]+"-"+i[t[4]]+i[t[5]]+"-"+i[t[6]]+i[t[7]]+"-"+i[t[8]]+i[t[9]]+"-"+i[t[10]]+i[t[11]]+i[t[12]]+i[t[13]]+i[t[14]]+i[t[15]]}}(e.Random.getRandomValues),e.MimeData=class{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return-1!==this._types.indexOf(e)}getData(e){let t=this._types.indexOf(e);return-1!==t?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);-1!==t&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}},e.PluginRegistry=class{constructor(e={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,e.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=e.validatePlugin)}get application(){return this._application}set application(e){if(null!==this._application)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=e}get deferredPlugins(){return Array.from(this._plugins).filter((([e,t])=>"defer"===t.autoStart)).map((([e,t])=>e))}getPluginDescription(e){var t,i;return null!==(i=null===(t=this._plugins.get(e))||void 0===t?void 0:t.description)&&void 0!==i?i:""}hasPlugin(e){return this._plugins.has(e)}isPluginActivated(e){var t,i;return null!==(i=null===(t=this._plugins.get(e))||void 0===t?void 0:t.activated)&&void 0!==i&&i}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(e){if(this._plugins.has(e.id))throw new TypeError(`Plugin '${e.id}' is already registered.`);if(!this._validatePlugin(e))throw new Error(`Plugin '${e.id}' is not valid.`);let t=i.createPluginData(e);i.ensureNoCycle(t,this._plugins,this._services),t.provides&&this._services.set(t.provides,t.id),this._plugins.set(t.id,t)}registerPlugins(e){for(let t of e)this.registerPlugin(t)}deregisterPlugin(e,t){let i=this._plugins.get(e);if(i){if(i.activated&&!t)throw new Error(`Plugin '${e}' is still active.`);this._plugins.delete(e)}}async activatePlugin(e){let t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(t.activated)return;if(t.promise)return t.promise;let i=t.requires.map((e=>this.resolveRequiredService(e))),a=t.optional.map((e=>this.resolveOptionalService(e)));return t.promise=Promise.all([...i,...a]).then((e=>t.activate.apply(void 0,[this.application,...e]))).then((e=>{t.service=e,t.activated=!0,t.promise=null})).catch((e=>{throw t.promise=null,e})),t.promise}async activatePlugins(e,t={}){switch(e){case"defer":{let e=this.deferredPlugins.filter((e=>this._plugins.get(e).autoStart)).map((e=>this.activatePlugin(e)));await Promise.all(e);break}case"startUp":{let e=i.collectStartupPlugins(this._plugins,t).map((async e=>{try{return await this.activatePlugin(e)}catch(t){console.error(`Plugin '${e}' failed to activate.`,t)}}));await Promise.all(e);break}}}async deactivatePlugin(e){let t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(!t.activated)return[];if(!t.deactivate)throw new TypeError(`Plugin '${e}'#deactivate() method missing`);let a=i.findDependents(e,this._plugins,this._services),n=a.map((e=>this._plugins.get(e)));for(let t of n)if(!t.deactivate)throw new TypeError(`Plugin ${t.id}#deactivate() method missing (depends on ${e})`);for(let e of n){let t=[...e.requires,...e.optional].map((e=>{let t=this._services.get(e);return t?this._plugins.get(t).service:null}));await e.deactivate(this.application,...t),e.service=null,e.activated=!1}return a.pop(),a}async resolveRequiredService(e){let t=this._services.get(e);if(!t)throw new TypeError(`No provider for: ${e.name}.`);let i=this._plugins.get(t);return i.activated||await this.activatePlugin(t),i.service}async resolveOptionalService(e){let t=this._services.get(e);if(!t)return null;let i=this._plugins.get(t);if(!i.activated)try{await this.activatePlugin(t)}catch(e){return console.error(e),null}return i.service}},e.PromiseDelegate=class{constructor(){this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){(0,this._resolve)(e)}reject(e){(0,this._reject)(e)}},e.Token=class{constructor(e,t){this.name=e,this.description=null!=t?t:"",this._tokenStructuralPropertyT=null}}},"object"==typeof e&&void 0!==t?a(e,it()):"function"==typeof define&&__webpack_require__.amdO?define(["exports","@lumino/algorithm"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_coreutils={},i.lumino_algorithm)})),It=F(((e,t)=>{var i,a;i=e,a=function(e,t,i){class a{constructor(e){this.sender=e}connect(e,t){return o.connect(this,e,t)}disconnect(e,t){return o.disconnect(this,e,t)}emit(e){o.emit(this,e)}}var n,o;(n=a||(a={})).disconnectBetween=function(e,t){o.disconnectBetween(e,t)},n.disconnectSender=function(e){o.disconnectSender(e)},n.disconnectReceiver=function(e){o.disconnectReceiver(e)},n.disconnectAll=function(e){o.disconnectAll(e)},n.clearData=function(e){o.disconnectAll(e)},n.getExceptionHandler=function(){return o.exceptionHandler},n.setExceptionHandler=function(e){let t=o.exceptionHandler;return o.exceptionHandler=e,t};class r extends a{constructor(){super(...arguments),this._pending=new i.PromiseDelegate}async*[Symbol.asyncIterator](){let e=this._pending;for(;;)try{let{args:t,next:i}=await e.promise;e=i,yield t}catch{return}}emit(e){let t=this._pending,a=this._pending=new i.PromiseDelegate;t.resolve({args:e,next:a}),super.emit(e)}stop(){this._pending.promise.catch((()=>{})),this._pending.reject("stop"),this._pending=new i.PromiseDelegate}}(function(e){function i(e){let t=n.get(e);if(t&&0!==t.length){for(let e of t){if(!e.signal)continue;let t=e.thisArg||e.slot;e.signal=null,c(o.get(t))}c(t)}}function a(e){let t=o.get(e);if(t&&0!==t.length){for(let e of t){if(!e.signal)continue;let t=e.signal.sender;e.signal=null,c(n.get(t))}c(t)}}e.exceptionHandler=e=>{console.error(e)},e.connect=function(e,t,i){i=i||void 0;let a=n.get(e.sender);if(a||(a=[],n.set(e.sender,a)),l(a,e,t,i))return!1;let r=i||t,s=o.get(r);s||(s=[],o.set(r,s));let p={signal:e,slot:t,thisArg:i};return a.push(p),s.push(p),!0},e.disconnect=function(e,t,i){i=i||void 0;let a=n.get(e.sender);if(!a||0===a.length)return!1;let r=l(a,e,t,i);if(!r)return!1;let s=i||t,p=o.get(s);return r.signal=null,c(a),c(p),!0},e.disconnectBetween=function(e,t){let i=n.get(e);if(!i||0===i.length)return;let a=o.get(t);if(a&&0!==a.length){for(let t of a)t.signal&&t.signal.sender===e&&(t.signal=null);c(i),c(a)}},e.disconnectSender=i,e.disconnectReceiver=a,e.disconnectAll=function(e){i(e),a(e)},e.emit=function(e,t){let i=n.get(e.sender);if(i&&0!==i.length)for(let a=0,n=i.length;ae.signal===i&&e.slot===a&&e.thisArg===n))}function p(t,i){let{signal:a,slot:n,thisArg:o}=t;try{n.call(o,a.sender,i)}catch(t){e.exceptionHandler(t)}}function c(e){0===r.size&&s(d),r.add(e)}function d(){r.forEach(m),r.clear()}function m(e){t.ArrayExt.removeAllWhere(e,u)}function u(e){return null===e.signal}})(o||(o={})),e.Signal=a,e.Stream=r},"object"==typeof e&&void 0!==t?a(e,it(),me()):"function"==typeof define&&__webpack_require__.amdO?define(["exports","@lumino/algorithm","@lumino/coreutils"],a):a((i="undefined"!=typeof globalThis?globalThis:i||self).lumino_signaling={},i.lumino_algorithm,i.lumino_coreutils)})),Mt=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ActivityMonitor=void 0;var t=It();e.ActivityMonitor=class{constructor(e){this._timer=-1,this._timeout=-1,this._isDisposed=!1,this._activityStopped=new t.Signal(this),e.signal.connect(this._onSignalFired,this),this._timeout=e.timeout||1e3}get activityStopped(){return this._activityStopped}get timeout(){return this._timeout}set timeout(e){this._timeout=e}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,t.Signal.clearData(this))}_onSignalFired(e,t){clearTimeout(this._timer),this._sender=e,this._args=t,this._timer=setTimeout((()=>{this._activityStopped.emit({sender:this._sender,args:this._args})}),this._timeout)}}})),Nt=F((e=>{Object.defineProperty(e,"__esModule",{value:!0})})),Ut=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LruCache=void 0,e.LruCache=class{constructor(e={}){this._map=new Map,this._maxSize=(null==e?void 0:e.maxSize)||128}get size(){return this._map.size}clear(){this._map.clear()}get(e){let t=this._map.get(e)||null;return null!=t&&(this._map.delete(e),this._map.set(e,t)),t}set(e,t){this._map.size>=this._maxSize&&this._map.delete(this._map.keys().next().value),this._map.set(e,t)}}})),Lt=F((e=>{var t;Object.defineProperty(e,"__esModule",{value:!0}),e.MarkdownCodeBlocks=void 0,function(e){e.CODE_BLOCK_MARKER="```";let t=[".markdown",".mdown",".mkdn",".md",".mkd",".mdwn",".mdtxt",".mdtext",".text",".txt",".Rmd"];class i{constructor(e){this.startLine=e,this.code="",this.endLine=-1}}e.MarkdownCodeBlock=i,e.isMarkdown=function(e){return t.indexOf(e)>-1},e.findMarkdownCodeBlocks=function(t){if(!t||""===t)return[];let a=t.split("\n"),n=[],o=null;for(let t=0;t{function i(e){return!("number"!=typeof e&&!/^0x[0-9a-f]+$/i.test(e))||/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(e)}function a(e,t){return"constructor"===t&&"function"==typeof e[t]||"__proto__"===t}t.exports=function(e,t){t||(t={});var n={bools:{},strings:{},unknownFn:null};"function"==typeof t.unknown&&(n.unknownFn=t.unknown),"boolean"==typeof t.boolean&&t.boolean?n.allBools=!0:[].concat(t.boolean).filter(Boolean).forEach((function(e){n.bools[e]=!0}));var o={};function r(e){return o[e].some((function(e){return n.bools[e]}))}Object.keys(t.alias||{}).forEach((function(e){o[e]=[].concat(t.alias[e]),o[e].forEach((function(t){o[t]=[e].concat(o[e].filter((function(e){return t!==e})))}))})),[].concat(t.string).filter(Boolean).forEach((function(e){n.strings[e]=!0,o[e]&&[].concat(o[e]).forEach((function(e){n.strings[e]=!0}))}));var s=t.default||{},l={_:[]};function p(e,t,i){for(var o=e,r=0;r{function i(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function a(e,t){for(var i,a="",n=0,o=-1,r=0,s=0;s<=e.length;++s){if(s2){var l=a.lastIndexOf("/");if(l!==a.length-1){-1===l?(a="",n=0):n=(a=a.slice(0,l)).length-1-a.lastIndexOf("/"),o=s,r=0;continue}}else if(2===a.length||1===a.length){a="",n=0,o=s,r=0;continue}t&&(a.length>0?a+="/..":a="..",n=2)}else a.length>0?a+="/"+e.slice(o+1,s):a=e.slice(o+1,s),n=s-o-1;o=s,r=0}else 46===i&&-1!==r?++r:r=-1}return a}var n={resolve:function(){for(var e,t="",n=!1,o=arguments.length-1;o>=-1&&!n;o--){var r;o>=0?r=arguments[o]:(void 0===e&&(e=process.cwd()),r=e),i(r),0!==r.length&&(t=r+"/"+t,n=47===r.charCodeAt(0))}return t=a(t,!n),n?t.length>0?"/"+t:"/":t.length>0?t:"."},normalize:function(e){if(i(e),0===e.length)return".";var t=47===e.charCodeAt(0),n=47===e.charCodeAt(e.length-1);return 0===(e=a(e,!t)).length&&!t&&(e="."),e.length>0&&n&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return i(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t0&&(void 0===e?e=a:e+="/"+a)}return void 0===e?".":n.normalize(e)},relative:function(e,t){if(i(e),i(t),e===t||(e=n.resolve(e))===(t=n.resolve(t)))return"";for(var a=1;ap){if(47===t.charCodeAt(s+d))return t.slice(s+d+1);if(0===d)return t.slice(s+d)}else r>p&&(47===e.charCodeAt(a+d)?c=d:0===d&&(c=0));break}var m=e.charCodeAt(a+d);if(m!==t.charCodeAt(s+d))break;47===m&&(c=d)}var u="";for(d=a+c+1;d<=o;++d)(d===o||47===e.charCodeAt(d))&&(0===u.length?u+="..":u+="/..");return u.length>0?u+t.slice(s+c):(s+=c,47===t.charCodeAt(s)&&++s,t.slice(s))},_makeLong:function(e){return e},dirname:function(e){if(i(e),0===e.length)return".";for(var t=e.charCodeAt(0),a=47===t,n=-1,o=!0,r=e.length-1;r>=1;--r)if(47===(t=e.charCodeAt(r))){if(!o){n=r;break}}else o=!1;return-1===n?a?"/":".":a&&1===n?"//":e.slice(0,n)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');i(e);var a,n=0,o=-1,r=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,l=-1;for(a=e.length-1;a>=0;--a){var p=e.charCodeAt(a);if(47===p){if(!r){n=a+1;break}}else-1===l&&(r=!1,l=a+1),s>=0&&(p===t.charCodeAt(s)?-1==--s&&(o=a):(s=-1,o=l))}return n===o?o=l:-1===o&&(o=e.length),e.slice(n,o)}for(a=e.length-1;a>=0;--a)if(47===e.charCodeAt(a)){if(!r){n=a+1;break}}else-1===o&&(r=!1,o=a+1);return-1===o?"":e.slice(n,o)},extname:function(e){i(e);for(var t=-1,a=0,n=-1,o=!0,r=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===n&&(o=!1,n=s+1),46===l?-1===t?t=s:1!==r&&(r=1):-1!==t&&(r=-1);else if(!o){a=s+1;break}}return-1===t||-1===n||0===r||1===r&&t===n-1&&t===a+1?"":e.slice(t,n)},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 i=t.dir||t.root,a=t.base||(t.name||"")+(t.ext||"");return i?i===t.root?i+a:i+"/"+a:a}(0,e)},parse:function(e){i(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var a,n=e.charCodeAt(0),o=47===n;o?(t.root="/",a=1):a=0;for(var r=-1,s=0,l=-1,p=!0,c=e.length-1,d=0;c>=a;--c)if(47!==(n=e.charCodeAt(c)))-1===l&&(p=!1,l=c+1),46===n?-1===r?r=c:1!==d&&(d=1):-1!==r&&(d=-1);else if(!p){s=c+1;break}return-1===r||-1===l||0===d||1===d&&r===l-1&&r===s+1?-1!==l&&(t.base=t.name=0===s&&o?e.slice(1,l):e.slice(s,l)):(0===s&&o?(t.name=e.slice(1,r),t.base=e.slice(1,l)):(t.name=e.slice(s,r),t.base=e.slice(s,l)),t.ext=e.slice(r,l)),s>0?t.dir=e.slice(0,s-1):o&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};n.posix=n,t.exports=n})),Vt=F(((e,t)=>{t.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}})),Zt=F((e=>{var t=Object.prototype.hasOwnProperty;function i(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return null}}function a(e){try{return encodeURIComponent(e)}catch{return null}}e.stringify=function(e,i){i=i||"";var n,o,r=[];for(o in"string"!=typeof i&&(i="?"),e)if(t.call(e,o)){if(!(n=e[o])&&(null==n||isNaN(n))&&(n=""),o=a(o),n=a(n),null===o||null===n)continue;r.push(o+"="+n)}return r.length?i+r.join("&"):""},e.parse=function(e){for(var t,a=/([^=?#&]+)=?([^&]*)/g,n={};t=a.exec(e);){var o=i(t[1]),r=i(t[2]);null===o||null===r||o in n||(n[o]=r)}return n}})),oi=F(((e,t)=>{var i=Vt(),a=Zt(),n=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,o=/[\n\r\t]/g,r=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,s=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,p=/^[a-zA-Z]:/;function c(e){return(e||"").toString().replace(n,"")}var d=[["#","hash"],["?","query"],function(e,t){return f(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],m={hash:1,query:1};function u(e){var t,i=("undefined"!=typeof window?window:void 0!==__webpack_require__.g?__webpack_require__.g:"undefined"!=typeof self?self:{}).location||{},a={},n=typeof(e=e||i);if("blob:"===e.protocol)a=new v(unescape(e.pathname),{});else if("string"===n)for(t in a=new v(e,{}),m)delete a[t];else if("object"===n){for(t in e)t in m||(a[t]=e[t]);void 0===a.slashes&&(a.slashes=r.test(e.href))}return a}function f(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function h(e,t){e=(e=c(e)).replace(o,""),t=t||{};var i,a=l.exec(e),n=a[1]?a[1].toLowerCase():"",r=!!a[2],s=!!a[3],p=0;return r?s?(i=a[2]+a[3]+a[4],p=a[2].length+a[3].length):(i=a[2]+a[4],p=a[2].length):s?(i=a[3]+a[4],p=a[3].length):i=a[4],"file:"===n?p>=2&&(i=i.slice(2)):f(n)?i=a[4]:n?r&&(i=i.slice(2)):p>=2&&f(t.protocol)&&(i=a[4]),{protocol:n,slashes:r||f(n),slashesCount:p,rest:i}}function v(e,t,n){if(e=(e=c(e)).replace(o,""),!(this instanceof v))return new v(e,t,n);var r,s,l,m,g,x,y=d.slice(),w=typeof t,b=this,_=0;for("object"!==w&&"string"!==w&&(n=t,t=null),n&&"function"!=typeof n&&(n=a.parse),r=!(s=h(e||"",t=u(t))).protocol&&!s.slashes,b.slashes=s.slashes||r&&t.slashes,b.protocol=s.protocol||t.protocol||"",e=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||p.test(e))||!s.slashes&&(s.protocol||s.slashesCount<2||!f(b.protocol)))&&(y[3]=[/(.*)/,"pathname"]);_{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.URLExt=void 0;var i,a=Te(),n=t(oi());!function(e){function t(e){if("undefined"!=typeof document&&document){let t=document.createElement("a");return t.href=e,t}return(0,n.default)(e)}function i(...e){let t=(0,n.default)(e[0],{}),i=""===t.protocol&&t.slashes;i&&(t=(0,n.default)(e[0],"https:"+e[0]));let o=`${i?"":t.protocol}${t.slashes?"//":""}${t.auth}${t.auth?"@":""}${t.host}`,r=a.posix.join(`${o&&"/"!==t.pathname[0]?"/":""}${t.pathname}`,...e.slice(1));return`${o}${"."===r?"":r}`}e.parse=t,e.getHostName=function(e){return(0,n.default)(e).hostname},e.normalize=function(e){return e&&t(e).toString()},e.join=i,e.encodeParts=function(e){return i(...e.split("/").map(encodeURIComponent))},e.objectToQueryString=function(e){let t=Object.keys(e).filter((e=>e.length>0));return t.length?"?"+t.map((t=>{let i=encodeURIComponent(String(e[t]));return t+(i?"="+i:"")})).join("&"):""},e.queryStringToObject=function(e){return e.replace(/^\?/,"").split("&").reduce(((e,t)=>{let[i,a]=t.split("=");return i.length>0&&(e[i]=decodeURIComponent(a||"")),e}),{})},e.isLocal=function(e,i=!1){let{protocol:a}=t(e);return(!a||0!==e.toLowerCase().indexOf(a))&&(i?0!==e.indexOf("//"):0!==e.indexOf("/"))}}(i||(e.URLExt=i={}))})),ri=F(((exports,module)=>{var __importDefault=exports&&exports.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.PageConfig=void 0;var coreutils_1=me(),minimist_1=__importDefault(Wt()),url_1=lt(),PageConfig;(function(PageConfig){function getOption(name){if(configData)return configData[name]||getBodyData(name);configData=Object.create(null);let found=!1;if("undefined"!=typeof document&&document){let e=document.getElementById("jupyter-config-data");e&&(configData=JSON.parse(e.textContent||""),found=!0)}if(!found&&"undefined"!=typeof process&&process.argv)try{let cli=(0,minimist_1.default)(process.argv.slice(2)),path=Te(),fullPath="";"jupyter-config-data"in cli?fullPath=path.resolve(cli["jupyter-config-data"]):"JUPYTER_CONFIG_DATA"in{}&&(fullPath=path.resolve({}.JUPYTER_CONFIG_DATA)),fullPath&&(configData=eval("require")(fullPath))}catch(e){console.error(e)}if(coreutils_1.JSONExt.isObject(configData))for(let e in configData)"string"!=typeof configData[e]&&(configData[e]=JSON.stringify(configData[e]));else configData=Object.create(null);return configData[name]||getBodyData(name)}function setOption(e,t){let i=getOption(e);return configData[e]=t,i}function getBaseUrl(){return url_1.URLExt.normalize(getOption("baseUrl")||"/")}function getTreeUrl(){return url_1.URLExt.join(getBaseUrl(),getOption("treeUrl"))}function getShareUrl(){return url_1.URLExt.normalize(getOption("shareUrl")||getBaseUrl())}function getTreeShareUrl(){return url_1.URLExt.normalize(url_1.URLExt.join(getShareUrl(),getOption("treeUrl")))}function getUrl(e){var t,i,a,n;let o=e.toShare?getShareUrl():getBaseUrl(),r=null!==(t=e.mode)&&void 0!==t?t:getOption("mode"),s=null!==(i=e.workspace)&&void 0!==i?i:getOption("workspace"),l="single-document"===r?"doc":"lab";o=url_1.URLExt.join(o,l),s!==PageConfig.defaultWorkspace&&(o=url_1.URLExt.join(o,"workspaces",encodeURIComponent(null!==(a=getOption("workspace"))&&void 0!==a?a:PageConfig.defaultWorkspace)));let p=null!==(n=e.treePath)&&void 0!==n?n:getOption("treePath");return p&&(o=url_1.URLExt.join(o,"tree",url_1.URLExt.encodeParts(p))),o}function getWsUrl(e){let t=getOption("wsUrl");if(!t){if(0!==(e=e?url_1.URLExt.normalize(e):getBaseUrl()).indexOf("http"))return"";t="ws"+e.slice(4)}return url_1.URLExt.normalize(t)}function getNBConvertURL({path:e,format:t,download:i}){let a=url_1.URLExt.encodeParts(e),n=url_1.URLExt.join(getBaseUrl(),"nbconvert",t,a);return i?n+"?download=true":n}function getToken(){return getOption("token")||getBodyData("jupyterApiToken")}function getNotebookVersion(){let e=getOption("notebookVersion");return""===e?[0,0,0]:JSON.parse(e)}PageConfig.getOption=getOption,PageConfig.setOption=setOption,PageConfig.getBaseUrl=getBaseUrl,PageConfig.getTreeUrl=getTreeUrl,PageConfig.getShareUrl=getShareUrl,PageConfig.getTreeShareUrl=getTreeShareUrl,PageConfig.getUrl=getUrl,PageConfig.defaultWorkspace="default",PageConfig.getWsUrl=getWsUrl,PageConfig.getNBConvertURL=getNBConvertURL,PageConfig.getToken=getToken,PageConfig.getNotebookVersion=getNotebookVersion;let configData=null,Extension;function getBodyData(e){if("undefined"==typeof document||!document.body)return"";let t=document.body.dataset[e];return void 0===t?"":decodeURIComponent(t)}!function(e){function t(e){try{let t=getOption(e);if(t)return JSON.parse(t)}catch(t){console.warn(`Unable to parse ${e}.`,t)}return[]}e.deferred=t("deferredExtensions"),e.disabled=t("disabledExtensions"),e.isDeferred=function(t){let i=t.indexOf(":"),a="";return-1!==i&&(a=t.slice(0,i)),e.deferred.some((e=>e===t||a&&e===a))},e.isDisabled=function(t){let i=t.indexOf(":"),a="";return-1!==i&&(a=t.slice(0,i)),e.disabled.some((e=>e===t||a&&e===a))}}(Extension=PageConfig.Extension||(PageConfig.Extension={}))})(PageConfig||(exports.PageConfig=PageConfig={}))})),ci=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.PathExt=void 0;var t,i=Te();!function(e){function t(e){return 0===e.indexOf("/")&&(e=e.slice(1)),e}e.join=function(...e){let a=i.posix.join(...e);return"."===a?"":t(a)},e.joinWithLeadingSlash=function(...e){let t=i.posix.join(...e);return"."===t?"":t},e.basename=function(e,t){return i.posix.basename(e,t)},e.dirname=function(e){let a=t(i.posix.dirname(e));return"."===a?"":a},e.extname=function(e){return i.posix.extname(e)},e.normalize=function(e){return""===e?"":t(i.posix.normalize(e))},e.resolve=function(...e){return t(i.posix.resolve(...e))},e.relative=function(e,a){return t(i.posix.relative(e,a))},e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e},e.removeSlash=t}(t||(e.PathExt=t={}))})),pi=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.signalToPromise=void 0;var t=me();e.signalToPromise=function(e,i){let a=new t.PromiseDelegate;function n(){e.disconnect(o)}function o(e,t){n(),a.resolve([e,t])}return e.connect(o),(null!=i?i:0)>0&&setTimeout((()=>{n(),a.reject(`Signal not emitted within ${i} ms.`)}),i),a.promise}})),mi=F((e=>{var t,i;Object.defineProperty(e,"__esModule",{value:!0}),e.Text=void 0,(i=t||(e.Text=t={})).jsIndexToCharIndex=function(e,t){return e},i.charIndexToJsIndex=function(e,t){return e},i.camelCase=function(e,t=!1){return e.replace(/^(\w)|[\s-_:]+(\w)/g,(function(e,i,a){return a?a.toUpperCase():t?i.toUpperCase():i.toLowerCase()}))},i.titleCase=function(e){return(e||"").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")}})),ui=F((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Time=void 0;var t,i,a=[{name:"years",milliseconds:31536e6},{name:"months",milliseconds:2592e6},{name:"days",milliseconds:864e5},{name:"hours",milliseconds:36e5},{name:"minutes",milliseconds:6e4},{name:"seconds",milliseconds:1e3}];(i=t||(e.Time=t={})).formatHuman=function(e,t="long"){let i=document.documentElement.lang||"en",n=new Intl.RelativeTimeFormat(i,{numeric:"auto",style:t}),o=new Date(e).getTime()-Date.now();for(let e of a){let t=Math.ceil(o/e.milliseconds);if(0!==t)return n.format(t,e.name)}return n.format(0,"seconds")},i.format=function(e){let t=document.documentElement.lang||"en";return new Intl.DateTimeFormat(t,{dateStyle:"short",timeStyle:"short"}).format(new Date(e))}})),be=F((e=>{var t=e&&e.__createBinding||(Object.create?function(e,t,i,a){void 0===a&&(a=i);var n=Object.getOwnPropertyDescriptor(t,i);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,a,n)}:function(e,t,i,a){void 0===a&&(a=i),e[a]=t[i]}),i=e&&e.__exportStar||function(e,i){for(var a in e)"default"!==a&&!Object.prototype.hasOwnProperty.call(i,a)&&t(i,e,a)};Object.defineProperty(e,"__esModule",{value:!0}),i(Mt(),e),i(Nt(),e),i(Ut(),e),i(Lt(),e),i(ri(),e),i(ci(),e),i(pi(),e),i(mi(),e),i(ui(),e),i(lt(),e)})),vi=F(((e,t)=>{function i(){this._types=Object.create(null),this._extensions=Object.create(null);for(let e=0;e{t.exports={"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["es","ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]}})),wi=F(((e,t)=>{t.exports={"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mapbox-vector-tile":["mvt"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-iwork-keynote-sffkey":["*key"],"application/x-iwork-numbers-sffnumbers":["*numbers"],"application/x-iwork-pages-sffpages":["*pages"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.sap.vds":["vds"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}})),_i=F(((e,t)=>{var i=vi();t.exports=new i(xi(),wi())})),ki,Pi,ct,kn,G,re,Pn,pt=pe((()=>{var e;ki=de(be()),Pi=de(_i()),ct=de(me()),kn=new ct.Token("@jupyterlite/contents:IContents"),(e=G||(G={})).JSON="application/json",e.PLAIN_TEXT="text/plain",e.OCTET_STREAM="octet/stream",function(e){let t=JSON.parse(ki.PageConfig.getOption("fileTypes")||"{}");e.getType=function(e,i=null){e=e.toLowerCase();for(let i of Object.values(t))for(let t of i.extensions||[])if(t===e&&i.mimeTypes&&i.mimeTypes.length)return i.mimeTypes[0];return Pi.default.getType(e)||i||G.OCTET_STREAM},e.hasFormat=function(e,i){e=e.toLowerCase();for(let a of Object.values(t))if(a.fileFormat===i)for(let t of a.extensions||[])if(t===e)return!0;return!1}}(re||(re={})),Pn=new ct.Token("@jupyterlite/contents:IBroadcastChannelWrapper")})),le,Q,Ci,Si,Oi,_e,dt,mt,Le,ji=pe((()=>{le=de(be()),Q=de(be()),pt(),Ci=de(me()),Si="JupyterLite Storage",Oi=5,_e=new TextEncoder,dt=new TextDecoder("utf-8"),mt=class{constructor(e){this.reduceBytesToString=(e,t)=>e+String.fromCharCode(t),this._serverContents=new Map,this._storageName=Si,this._storageDrivers=null,this._localforage=e.localforage,this._storageName=e.storageName||Si,this._storageDrivers=e.storageDrivers||null,this._ready=new Ci.PromiseDelegate}async initialize(){await this.initStorage(),this._ready.resolve(void 0)}async initStorage(){this._storage=this.createDefaultStorage(),this._counters=this.createDefaultCounters(),this._checkpoints=this.createDefaultCheckpoints()}get ready(){return this._ready.promise}get storage(){return this.ready.then((()=>this._storage))}get counters(){return this.ready.then((()=>this._counters))}get checkpoints(){return this.ready.then((()=>this._checkpoints))}get defaultStorageOptions(){let e=this._storageDrivers&&this._storageDrivers.length?this._storageDrivers:null;return{version:1,name:this._storageName,...e?{driver:e}:{}}}createDefaultStorage(){return this._localforage.createInstance({description:"Offline Storage for Notebooks and Files",storeName:"files",...this.defaultStorageOptions})}createDefaultCounters(){return this._localforage.createInstance({description:"Store the current file suffix counters",storeName:"counters",...this.defaultStorageOptions})}createDefaultCheckpoints(){return this._localforage.createInstance({description:"Offline Storage for Checkpoints",storeName:"checkpoints",...this.defaultStorageOptions})}async newUntitled(e){var t,i,a;let n,o=null!==(t=null==e?void 0:e.path)&&void 0!==t?t:"",r=null!==(i=null==e?void 0:e.type)&&void 0!==i?i:"notebook",s=(new Date).toISOString(),l=Q.PathExt.dirname(o),p=Q.PathExt.basename(o),c=Q.PathExt.extname(o),d=await this.get(l),m="";switch(o&&!c&&d?(l=`${o}/`,m=""):l&&p?(l=`${l}/`,m=p):(l="",m=o),r){case"directory":m=`Untitled Folder${await this._incrementCounter("directory")||""}`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:"json",mimetype:"",content:null,size:0,writable:!0,type:"directory"};break;case"notebook":{let e=await this._incrementCounter("notebook");m=m||`Untitled${e||""}.ipynb`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:"json",mimetype:G.JSON,content:Le.EMPTY_NB,size:_e.encode(JSON.stringify(Le.EMPTY_NB)).length,writable:!0,type:"notebook"};break}default:{let t,i=null!==(a=null==e?void 0:e.ext)&&void 0!==a?a:".txt",o=await this._incrementCounter("file"),r=re.getType(i)||G.OCTET_STREAM;t=re.hasFormat(i,"text")||-1!==r.indexOf("text")?"text":-1!==i.indexOf("json")||-1!==i.indexOf("ipynb")?"json":"base64",m=m||`untitled${o||""}${i}`,n={name:m,path:`${l}${m}`,last_modified:s,created:s,format:t,mimetype:r,content:"",size:0,writable:!0,type:"file"};break}}let u=n.path;return await(await this.storage).setItem(u,n),n}async copy(e,t){let i=Q.PathExt.basename(e);for(t=""===t?"":`${Q.PathExt.removeSlash(t)}/`;await this.get(`${t}${i}`,{content:!0});){let e=Q.PathExt.extname(i);i=`${i.replace(e,"")} (copy)${e}`}let a=`${t}${i}`,n=await this.get(e,{content:!0});if(!n)throw Error(`Could not find file with path ${e}`);return n={...n,name:i,path:a},await(await this.storage).setItem(a,n),n}async get(e,t){if(""===(e=decodeURIComponent(e.replace(/^\//,""))))return await this._getFolder(e);let i=await this.storage,a=await i.getItem(e),n=await this._getServerContents(e,t),o=a||n;if(!o)return null;if(null==t||!t.content)return{size:0,...o,content:null};if("directory"===o.type){let t=new Map;await i.iterate(((i,a)=>{a===`${e}/${i.name}`&&t.set(i.name,i)}));let a=n?n.content:Array.from((await this._getServerDirectory(e)).values());for(let e of a)t.has(e.name)||t.set(e.name,e);let r=[...t.values()];return{name:Q.PathExt.basename(e),path:e,last_modified:o.last_modified,created:o.created,format:"json",mimetype:G.JSON,content:r,size:0,writable:!0,type:"directory"}}return o}async rename(e,t){let i=decodeURIComponent(e),a=await this.get(i,{content:!0});if(!a)throw Error(`Could not find file with path ${i}`);let n=(new Date).toISOString(),o=Q.PathExt.basename(t),r={...a,name:o,path:t,last_modified:n},s=await this.storage;if(await s.setItem(t,r),await s.removeItem(i),await(await this.checkpoints).removeItem(i),"directory"===a.type){let i;for(i of a.content)await this.rename(le.URLExt.join(e,i.name),le.URLExt.join(t,i.name))}return r}async save(e,t={}){var i;e=decodeURIComponent(e);let a=Q.PathExt.extname(null!==(i=t.name)&&void 0!==i?i:""),n=t.chunk,o=!!n&&(n>1||-1===n),r=await this.get(e,{content:o});if(r||(r=await this.newUntitled({path:e,ext:a,type:"file"})),!r)return null;let s=r.content,l=(new Date).toISOString();if(r={...r,...t,last_modified:l},t.content&&"base64"===t.format){let e=!n||-1===n,i=this._handleUploadChunk(t.content,s,o);if(".ipynb"===a){let t=e?JSON.parse(dt.decode(this._binaryStringToBytes(i))):i;r={...r,content:t,format:"json",type:"notebook",size:i.length}}else if(re.hasFormat(a,"json")){let t=e?JSON.parse(dt.decode(this._binaryStringToBytes(i))):i;r={...r,content:t,format:"json",type:"file",size:i.length}}else if(re.hasFormat(a,"text")){let t=e?dt.decode(this._binaryStringToBytes(i)):i;r={...r,content:t,format:"text",type:"file",size:i.length}}else{let t=e?btoa(i):i;r={...r,content:t,format:"base64",type:"file",size:i.length}}}if(r.content)switch(t.format){case"json":r={...r,size:_e.encode(JSON.stringify(r.content)).length};break;case"text":r={...r,size:_e.encode(r.content).length};break;case"base64":break;default:r={...r,size:0}}else r={...r,size:0};return await(await this.storage).setItem(e,r),r}async delete(e){let t=`${e=decodeURIComponent(e)}/`,i=(await(await this.storage).keys()).filter((i=>i===e||i.startsWith(t)));await Promise.all(i.map(this.forgetPath,this))}async forgetPath(e){await Promise.all([(await this.storage).removeItem(e),(await this.checkpoints).removeItem(e)])}async createCheckpoint(e){var t;let i=await this.checkpoints;e=decodeURIComponent(e);let a=await this.get(e,{content:!0});if(!a)throw Error(`Could not find file with path ${e}`);let n=(null!==(t=await i.getItem(e))&&void 0!==t?t:[]).filter(Boolean);return n.push(a),n.length>Oi&&n.splice(0,n.length-Oi),await i.setItem(e,n),{id:""+(n.length-1),last_modified:a.last_modified}}async listCheckpoints(e){return(await(await this.checkpoints).getItem(e)||[]).filter(Boolean).map(this.normalizeCheckpoint,this)}normalizeCheckpoint(e,t){return{id:t.toString(),last_modified:e.last_modified}}async restoreCheckpoint(e,t){e=decodeURIComponent(e);let i=(await(await this.checkpoints).getItem(e)||[])[parseInt(t)];await(await this.storage).setItem(e,i)}async deleteCheckpoint(e,t){e=decodeURIComponent(e);let i=await(await this.checkpoints).getItem(e)||[],a=parseInt(t);i.splice(a,1),await(await this.checkpoints).setItem(e,i)}_handleUploadChunk(e,t,i){let a=atob(e);return i?t+a:a}_binaryStringToBytes(e){let t=new Uint8Array(e.length);for(let i=0;i{i.includes("/")||t.set(e.path,e)}));for(let i of(await this._getServerDirectory(e)).values())t.has(i.path)||t.set(i.path,i);return e&&0===t.size?null:{name:"",path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"json",mimetype:G.JSON,content:Array.from(t.values()),size:0,writable:!0,type:"directory"}}async _getServerContents(e,t){let i=Q.PathExt.basename(e),a=(await this._getServerDirectory(le.URLExt.join(e,".."))).get(i);if(!a)return null;if(a=a||{name:i,path:e,last_modified:new Date(0).toISOString(),created:new Date(0).toISOString(),format:"text",mimetype:G.PLAIN_TEXT,type:"file",writable:!0,size:0,content:""},null!=t&&t.content)if("directory"===a.type){let t=await this._getServerDirectory(e);a={...a,content:Array.from(t.values())}}else{let t=le.URLExt.join(le.PageConfig.getBaseUrl(),"files",e),n=await fetch(t);if(!n.ok)return null;let o=a.mimetype||n.headers.get("Content-Type"),r=Q.PathExt.extname(i);if("notebook"===a.type||re.hasFormat(r,"json")||-1!==(null==o?void 0:o.indexOf("json"))||e.match(/\.(ipynb|[^/]*json[^/]*)$/)){let e=await n.text();a={...a,content:JSON.parse(e),format:"json",mimetype:a.mimetype||G.JSON,size:_e.encode(e).length}}else if(re.hasFormat(r,"text")||-1!==o.indexOf("text")){let e=await n.text();a={...a,content:e,format:"text",mimetype:o||G.PLAIN_TEXT,size:_e.encode(e).length}}else{let e=await n.arrayBuffer(),t=new Uint8Array(e);a={...a,content:btoa(t.reduce(this.reduceBytesToString,"")),format:"base64",mimetype:o||G.OCTET_STREAM,size:t.length}}}return a}async _getServerDirectory(e){let t=this._serverContents.get(e)||new Map;if(!this._serverContents.has(e)){let i=le.URLExt.join(le.PageConfig.getBaseUrl(),"api/contents",e,"all.json");try{let e=await fetch(i),a=JSON.parse(await e.text());for(let e of a.content)t.set(e.name,e)}catch(e){console.warn(`don't worry, about ${e}... nothing's broken. If there had been a\n file at ${i}, you might see some more files.`)}this._serverContents.set(e,t)}return t}async _incrementCounter(e){var t;let i=await this.counters,a=(null!==(t=await i.getItem(e))&&void 0!==t?t:-1)+1;return await i.setItem(e,a),a}},(Le||(Le={})).EMPTY_NB={metadata:{orig_nbformat:4},nbformat_minor:4,nbformat:4,cells:[]}}));function ft(e){return"node"in e}var ke,Ei,Ri,zi,ut=pe((()=>{ke=16895,Ei=33206,Ri=1,zi=2})),Ii,ht,We,Sn,On,Ti,Fe,Be,he,$e,Pe,He=pe((()=>{ut(),Ii=":",ht="/api/drive.v1",We=4096,Sn=new TextEncoder,On=new TextDecoder("utf-8"),Ti={0:!1,1:!0,2:!0,64:!0,65:!0,66:!0,129:!0,193:!0,514:!0,577:!0,578:!0,705:!0,706:!0,1024:!0,1025:!0,1026:!0,1089:!0,1090:!0,1153:!0,1154:!0,1217:!0,1218:!0,4096:!0,4098:!0},Fe=class{constructor(e){this.fs=e}open(e){let t=this.fs.realPath(e.node);this.fs.FS.isFile(e.node.mode)&&(e.file=this.fs.API.get(t))}close(e){if(!this.fs.FS.isFile(e.node.mode)||!e.file)return;let t=this.fs.realPath(e.node),i=e.flags,a="string"==typeof i?parseInt(i,10):i;a&=8191;let n=!0;a in Ti&&(n=Ti[a]),n&&this.fs.API.put(t,e.file),e.file=void 0}read(e,t,i,a,n){if(a<=0||void 0===e.file||n>=(e.file.data.length||0))return 0;let o=Math.min(e.file.data.length-n,a);return t.set(e.file.data.subarray(n,n+o),i),o}write(e,t,i,a,n){var o;if(a<=0||void 0===e.file)return 0;if(e.node.timestamp=Date.now(),n+a>((null===(o=e.file)||void 0===o?void 0:o.data.length)||0)){let t=e.file.data?e.file.data:new Uint8Array;e.file.data=new Uint8Array(n+a),e.file.data.set(t)}return e.file.data.set(t.subarray(i,i+a),n),a}llseek(e,t,i){let a=t;if(1===i)a+=e.position;else if(2===i&&this.fs.FS.isFile(e.node.mode)){if(void 0===e.file)throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EPERM);a+=e.file.data.length}if(a<0)throw new this.fs.FS.ErrnoError(this.fs.ERRNO_CODES.EINVAL);return a}},Be=class{constructor(e){this.fs=e}node(e){return ft(e)?e.node:e}getattr(e){let t=this.node(e);return{...this.fs.API.getattr(this.fs.realPath(t)),mode:t.mode,ino:t.id}}setattr(e,t){let i=this.node(e);for(let[e,a]of Object.entries(t))switch(e){case"mode":i.mode=a;break;case"timestamp":i.timestamp=a;break;case"size":{let e=a,t=this.fs.realPath(i);if(this.fs.FS.isFile(i.mode)&&e>=0){let i=this.fs.API.get(t),a=i.data?i.data:new Uint8Array;e!==a.length&&(e=400)throw new this.FS.ErrnoError(this.ERRNO_CODES.EINVAL);return JSON.parse(t.responseText)}get endpoint(){return`${this._baseUrl}api/drive`}},Pe=class{constructor(e){this.FS=e.FS,this.PATH=e.PATH,this.ERRNO_CODES=e.ERRNO_CODES,this.API=this.createAPI(e),this.driveName=e.driveName,this.node_ops=new Be(this),this.stream_ops=new Fe(this)}createAPI(e){return new $e(e.baseUrl,e.driveName,e.mountpoint,e.FS,e.ERRNO_CODES)}mount(e){return this.createNode(null,e.mountpoint,16895,0)}createNode(e,t,i,a){let n=this.FS;if(!n.isDir(i)&&!n.isFile(i))throw new n.ErrnoError(this.ERRNO_CODES.EINVAL);let o=n.createNode(e,t,i,a);return o.node_ops=this.node_ops,o.stream_ops=this.stream_ops,o}getMode(e){return this.API.getmode(e)}realPath(e){let t=[],i=e;for(t.push(i.name);i.parent!==i;)i=i.parent,t.push(i.name);return t.reverse(),this.PATH.join.apply(null,t)}}})),vt,Se,gt=pe((()=>{vt=de(be()),He(),Se=class{constructor(e){this.contentsManager=e.contentsManager}async processDriveRequest(e){switch(e.method){case"readdir":return this.readdir(e);case"rmdir":return this.rmdir(e);case"rename":return this.rename(e);case"getmode":return this.getmode(e);case"lookup":return this.lookup(e);case"mknod":return this.mknod(e);case"getattr":return this.getattr(e);case"get":return this.get(e);case"put":return this.put(e)}throw`Drive request ${e.method} does not exist.`}async readdir(e){let t=await this.contentsManager.get(e.path,{content:!0}),i=[];return"directory"===t.type&&t.content&&(i=t.content.map((e=>e.name))),i}async rmdir(e){return await this.contentsManager.delete(e.path),null}async rename(e){return await this.contentsManager.rename(e.path,e.data.newPath),null}async getmode(e){let t;return t="directory"===(await this.contentsManager.get(e.path)).type?16895:33206,t}async lookup(e){let t;try{t={ok:!0,mode:"directory"===(await this.contentsManager.get(e.path)).type?16895:33206}}catch{t={ok:!1}}return t}async mknod(e){let t=await this.contentsManager.newUntitled({path:vt.PathExt.dirname(e.path),type:16895===e.data.mode?"directory":"file",ext:vt.PathExt.extname(e.path)});return await this.contentsManager.rename(t.path,e.path),null}async getattr(e){let t=await this.contentsManager.get(e.path),i=new Date(0).toISOString();return{dev:1,nlink:1,uid:0,gid:0,rdev:0,size:t.size||0,blksize:We,blocks:Math.ceil(t.size||0/We),atime:t.last_modified||i,mtime:t.last_modified||i,ctime:t.created||i,timestamp:0}}async get(e){let t,i=await this.contentsManager.get(e.path,{content:!0});return"directory"!==i.type&&(t={content:"json"===i.format?JSON.stringify(i.content):i.content,format:i.format}),t}async put(e){return await this.contentsManager.save(e.path,{content:"json"===e.data.format?JSON.parse(e.data.data):e.data.data,type:"file",format:e.data.format}),null}}})),xt,Di=pe((()=>{He(),gt(),xt=class{constructor(e){this.isDisposed=!1,this._onMessage=async e=>{if(!this._channel)return;let t=e.data;if("broadcast.ts"!==(null==t?void 0:t.receiver))return;let i=await this._driveContentsProcessor.processDriveRequest(t);this._channel.postMessage(i)},this._channel=null,this._enabled=!1,this._contents=e.contents,this._driveContentsProcessor=new Se({contentsManager:this._contents})}get enabled(){return this._enabled}enable(){this._channel?console.warn("BroadcastChannel already created and enabled"):(this._channel=new BroadcastChannel(ht),this._channel.addEventListener("message",this._onMessage),this._enabled=!0)}disable(){this._channel&&(this._channel.removeEventListener("message",this._onMessage),this._channel=null),this._enabled=!1}dispose(){this.isDisposed||(this.disable(),this.isDisposed=!0)}}})),Mi={};Vi(Mi,{BLOCK_SIZE:()=>We,BroadcastChannelWrapper:()=>xt,Contents:()=>mt,ContentsAPI:()=>he,DIR_MODE:()=>ke,DRIVE_API_PATH:()=>ht,DRIVE_SEPARATOR:()=>Ii,DriveContentsProcessor:()=>Se,DriveFS:()=>Pe,DriveFSEmscriptenNodeOps:()=>Be,DriveFSEmscriptenStreamOps:()=>Fe,FILE:()=>re,FILE_MODE:()=>Ei,IBroadcastChannelWrapper:()=>Pn,IContents:()=>kn,MIME:()=>G,SEEK_CUR:()=>Ri,SEEK_END:()=>zi,ServiceWorkerContentsAPI:()=>$e,instanceOfStream:()=>ft});var yt=pe((()=>{ji(),He(),pt(),Di(),ut(),gt()})),Ve="function",ie="64e10b34-2bf7-4616-9668-f99de5aa046e",Rn="M"+ie,zn="T"+ie,kt="get",Pt="has",St="set",{isArray:xe}=Array,{SharedArrayBuffer:ye,window:Gi}=globalThis,{notify:Ye,wait:Ge,waitAsync:we}=Atomics,Ze=null;we||(we=e=>({value:new Promise((t=>{let i=new Worker("data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))");i.onmessage=t,i.postMessage(e)}))}));try{new ye(4)}catch{ye=ArrayBuffer;let e=new WeakMap;if(Gi){let t=new Map,{prototype:{postMessage:i}}=Worker,a=e=>{var i;let a=null==(i=e.data)?void 0:i[ie];if(!xe(a)){e.stopImmediatePropagation();let{id:i,sb:n}=a;t.get(i)(n)}};Ze=function(t,...n){let o=null==t?void 0:t[ie];if(xe(o)){let[t,i]=o;e.set(i,t),this.addEventListener("message",a)}return i.call(this,t,...n)},we=i=>({value:new Promise((a=>{t.set(e.get(i),a)})).then((a=>{t.delete(e.get(i)),e.delete(i);for(let e=0;e({[ie]:{id:e,sb:t}});Ye=i=>{postMessage(t(e.get(i),i))},addEventListener("message",(t=>{var i;let a=null==(i=t.data)?void 0:i[ie];if(xe(a)){let[t,i]=a;e.set(i,t)}}))}}var{Int32Array:Qe,Map:Ot,Uint16Array:et}=globalThis,{BYTES_PER_ELEMENT:Ct}=Qe,{BYTES_PER_ELEMENT:Zi}=et,Xi=(e,t,i)=>{for(;"timed-out"===Ge(e,0,0,t);)i()},tt=new WeakSet,Xe=new WeakMap,Qi={value:{then:e=>e()}},en=0,jt=(e,{parse:t=JSON.parse,stringify:i=JSON.stringify,transform:a,interrupt:n}=JSON)=>{if(!Xe.has(e)){let o=Ze||e.postMessage,r=(t,...i)=>o.call(e,{[ie]:i},{transfer:t}),s=typeof n===Ve?n:null==n?void 0:n.handler,l=(null==n?void 0:n.delay)||42,p=new TextDecoder("utf-16"),c=(e,t)=>e?we(t,0):(s?Xi(t,l,s):Ge(t,0),Qi),d=!1;Xe.set(e,new Proxy(new Ot,{[Pt]:(e,t)=>"string"==typeof t&&!t.startsWith("_"),[kt]:(i,n)=>"then"===n?null:(...i)=>{let o=en++,s=new Qe(new ye(2*Ct)),l=[];tt.has(i.at(-1)||l)&&tt.delete(l=i.pop()),r(l,o,s,n,a?i.map(a):i);let m=e!==globalThis,u=0;return d&&m&&(u=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${n}(...args) is awaited`)),c(m,s).value.then((()=>{clearTimeout(u);let e=s[1];if(!e)return;let i=Zi*e;return s=new Qe(new ye(i+i%Ct)),r([],o,s),c(m,s).value.then((()=>t(p.decode(new et(s.buffer).slice(0,e)))))}))},[St](t,n,o){let r=typeof o;if(r!==Ve)throw new Error(`Unable to assign ${n} as ${r}`);if(!t.size){let n=new Ot;e.addEventListener("message",(async e=>{var o;let r=null==(o=e.data)?void 0:o[ie];if(xe(r)){e.stopImmediatePropagation();let o,[s,l,...p]=r;if(p.length){let[e,r]=p;if(t.has(e)){d=!0;try{let o=await t.get(e)(...r);if(void 0!==o){let e=i(a?a(o):o);n.set(s,e),l[1]=e.length}}catch(e){o=e}finally{d=!1}}else o=new Error(`Unsupported action: ${e}`);l[0]=1}else{let e=n.get(s);n.delete(s);for(let t=new et(l.buffer),i=0;i(tt.add(e),e);var Et=jt;yt();var Ke=class{constructor(){this._options=null,this._initializer=null,this._pyodide=null,this._localPath="",this._driveName="",this._driveFS=null,this._sendWorkerMessage=()=>{},this._initialized=new Promise(((e,t)=>{this._initializer={resolve:e,reject:t}}))}async initialize(e){var t;if(this._options=e,e.location.includes(":")){let t=e.location.split(":");this._driveName=t[0],this._localPath=t[1]}else this._driveName="",this._localPath=e.location;await this.initRuntime(e),await this.initFilesystem(e),await this.initPackageManager(e),await this.initKernel(e),await this.initGlobals(e),null==(t=this._initializer)||t.resolve()}async initRuntime(e){let t,{pyodideUrl:i,indexUrl:a}=e;i.endsWith(".mjs")?t=(await __webpack_require__(903)(i)).loadPyodide:(importScripts(i),t=self.loadPyodide),this._pyodide=await t({indexURL:a,...e.loadPyodideOptions})}async initPackageManager(e){if(!this._options)throw new Error("Uninitialized");let{pipliteWheelUrl:t,disablePyPIFallback:i,pipliteUrls:a,loadPyodideOptions:n}=this._options,o=(n||{}).packages||[];o.includes("micropip")||await this._pyodide.loadPackage(["micropip"]),o.includes("piplite")||await this._pyodide.runPythonAsync(`\n import micropip\n await micropip.install('${t}', keep_going=True)\n `),await this._pyodide.runPythonAsync(`\n import piplite.piplite\n piplite.piplite._PIPLITE_DISABLE_PYPI = ${i?"True":"False"}\n piplite.piplite._PIPLITE_URLS = ${JSON.stringify(a)}\n `)}async initKernel(e){let t=(e.loadPyodideOptions||{}).packages||[],i=["ssl","sqlite3","ipykernel","comm","pyodide_kernel","ipython"],a=[];for(let e of i)t.includes(e)||a.push(`await piplite.install('${e}', keep_going=True)`);a.push("import pyodide_kernel"),e.mountDrive&&this._localPath&&a.push("import os",`os.chdir("${this._localPath}")`),await this._pyodide.runPythonAsync(a.join("\n"))}async initGlobals(e){let{globals:t}=this._pyodide;this._kernel=t.get("pyodide_kernel").kernel_instance.copy(),this._stdout_stream=t.get("pyodide_kernel").stdout_stream.copy(),this._stderr_stream=t.get("pyodide_kernel").stderr_stream.copy(),this._interpreter=this._kernel.interpreter.copy(),this._interpreter.send_comm=this.sendComm.bind(this)}async initFilesystem(e){if(e.mountDrive){let t="/drive",{FS:i,PATH:a,ERRNO_CODES:n}=this._pyodide,{baseUrl:o}=e,{DriveFS:r}=await Promise.resolve().then((()=>(yt(),Mi))),s=new r({FS:i,PATH:a,ERRNO_CODES:n,baseUrl:o,driveName:this._driveName,mountpoint:t});i.mkdirTree(t),i.mount(s,{},t),i.chdir(t),this._driveFS=s}}mapToObject(e){let t=e instanceof Array?[]:{};return e.forEach(((e,i)=>{t[i]=e instanceof Map||e instanceof Array?this.mapToObject(e):e})),t}formatResult(e){if(!(e instanceof this._pyodide.ffi.PyProxy))return e;let t=e.toJs();return this.mapToObject(t)}registerCallback(e){this._sendWorkerMessage=e}async setup(e){await this._initialized,this._kernel._parent_header=this._pyodide.toPy(e)}async execute(e,t){await this.setup(t);let i=(e,t)=>{let i={name:this.formatResult(e),text:this.formatResult(t)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:i,type:"stream"})};this._stdout_stream.publish_stream_callback=i,this._stderr_stream.publish_stream_callback=i,this._interpreter.display_pub.clear_output_callback=e=>{let t={wait:this.formatResult(e)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:t,type:"clear_output"})},this._interpreter.display_pub.display_data_callback=(e,t,i)=>{let a={data:this.formatResult(e),metadata:this.formatResult(t),transient:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"display_data"})},this._interpreter.display_pub.update_display_data_callback=(e,t,i)=>{let a={data:this.formatResult(e),metadata:this.formatResult(t),transient:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"update_display_data"})},this._interpreter.displayhook.publish_execution_result=(e,t,i)=>{let a={execution_count:e,data:this.formatResult(t),metadata:this.formatResult(i)};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"execute_result"})},this._interpreter.input=this.input.bind(this),this._interpreter.getpass=this.getpass.bind(this);let a=await this._kernel.run(e.code),n=this.formatResult(a);return"error"===n.status&&((e,t,i)=>{let a={ename:e,evalue:t,traceback:i};this._sendWorkerMessage({parentHeader:this.formatResult(this._kernel._parent_header).header,bundle:a,type:"execute_error"})})(n.ename,n.evalue,n.traceback),n}async complete(e,t){await this.setup(t);let i=this._kernel.complete(e.code,e.cursor_pos);return this.formatResult(i)}async inspect(e,t){await this.setup(t);let i=this._kernel.inspect(e.code,e.cursor_pos,e.detail_level);return this.formatResult(i)}async isComplete(e,t){await this.setup(t);let i=this._kernel.is_complete(e.code);return this.formatResult(i)}async commInfo(e,t){await this.setup(t);let i=this._kernel.comm_info(e.target_name);return{comms:this.formatResult(i),status:"ok"}}async commOpen(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_open(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async commMsg(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_msg(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async commClose(e,t){await this.setup(t);let i=this._kernel.comm_manager.comm_close(this._pyodide.toPy(null),this._pyodide.toPy(null),this._pyodide.toPy(e));return this.formatResult(i)}async inputReply(e,t){await this.setup(t),this._resolveInputReply(e)}async sendInputRequest(e,t){let i={prompt:e,password:t};this._sendWorkerMessage({type:"input_request",parentHeader:this.formatResult(this._kernel._parent_header).header,content:i})}async getpass(e){return e=void 0===e?"":e,await this.sendInputRequest(e,!0),(await new Promise((e=>{this._resolveInputReply=e}))).value}async input(e){return e=void 0===e?"":e,await this.sendInputRequest(e,!1),(await new Promise((e=>{this._resolveInputReply=e}))).value}async sendComm(e,t,i,a,n){this._sendWorkerMessage({type:e,content:this.formatResult(t),metadata:this.formatResult(i),ident:this.formatResult(a),buffers:this.formatResult(n),parentHeader:this.formatResult(this._kernel._parent_header).header})}},Z=Et(self),wt=class extends he{request(e){return Z.processDriveRequest(e)}},bt=class extends Pe{createAPI(e){return new wt(e.driveName,e.mountpoint,e.FS,e.ERRNO_CODES)}},_t=class extends Ke{async initFilesystem(e){if(e.mountDrive){let t="/drive",{FS:i,PATH:a,ERRNO_CODES:n}=this._pyodide,{baseUrl:o}=e,r=new bt({FS:i,PATH:a,ERRNO_CODES:n,baseUrl:o,driveName:this._driveName,mountpoint:t});i.mkdirTree(t),i.mount(r,{},t),i.chdir(t),this._driveFS=r}}},$=new _t,Cn=Z.processWorkerMessage.bind(Z);$.registerCallback(Cn),Z.initialize=$.initialize.bind($),Z.execute=$.execute.bind($),Z.complete=$.complete.bind($),Z.inspect=$.inspect.bind($),Z.isComplete=$.isComplete.bind($),Z.commInfo=$.commInfo.bind($),Z.commOpen=$.commOpen.bind($),Z.commMsg=$.commMsg.bind($),Z.commClose=$.commClose.bind($),Z.inputReply=$.inputReply.bind($)}}]); +//# sourceMappingURL=746.thebe-lite.min.js.map \ No newline at end of file diff --git a/7486.thebe-core.min.js b/7486.thebe-core.min.js new file mode 100644 index 00000000..7ce85b0c --- /dev/null +++ b/7486.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7486],{7486:(e,n,t)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}t.r(n),t.d(n,{octave:()=>k});var i=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),a=new RegExp("^[\\(\\[\\{\\},:=;\\.]"),o=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),c=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),m=new RegExp("^((>>=)|(<<=))"),s=new RegExp("^[\\]\\)]"),u=new RegExp("^[_A-Za-z¡-￿][_A-Za-z0-9¡-￿]*"),l=r(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),f=r(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function h(e,n){return e.sol()||"'"!==e.peek()?(n.tokenize=d,d(e,n)):(e.next(),n.tokenize=d,"operator")}function p(e,n){return e.match(/^.*%}/)?(n.tokenize=d,"comment"):(e.skipToEnd(),"comment")}function d(e,n){if(e.eatSpace())return null;if(e.match("%{"))return n.tokenize=p,e.skipToEnd(),"comment";if(e.match(/^[%#]/))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return e.tokenize=d,"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(e.match(r(["nan","NaN","inf","Inf"])))return"number";var t=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);return t?t[1]?"string":"error":e.match(f)?"keyword":e.match(l)?"builtin":e.match(u)?"variable":e.match(i)||e.match(o)?"operator":e.match(a)||e.match(c)||e.match(m)?null:e.match(s)?(n.tokenize=h,null):(e.next(),"error")}const k={name:"octave",startState:function(){return{tokenize:d}},token:function(e,n){var t=n.tokenize(e,n);return"number"!==t&&"variable"!==t||(n.tokenize=h),t},languageData:{commentTokens:{line:"%"}}}}}]); +//# sourceMappingURL=7486.thebe-core.min.js.map \ No newline at end of file diff --git a/7727.thebe-core.min.js b/7727.thebe-core.min.js new file mode 100644 index 00000000..fe6f04a1 --- /dev/null +++ b/7727.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7727],{77727:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rs});const i={keywords:r("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),cmipVerbs:r("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),compareTypes:r("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),status:r("current deprecated mandatory obsolete"),tags:r("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),storage:r("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),modifier:r("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),accessTypes:r("not-accessible accessible-for-notify read-only read-create read-write"),multiLineStrings:!0};function s(e){var t,n=e.keywords||i.keywords,r=e.cmipVerbs||i.cmipVerbs,s=e.compareTypes||i.compareTypes,a=e.status||i.status,E=e.tags||i.tags,o=e.storage||i.storage,I=e.modifier||i.modifier,T=e.accessTypes||i.accessTypes,S=e.multiLineStrings||i.multiLineStrings,u=!1!==e.indentStatements,l=/[\|\^]/;function A(e,i){var u,A=e.next();if('"'==A||"'"==A)return i.tokenize=(u=A,function(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if(n==u&&!r){var s=e.peek();s&&("b"!=(s=s.toLowerCase())&&"h"!=s&&"o"!=s||e.next()),i=!0;break}r=!r&&"\\"==n}return(i||!r&&!S)&&(t.tokenize=null),"string"}),i.tokenize(e,i);if(/[\[\]\(\){}:=,;]/.test(A))return t=A,"punctuation";if("-"==A&&e.eat("-"))return e.skipToEnd(),"comment";if(/\d/.test(A))return e.eatWhile(/[\w\.]/),"number";if(l.test(A))return e.eatWhile(l),"operator";e.eatWhile(/[\w\-]/);var N=e.current();return n.propertyIsEnumerable(N)?"keyword":r.propertyIsEnumerable(N)?"variableName":s.propertyIsEnumerable(N)?"atom":a.propertyIsEnumerable(N)?"comment":E.propertyIsEnumerable(N)?"typeName":o.propertyIsEnumerable(N)||I.propertyIsEnumerable(N)||T.propertyIsEnumerable(N)?"modifier":"variableName"}function N(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function c(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new N(r,t,n,null,e.context)}function p(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}return{name:"asn1",startState:function(){return{tokenize:null,context:new N(-2,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var r=n.context;if(e.sol()&&(null==r.align&&(r.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;t=null;var i=(n.tokenize||A)(e,n);if("comment"==i)return i;if(null==r.align&&(r.align=!0),";"!=t&&":"!=t&&","!=t||"statement"!=r.type)if("{"==t)c(n,e.column(),"}");else if("["==t)c(n,e.column(),"]");else if("("==t)c(n,e.column(),")");else if("}"==t){for(;"statement"==r.type;)r=p(n);for("}"==r.type&&(r=p(n));"statement"==r.type;)r=p(n)}else t==r.type?p(n):u&&(("}"==r.type||"top"==r.type)&&";"!=t||"statement"==r.type&&"newstatement"==t)&&c(n,e.column(),"statement");else p(n);return n.startOfLine=!1,i},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"--"}}}}}}]); +//# sourceMappingURL=7727.thebe-core.min.js.map \ No newline at end of file diff --git a/7838.thebe-core.min.js b/7838.thebe-core.min.js new file mode 100644 index 00000000..c0b253ec --- /dev/null +++ b/7838.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7838],{67838:(t,e,n)=>{function r(t){for(var e={},n=0;nb});var a,i=["NULL","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","TRUE","FALSE"],c=["list","quote","bquote","eval","return","call","parse","deparse"],o=["if","else","repeat","while","function","for","in","next","break"],l=r(i),u=r(c),f=r(o),s=r(["if","else","repeat","while","function","for"]),p=/[+\-*\/^<>=!&|~$:]/;function m(t,e){a=null;var n,r=t.next();if("#"==r)return t.skipToEnd(),"comment";if("0"==r&&t.eat("x"))return t.eatWhile(/[\da-f]/i),"number";if("."==r&&t.eat(/\d/))return t.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(r))return t.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==r||'"'==r)return e.tokenize=(n=r,function(t,e){if(t.eat("\\")){var r=t.next();return"x"==r?t.match(/^[a-f0-9]{2}/i):("u"==r||"U"==r)&&t.eat("{")&&t.skipTo("}")?t.next():"u"==r?t.match(/^[a-f0-9]{4}/i):"U"==r?t.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&t.match(/^[0-7]{1,2}/),"string.special"}for(var a;null!=(a=t.next());){if(a==n){e.tokenize=m;break}if("\\"==a){t.backUp(1);break}}return"string"}),"string";if("`"==r)return t.match(/[^`]+`/),"string.special";if("."==r&&t.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(r)){t.eatWhile(/[\w\.]/);var i=t.current();return l.propertyIsEnumerable(i)?"atom":f.propertyIsEnumerable(i)?(s.propertyIsEnumerable(i)&&!t.match(/\s*if(\s+|$)/,!1)&&(a="block"),"keyword"):u.propertyIsEnumerable(i)?"builtin":"variable"}return"%"==r?(t.skipTo("%")&&t.next(),"variableName.special"):"<"==r&&t.eat("-")||"<"==r&&t.match("<-")||"-"==r&&t.match(/>>?/)||"="==r&&e.ctx.argList?"operator":p.test(r)?("$"==r||t.eatWhile(p),"operator"):/[\(\){}\[\];]/.test(r)?(a=r,";"==r?"punctuation":null):null}function d(t,e,n){t.ctx={type:e,indent:t.indent,flags:0,column:n.column(),prev:t.ctx}}function k(t,e){var n=t.ctx;t.ctx={type:n.type,indent:n.indent,flags:n.flags|e,column:n.column,prev:n.prev}}function x(t){t.indent=t.ctx.indent,t.ctx=t.ctx.prev}const b={name:"r",startState:function(t){return{tokenize:m,ctx:{type:"top",indent:-t,flags:2},indent:0,afterIdent:!1}},token:function(t,e){if(t.sol()&&(3&e.ctx.flags||(e.ctx.flags|=2),4&e.ctx.flags&&x(e),e.indent=t.indentation()),t.eatSpace())return null;var n=e.tokenize(t,e);return"comment"==n||2&e.ctx.flags||k(e,1),";"!=a&&"{"!=a&&"}"!=a||"block"!=e.ctx.type||x(e),"{"==a?d(e,"}",t):"("==a?(d(e,")",t),e.afterIdent&&(e.ctx.argList=!0)):"["==a?d(e,"]",t):"block"==a?d(e,"block",t):a==e.ctx.type?x(e):"block"==e.ctx.type&&"comment"!=n&&k(e,4),e.afterIdent="variable"==n||"keyword"==n,n},indent:function(t,e,n){if(t.tokenize!=m)return 0;var r=e&&e.charAt(0),a=t.ctx,i=r==a.type;return 4&a.flags&&(a=a.prev),"block"==a.type?a.indent+("{"==r?0:n.unit):1&a.flags?a.column+(i?0:1):a.indent+(i?0:n.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:i.concat(c,o)}}}}]); +//# sourceMappingURL=7838.thebe-core.min.js.map \ No newline at end of file diff --git a/786.thebe-core.min.js b/786.thebe-core.min.js new file mode 100644 index 00000000..a4f0a80c --- /dev/null +++ b/786.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[786],{40786:(e,t,a)=>{a.r(t),a.d(t,{spreadsheet:()=>s});const s={name:"spreadsheet",startState:function(){return{stringType:null,stack:[]}},token:function(e,t){if(e){switch(0===t.stack.length&&('"'!=e.peek()&&"'"!=e.peek()||(t.stringType=e.peek(),e.next(),t.stack.unshift("string"))),t.stack[0]){case"string":for(;"string"===t.stack[0]&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return"string";case"characterClass":for(;"characterClass"===t.stack[0]&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(/^\\./)||t.stack.shift();return"operator"}var a=e.peek();switch(a){case"[":return e.next(),t.stack.unshift("characterClass"),"bracket";case":":return e.next(),"operator";case"\\":return e.match(/\\[a-z]+/)?"string.special":(e.next(),"atom");case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":return e.next(),"atom";case"$":return e.next(),"builtin"}return e.match(/\d+/)?e.match(/^\w+/)?"error":"number":e.match(/^[a-zA-Z_]\w*/)?e.match(/(?=[\(.])/,!1)?"keyword":"variable":-1!=["[","]","(",")","{","}"].indexOf(a)?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}}}}]); +//# sourceMappingURL=786.thebe-core.min.js.map \ No newline at end of file diff --git a/7911.thebe-core.min.js b/7911.thebe-core.min.js new file mode 100644 index 00000000..71d1ca6e --- /dev/null +++ b/7911.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[7911],{17911:(e,t,r)=>{r.r(t),r.d(t,{liveScript:()=>m});var n=function(e,t){var r=t.next||"start";if(r){t.next=t.next;var n=s[r];if(n.splice){for(var o=0;o|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+o+")?))\\s*$"),x="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",g={token:"string",regex:".+"},s={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+x},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+x},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+x},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+x},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+x},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+x},{token:"variableName",regex:o+"\\s*:(?![:=])"},{token:"variableName",regex:o},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:o,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},g],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},g],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},g],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},g],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},g],words:[{token:"string",regex:".*?\\]>",next:"key"},g]};for(var i in s){var k=s[i];if(k.splice)for(var l=0,c=k.length;l{t.r(e),t.d(e,{cmake:()=>c});var i=/({)?[a-zA-Z0-9_]+(})?/;function a(n,e){for(var t,i,a=!1;!n.eol()&&(t=n.next())!=e.pending;){if("$"===t&&"\\"!=i&&'"'==e.pending){a=!0;break}i=t}return a&&n.backUp(1),t==e.pending?e.continueString=!1:e.continueString=!0,"string"}const c={name:"cmake",startState:function(){return{inDefinition:!1,inInclude:!1,continueString:!1,pending:!1}},token:function(n,e){return n.eatSpace()?null:function(n,e){var t=n.next();return"$"===t?n.match(i)?"variableName.special":"variable":e.continueString?(n.backUp(1),a(n,e)):n.match(/(\s+)?\w+\(/)||n.match(/(\s+)?\w+\ \(/)?(n.backUp(1),"def"):"#"==t?(n.skipToEnd(),"comment"):"'"==t||'"'==t?(e.pending=t,a(n,e)):"("==t||")"==t?"bracket":t.match(/[0-9]/)?"number":(n.eatWhile(/[\w-]/),null)}(n,e)}}}}]); +//# sourceMappingURL=7951.thebe-core.min.js.map \ No newline at end of file diff --git a/8122.thebe-core.min.js b/8122.thebe-core.min.js new file mode 100644 index 00000000..49d24472 --- /dev/null +++ b/8122.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8122],{38122:(e,t,r)=>{r.r(t),r.d(t,{tiddlyWiki:()=>y});var n={},i={allTags:!0,closeAll:!0,list:!0,newJournal:!0,newTiddler:!0,permaview:!0,saveChanges:!0,search:!0,slider:!0,tabs:!0,tag:!0,tagging:!0,tags:!0,tiddler:!0,timeline:!0,today:!0,version:!0,option:!0,with:!0,filter:!0},a=/[\w_\-]/i,u=/^\-\-\-\-+$/,o=/^\/\*\*\*$/,c=/^\*\*\*\/$/,f=/^<<<$/,l=/^\/\/\{\{\{$/,m=/^\/\/\}\}\}$/,k=/^$/,h=/^$/,s=/^\{\{\{$/,b=/^\}\}\}$/,d=/.*?\}\}\}/;function p(e,t,r){return t.tokenize=r,r(e,t)}function $(e,t){var r=e.sol(),i=e.peek();if(t.block=!1,r&&/[<\/\*{}\-]/.test(i)){if(e.match(s))return t.block=!0,p(e,t,z);if(e.match(f))return"quote";if(e.match(o)||e.match(c))return"comment";if(e.match(l)||e.match(m)||e.match(k)||e.match(h))return"comment";if(e.match(u))return"contentSeparator"}if(e.next(),r&&/[\/\*!#;:>|]/.test(i)){if("!"==i)return e.skipToEnd(),"header";if("*"==i)return e.eatWhile("*"),"comment";if("#"==i)return e.eatWhile("#"),"comment";if(";"==i)return e.eatWhile(";"),"comment";if(":"==i)return e.eatWhile(":"),"comment";if(">"==i)return e.eatWhile(">"),"quote";if("|"==i)return"header"}if("{"==i&&e.match("{{"))return p(e,t,z);if(/[hf]/i.test(i)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if('"'==i)return"string";if("~"==i)return"brace";if(/[\[\]]/.test(i)&&e.match(i))return"brace";if("@"==i)return e.eatWhile(a),"link";if(/\d/.test(i))return e.eatWhile(/\d/),"number";if("/"==i){if(e.eat("%"))return p(e,t,v);if(e.eat("/"))return p(e,t,_)}if("_"==i&&e.eat("_"))return p(e,t,W);if("-"==i&&e.eat("-")){if(" "!=e.peek())return p(e,t,g);if(" "==e.peek())return"brace"}return"'"==i&&e.eat("'")?p(e,t,w):"<"==i&&e.eat("<")?p(e,t,x):(e.eatWhile(/[\w\$_]/),n.propertyIsEnumerable(e.current())?"keyword":null)}function v(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=$;break}n="%"==r}return"comment"}function w(e,t){for(var r,n=!1;r=e.next();){if("'"==r&&n){t.tokenize=$;break}n="'"==r}return"strong"}function z(e,t){var r=t.block;return r&&e.current()?"comment":!r&&e.match(d)||r&&e.sol()&&e.match(b)?(t.tokenize=$,"comment"):(e.next(),"comment")}function _(e,t){for(var r,n=!1;r=e.next();){if("/"==r&&n){t.tokenize=$;break}n="/"==r}return"emphasis"}function W(e,t){for(var r,n=!1;r=e.next();){if("_"==r&&n){t.tokenize=$;break}n="_"==r}return"link"}function g(e,t){for(var r,n=!1;r=e.next();){if("-"==r&&n){t.tokenize=$;break}n="-"==r}return"deleted"}function x(e,t){if("<<"==e.current())return"meta";var r=e.next();return r?">"==r&&">"==e.peek()?(e.next(),t.tokenize=$,"meta"):(e.eatWhile(/[\w\$_]/),i.propertyIsEnumerable(e.current())?"keyword":null):(t.tokenize=$,null)}const y={name:"tiddlywiki",startState:function(){return{tokenize:$}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}}}}]); +//# sourceMappingURL=8122.thebe-core.min.js.map \ No newline at end of file diff --git a/8137.thebe-core.min.js b/8137.thebe-core.min.js new file mode 100644 index 00000000..b7f60c86 --- /dev/null +++ b/8137.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8137],{98137:(e,t,n)=>{n.r(t),n.d(t,{coffeeScript:()=>b});var r="error";function o(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var c=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,i=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,f=/^[_A-Za-z$][_A-Za-z$0-9]*/,a=/^@[_A-Za-z$][_A-Za-z$0-9]*/,p=o(["and","or","not","is","isnt","in","instanceof","typeof"]),s=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],u=o(s.concat(["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"]));s=o(s);var l=/^('{3}|\"{3}|['\"])/,d=/^(\/{3}|\/)/,h=o(["Infinity","NaN","undefined","null","true","false","on","off","yes","no"]);function m(e,t){if(e.sol()){null===t.scope.align&&(t.scope.align=!1);var n=t.scope.offset;if(e.eatSpace()){var o=e.indentation();return o>n&&"coffee"==t.scope.type?"indent":o0&&y(e,t)}if(e.eatSpace())return null;var s=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=k,t.tokenize(e,t);if("#"===s)return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var m=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(m=!0),e.match(/^-?\d+\.\d*/)&&(m=!0),e.match(/^-?\.\d+/)&&(m=!0),m)return"."==e.peek()&&e.backUp(1),"number";var g=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(g=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(g=!0),e.match(/^-?0(?![\dx])/i)&&(g=!0),g)return"number"}if(e.match(l))return t.tokenize=v(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(d)){if("/"!=e.current()||e.match(/^.*\//,!1))return t.tokenize=v(e.current(),!0,"string.special"),t.tokenize(e,t);e.backUp(1)}return e.match(c)||e.match(p)?"operator":e.match(i)?"punctuation":e.match(h)?"atom":e.match(a)||t.prop&&e.match(f)?"property":e.match(u)?"keyword":e.match(f)?"variable":(e.next(),r)}function v(e,t,n){return function(r,o){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return o.tokenize=m,n;r.eat(/['"\/]/)}return t&&(o.tokenize=m),n}}function k(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=m;break}e.eatWhile("#")}return"comment"}function g(e,t,n="coffee"){for(var r=0,o=!1,c=null,i=t.scope;i;i=i.prev)if("coffee"===i.type||"}"==i.type){r=i.offset+e.indentUnit;break}"coffee"!==n?(o=null,c=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:o,alignOffset:c}}function y(e,t){if(t.scope.prev){if("coffee"===t.scope.type){for(var n=e.indentation(),r=!1,o=t.scope;o;o=o.prev)if(n===o.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}return t.scope=t.scope.prev,!1}}const b={name:"coffeescript",startState:function(){return{tokenize:m,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,t){var n=null===t.scope.align&&t.scope;n&&e.sol()&&(n.align=!1);var o=function(e,t){var n=t.tokenize(e,t),o=e.current();"return"===o&&(t.dedent=!0),(("->"===o||"=>"===o)&&e.eol()||"indent"===n)&&g(e,t);var c="[({".indexOf(o);if(-1!==c&&g(e,t,"])}".slice(c,c+1)),s.exec(o)&&g(e,t),"then"==o&&y(e,t),"dedent"===n&&y(e,t))return r;if(-1!==(c="])}".indexOf(o))){for(;"coffee"==t.scope.type&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==o&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&("coffee"==t.scope.type&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),"indent"==n||"dedent"==n?null:n}(e,t);return o&&"comment"!=o&&(n&&(n.align=!0),t.prop="punctuation"==o&&"."==e.current()),o},indent:function(e,t){if(e.tokenize!=m)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;"coffee"==n.type&&n.prev;)n=n.prev;var o=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(o?1:0):(o?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=8137.thebe-core.min.js.map \ No newline at end of file diff --git a/8188.thebe-core.min.js b/8188.thebe-core.min.js new file mode 100644 index 00000000..3d47e010 --- /dev/null +++ b/8188.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8188],{58188:(O,T,E)=>{function e(O){for(var T={},E=O.split(" "),e=0;eC});var I="ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ",N="VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE NEQ MATCHES TRUE FALSE DUMP",A="BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ",R=e(I),S=e(N),t=e(A),L=/[*+\-%<>=&?:\/!|]/;function r(O,T,E){return T.tokenize=E,E(O,T)}function n(O,T){for(var E,e=!1;E=O.next();){if("/"==E&&e){T.tokenize=U;break}e="*"==E}return"comment"}function U(O,T){var E,e=O.next();return'"'==e||"'"==e?r(O,T,(E=e,function(O,T){for(var e,I=!1,N=!1;null!=(e=O.next());){if(e==E&&!I){N=!0;break}I=!I&&"\\"==e}return!N&&I||(T.tokenize=U),"error"})):/[\[\]{}\(\),;\.]/.test(e)?null:/\d/.test(e)?(O.eatWhile(/[\w\.]/),"number"):"/"==e?O.eat("*")?r(O,T,n):(O.eatWhile(L),"operator"):"-"==e?O.eat("-")?(O.skipToEnd(),"comment"):(O.eatWhile(L),"operator"):L.test(e)?(O.eatWhile(L),"operator"):(O.eatWhile(/[\w\$_]/),S&&S.propertyIsEnumerable(O.current().toUpperCase())&&!O.eat(")")&&!O.eat(".")?"keyword":R&&R.propertyIsEnumerable(O.current().toUpperCase())?"builtin":t&&t.propertyIsEnumerable(O.current().toUpperCase())?"type":"variable")}const C={name:"pig",startState:function(){return{tokenize:U,startOfLine:!0}},token:function(O,T){return O.eatSpace()?null:T.tokenize(O,T)},languageData:{autocomplete:(I+A+N).split(" ")}}}}]); +//# sourceMappingURL=8188.thebe-core.min.js.map \ No newline at end of file diff --git a/822.thebe-core.min.js b/822.thebe-core.min.js new file mode 100644 index 00000000..a3972cea --- /dev/null +++ b/822.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[822],{90822:(e,t,r)=>{function i(e){var t,r;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,r=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,r=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var i=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,n=/^(n?[zc]|p[oe]?|m)\b/i,l=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,a=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:"z80",startState:function(){return{context:0}},token:function(c,s){if(c.column()||(s.context=0),c.eatSpace())return null;var u;if(c.eatWhile(/\w/)){if(e&&c.eat(".")&&c.eatWhile(/\w/),u=c.current(),!c.indentation())return c.match(a)?"number":null;if((1==s.context||4==s.context)&&i.test(u))return s.context=4,"variable";if(2==s.context&&n.test(u))return s.context=4,"variableName.special";if(t.test(u))return s.context=1,"keyword";if(r.test(u))return s.context=2,"keyword";if(4==s.context&&a.test(u))return"number";if(l.test(u))return"error"}else{if(c.eat(";"))return c.skipToEnd(),"comment";if(c.eat('"')){for(;(u=c.next())&&'"'!=u;)"\\"==u&&c.next();return"string"}if(c.eat("'")){if(c.match(/\\?.'/))return"number"}else if(c.eat(".")||c.sol()&&c.eat("#")){if(s.context=5,c.eatWhile(/\w/))return"def"}else if(c.eat("$")){if(c.eatWhile(/[\da-f]/i))return"number"}else if(c.eat("%")){if(c.eatWhile(/[01]/))return"number"}else c.next()}return null}}}r.r(t),r.d(t,{ez80:()=>l,z80:()=>n});const n=i(!1),l=i(!0)}}]); +//# sourceMappingURL=822.thebe-core.min.js.map \ No newline at end of file diff --git a/8334.thebe-core.min.js b/8334.thebe-core.min.js new file mode 100644 index 00000000..f4c49bf6 --- /dev/null +++ b/8334.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8334],{8334:(a,e,n)=>{n.r(e),n.d(e,{gherkin:()=>i});const i={name:"gherkin",startState:function(){return{lineNumber:0,tableHeaderLine:!1,allowFeature:!0,allowBackground:!1,allowScenario:!1,allowSteps:!1,allowPlaceholders:!1,allowMultilineArgument:!1,inMultilineString:!1,inMultilineTable:!1,inKeywordLine:!1}},token:function(a,e){if(a.sol()&&(e.lineNumber++,e.inKeywordLine=!1,e.inMultilineTable&&(e.tableHeaderLine=!1,a.match(/\s*\|/,!1)||(e.allowMultilineArgument=!1,e.inMultilineTable=!1))),a.eatSpace(),e.allowMultilineArgument){if(e.inMultilineString)return a.match('"""')?(e.inMultilineString=!1,e.allowMultilineArgument=!1):a.match(/.*/),"string";if(e.inMultilineTable)return a.match(/\|\s*/)?"bracket":(a.match(/[^\|]*/),e.tableHeaderLine?"header":"string");if(a.match('"""'))return e.inMultilineString=!0,"string";if(a.match("|"))return e.inMultilineTable=!0,e.tableHeaderLine=!0,"bracket"}return a.match(/#.*/)?"comment":!e.inKeywordLine&&a.match(/@\S+/)?"tag":!e.inKeywordLine&&e.allowFeature&&a.match(/(機能|功能|フィーチャ|기능|โครงหลัก|ความสามารถ|ความต้องการทางธุรกิจ|ಹೆಚ್ಚಳ|గుణము|ਮੁਹਾਂਦਰਾ|ਨਕਸ਼ ਨੁਹਾਰ|ਖਾਸੀਅਤ|रूप लेख|وِیژگی|خاصية|תכונה|Функціонал|Функция|Функционалност|Функционал|Үзенчәлеклелек|Свойство|Особина|Мөмкинлек|Могућност|Λειτουργία|Δυνατότητα|Właściwość|Vlastnosť|Trajto|Tính năng|Savybė|Pretty much|Požiadavka|Požadavek|Potrzeba biznesowa|Özellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Hwæt|Hwaet|Funzionalità|Funktionalitéit|Funktionalität|Funkcja|Funkcionalnost|Funkcionalitāte|Funkcia|Fungsi|Functionaliteit|Funcționalitate|Funcţionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Fīča|Feature|Eiginleiki|Egenskap|Egenskab|Característica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)?(e.allowScenario=!0,e.allowBackground=!0,e.allowPlaceholders=!1,e.allowSteps=!1,e.allowMultilineArgument=!1,e.inKeywordLine=!0,"keyword"):!e.inKeywordLine&&e.allowBackground&&a.match(/(背景|배경|แนวคิด|ಹಿನ್ನೆಲೆ|నేపథ్యం|ਪਿਛੋਕੜ|पृष्ठभूमि|زمینه|الخلفية|רקע|Тарих|Предыстория|Предистория|Позадина|Передумова|Основа|Контекст|Кереш|Υπόβαθρο|Założenia|Yo\-ho\-ho|Tausta|Taust|Situācija|Rerefons|Pozadina|Pozadie|Pozadí|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|Háttér|Hannergrond|Grundlage|Geçmiş|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cenário de Fundo|Cenario de Fundo|Cefndir|Bối cảnh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|Ær|Aer|Achtergrond):/)?(e.allowPlaceholders=!1,e.allowSteps=!0,e.allowBackground=!1,e.allowMultilineArgument=!1,e.inKeywordLine=!0,"keyword"):!e.inKeywordLine&&e.allowScenario&&a.match(/(場景大綱|场景大纲|劇本大綱|剧本大纲|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|시나리오 개요|สรุปเหตุการณ์|โครงสร้างของเหตุการณ์|ವಿವರಣೆ|కథనం|ਪਟਕਥਾ ਰੂਪ ਰੇਖਾ|ਪਟਕਥਾ ਢਾਂਚਾ|परिदृश्य रूपरेखा|سيناريو مخطط|الگوی سناریو|תבנית תרחיש|Сценарийның төзелеше|Сценарий структураси|Структура сценарію|Структура сценария|Структура сценарија|Скица|Рамка на сценарий|Концепт|Περιγραφή Σεναρίου|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hwær swa|Swa hwaer swa|Struktura scenarija|Structură scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo taslağı|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scenārijs pēc parauga|Scenarijaus šablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Scénario|Plan du scénario|Osnova scénáře|Osnova Scenára|Náčrt Scenáru|Náčrt Scénáře|Náčrt Scenára|MISHUN SRSLY|Menggariskan Senario|Lýsing Dæma|Lýsing Atburðarásar|Konturo de la scenaro|Koncept|Khung tình huống|Khung kịch bản|Forgatókönyv vázlat|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delineação do Cenário|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)?(e.allowPlaceholders=!0,e.allowSteps=!0,e.allowMultilineArgument=!1,e.inKeywordLine=!0,"keyword"):e.allowScenario&&a.match(/(例子|例|サンプル|예|ชุดของเหตุการณ์|ชุดของตัวอย่าง|ಉದಾಹರಣೆಗಳು|ఉదాహరణలు|ਉਦਾਹਰਨਾਂ|उदाहरण|نمونه ها|امثلة|דוגמאות|Үрнәкләр|Сценарији|Примеры|Примери|Приклади|Мисоллар|Мисаллар|Σενάρια|Παραδείγματα|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se þe|Se the|Se ðe|Scenarios|Scenariji|Scenarijai|Przykłady|Primjeri|Primeri|Příklady|Príklady|Piemēri|Példák|Pavyzdžiai|Paraugs|Örnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|Dữ liệu|Dead men tell no tales|Dæmi|Contoh|Cenários|Cenarios|Beispiller|Beispiele|Atburðarásir):/)?(e.allowPlaceholders=!1,e.allowSteps=!0,e.allowBackground=!1,e.allowMultilineArgument=!0,"keyword"):!e.inKeywordLine&&e.allowScenario&&a.match(/(場景|场景|劇本|剧本|シナリオ|시나리오|เหตุการณ์|ಕಥಾಸಾರಾಂಶ|సన్నివేశం|ਪਟਕਥਾ|परिदृश्य|سيناريو|سناریو|תרחיש|Сценарій|Сценарио|Сценарий|Пример|Σενάριο|Tình huống|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Scénario|Scenario|Scenarijus|Scenārijs|Scenarij|Scenarie|Scénář|Scenár|Primer|MISHUN|Kịch bản|Keadaan|Heave to|Forgatókönyv|Escenario|Escenari|Cenário|Cenario|Awww, look mate|Atburðarás):/)?(e.allowPlaceholders=!1,e.allowSteps=!0,e.allowBackground=!1,e.allowMultilineArgument=!1,e.inKeywordLine=!0,"keyword"):!e.inKeywordLine&&e.allowSteps&&a.match(/(那麼|那么|而且|當|当|并且|同時|同时|前提|假设|假設|假定|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|하지만|조건|먼저|만일|만약|단|그리고|그러면|และ |เมื่อ |แต่ |ดังนั้น |กำหนดให้ |ಸ್ಥಿತಿಯನ್ನು |ಮತ್ತು |ನೀಡಿದ |ನಂತರ |ಆದರೆ |మరియు |చెప్పబడినది |కాని |ఈ పరిస్థితిలో |అప్పుడు |ਪਰ |ਤਦ |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |ਜਦੋਂ |ਅਤੇ |यदि |परन्तु |पर |तब |तदा |तथा |जब |चूंकि |किन्तु |कदा |और |अगर |و |هنگامی |متى |لكن |عندما |ثم |بفرض |با فرض |اما |اذاً |آنگاه |כאשר |וגם |בהינתן |אזי |אז |אבל |Якщо |Һәм |Унда |Тоді |Тогда |То |Также |Та |Пусть |Припустимо, що |Припустимо |Онда |Но |Нехай |Нәтиҗәдә |Лекин |Ләкин |Коли |Когда |Когато |Када |Кад |К тому же |І |И |Задато |Задати |Задате |Если |Допустим |Дано |Дадено |Вә |Ва |Бирок |Әмма |Әйтик |Әгәр |Аммо |Али |Але |Агар |А також |А |Τότε |Όταν |Και |Δεδομένου |Αλλά |Þurh |Þegar |Þa þe |Þá |Þa |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Za předpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |Và |Und |Un |ugeholl |Too right |Thurh |Thì |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |Și |Şi |Si |Sed |Se |Så |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nhưng |När |Når |Mutta |Men |Mas |Maka |Majd |Mając |Mais |Maar |mä |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Keď |Když |Kaj |Kai |Kada |Kad |Jeżeli |Jeśli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |Étant donnés |Etant donnés |Étant données |Etant données |Étant donnée |Etant donnée |Étant donné |Etant donné |Et |És |Entonces |Entón |Então |Entao |En |Eğer ki |Ef |Eeldades |E |Ðurh |Duota |Dun |Donitaĵo |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Dați fiind |Daţi fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |Ða ðe |Ða |Cuando |Cho |Cando |Când |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Biết |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |Atès |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A zároveň |A tiež |A taktiež |A také |A |a |7 |\* )/)?(e.inStep=!0,e.allowPlaceholders=!0,e.allowMultilineArgument=!0,e.inKeywordLine=!0,"keyword"):a.match(/"[^"]*"?/)?"string":e.allowPlaceholders&&a.match(/<[^>]*>?/)?"variable":(a.next(),a.eatWhile(/[^@"<#]/),null)}}}}]); +//# sourceMappingURL=8334.thebe-core.min.js.map \ No newline at end of file diff --git a/8391.thebe-core.min.js b/8391.thebe-core.min.js new file mode 100644 index 00000000..c6538146 --- /dev/null +++ b/8391.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8391],{38391:(t,e,n)=>{var r;function a(t){return new RegExp("^(?:"+t.join("|")+")$","i")}n.r(e),n.d(e,{sparql:()=>F});var u=a(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]),o=a(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load","into"]),i=/[*+\-<>=&|\^\/!\?]/,c="[A-Za-z_\\-0-9]",s=new RegExp("[A-Za-z]"),l=new RegExp("(("+c+"|\\.)*("+c+"))?:");function d(t,e){var n,a=t.next();if(r=null,"$"==a||"?"==a)return"?"==a&&t.match(/\s/,!1)?"operator":(t.match(/^[A-Za-z0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Za-z0-9_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]*/),"variableName.local");if("<"==a&&!t.match(/^[\s\u00a0=]/,!1))return t.match(/^[^\s\u00a0>]*>?/),"atom";if('"'==a||"'"==a)return e.tokenize=(n=a,function(t,e){for(var r,a=!1;null!=(r=t.next());){if(r==n&&!a){e.tokenize=d;break}a=!a&&"\\"==r}return"string"}),e.tokenize(t,e);if(/[{}\(\),\.;\[\]]/.test(a))return r=a,"bracket";if("#"==a)return t.skipToEnd(),"comment";if(i.test(a))return"operator";if(":"==a)return f(t),"atom";if("@"==a)return t.eatWhile(/[a-z\d\-]/i),"meta";if(s.test(a)&&t.match(l))return f(t),"atom";t.eatWhile(/[_\w\d]/);var c=t.current();return u.test(c)?"builtin":o.test(c)?"keyword":"variable"}function f(t){t.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i)}function p(t,e,n){t.context={prev:t.context,indent:t.indent,col:n,type:e}}function m(t){t.indent=t.context.indent,t.context=t.context.prev}const F={name:"sparql",startState:function(){return{tokenize:d,context:null,indent:0,col:0}},token:function(t,e){if(t.sol()&&(e.context&&null==e.context.align&&(e.context.align=!1),e.indent=t.indentation()),t.eatSpace())return null;var n=e.tokenize(t,e);if("comment"!=n&&e.context&&null==e.context.align&&"pattern"!=e.context.type&&(e.context.align=!0),"("==r)p(e,")",t.column());else if("["==r)p(e,"]",t.column());else if("{"==r)p(e,"}",t.column());else if(/[\]\}\)]/.test(r)){for(;e.context&&"pattern"==e.context.type;)m(e);e.context&&r==e.context.type&&(m(e),"}"==r&&e.context&&"pattern"==e.context.type&&m(e))}else"."==r&&e.context&&"pattern"==e.context.type?m(e):/atom|string|variable/.test(n)&&e.context&&(/[\}\]]/.test(e.context.type)?p(e,"pattern",t.column()):"pattern"!=e.context.type||e.context.align||(e.context.align=!0,e.context.col=t.column()));return n},indent:function(t,e,n){var r=e&&e.charAt(0),a=t.context;if(/[\]\}]/.test(r))for(;a&&"pattern"==a.type;)a=a.prev;var u=a&&r==a.type;return a?"pattern"==a.type?a.col:a.align?a.col+(u?0:1):a.indent+(u?0:n.unit):0},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=8391.thebe-core.min.js.map \ No newline at end of file diff --git a/8421.thebe-core.min.js b/8421.thebe-core.min.js new file mode 100644 index 00000000..638b6680 --- /dev/null +++ b/8421.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8421],{88421:(e,r,t)=>{t.r(r),t.d(r,{diff:()=>s});var n={"+":"inserted","-":"deleted","@":"meta"};const s={name:"diff",token:function(e){var r=e.string.search(/[\t ]+?$/);if(!e.sol()||0===r)return e.skipToEnd(),("error "+(n[e.string.charAt(0)]||"")).replace(/ $/,"");var t=n[e.peek()]||e.skipToEnd();return-1===r?e.skipToEnd():e.pos=r,t}}}}]); +//# sourceMappingURL=8421.thebe-core.min.js.map \ No newline at end of file diff --git a/8539.thebe-core.min.js b/8539.thebe-core.min.js new file mode 100644 index 00000000..b266997a --- /dev/null +++ b/8539.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8539],{88539:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{oz:()=>g});var a=/[\^@!\|<>#~\.\*\-\+\\/,=]/,o=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/,i=/(:::)|(\.\.\.)|(=<:)|(>=:)/,c=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"],u=["end"],s=r(["true","false","nil","unit"]),f=r(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]),l=r(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]),h=r(c),d=r(u);function m(e,t){if(e.eatSpace())return null;if(e.match(/[{}]/))return"bracket";if(e.match("[]"))return"keyword";if(e.match(i)||e.match(o))return"operator";if(e.match(s))return"atom";var n=e.match(l);if(n)return t.doInCurrentLine?t.doInCurrentLine=!1:t.currentIndent++,"proc"==n[0]||"fun"==n[0]?t.tokenize=z:"class"==n[0]?t.tokenize=k:"meth"==n[0]&&(t.tokenize=p),"keyword";if(e.match(h)||e.match(f))return"keyword";if(e.match(d))return t.currentIndent--,"keyword";var r,c=e.next();if('"'==c||"'"==c)return t.tokenize=(r=c,function(e,t){for(var n,a=!1,o=!1;null!=(n=e.next());){if(n==r&&!a){o=!0;break}a=!a&&"\\"==n}return!o&&a||(t.tokenize=m),"string"}),t.tokenize(e,t);if(/[~\d]/.test(c)){if("~"==c){if(!/^[0-9]/.test(e.peek()))return null;if("0"==e.next()&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}return"0"==c&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/)?"number":null}return"%"==c?(e.skipToEnd(),"comment"):"/"==c&&e.eat("*")?(t.tokenize=b,b(e,t)):a.test(c)?"operator":(e.eatWhile(/\w/),"variable")}function k(e,t){return e.eatSpace()?null:(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=m,"type")}function p(e,t){return e.eatSpace()?null:(e.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=m,"def")}function z(e,t){return e.eatSpace()?null:!t.hasPassedFirstStage&&e.eat("{")?(t.hasPassedFirstStage=!0,"bracket"):t.hasPassedFirstStage?(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/),t.hasPassedFirstStage=!1,t.tokenize=m,"def"):(t.tokenize=m,null)}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=m;break}r="*"==n}return"comment"}const g={name:"oz",startState:function(){return{tokenize:m,currentIndent:0,doInCurrentLine:!1,hasPassedFirstStage:!1}},token:function(e,t){return e.sol()&&(t.doInCurrentLine=0),t.tokenize(e,t)},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(d)||r.match(h)||r.match(/(\[])/)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{indentOnInut:(I=c.concat(u),new RegExp("[\\[\\]]|("+I.join("|")+")$")),commentTokens:{line:"%",block:{open:"/*",close:"*/"}}}};var I}}]); +//# sourceMappingURL=8539.thebe-core.min.js.map \ No newline at end of file diff --git a/8586.thebe-core.min.js b/8586.thebe-core.min.js new file mode 100644 index 00000000..cfa802b2 --- /dev/null +++ b/8586.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8586],{98586:(e,n,t)=>{function i(e,n){for(var t=0;tk});var a={unnamedDefinition:["interface"],namedDefinition:["module","library","macro","C-struct","C-union","C-function","C-callable-wrapper"],typeParameterizedDefinition:["class","C-subtype","C-mapped-subtype"],otherParameterizedDefinition:["method","function","C-variable","C-address"],constantSimpleDefinition:["constant"],variableSimpleDefinition:["variable"],otherSimpleDefinition:["generic","domain","C-pointer-type","table"],statement:["if","block","begin","method","case","for","select","when","unless","until","while","iterate","profiling","dynamic-bind"],separator:["finally","exception","cleanup","else","elseif","afterwards"],other:["above","below","by","from","handler","in","instance","let","local","otherwise","slot","subclass","then","to","keyed-by","virtual"],signalingCalls:["signal","error","cerror","break","check-type","abort"]};a.otherDefinition=a.unnamedDefinition.concat(a.namedDefinition).concat(a.otherParameterizedDefinition),a.definition=a.typeParameterizedDefinition.concat(a.otherDefinition),a.parameterizedDefinition=a.typeParameterizedDefinition.concat(a.otherParameterizedDefinition),a.simpleDefinition=a.constantSimpleDefinition.concat(a.variableSimpleDefinition).concat(a.otherSimpleDefinition),a.keyword=a.statement.concat(a.separator).concat(a.other);var o="[-_a-zA-Z?!*@<>$%]+",l=new RegExp("^"+o),c={symbolKeyword:o+":",symbolClass:"<"+o+">",symbolGlobal:"\\*"+o+"\\*",symbolConstant:"\\$"+o},f={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variableName.standard",symbolConstant:"variableName.constant"};for(var s in c)c.hasOwnProperty(s)&&(c[s]=new RegExp("^"+c[s]));c.keyword=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var u={keyword:"keyword",definition:"def",simpleDefinition:"def",signalingCalls:"builtin"},m={},d={};function p(e,n,t){return n.tokenize=t,t(e,n)}function b(e,n){var t=e.peek();if("'"==t||'"'==t)return e.next(),p(e,n,y(t,"string"));if("/"==t){if(e.next(),e.eat("*"))return p(e,n,h);if(e.eat("/"))return e.skipToEnd(),"comment";e.backUp(1)}else if(/[+\-\d\.]/.test(t)){if(e.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||e.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||e.match(/^[+-]?\d+/))return"number"}else{if("#"==t)return e.next(),'"'==(t=e.peek())?(e.next(),p(e,n,y('"',"string"))):"b"==t?(e.next(),e.eatWhile(/[01]/),"number"):"x"==t?(e.next(),e.eatWhile(/[\da-f]/i),"number"):"o"==t?(e.next(),e.eatWhile(/[0-7]/),"number"):"#"==t?(e.next(),"punctuation"):"["==t||"("==t?(e.next(),"bracket"):e.match(/f|t|all-keys|include|key|next|rest/i)?"atom":(e.eatWhile(/[-a-zA-Z]/),"error");if("~"==t)return e.next(),"="==(t=e.peek())?(e.next(),"="==(t=e.peek())?(e.next(),"operator"):"operator"):"operator";if(":"==t){if(e.next(),"="==(t=e.peek()))return e.next(),"operator";if(":"==t)return e.next(),"punctuation"}else{if(-1!="[](){}".indexOf(t))return e.next(),"bracket";if(-1!=".,".indexOf(t))return e.next(),"punctuation";if(e.match("end"))return"keyword"}}for(var i in c)if(c.hasOwnProperty(i)){var a=c[i];if(a instanceof Array&&r(a,(function(n){return e.match(n)}))||e.match(a))return f[i]}return/[+\-*\/^=<>&|]/.test(t)?(e.next(),"operator"):e.match("define")?"def":(e.eatWhile(/[\w\-]/),m.hasOwnProperty(e.current())?d[e.current()]:e.current().match(l)?"variable":(e.next(),"variableName.standard"))}function h(e,n){for(var t,i=!1,r=!1,a=0;t=e.next();){if("/"==t&&i){if(!(a>0)){n.tokenize=b;break}a--}else"*"==t&&r&&a++;i="*"==t,r="/"==t}return"comment"}function y(e,n){return function(t,i){for(var r,a=!1,o=!1;null!=(r=t.next());){if(r==e&&!a){o=!0;break}a=!a&&"\\"==r}return!o&&a||(i.tokenize=b),n}}i(["keyword","definition","simpleDefinition","signalingCalls"],(function(e){i(a[e],(function(n){m[n]=e,d[n]=u[e]}))}));const k={name:"dylan",startState:function(){return{tokenize:b,currentIndent:0}},token:function(e,n){return e.eatSpace()?null:n.tokenize(e,n)},languageData:{commentTokens:{block:{open:"/*",close:"*/"}}}}}}]); +//# sourceMappingURL=8586.thebe-core.min.js.map \ No newline at end of file diff --git a/8665.thebe-core.min.js b/8665.thebe-core.min.js new file mode 100644 index 00000000..79f55a53 --- /dev/null +++ b/8665.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8665],{48665:(e,O,b)=>{b.r(O),b.d(O,{wast:()=>a,wastLanguage:()=>s});var o=b(29587),r=b(49913),t=b(73643);const P={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},S=t.U1.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"⚠ LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:e=>P[e]||-1}],tokenPrec:0}),s=o.bj.define({name:"wast",parser:S.configure({props:[o.Oh.add({App:(0,o.Ay)({closing:")",align:!1})}),o.b_.add({App:o.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})}),(0,r.pn)({Keyword:r._A.keyword,Type:r._A.typeName,Number:r._A.number,String:r._A.string,Identifier:r._A.variableName,LineComment:r._A.lineComment,BlockComment:r._A.blockComment,"( )":r._A.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function a(){return new o.Yy(s)}}}]); +//# sourceMappingURL=8665.thebe-core.min.js.map \ No newline at end of file diff --git a/8678.thebe-core.min.js b/8678.thebe-core.min.js new file mode 100644 index 00000000..b927c977 --- /dev/null +++ b/8678.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8678],{48678:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rz});var o=r("algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within"),i=r("abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh"),l=r("Real Boolean Integer String"),a=[].concat(Object.keys(o),Object.keys(i),Object.keys(l)),u=/[;=\(:\),{}.*<>+\-\/^\[\]]/,s=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/,c=/[0-9]/,k=/[_a-zA-Z]/;function p(e,t){return e.skipToEnd(),t.tokenize=null,"comment"}function f(e,t){for(var n,r=!1;n=e.next();){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return"comment"}function m(e,t){for(var n,r=!1;null!=(n=e.next());){if('"'==n&&!r){t.tokenize=null,t.sol=!1;break}r=!r&&"\\"==n}return"string"}function d(e,t){for(e.eatWhile(c);e.eat(c)||e.eat(k););var n=e.current();return!t.sol||"package"!=n&&"model"!=n&&"when"!=n&&"connector"!=n?t.sol&&"end"==n&&t.level>0&&t.level--:t.level++,t.tokenize=null,t.sol=!1,o.propertyIsEnumerable(n)?"keyword":i.propertyIsEnumerable(n)?"builtin":l.propertyIsEnumerable(n)?"atom":"variable"}function b(e,t){for(;e.eat(/[^']/););return t.tokenize=null,t.sol=!1,e.eat("'")?"variable":"error"}function h(e,t){return e.eatWhile(c),e.eat(".")&&e.eatWhile(c),(e.eat("e")||e.eat("E"))&&(e.eat("-")||e.eat("+"),e.eatWhile(c)),t.tokenize=null,t.sol=!1,"number"}const z={name:"modelica",startState:function(){return{tokenize:null,level:0,sol:!0}},token:function(e,t){if(null!=t.tokenize)return t.tokenize(e,t);if(e.sol()&&(t.sol=!0),e.eatSpace())return t.tokenize=null,null;var n=e.next();if("/"==n&&e.eat("/"))t.tokenize=p;else if("/"==n&&e.eat("*"))t.tokenize=f;else{if(s.test(n+e.peek()))return e.next(),t.tokenize=null,"operator";if(u.test(n))return t.tokenize=null,"operator";if(k.test(n))t.tokenize=d;else if("'"==n&&e.peek()&&"'"!=e.peek())t.tokenize=b;else if('"'==n)t.tokenize=m;else{if(!c.test(n))return t.tokenize=null,"error";t.tokenize=h}}return t.tokenize(e,t)},indent:function(e,t,n){if(null!=e.tokenize)return null;var r=e.level;return/(algorithm)/.test(t)&&r--,/(equation)/.test(t)&&r--,/(initial algorithm)/.test(t)&&r--,/(initial equation)/.test(t)&&r--,/(end)/.test(t)&&r--,r>0?n.unit*r:0},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:a}}}}]); +//# sourceMappingURL=8678.thebe-core.min.js.map \ No newline at end of file diff --git a/8727.thebe-core.min.js b/8727.thebe-core.min.js new file mode 100644 index 00000000..0e08b890 --- /dev/null +++ b/8727.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8727],{8727:(e,t,r)=>{function n(e,t){for(var r=void 0!==(t=t||{}).prefix?t.prefix:"^",n=void 0!==t.suffix?t.suffix:"\\b",o=0;oh});var o="(?=[^A-Za-z\\d\\-_]|$)",i=/[\w\-:]/,a=n([/begin|break|catch|continue|data|default|do|dynamicparam/,/else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,/param|process|return|switch|throw|trap|try|until|where|while/],{suffix:o}),s=n(["f",/b?not/,/[ic]?split/,"join",/is(not)?/,"as",/[ic]?(eq|ne|[gl][te])/,/[ic]?(not)?(like|match|contains)/,/[ic]?replace/,/b?(and|or|xor)/],{prefix:"-"}),u=n([s,/[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/],{suffix:""}),c=n([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),l=n([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),p={keyword:a,number:/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,operator:u,builtin:n([/[A-Z]:|%|\?/i,c,l],{suffix:o}),punctuation:/[\[\]{},;`\\\.]|@[({]/,variable:/^[A-Za-z\_][A-Za-z\-\_\d]*\b/};function m(e,t){var r=t.returnStack[t.returnStack.length-1];if(r&&r.shouldReturnFrom(t))return t.tokenize=r.tokenize,t.returnStack.pop(),t.tokenize(e,t);if(e.eatSpace())return null;if(e.eat("("))return t.bracketNesting+=1,"punctuation";if(e.eat(")"))return t.bracketNesting-=1,"punctuation";for(var n in p)if(e.match(p[n]))return n;var o=e.next();if("'"===o)return function(e,t){for(var r;null!=(r=e.peek());)if(e.next(),"'"===r&&!e.eat("'"))return t.tokenize=m,"string";return"error"}(e,t);if("$"===o)return v(e,t);if('"'===o)return S(e,t);if("<"===o&&e.eat("#"))return t.tokenize=b,b(e,t);if("#"===o)return e.skipToEnd(),"comment";if("@"===o){var a=e.eat(/["']/);if(a&&e.eol())return t.tokenize=k,t.startQuote=a[0],k(e,t);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(i))return v(e,t)}return"error"}function S(e,t){for(var r;null!=(r=e.peek());){if("$"===r)return t.tokenize=f,"string";if(e.next(),"`"!==r){if('"'===r&&!e.eat('"'))return t.tokenize=m,"string"}else e.next()}return"error"}function f(e,t){return d(e,t,S)}function P(e,t){return t.tokenize=k,t.startQuote='"',k(e,t)}function g(e,t){return d(e,t,P)}function d(e,t,r){if(e.match("$(")){var n=t.bracketNesting;return t.returnStack.push({shouldReturnFrom:function(e){return e.bracketNesting===n},tokenize:r}),t.tokenize=m,t.bracketNesting+=1,"punctuation"}return e.next(),t.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:r}),t.tokenize=v,t.tokenize(e,t)}function b(e,t){for(var r,n=!1;null!=(r=e.next());){if(n&&">"==r){t.tokenize=m;break}n="#"===r}return"comment"}function v(e,t){var r=e.peek();return e.eat("{")?(t.tokenize=C,C(e,t)):null!=r&&r.match(i)?(e.eatWhile(i),t.tokenize=m,"variable"):(t.tokenize=m,"error")}function C(e,t){for(var r;null!=(r=e.next());)if("}"===r){t.tokenize=m;break}return"variable"}function k(e,t){var r=t.startQuote;if(e.sol()&&e.match(new RegExp(r+"@")))t.tokenize=m;else if('"'===r)for(;!e.eol();){var n=e.peek();if("$"===n)return t.tokenize=g,"string";e.next(),"`"===n&&e.next()}else e.skipToEnd();return"string"}const h={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:m}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}}}}]); +//# sourceMappingURL=8727.thebe-core.min.js.map \ No newline at end of file diff --git a/8820.thebe-core.min.js b/8820.thebe-core.min.js new file mode 100644 index 00000000..b978a049 --- /dev/null +++ b/8820.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8820],{28820:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rv});var a,o=r("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode"),i=r("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait"),l=r("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath"),s=r("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode"),c=r("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when"),u=r("catch class do else finally for if switch try while"),p=r("true false null"),d={"#":function(e,t){return!!t.startOfLine&&(e.skipToEnd(),"meta")}},m=/[+\-*&%=<>!?|\/]/;function f(e,t){var n,r=e.next();if(d[r]){var y=d[r](e,t);if(!1!==y)return y}if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,a=!1,o=!1;null!=(r=e.next());){if(r==n&&!a){o=!0;break}a=!a&&"\\"==r}return!o&&a||(t.tokenize=f),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(r))return a=r,null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("*"))return t.tokenize=h,h(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(m.test(r))return e.eatWhile(m),"operator";e.eatWhile(/[\w\$_]/);var b=e.current().toLowerCase();if(o.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(a="newstatement"),"keyword";if(i.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(a="newstatement"),"variable";if(l.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(a="newstatement"),"modifier";if(s.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(a="newstatement"),"type";if(c.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(a="newstatement"),"builtin";for(var g=b.length-1;g>=0&&(!isNaN(b[g])||"_"==b[g]);)--g;if(g>0){var v=b.substr(0,g+1);if(s.propertyIsEnumerable(v))return u.propertyIsEnumerable(v)&&(a="newstatement"),"type"}return p.propertyIsEnumerable(b)?"atom":null}function h(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=f;break}r="*"==n}return"comment"}function y(e,t,n,r,a){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=a}function b(e,t,n){return e.context=new y(e.indented,t,n,null,e.context)}function g(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const v={name:"ecl",startState:function(e){return{tokenize:null,context:new y(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;a=null;var r=(t.tokenize||f)(e,t);if("comment"==r||"meta"==r)return r;if(null==n.align&&(n.align=!0),";"!=a&&":"!=a||"statement"!=n.type)if("{"==a)b(t,e.column(),"}");else if("["==a)b(t,e.column(),"]");else if("("==a)b(t,e.column(),")");else if("}"==a){for(;"statement"==n.type;)n=g(t);for("}"==n.type&&(n=g(t));"statement"==n.type;)n=g(t)}else a==n.type?g(t):("}"==n.type||"top"==n.type||"statement"==n.type&&"newstatement"==a)&&b(t,e.column(),"statement");else g(t);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=f&&null!=e.tokenize)return 0;var r=e.context,a=t&&t.charAt(0);"statement"==r.type&&"}"==a&&(r=r.prev);var o=a==r.type;return"statement"==r.type?r.indented+("{"==a?0:n.unit):r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}}}}]); +//# sourceMappingURL=8820.thebe-core.min.js.map \ No newline at end of file diff --git a/8955.thebe-core.min.js b/8955.thebe-core.min.js new file mode 100644 index 00000000..e6866353 --- /dev/null +++ b/8955.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[8955],{68955:(e,t,n)=>{n.r(t),n.d(t,{brainfuck:()=>c});var o="><+-.,[]".split("");const c={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,t){if(e.eatSpace())return null;e.sol()&&(t.commentLine=!1);var n=e.next().toString();return-1===o.indexOf(n)?(t.commentLine=!0,e.eol()&&(t.commentLine=!1),"comment"):!0===t.commentLine?(e.eol()&&(t.commentLine=!1),"comment"):"]"===n||"["===n?("["===n?t.left++:t.right++,"bracket"):"+"===n||"-"===n?"keyword":"<"===n||">"===n?"atom":"."===n||","===n?"def":void(e.eol()&&(t.commentLine=!1))}}}}]); +//# sourceMappingURL=8955.thebe-core.min.js.map \ No newline at end of file diff --git a/899.thebe-core.min.js b/899.thebe-core.min.js new file mode 100644 index 00000000..2928f8aa --- /dev/null +++ b/899.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[899],{50899:(E,t,e)=>{function R(E){var t=[];return E.split(" ").forEach((function(E){t.push({name:E})})),t}e.r(t),e.d(t,{forth:()=>T});var i=R("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),r=R("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function O(E,t){var e;for(e=E.length-1;e>=0;e--)if(E[e].name===t.toUpperCase())return E[e]}const T={name:"forth",startState:function(){return{state:"",base:10,coreWordList:i,immediateWordList:r,wordList:[]}},token:function(E,t){var e;if(E.eatSpace())return null;if(""===t.state){if(E.match(/^(\]|:NONAME)(\s|$)/i))return t.state=" compilation","builtin";if(e=E.match(/^(\:)\s+(\S+)(\s|$)+/))return t.wordList.push({name:e[2].toUpperCase()}),t.state=" compilation","def";if(e=E.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i))return t.wordList.push({name:e[2].toUpperCase()}),"def";if(e=E.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/))return"builtin"}else{if(E.match(/^(\;|\[)(\s)/))return t.state="",E.backUp(1),"builtin";if(E.match(/^(\;|\[)($)/))return t.state="","builtin";if(E.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}return(e=E.match(/^(\S+)(\s+|$)/))?void 0!==O(t.wordList,e[1])?"variable":"\\"===e[1]?(E.skipToEnd(),"comment"):void 0!==O(t.coreWordList,e[1])?"builtin":void 0!==O(t.immediateWordList,e[1])?"keyword":"("===e[1]?(E.eatWhile((function(E){return")"!==E})),E.eat(")"),"comment"):".("===e[1]?(E.eatWhile((function(E){return")"!==E})),E.eat(")"),"string"):'S"'===e[1]||'."'===e[1]||'C"'===e[1]?(E.eatWhile((function(E){return'"'!==E})),E.eat('"'),"string"):e[1]-68719476735?"number":"atom":void 0}}}}]); +//# sourceMappingURL=899.thebe-core.min.js.map \ No newline at end of file diff --git a/903.thebe-lite.min.js b/903.thebe-lite.min.js new file mode 100644 index 00000000..cbd70c28 --- /dev/null +++ b/903.thebe-lite.min.js @@ -0,0 +1,2 @@ +(()=>{var e,r,t={903:e=>{function r(e){return Promise.resolve().then((()=>{var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}))}r.keys=()=>[],r.resolve=r,r.id=903,e.exports=r}},o={};function i(e){var r=o[e];if(void 0!==r)return r.exports;var n=o[e]={exports:{}};return t[e](n,n.exports,i),n.exports}i.m=t,i.x=()=>{var e=i.O(void 0,[51],(()=>i(7051)));return i.O(e)},i.amdO={},e=[],i.O=(r,t,o,n)=>{if(!t){var a=1/0;for(l=0;l=n)&&Object.keys(i.O).every((e=>i.O[e](t[c])))?t.splice(c--,1):(p=!1,n0&&e[l-1][2]>n;l--)e[l]=e[l-1];e[l]=[t,o,n]},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((r,t)=>(i.f[t](e,r),r)),[])),i.u=e=>e+".thebe-lite.min.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{var e;i.g.importScripts&&(e=i.g.location+"");var r=i.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e={903:1,284:1};i.f.i=(r,t)=>{e[r]||importScripts(i.p+i.u(r))};var r=self.webpackChunkthebe_lite=self.webpackChunkthebe_lite||[],t=r.push.bind(r);r.push=r=>{var[o,n,a]=r;for(var p in n)i.o(n,p)&&(i.m[p]=n[p]);for(a&&a(i);o.length;)e[o.pop()]=1;t(r)}})(),r=i.x,i.x=()=>i.e(51).then(r),i.x()})(); +//# sourceMappingURL=903.thebe-lite.min.js.map \ No newline at end of file diff --git a/9114.thebe-core.min.js b/9114.thebe-core.min.js new file mode 100644 index 00000000..2e7b2e20 --- /dev/null +++ b/9114.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9114],{19114:(e,n,r)=>{r.r(n),r.d(n,{mbox:()=>p});var t=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],a=["Date","Subject","Comments","Keywords","Resent-Date"],i=/^[ \t]/,o=/^From /,s=new RegExp("^("+t.join("|")+"): "),c=new RegExp("^("+a.join("|")+"): "),d=/^[^:]+:/,m=/^[^ ]+@[^ ]+/,u=/^.*?(?=[^ ]+?@[^ ]+)/,l=/^<.*?>/,h=/^.*?(?=<.*>)/;const p={name:"mbox",startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:function(e,n){if(e.sol()){if(n.inSeparator=!1,n.inHeader&&e.match(i))return null;if(n.inHeader=!1,n.header=null,e.match(o))return n.inHeaders=!0,n.inSeparator=!0,"atom";var r,t=!1;return(r=e.match(c))||(t=!0)&&(r=e.match(s))?(n.inHeaders=!0,n.inHeader=!0,n.emailPermitted=t,n.header=r[1],"atom"):n.inHeaders&&(r=e.match(d))?(n.inHeader=!0,n.emailPermitted=!0,n.header=r[1],"atom"):(n.inHeaders=!1,e.skipToEnd(),null)}if(n.inSeparator)return e.match(m)?"link":(e.match(u)||e.skipToEnd(),"atom");if(n.inHeader){var a=function(e){return"Subject"===e?"header":"string"}(n.header);if(n.emailPermitted){if(e.match(l))return a+" link";if(e.match(h))return a}return e.skipToEnd(),a}return e.skipToEnd(),null},blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=!1},languageData:{autocomplete:t.concat(a)}}}}]); +//# sourceMappingURL=9114.thebe-core.min.js.map \ No newline at end of file diff --git a/9371.thebe-core.min.js b/9371.thebe-core.min.js new file mode 100644 index 00000000..c30896d0 --- /dev/null +++ b/9371.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9371],{39371:(t,r,e)=>{function o(t){return{name:"mscgen",startState:l,copyState:u,token:(r=t,function(t,e){if(t.match(s(r.brackets),!0,!0))return"bracket";if(!e.inComment){if(t.match(/\/\*[^\*\/]*/,!0,!0))return e.inComment=!0,"comment";if(t.match(s(r.singlecomment),!0,!0))return t.skipToEnd(),"comment"}if(e.inComment)return t.match(/[^\*\/]*\*\//,!0,!0)?e.inComment=!1:t.skipToEnd(),"comment";if(!e.inString&&t.match(/\"(\\\"|[^\"])*/,!0,!0))return e.inString=!0,"string";if(e.inString)return t.match(/[^\"]*\"/,!0,!0)?e.inString=!1:t.skipToEnd(),"string";if(r.keywords&&t.match(a(r.keywords),!0,!0))return"keyword";if(t.match(a(r.options),!0,!0))return"keyword";if(t.match(a(r.arcsWords),!0,!0))return"keyword";if(t.match(s(r.arcsOthers),!0,!0))return"keyword";if(r.operators&&t.match(s(r.operators),!0,!0))return"operator";if(r.constants&&t.match(s(r.constants),!0,!0))return"variable";if(!r.inAttributeList&&r.attributes&&t.match("[",!0,!0))return r.inAttributeList=!0,"bracket";if(r.inAttributeList){if(null!==r.attributes&&t.match(a(r.attributes),!0,!0))return"attribute";if(t.match("]",!0,!0))return r.inAttributeList=!1,"bracket"}return t.next(),null}),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}};var r}e.r(r),e.d(r,{mscgen:()=>n,msgenny:()=>i,xu:()=>c});const n=o({keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),i=o({keywords:null,options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),c=o({keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip","title","deactivate","activate","activation"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});function a(t){return new RegExp("^\\b("+t.join("|")+")\\b","i")}function s(t){return new RegExp("^(?:"+t.join("|")+")","i")}function l(){return{inComment:!1,inString:!1,inAttributeList:!1,inScript:!1}}function u(t){return{inComment:t.inComment,inString:t.inString,inAttributeList:t.inAttributeList,inScript:t.inScript}}}}]); +//# sourceMappingURL=9371.thebe-core.min.js.map \ No newline at end of file diff --git a/950.thebe-core.min.js b/950.thebe-core.min.js new file mode 100644 index 00000000..1869786e --- /dev/null +++ b/950.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[950],{60950:(e,t,n)=>{n.r(t),n.d(t,{toml:()=>r});const r={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,t){if(t.inString||'"'!=e.peek()&&"'"!=e.peek()||(t.stringType=e.peek(),e.next(),t.inString=!0),e.sol()&&0===t.inArray&&(t.lhs=!0),t.inString){for(;t.inString&&!e.eol();)e.peek()===t.stringType?(e.next(),t.inString=!1):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string"}return t.inArray&&"]"===e.peek()?(e.next(),t.inArray--,"bracket"):t.lhs&&"["===e.peek()&&e.skipTo("]")?(e.next(),"]"===e.peek()&&e.next(),"atom"):"#"===e.peek()?(e.skipToEnd(),"comment"):e.eatSpace()?null:t.lhs&&e.eatWhile((function(e){return"="!=e&&" "!=e}))?"property":t.lhs&&"="===e.peek()?(e.next(),t.lhs=!1,null):!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/)?"atom":t.lhs||!e.match("true")&&!e.match("false")?t.lhs||"["!==e.peek()?!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/)?"number":(e.eatSpace()||e.next(),null):(t.inArray++,e.next(),"bracket"):"atom"},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=950.thebe-core.min.js.map \ No newline at end of file diff --git a/9561.thebe-core.min.js b/9561.thebe-core.min.js new file mode 100644 index 00000000..5f29dccb --- /dev/null +++ b/9561.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9561],{69561:(e,t,i)=>{i.r(t),i.d(t,{yaml:()=>a});var r=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i");const a={name:"yaml",token:function(e,t){var i=e.peek(),a=t.escaped;if(t.escaped=!1,"#"==i&&(0==e.pos||/\s/.test(e.string.charAt(e.pos-1))))return e.skipToEnd(),"comment";if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(t.literal&&e.indentation()>t.keyCol)return e.skipToEnd(),"string";if(t.literal&&(t.literal=!1),e.sol()){if(t.keyCol=0,t.pair=!1,t.pairStart=!1,e.match("---"))return"def";if(e.match("..."))return"def";if(e.match(/^\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return"{"==i?t.inlinePairs++:"}"==i?t.inlinePairs--:"["==i?t.inlineList++:t.inlineList--,"meta";if(t.inlineList>0&&!a&&","==i)return e.next(),"meta";if(t.inlinePairs>0&&!a&&","==i)return t.keyCol=0,t.pair=!1,t.pairStart=!1,e.next(),"meta";if(t.pairStart){if(e.match(/^\s*(\||\>)\s*/))return t.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(0==t.inlinePairs&&e.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(t.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(r))return"keyword"}return!t.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(t.pair=!0,t.keyCol=e.indentation(),"atom"):t.pair&&e.match(/^:\s*/)?(t.pairStart=!0,"meta"):(t.pairStart=!1,t.escaped="\\"==i,e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=9561.thebe-core.min.js.map \ No newline at end of file diff --git a/9602.thebe-core.min.js b/9602.thebe-core.min.js new file mode 100644 index 00000000..c12d8e7b --- /dev/null +++ b/9602.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9602],{59602:(e,t,n)=>{function r(e){return{type:e,style:"keyword"}}n.r(t),n.d(t,{haxe:()=>ae,hxml:()=>ie});var a,i=r("keyword a"),o=r("keyword b"),l=r("keyword c"),u=r("operator"),c={type:"atom",style:"atom"},f={type:"attribute",style:"attribute"},s=r("typedef"),d={if:i,while:i,else:o,do:o,try:o,return:l,break:l,continue:l,new:l,throw:l,var:r("var"),inline:f,static:f,using:r("import"),public:f,private:f,cast:r("cast"),import:r("import"),macro:r("macro"),function:r("function"),catch:r("catch"),untyped:r("untyped"),callback:r("cb"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:u,never:r("property_access"),trace:r("trace"),class:s,abstract:s,enum:s,interface:s,typedef:s,extends:s,implements:s,dynamic:s,true:c,false:c,null:c},p=/[+\-*&%=<>!?|]/;function m(e,t,n){return t.tokenize=n,n(e,t)}function v(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t&&!r)return!0;r=!r&&"\\"==n}}function y(e,t,n){return s=e,a=n,t}function h(e,t){var n=e.next();if('"'==n||"'"==n)return m(e,t,(r=n,function(e,t){return v(e,r)&&(t.tokenize=h),y("string","string")}));if(/[\[\]{}\(\),;\:\.]/.test(n))return y(n);if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),y("number","number");if(/\d/.test(n)||"-"==n&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),y("number","number");if(t.reAllowed&&"~"==n&&e.eat(/\//))return v(e,"/"),e.eatWhile(/[gimsu]/),y("regexp","string.special");if("/"==n)return e.eat("*")?m(e,t,b):e.eat("/")?(e.skipToEnd(),y("comment","comment")):(e.eatWhile(p),y("operator",null,e.current()));if("#"==n)return e.skipToEnd(),y("conditional","meta");if("@"==n)return e.eat(/:/),e.eatWhile(/[\w_]/),y("metadata","meta");if(p.test(n))return e.eatWhile(p),y("operator",null,e.current());if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),y("type","type",a=e.current());e.eatWhile(/[\w_]/);var r,a=e.current(),i=d.propertyIsEnumerable(a)&&d[a];return i&&t.kwAllowed?y(i.type,i.style,a):y("variable","variable",a)}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=h;break}r="*"==n}return y("comment","comment")}var k={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function x(e,t,n,r,a,i){this.indented=e,this.column=t,this.type=n,this.prev=a,this.info=i,null!=r&&(this.align=r)}function w(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function g(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r=0;e--)V.cc.push(arguments[e])}function W(){return S.apply(null,arguments),!0}function z(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function T(e){var t=V.state;if(t.context){if(V.marked="def",z(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(z(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var E={name:"this",next:null};function _(){V.state.context||(V.state.localVars=E),V.state.context={prev:V.state.context,vars:V.state.localVars}}function D(){V.state.localVars=V.state.context.vars,V.state.context=V.state.context.prev}function O(e,t){var n=function(){var n=V.state;n.lexical=new x(n.indented,V.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function Z(){var e=V.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function P(e){return function t(n){return n==e?W():";"==e?S():W(t)}}function I(e){return"@"==e?W(F):"var"==e?W(O("vardef"),Q,P(";"),Z):"keyword a"==e?W(O("form"),C,I,Z):"keyword b"==e?W(O("form"),I,Z):"{"==e?W(O("}"),_,M,Z,D):";"==e?W():"attribute"==e?W(B):"function"==e?W(Y):"for"==e?W(O("form"),P("("),O(")"),U,P(")"),Z,I,Z):"variable"==e?W(O("stat"),H):"switch"==e?W(O("form"),C,O("}","switch"),P("{"),M,Z,Z):"case"==e?W(C,P(":")):"default"==e?W(P(":")):"catch"==e?W(O("form"),_,P("("),re,P(")"),I,Z,D):"import"==e?W(q,P(";")):"typedef"==e?W(G):S(O("stat"),C,P(";"),Z)}function C(e){return k.hasOwnProperty(e)||"type"==e?W($):"function"==e?W(Y):"keyword c"==e?W(N):"("==e?W(O(")"),N,P(")"),Z,$):"operator"==e?W(C):"["==e?W(O("]"),L(N,"]"),Z,$):"{"==e?W(O("}"),L(K,"}"),Z,$):W()}function N(e){return e.match(/[;\}\)\],]/)?S():S(C)}function $(e,t){return"operator"==e&&/\+\+|--/.test(t)?W($):"operator"==e||":"==e?W(C):";"!=e?"("==e?W(O(")"),L(C,")"),Z,$):"."==e?W(J,$):"["==e?W(O("]"),C,P("]"),Z,$):void 0:void 0}function B(e){return"attribute"==e?W(B):"function"==e?W(Y):"var"==e?W(Q):void 0}function F(e){return":"==e||"variable"==e?W(F):"("==e?W(O(")"),L(j,")"),Z,I):void 0}function j(e){if("variable"==e)return W()}function q(e,t){return"variable"==e&&/[A-Z]/.test(t.charAt(0))?(A(t),W()):"variable"==e||"property"==e||"."==e||"*"==t?W(q):void 0}function G(e,t){return"variable"==e&&/[A-Z]/.test(t.charAt(0))?(A(t),W()):"type"==e&&/[A-Z]/.test(t.charAt(0))?W():void 0}function H(e){return":"==e?W(Z,I):S($,P(";"),Z)}function J(e){if("variable"==e)return V.marked="property",W()}function K(e){if("variable"==e&&(V.marked="property"),k.hasOwnProperty(e))return W(P(":"),C)}function L(e,t){function n(r){return","==r?W(e,n):r==t?W():W(P(t))}return function(r){return r==t?W():S(e,n)}}function M(e){return"}"==e?W():S(I,M)}function Q(e,t){return"variable"==e?(T(t),W(ee,R)):W()}function R(e,t){return"="==t?W(C,R):","==e?W(Q):void 0}function U(e,t){return"variable"==e?(T(t),W(X,C)):S()}function X(e,t){if("in"==t)return W()}function Y(e,t){return"variable"==e||"type"==e?(T(t),W(Y)):"new"==t?W(Y):"("==e?W(O(")"),_,L(re,")"),Z,ee,I,D):void 0}function ee(e){if(":"==e)return W(te)}function te(e){return"type"==e||"variable"==e?W():"{"==e?W(O("}"),L(ne,"}"),Z):void 0}function ne(e){if("variable"==e)return W(ee)}function re(e,t){if("variable"==e)return T(t),W(ee)}D.lex=!0,Z.lex=!0;const ae={name:"haxe",startState:function(e){return{tokenize:h,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new x(-e,0,"block",!1),importedtypes:["Int","Float","String","Void","Std","Bool","Dynamic","Array"],context:null,indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==s?n:(t.reAllowed=!("operator"!=s&&"keyword c"!=s&&!s.match(/^[\[{}\(,;:]$/)),t.kwAllowed="."!=s,function(e,t,n,r,a){var i=e.cc;for(V.state=e,V.stream=a,V.marked=null,V.cc=i,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((i.length?i.pop():I)(n,r)){for(;i.length&&i[i.length-1].lex;)i.pop()();return V.marked?V.marked:"variable"==n&&w(e,r)?"variableName.local":"variable"==n&&g(e,r)?"variableName.special":t}}(t,n,s,a,e))},indent:function(e,t,n){if(e.tokenize!=h)return 0;var r=t&&t.charAt(0),a=e.lexical;"stat"==a.type&&"}"==r&&(a=a.prev);var i=a.type,o=r==i;return"vardef"==i?a.indented+4:"form"==i&&"{"==r?a.indented:"stat"==i||"form"==i?a.indented+n.unit:"switch"!=a.info||o?a.align?a.column+(o?0:1):a.indented+(o?0:n.unit):a.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},ie={name:"hxml",startState:function(){return{define:!1,inString:!1}},token:function(e,t){var n=e.peek(),r=e.sol();if("#"==n)return e.skipToEnd(),"comment";if(r&&"-"==n){var a="variable-2";return e.eat(/-/),"-"==e.peek()&&(e.eat(/-/),a="keyword a"),"D"==e.peek()&&(e.eat(/[D]/),a="keyword c",t.define=!0),e.eatWhile(/[A-Z]/i),a}return n=e.peek(),0==t.inString&&"'"==n&&(t.inString=!0,e.next()),1==t.inString?(e.skipTo("'")||e.skipToEnd(),"'"==e.peek()&&(e.next(),t.inString=!1),"string"):(e.next(),null)},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=9602.thebe-core.min.js.map \ No newline at end of file diff --git a/9638.thebe-core.min.js b/9638.thebe-core.min.js new file mode 100644 index 00000000..e8dffd72 --- /dev/null +++ b/9638.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9638],{49638:(r,t,n)=>{function e(r,t){return r.skipToEnd(),t.cur=s,"error"}function u(r,t){return r.match(/^HTTP\/\d\.\d/)?(t.cur=c,"keyword"):r.match(/^[A-Z]+/)&&/[ \t]/.test(r.peek())?(t.cur=i,"keyword"):e(r,t)}function c(r,t){var n=r.match(/^\d+/);if(!n)return e(r,t);t.cur=o;var u=Number(n[0]);return u>=100&&u<400?"atom":"error"}function o(r,t){return r.skipToEnd(),t.cur=s,null}function i(r,t){return r.eatWhile(/\S/),t.cur=a,"string.special"}function a(r,t){return r.match(/^HTTP\/\d\.\d$/)?(t.cur=s,"keyword"):e(r,t)}function s(r){return r.sol()&&!r.eat(/[ \t]/)?r.match(/^.*?:/)?"atom":(r.skipToEnd(),"error"):(r.skipToEnd(),"string")}function k(r){return r.skipToEnd(),null}n.r(t),n.d(t,{http:()=>d});const d={name:"http",token:function(r,t){var n=t.cur;return n!=s&&n!=k&&r.eatSpace()?null:n(r,t)},blankLine:function(r){r.cur=k},startState:function(){return{cur:u}}}}}]); +//# sourceMappingURL=9638.thebe-core.min.js.map \ No newline at end of file diff --git a/9684.thebe-core.min.js b/9684.thebe-core.min.js new file mode 100644 index 00000000..9169f26a --- /dev/null +++ b/9684.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9684],{99684:(t,e,n)=>{var o;function r(t){return new RegExp("^(?:"+t.join("|")+")$","i")}n.r(e),n.d(e,{turtle:()=>p}),r([]);var c=r(["@prefix","@base","a"]),i=/[*+\-<>=&|]/;function a(t,e){var n,r=t.next();if(o=null,"<"!=r||t.match(/^[\s\u00a0=]/,!1)){if('"'==r||"'"==r)return e.tokenize=(n=r,function(t,e){for(var o,r=!1;null!=(o=t.next());){if(o==n&&!r){e.tokenize=a;break}r=!r&&"\\"==o}return"string"}),e.tokenize(t,e);if(/[{}\(\),\.;\[\]]/.test(r))return o=r,null;if("#"==r)return t.skipToEnd(),"comment";if(i.test(r))return t.eatWhile(i),null;if(":"==r)return"operator";if(t.eatWhile(/[_\w\d]/),":"==t.peek())return"variableName.special";var l=t.current();return c.test(l)?"meta":r>="A"&&r<="Z"?"comment":"keyword"}return t.match(/^[^\s\u00a0>]*>?/),"atom"}function l(t,e,n){t.context={prev:t.context,indent:t.indent,col:n,type:e}}function u(t){t.indent=t.context.indent,t.context=t.context.prev}const p={name:"turtle",startState:function(){return{tokenize:a,context:null,indent:0,col:0}},token:function(t,e){if(t.sol()&&(e.context&&null==e.context.align&&(e.context.align=!1),e.indent=t.indentation()),t.eatSpace())return null;var n=e.tokenize(t,e);if("comment"!=n&&e.context&&null==e.context.align&&"pattern"!=e.context.type&&(e.context.align=!0),"("==o)l(e,")",t.column());else if("["==o)l(e,"]",t.column());else if("{"==o)l(e,"}",t.column());else if(/[\]\}\)]/.test(o)){for(;e.context&&"pattern"==e.context.type;)u(e);e.context&&o==e.context.type&&u(e)}else"."==o&&e.context&&"pattern"==e.context.type?u(e):/atom|string|variable/.test(n)&&e.context&&(/[\}\]]/.test(e.context.type)?l(e,"pattern",t.column()):"pattern"!=e.context.type||e.context.align||(e.context.align=!0,e.context.col=t.column()));return n},indent:function(t,e,n){var o=e&&e.charAt(0),r=t.context;if(/[\]\}]/.test(o))for(;r&&"pattern"==r.type;)r=r.prev;var c=r&&o==r.type;return r?"pattern"==r.type?r.col:r.align?r.col+(c?0:1):r.indent+(c?0:n.unit):0},languageData:{commentTokens:{line:"#"}}}}}]); +//# sourceMappingURL=9684.thebe-core.min.js.map \ No newline at end of file diff --git a/9779.thebe-core.min.js b/9779.thebe-core.min.js new file mode 100644 index 00000000..bdc178cf --- /dev/null +++ b/9779.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9779],{79779:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rM});const i={name:"ttcn",keywords:r("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),builtin:r("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),types:r("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),timerOps:r("read running start stop timeout"),portOps:r("call catch check clear getcall getreply halt raise receive reply send trigger"),configOps:r("create connect disconnect done kill killed map unmap"),verdictOps:r("getverdict setverdict"),sutOps:r("action"),functionOps:r("apply derefers refers"),verdictConsts:r("error fail inconc none pass"),booleanConsts:r("true false"),otherConsts:r("null NULL omit"),visibilityModifiers:r("private public friend"),templateMatch:r("complement ifpresent subset superset permutation"),multiLineStrings:!0};var o=[];function a(e){if(e)for(var t in e)e.hasOwnProperty(t)&&o.push(t)}a(i.keywords),a(i.builtin),a(i.timerOps),a(i.portOps);var s,l=i.keywords||{},c=i.builtin||{},u=i.timerOps||{},p=i.portOps||{},m=i.configOps||{},f=i.verdictOps||{},d=i.sutOps||{},b=i.functionOps||{},h=i.verdictConsts||{},y=i.booleanConsts||{},v=i.otherConsts||{},g=i.types||{},x=i.visibilityModifiers||{},k=i.templateMatch||{},O=i.multiLineStrings,w=!1!==i.indentStatements,E=/[+\-*&@=<>!\/]/;function I(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){var a=e.peek();a&&("b"!=(a=a.toLowerCase())&&"h"!=a&&"o"!=a||e.next()),o=!0;break}i=!i&&"\\"==r}return(o||!i&&!O)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(r))return s=r,"punctuation";if("#"==r)return e.skipToEnd(),"atom";if("%"==r)return e.eatWhile(/\b/),"atom";if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("*"))return t.tokenize=z,z(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(E.test(r))return"@"==r&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(E),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var i=e.current();return l.propertyIsEnumerable(i)?"keyword":c.propertyIsEnumerable(i)?"builtin":u.propertyIsEnumerable(i)||m.propertyIsEnumerable(i)||f.propertyIsEnumerable(i)||p.propertyIsEnumerable(i)||d.propertyIsEnumerable(i)||b.propertyIsEnumerable(i)?"def":h.propertyIsEnumerable(i)||y.propertyIsEnumerable(i)||v.propertyIsEnumerable(i)?"string":g.propertyIsEnumerable(i)?"typeName.standard":x.propertyIsEnumerable(i)?"modifier":k.propertyIsEnumerable(i)?"atom":"variable"}function z(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function C(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function L(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new C(r,t,n,null,e.context)}function S(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const M={name:"ttcn",startState:function(){return{tokenize:null,context:new C(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;s=null;var r=(t.tokenize||I)(e,t);if("comment"==r)return r;if(null==n.align&&(n.align=!0),";"!=s&&":"!=s&&","!=s||"statement"!=n.type)if("{"==s)L(t,e.column(),"}");else if("["==s)L(t,e.column(),"]");else if("("==s)L(t,e.column(),")");else if("}"==s){for(;"statement"==n.type;)n=S(t);for("}"==n.type&&(n=S(t));"statement"==n.type;)n=S(t)}else s==n.type?S(t):w&&(("}"==n.type||"top"==n.type)&&";"!=s||"statement"==n.type&&"newstatement"==s)&&L(t,e.column(),"statement");else S(t);return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:o}}}}]); +//# sourceMappingURL=9779.thebe-core.min.js.map \ No newline at end of file diff --git a/9865.thebe-core.min.js b/9865.thebe-core.min.js new file mode 100644 index 00000000..fe74c30e --- /dev/null +++ b/9865.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9865],{59865:(e,t,n)=>{function r(e){var t="error";function n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),a=new RegExp("^((<>)|(<=)|(>=))"),i=new RegExp("^[\\.,]"),o=new RegExp("^[\\(\\)]"),c=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),b=n(["and","or","not","xor","is","mod","eqv","imp"]),l=["WScript","err","debug","RegExp"],s=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"].concat(["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"]);l=l.concat(["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"]),e.isASP&&(l=l.concat(["server","response","request","session","application"]),s=s.concat(["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"]));var u=n(["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"]),v=n(["true","false","nothing","empty","null"]),d=n(["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"]),m=n(l),p=n(s),h=n(["class","sub","select","while","if","function","property","with","for"]),f=n(["else","elseif","case"]),y=n(["next","loop","wend"]),g=n(["end"]),k=n(["do"]),x=n(["on error resume next","exit"]),w=n(["rem"]);function C(e,t){t.currentIndent++}function I(e,t){t.currentIndent--}function L(e,n){if(e.eatSpace())return null;var l,s,S;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(w))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var D=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(D=!0),D)return e.eat(/J/i),"number";var E=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?E=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),E=!0):e.match(/^0(?![\dx])/i)&&(E=!0),E)return e.eat(/L/i),"number"}return e.match('"')?(n.tokenize=(l=e.current(),s=1==l.length,S="string",function(e,t){for(;!e.eol();){if(e.eatWhile(/[^'"]/),e.match(l))return t.tokenize=L,S;e.eat(/['"]/)}return s&&(t.tokenize=L),S}),n.tokenize(e,n)):e.match(a)||e.match(r)||e.match(b)?"operator":e.match(i)?null:e.match(o)?"bracket":e.match(x)?(n.doInCurrentLine=!0,"keyword"):e.match(k)?(C(0,n),n.doInCurrentLine=!0,"keyword"):e.match(h)?(n.doInCurrentLine?n.doInCurrentLine=!1:C(0,n),"keyword"):e.match(f)?"keyword":e.match(g)?(I(0,n),I(0,n),"keyword"):e.match(y)?(n.doInCurrentLine?n.doInCurrentLine=!1:I(0,n),"keyword"):e.match(u)?"keyword":e.match(v)?"atom":e.match(p)?"variableName.special":e.match(d)||e.match(m)?"builtin":e.match(c)?"variable":(e.next(),t)}return{name:"vbscript",startState:function(){return{tokenize:L,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var r=function(e,n){var r=n.tokenize(e,n),a=e.current();return"."===a?(r=n.tokenize(e,n),a=e.current(),!r||"variable"!==r.substr(0,8)&&"builtin"!==r&&"keyword"!==r?t:("builtin"!==r&&"keyword"!==r||(r="variable"),s.indexOf(a.substr(1))>-1&&(r="keyword"),r)):r}(e,n);return n.lastToken={style:r,content:e.current()},null===r&&(r=null),r},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(y)||r.match(g)||r.match(f)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit}}}n.r(t),n.d(t,{vbScript:()=>a,vbScriptASP:()=>i});const a=r({}),i=r({isASP:!0})}}]); +//# sourceMappingURL=9865.thebe-core.min.js.map \ No newline at end of file diff --git a/9981.thebe-core.min.js b/9981.thebe-core.min.js new file mode 100644 index 00000000..0cea43ca --- /dev/null +++ b/9981.thebe-core.min.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkthebe_core=self.webpackChunkthebe_core||[]).push([[9981],{19981:(e,t,n)=>{n.r(t),n.d(t,{smalltalk:()=>p});var a=/[+\-\/\\*~<>=@%|&?!.,:;^]/,i=/true|false|nil|self|super|thisContext/,r=function(e,t){this.next=e,this.parent=t},s=function(e,t,n){this.name=e,this.context=t,this.eos=n},o=function(){this.context=new r(l,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};o.prototype.userIndent=function(e,t){this.userIndentationDelta=e>0?e/t-this.indentation:0};var l=function(e,t,n){var o=new s(null,t,!1),l=e.next();return'"'===l?o=u(e,new r(u,t)):"'"===l?o=c(e,new r(c,t)):"#"===l?"'"===e.peek()?(e.next(),o=h(e,new r(h,t))):e.eatWhile(/[^\s.{}\[\]()]/)?o.name="string.special":o.name="meta":"$"===l?("<"===e.next()&&(e.eatWhile(/[^\s>]/),e.next()),o.name="string.special"):"|"===l&&n.expectVariable?o.context=new r(x,t):/[\[\]{}()]/.test(l)?(o.name="bracket",o.eos=/[\[{(]/.test(l),"["===l?n.indentation++:"]"===l&&(n.indentation=Math.max(0,n.indentation-1))):a.test(l)?(e.eatWhile(a),o.name="operator",o.eos=";"!==l):/\d/.test(l)?(e.eatWhile(/[\w\d]/),o.name="number"):/[\w_]/.test(l)?(e.eatWhile(/[\w\d_]/),o.name=n.expectVariable?i.test(e.current())?"keyword":"variable":null):o.eos=n.expectVariable,o},u=function(e,t){return e.eatWhile(/[^"]/),new s("comment",e.eat('"')?t.parent:t,!0)},c=function(e,t){return e.eatWhile(/[^']/),new s("string",e.eat("'")?t.parent:t,!1)},h=function(e,t){return e.eatWhile(/[^']/),new s("string.special",e.eat("'")?t.parent:t,!1)},x=function(e,t){var n=new s(null,t,!1);return"|"===e.next()?(n.context=t.parent,n.eos=!0):(e.eatWhile(/[^|]/),n.name="variable"),n};const p={name:"smalltalk",startState:function(){return new o},token:function(e,t){if(t.userIndent(e.indentation(),e.indentUnit),e.eatSpace())return null;var n=t.context.next(e,t.context,t);return t.context=n.context,t.expectVariable=n.eos,n.name},blankLine:function(e,t){e.userIndent(0,t)},indent:function(e,t,n){var a=e.context.next===l&&t&&"]"===t.charAt(0)?-1:e.userIndentationDelta;return(e.indentation+a)*n.unit},languageData:{indentOnInput:/^\s*\]$/}}}}]); +//# sourceMappingURL=9981.thebe-core.min.js.map \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 9ef9f997..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,73 +0,0 @@ -# Contributing - -We very much welcome contributions! If you have an idea or proposal for a new -tutorial, please [open an issue](https://github.com/numpy/numpy-tutorials/issues) -with an outline. - -Don’t worry if English is not your first language, or if you can only come up -with a rough draft. Open source is a community effort. Do your best – we’ll help -fix issues. - -Images and real-life data make text more engaging and powerful, but be sure what -you use is appropriately licensed and available. Here again, even a rough idea -for artwork can be polished by others. - -## Building the website - -```{note} -The NumPy tutorials are powered by [`jupyter-book`][jb-docs] and the -[`MyST` document engine][mystmd]. -See the linked documentation for further details. -``` - -[jb-docs]: https://jupyterbook.org/stable/ -[mystmd]: https://mystmd.org/ - -### Quickstart - -Set up a development environment with the dependencies listed in -`requirements.txt`. -For example, using the built-in [`venv`][venv] module: - -```bash -python -m venv np-tutorials -source np-tutorials/bin/activate -python -m pip install -r requirements.txt -``` - -[venv]: https://docs.python.org/3/library/venv.html - -The site can then be built with: - -```bash -jupyter-book start --execute -``` - -This will execute all the notebooks and start a web server to view the rendered -content locally. -View the rendered site by opening the ``localhost:30xy`` in your preferred browser (the exact port number will be printed in your terminal). - -## Adding your own tutorials - -If you have your own tutorial in the form of a Jupyter notebook (an `.ipynb` -file) and you'd like to try add it out to the repository, follow the steps below. - -### Create an issue - -Go to and create a new issue -with your proposal. -Give as much detail as you can about what kind of content you would like to -write (tutorial, how-to) and what you plan to cover. -We will try to respond as quickly as possible with comments, if applicable. - -### Check out our suggested template - -You can use this template to make your content consistent with our existing -tutorials. - -### Open a pull request - -For more information about GitHub and its workflow, you can see -[this document][collab]. - -[collab]: https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests diff --git a/LICENSE.txt b/LICENSE.txt deleted file mode 100644 index 014d51c9..00000000 --- a/LICENSE.txt +++ /dev/null @@ -1,30 +0,0 @@ -Copyright (c) 2005-2023, NumPy Developers. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - * Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - - * Neither the name of the NumPy Developers nor the names of any - contributors may be used to endorse or promote products derived - from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md deleted file mode 100644 index 5109e2c9..00000000 --- a/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# NumPy tutorials - -_For the rendered tutorials, see https://numpy.org/numpy-tutorials/._ - -The goal of this repository is to provide high-quality resources by the -NumPy project, both for self-learning and for teaching classes with. If you're -interested in adding your own content, check the [Contributing](#contributing) -section. This set of tutorials and educational materials is not a part of the -NumPy source tree. - -To download a local copy of the `.ipynb` files, you can either -[clone this repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) -or navigate to any of the documents listed below and download it individually. - -## Content - -0. [Learn to write a NumPy tutorial](content/tutorial-style-guide.md): our style guide for writing tutorials. -1. [Tutorial: Linear algebra on n-dimensional arrays](content/tutorial-svd.md) -2. [Tutorial: Determining Moore's Law with real data in NumPy](content/mooreslaw-tutorial.md) -3. [Tutorial: Saving and sharing your NumPy arrays](content/save-load-arrays.md) -4. [Tutorial: NumPy deep learning on MNIST from scratch](content/tutorial-deep-learning-on-mnist.md) -5. [Tutorial: X-ray image processing](content/tutorial-x-ray-image-processing.md) -6. [Tutorial: Masked Arrays](content/tutorial-ma.md) -7. [Tutorial: Static Equilibrium](content/tutorial-static_equilibrium.md) -8. [Tutorial: Plotting Fractals](content/tutorial-plotting-fractals.ipynb) -9. [Tutorial: Analysing the impact of the lockdown on air quality in Delhi, India](content/tutorial-air-quality-analysis.md) - -## Translations - -While we don't have the capacity to translate and maintain translated versions -of these tutorials, you are free to use and translate them to other languages. - -## Useful links and resources - -The following links may be useful: - -- [NumPy Code of Conduct](https://numpy.org/doc/stable/dev/conduct/code_of_conduct.html) -- [Main NumPy documentation](https://numpy.org/doc/stable/) -- [NumPy documentation team meeting notes](https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg?both) -- [NEP 44 - Restructuring the NumPy documentation](https://numpy.org/neps/nep-0044-restructuring-numpy-docs.html) -- [Blog post - Documentation as a way to build Community](https://labs.quansight.org/blog/2020/03/documentation-as-a-way-to-build-community/) - -Note that regular documentation issues for NumPy can be found in the [main NumPy -repository](https://github.com/numpy/numpy/issues) (see the `Documentation` -labels there). - diff --git a/content/_static/01-mooreslaw-tutorial-intro.png b/build/01-mooreslaw-tutoria-68d0ad466c300d347c517c09cd29d0d9.png similarity index 100% rename from content/_static/01-mooreslaw-tutorial-intro.png rename to build/01-mooreslaw-tutoria-68d0ad466c300d347c517c09cd29d0d9.png diff --git a/build/0731d9ff394c572db56e83187ed9a359.png b/build/0731d9ff394c572db56e83187ed9a359.png new file mode 100644 index 00000000..a0de37bd Binary files /dev/null and b/build/0731d9ff394c572db56e83187ed9a359.png differ diff --git a/build/097761922f88943bda1d623b56078c43.png b/build/097761922f88943bda1d623b56078c43.png new file mode 100644 index 00000000..98aa9e0e Binary files /dev/null and b/build/097761922f88943bda1d623b56078c43.png differ diff --git a/build/0af5964dc0b4e30f177f4bb98384bc83.png b/build/0af5964dc0b4e30f177f4bb98384bc83.png new file mode 100644 index 00000000..436ff889 Binary files /dev/null and b/build/0af5964dc0b4e30f177f4bb98384bc83.png differ diff --git a/content/_static/11-breakpoints.png b/build/11-breakpoints-a3f29c8d952b84c3ef15c4eabbef8b15.png similarity index 100% rename from content/_static/11-breakpoints.png rename to build/11-breakpoints-a3f29c8d952b84c3ef15c4eabbef8b15.png diff --git a/content/_static/11-delhi-aqi.jpg b/build/11-delhi-aqi-5fa295dd14ed05daaf4cd0193122e2f7.jpg similarity index 100% rename from content/_static/11-delhi-aqi.jpg rename to build/11-delhi-aqi-5fa295dd14ed05daaf4cd0193122e2f7.jpg diff --git a/content/_static/11-one-tailed-test.svg b/build/11-one-tailed-test-26f804268f5109df12b6c8bf7575a889.svg similarity index 100% rename from content/_static/11-one-tailed-test.svg rename to build/11-one-tailed-test-26f804268f5109df12b6c8bf7575a889.svg diff --git a/content/_static/11-t-table.png b/build/11-t-table-d12dae458a6b083f5faf898243eb55a7.png similarity index 100% rename from content/_static/11-t-table.png rename to build/11-t-table-d12dae458a6b083f5faf898243eb55a7.png diff --git a/build/148e401c7918fe835f37bb19bbaa47a1.png b/build/148e401c7918fe835f37bb19bbaa47a1.png new file mode 100644 index 00000000..974218b0 Binary files /dev/null and b/build/148e401c7918fe835f37bb19bbaa47a1.png differ diff --git a/build/1a1b90da54c31fed129c30fe10488118.png b/build/1a1b90da54c31fed129c30fe10488118.png new file mode 100644 index 00000000..3c921fad Binary files /dev/null and b/build/1a1b90da54c31fed129c30fe10488118.png differ diff --git a/build/1a2284319e0d322678f64affd6559fb8.png b/build/1a2284319e0d322678f64affd6559fb8.png new file mode 100644 index 00000000..cab8227b Binary files /dev/null and b/build/1a2284319e0d322678f64affd6559fb8.png differ diff --git a/build/21c42634d859dbfb953a90899045e9c4.png b/build/21c42634d859dbfb953a90899045e9c4.png new file mode 100644 index 00000000..9800690a Binary files /dev/null and b/build/21c42634d859dbfb953a90899045e9c4.png differ diff --git a/build/22b9a0a62cd1293f64b2f8fd1b183678.png b/build/22b9a0a62cd1293f64b2f8fd1b183678.png new file mode 100644 index 00000000..a2e612d2 Binary files /dev/null and b/build/22b9a0a62cd1293f64b2f8fd1b183678.png differ diff --git a/build/329b2cbe8a8967fce9752d6047359f39.png b/build/329b2cbe8a8967fce9752d6047359f39.png new file mode 100644 index 00000000..67ccec5f Binary files /dev/null and b/build/329b2cbe8a8967fce9752d6047359f39.png differ diff --git a/build/32cf3b00cac9e8a53719f5386506d010.png b/build/32cf3b00cac9e8a53719f5386506d010.png new file mode 100644 index 00000000..41509757 Binary files /dev/null and b/build/32cf3b00cac9e8a53719f5386506d010.png differ diff --git a/build/38e352e1436e8d0b56dcbf29608cedc9.png b/build/38e352e1436e8d0b56dcbf29608cedc9.png new file mode 100644 index 00000000..0cde4542 Binary files /dev/null and b/build/38e352e1436e8d0b56dcbf29608cedc9.png differ diff --git a/build/43d6df6d783dcec1841702887e284aa6.png b/build/43d6df6d783dcec1841702887e284aa6.png new file mode 100644 index 00000000..49d1daac Binary files /dev/null and b/build/43d6df6d783dcec1841702887e284aa6.png differ diff --git a/build/49b563b2585d80f061e4651c37e52da7.png b/build/49b563b2585d80f061e4651c37e52da7.png new file mode 100644 index 00000000..22a49c28 Binary files /dev/null and b/build/49b563b2585d80f061e4651c37e52da7.png differ diff --git a/build/56554e3d11983df8f484e8d7b2c2bdae.png b/build/56554e3d11983df8f484e8d7b2c2bdae.png new file mode 100644 index 00000000..dd932dc5 Binary files /dev/null and b/build/56554e3d11983df8f484e8d7b2c2bdae.png differ diff --git a/build/5bffdb870c5e856cb5ffe56f0d2e9372.png b/build/5bffdb870c5e856cb5ffe56f0d2e9372.png new file mode 100644 index 00000000..122e79a8 Binary files /dev/null and b/build/5bffdb870c5e856cb5ffe56f0d2e9372.png differ diff --git a/build/613f065b167d8d181b5dc5e1173b74db.png b/build/613f065b167d8d181b5dc5e1173b74db.png new file mode 100644 index 00000000..1ad8d995 Binary files /dev/null and b/build/613f065b167d8d181b5dc5e1173b74db.png differ diff --git a/build/705b0ce4ba67115fce959db22ca0f373.png b/build/705b0ce4ba67115fce959db22ca0f373.png new file mode 100644 index 00000000..a8bbeed5 Binary files /dev/null and b/build/705b0ce4ba67115fce959db22ca0f373.png differ diff --git a/build/77afc43dcd6aa9aa05c2dbe6889dec36.png b/build/77afc43dcd6aa9aa05c2dbe6889dec36.png new file mode 100644 index 00000000..15c85587 Binary files /dev/null and b/build/77afc43dcd6aa9aa05c2dbe6889dec36.png differ diff --git a/build/7aac38b838e1a5bb8292ca93f7ce483a.png b/build/7aac38b838e1a5bb8292ca93f7ce483a.png new file mode 100644 index 00000000..7eae21fa Binary files /dev/null and b/build/7aac38b838e1a5bb8292ca93f7ce483a.png differ diff --git a/build/7b41357f6d283d49ca96c4167104abbc.png b/build/7b41357f6d283d49ca96c4167104abbc.png new file mode 100644 index 00000000..9a35e0d1 Binary files /dev/null and b/build/7b41357f6d283d49ca96c4167104abbc.png differ diff --git a/build/7f84e402be89c586dd50d9df108361bf.png b/build/7f84e402be89c586dd50d9df108361bf.png new file mode 100644 index 00000000..bcf49677 Binary files /dev/null and b/build/7f84e402be89c586dd50d9df108361bf.png differ diff --git a/build/7fbde6b0eca93c7afca99c9aa7d7c976.png b/build/7fbde6b0eca93c7afca99c9aa7d7c976.png new file mode 100644 index 00000000..bdecabcb Binary files /dev/null and b/build/7fbde6b0eca93c7afca99c9aa7d7c976.png differ diff --git a/build/8029006171269554ba8689610764fe05.png b/build/8029006171269554ba8689610764fe05.png new file mode 100644 index 00000000..1c7435cc Binary files /dev/null and b/build/8029006171269554ba8689610764fe05.png differ diff --git a/build/80de5099287a440db16b0d06207362e9.png b/build/80de5099287a440db16b0d06207362e9.png new file mode 100644 index 00000000..04879d16 Binary files /dev/null and b/build/80de5099287a440db16b0d06207362e9.png differ diff --git a/build/850f37a471269c156ed7f8880c97d499.png b/build/850f37a471269c156ed7f8880c97d499.png new file mode 100644 index 00000000..5c0cd046 Binary files /dev/null and b/build/850f37a471269c156ed7f8880c97d499.png differ diff --git a/build/87249290c03a34d5ea6dd3cb94f73280.png b/build/87249290c03a34d5ea6dd3cb94f73280.png new file mode 100644 index 00000000..2c72f387 Binary files /dev/null and b/build/87249290c03a34d5ea6dd3cb94f73280.png differ diff --git a/build/8d1b8d92abd4f3525e6ed69252e92ac7.png b/build/8d1b8d92abd4f3525e6ed69252e92ac7.png new file mode 100644 index 00000000..efde9368 Binary files /dev/null and b/build/8d1b8d92abd4f3525e6ed69252e92ac7.png differ diff --git a/build/8d408d609f4c318002e526815c6d7da4.png b/build/8d408d609f4c318002e526815c6d7da4.png new file mode 100644 index 00000000..ba5cc903 Binary files /dev/null and b/build/8d408d609f4c318002e526815c6d7da4.png differ diff --git a/build/92114b78b40d8deb0fce5ce7359a888b.png b/build/92114b78b40d8deb0fce5ce7359a888b.png new file mode 100644 index 00000000..75d2fcfa Binary files /dev/null and b/build/92114b78b40d8deb0fce5ce7359a888b.png differ diff --git a/build/94861864bba1e0fd4df66f1b502847f7.png b/build/94861864bba1e0fd4df66f1b502847f7.png new file mode 100644 index 00000000..19663b2b Binary files /dev/null and b/build/94861864bba1e0fd4df66f1b502847f7.png differ diff --git a/build/9aa344b7da03996ff0db35a1e22c3516.png b/build/9aa344b7da03996ff0db35a1e22c3516.png new file mode 100644 index 00000000..8e3b72f5 Binary files /dev/null and b/build/9aa344b7da03996ff0db35a1e22c3516.png differ diff --git a/build/9bfa54ee176bb8a2f4ed6bc30af95142.png b/build/9bfa54ee176bb8a2f4ed6bc30af95142.png new file mode 100644 index 00000000..42bc06e4 Binary files /dev/null and b/build/9bfa54ee176bb8a2f4ed6bc30af95142.png differ diff --git a/build/9c07c4f86dd02b243a8eec9094bc14fc.png b/build/9c07c4f86dd02b243a8eec9094bc14fc.png new file mode 100644 index 00000000..83a7a5e9 Binary files /dev/null and b/build/9c07c4f86dd02b243a8eec9094bc14fc.png differ diff --git a/build/_assets/add-EXEHS4L2.svg b/build/_assets/add-EXEHS4L2.svg new file mode 100644 index 00000000..8ee56ce2 --- /dev/null +++ b/build/_assets/add-EXEHS4L2.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/add-above-DJUVZDA6.svg b/build/_assets/add-above-DJUVZDA6.svg new file mode 100644 index 00000000..148de8db --- /dev/null +++ b/build/_assets/add-above-DJUVZDA6.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/build/_assets/add-below-JUD23Q32.svg b/build/_assets/add-below-JUD23Q32.svg new file mode 100644 index 00000000..51a4c8a8 --- /dev/null +++ b/build/_assets/add-below-JUD23Q32.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/build/_assets/app-MOQGDXHO.css b/build/_assets/app-MOQGDXHO.css new file mode 100644 index 00000000..6aa5f88e --- /dev/null +++ b/build/_assets/app-MOQGDXHO.css @@ -0,0 +1,2 @@ +*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.prose table td,.prose table th{padding:.25rem;vertical-align:top}@media (min-width:640px){.prose table td,.prose table th{padding:.5rem}}.prose table li,.prose table p{margin-top:0;margin-bottom:0}.prose figure table{margin-top:1.25rem;margin-bottom:0}.prose table ol>li,.prose table ul>li{padding-left:0}.prose table tr:hover td{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.prose table tr:hover td:is(.dark *){--tw-bg-opacity:1;background-color:rgb(41 37 36/var(--tw-bg-opacity,1))}.prose table td dl{margin:0}.prose dt>strong{font-weight:700;--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.prose dt>strong:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.prose dd{margin-left:2rem}.article dd>a>img,.article dd>img,.article p>a>img,.article p>img,.prose dd>a>img,.prose dd>img,.prose p>a>img,.prose p>img{margin:0;display:inline-block;max-height:1.2em;vertical-align:text-bottom}article.\!content{min-height:100vh!important}article.content{min-height:100vh}.article table td,.article table th{padding:.25rem;vertical-align:top}@media (min-width:640px){.article table td,.article table th{padding:.5rem}}.article table li,.article table p{margin-top:0;margin-bottom:0}.article figure table{margin-top:1.25rem;margin-bottom:0}.article table ol>li,.article table ul>li{padding-left:0}.article table tr:hover td{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.article table tr:hover td:is(.dark *){--tw-bg-opacity:1;background-color:rgb(41 37 36/var(--tw-bg-opacity,1))}.article table td dl{margin:0}.article dt>strong{font-weight:700;--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.article dt>strong:is(.dark *){--tw-text-opacity:1;color:rgb(219 234 254/var(--tw-text-opacity,1))}.article dd{margin-left:2rem}.article dd>a>img,.article dd>img,.article p>a>img,.article p>img{margin:0;display:inline-block;max-height:1.2em;vertical-align:text-bottom}.article .task-list-item>p{margin-top:0;margin-bottom:0;display:inline}.article{color:var(--tw-prose-body);max-width:65ch}.article :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.article :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.article :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.article :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.article :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.article :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.article :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.article :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.article :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.article :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.article :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.article :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.article :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.article :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.article :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.article :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.article :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.article :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.article :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.article :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.article :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.article :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.article :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.article :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.article :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.article :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.article :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.article :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.article :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.article :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.article :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.article :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.article :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:400;font-size:.875em}.article :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.article :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.article :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.article :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.article :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.article :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.article :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.article :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.article :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.article :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.article :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.article :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.article :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.article :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.article :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.article :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.article{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.article :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.article :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.article :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.article :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.article :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.article :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.article :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.article :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.article :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.article :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.article :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.article :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.article :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.article :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.article :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.article :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.article :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.article :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.article :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.article :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.article :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.article :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.article :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.article :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.article :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.article :where(li>p,dd>p,header>p,footer>p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.article :where(h5,h6):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:500}.article{--tw-prose-body:#44403c;--tw-prose-headings:#1c1917;--tw-prose-lead:#57534e;--tw-prose-links:#1c1917;--tw-prose-bold:#1c1917;--tw-prose-counters:#78716c;--tw-prose-bullets:#d6d3d1;--tw-prose-hr:#e7e5e4;--tw-prose-quotes:#1c1917;--tw-prose-quote-borders:#e7e5e4;--tw-prose-captions:#78716c;--tw-prose-kbd:#1c1917;--tw-prose-kbd-shadows:rgba(28,25,23,.1);--tw-prose-code:#be185d;--tw-prose-pre-code:#e7e5e4;--tw-prose-pre-bg:#292524;--tw-prose-th-borders:#d6d3d1;--tw-prose-td-borders:#e7e5e4;--tw-prose-invert-body:#d6d3d1;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#a8a29e;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#a8a29e;--tw-prose-invert-bullets:#57534e;--tw-prose-invert-hr:#44403c;--tw-prose-invert-quotes:#f5f5f4;--tw-prose-invert-quote-borders:#44403c;--tw-prose-invert-captions:#a8a29e;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d6d3d1;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#57534e;--tw-prose-invert-td-borders:#44403c;max-width:none;overflow-wrap:break-word}.article:is(.dark *){--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:#f472b6;--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.article-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(2ch,10ch) [middle-start] minmax(2ch,10ch) [gutter-left-end] minmax(2ch,10ch) minmax(2ch,10ch) [gutter-right-start] minmax(2ch,10ch) [middle-end] minmax(2ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 1fr [body-outset-end page-inset-end page-end screen-inset-end] .25rem [screen-end]}}@media (min-width:1024px){.article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start] 1rem [page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1280px){.article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1536px){.article-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.article-left-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 1rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(5ch,15ch) [middle-start] minmax(5ch,15ch) [gutter-left-end] minmax(5ch,15ch) minmax(5ch,15ch) [gutter-right-start] minmax(5ch,15ch) [middle-end] minmax(5ch,15ch) [body-inset-end] 1rem [body-end gutter-right-end body-outset-end page-inset-end] 1rem [page-end screen-inset-end] .5rem [screen-end]}}@media (min-width:1024px){.article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 1rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(5ch,12ch) [middle-start] minmax(5ch,12ch) [gutter-left-end] minmax(5ch,12ch) minmax(5ch,12ch) [gutter-right-start] minmax(5ch,12ch) [middle-end] minmax(5ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}@media (min-width:1280px){.article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,12ch) [middle-start] minmax(8ch,12ch) [gutter-left-end] minmax(8ch,12ch) minmax(8ch,12ch) [gutter-right-start] minmax(8ch,12ch) [middle-end] minmax(8ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}@media (min-width:1536px){.article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start page-inset-start body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,12ch) [middle-start] minmax(8ch,12ch) [gutter-left-end] minmax(8ch,12ch) minmax(8ch,12ch) [gutter-right-start] minmax(8ch,12ch) [middle-end] minmax(8ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.article-center-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.article-center-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(2ch,10ch) [middle-start] minmax(2ch,10ch) [gutter-left-end] minmax(2ch,10ch) minmax(2ch,10ch) [gutter-right-start] minmax(2ch,10ch) [middle-end] minmax(2ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 1fr [body-outset-end page-inset-end page-end screen-inset-end] .25rem [screen-end]}}@media (min-width:1024px){.article-center-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start] 2rem [page-inset-start] 2fr [body-outset-start gutter-outset-left-start] 1rem [body-start gutter-left-start] 2rem [body-inset-start gutter-left-start] minmax(8ch,10ch) [gutter-left-end middle-start] minmax(8ch,10ch) minmax(8ch,10ch) [] minmax(8ch,10ch) [] minmax(8ch,10ch) [middle-end gutter-right-start gutter-page-right-start] minmax(8ch,10ch) [body-inset-end gutter-right-end] 2rem [body-end] 1rem [body-outset-end] 2fr [page-inset-end] 2rem [page-end screen-inset-end] .5rem [screen-end]}}@media (min-width:1280px){.article-center-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(4rem,9rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1536px){.article-center-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(4rem,9rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.article-center-grid>*,.article-grid>*,.article-left-grid>*{grid-column:body;margin-top:0!important}.grid-gap{gap:.25rem}@media (min-width:768px){.grid-gap{gap:.5rem}}@media (min-width:1280px){.grid-gap{gap:.75rem}}@media (min-width:1536px){.grid-gap{gap:1rem}}.subgrid-gap{-moz-column-gap:.25rem;column-gap:.25rem}@media (min-width:768px){.subgrid-gap{-moz-column-gap:.5rem;column-gap:.5rem}}@media (min-width:1280px){.subgrid-gap{-moz-column-gap:.75rem;column-gap:.75rem}}@media (min-width:1536px){.subgrid-gap{-moz-column-gap:1rem;column-gap:1rem}}.col-margin-left{grid-column:body}@media (min-width:1280px){.col-margin-left{grid-column:page/body-start}}.col-margin,.col-margin-right{grid-column:body}@media (min-width:1024px){.col-margin,.col-margin-right{grid-column:body-end/page-end}}.col-margin-right-inset{grid-column:body}@media (min-width:1024px){.col-margin-right-inset{grid-column:body-end/page-inset}}.col-gutter-page-right{grid-column:body}@media (min-width:768px){.col-gutter-page-right{grid-column:gutter-right/body-outset}}@media (min-width:1024px){.col-gutter-page-right{grid-column:middle-end/page}}.col-gutter-page-left{grid-column:body}@media (min-width:768px){.col-gutter-page-left{grid-column:body-outset/gutter-left}}@media (min-width:1024px){.col-gutter-page-left{grid-column:page/middle-start}}.col-body-inset-right{grid-column:body/gutter-right-start}@media (min-width:1024px){.col-body-inset-right{grid-column:body/middle}}.col-body-inset-left{grid-column:gutter-left-end/body}@media (min-width:1024px){.col-body-inset-left{grid-column:middle/body}}.col-page-middle{grid-column:body}@media (min-width:1024px){.col-page-middle{grid-column:middle}}.shaded{margin-top:1.25rem;margin-bottom:1.25rem;--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1));padding-top:1.25rem}.shaded:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.framed{margin-top:1.25rem;margin-bottom:1.25rem;border-width:1px;--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));padding:1.25rem;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.framed:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.shaded-children>*{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1));padding:.5rem}.shaded-children>:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.rounded-children>*{border-radius:.25rem}.task-list-item{list-style-type:none}.task-list-item-checkbox{margin-left:-29px;margin-right:14px;height:1rem;width:1rem;--tw-translate-y:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:.25rem;--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1));--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.task-list-item-checkbox:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.task-list-item-checkbox:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1));--tw-ring-offset-color:#1f2937}.task-list-item-checkbox:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.prose .task-list-item>p{margin-top:0;margin-bottom:0;display:inline}#footnotes p{margin:.25rem}:where(footer).article-center-grid>*,:where(footer).article-grid>*,:where(footer).article-left-grid>*{grid-column:page}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where(p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where([class~=lead]):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose],[class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-inline-start:1.625em}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(dt):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.25em}.prose :where(hr):not(:where([class~=not-prose],[class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-inline-start-width:.25rem;border-inline-start-color:var(--tw-prose-quote-borders);quotes:"\201c""\201d""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-inline-start:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(picture):not(:where([class~=not-prose],[class~=not-prose] *)){display:block;margin-top:2em;margin-bottom:2em}.prose :where(video):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(kbd):not(:where([class~=not-prose],[class~=not-prose] *)){font-weight:500;font-family:inherit;color:var(--tw-prose-kbd);box-shadow:0 0 0 1px var(--tw-prose-kbd-shadows),0 3px 0 var(--tw-prose-kbd-shadows);font-size:.875em;border-radius:.3125rem;padding-top:.1875em;padding-inline-end:.375em;padding-bottom:.1875em;padding-inline-start:.375em}.prose :where(code):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-code);font-weight:400;font-size:.875em}.prose :where(a code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose],[class~=not-prose] *)){color:inherit}.prose :where(pre):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-pre-code);background-color:var(--tw-prose-pre-bg);overflow-x:auto;font-weight:400;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-inline-end:1.1428571em;padding-bottom:.8571429em;padding-inline-start:1.1428571em}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)){background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:inherit;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose],[class~=not-prose] *)){width:100%;table-layout:auto;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose],[class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){vertical-align:top}.prose :where(th,td):not(:where([class~=not-prose],[class~=not-prose] *)){text-align:start}.prose :where(figure>*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose{--tw-prose-body:#374151;--tw-prose-headings:#111827;--tw-prose-lead:#4b5563;--tw-prose-links:#111827;--tw-prose-bold:#111827;--tw-prose-counters:#6b7280;--tw-prose-bullets:#d1d5db;--tw-prose-hr:#e5e7eb;--tw-prose-quotes:#111827;--tw-prose-quote-borders:#e5e7eb;--tw-prose-captions:#6b7280;--tw-prose-kbd:#111827;--tw-prose-kbd-shadows:rgba(17,24,39,.1);--tw-prose-code:#111827;--tw-prose-pre-code:#e5e7eb;--tw-prose-pre-bg:#1f2937;--tw-prose-th-borders:#d1d5db;--tw-prose-td-borders:#e5e7eb;--tw-prose-invert-body:#d1d5db;--tw-prose-invert-headings:#fff;--tw-prose-invert-lead:#9ca3af;--tw-prose-invert-links:#fff;--tw-prose-invert-bold:#fff;--tw-prose-invert-counters:#9ca3af;--tw-prose-invert-bullets:#4b5563;--tw-prose-invert-hr:#374151;--tw-prose-invert-quotes:#f3f4f6;--tw-prose-invert-quote-borders:#374151;--tw-prose-invert-captions:#9ca3af;--tw-prose-invert-kbd:#fff;--tw-prose-invert-kbd-shadows:hsla(0,0%,100%,.1);--tw-prose-invert-code:#fff;--tw-prose-invert-pre-code:#d1d5db;--tw-prose-invert-pre-bg:rgba(0,0,0,.5);--tw-prose-invert-th-borders:#4b5563;--tw-prose-invert-td-borders:#374151;font-size:1rem;line-height:1.75}.prose :where(picture>img):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(li):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.prose :where(ol>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(ul>li):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>p:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>p:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(dl):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(dd):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.5em;padding-inline-start:1.625em}.prose :where(hr+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(thead th:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose],[class~=not-prose] *)){padding-top:.5714286em;padding-inline-end:.5714286em;padding-bottom:.5714286em;padding-inline-start:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-start:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){padding-inline-end:0}.prose :where(figure):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(.prose>:first-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose],[class~=not-prose] *)){margin-bottom:0}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose],[class~=not-prose] *)):after{content:none}.prose :where(li>p,dd>p,header>p,footer>p):not(:where([class~=not-prose],[class~=not-prose] *)){margin-top:.25rem;margin-bottom:.25rem}.prose :where(h5,h6):not(:where([class~=not-prose],[class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:500}.prose-invert{--tw-prose-body:var(--tw-prose-invert-body);--tw-prose-headings:var(--tw-prose-invert-headings);--tw-prose-lead:var(--tw-prose-invert-lead);--tw-prose-links:var(--tw-prose-invert-links);--tw-prose-bold:var(--tw-prose-invert-bold);--tw-prose-counters:var(--tw-prose-invert-counters);--tw-prose-bullets:var(--tw-prose-invert-bullets);--tw-prose-hr:var(--tw-prose-invert-hr);--tw-prose-quotes:var(--tw-prose-invert-quotes);--tw-prose-quote-borders:var(--tw-prose-invert-quote-borders);--tw-prose-captions:var(--tw-prose-invert-captions);--tw-prose-kbd:var(--tw-prose-invert-kbd);--tw-prose-kbd-shadows:var(--tw-prose-invert-kbd-shadows);--tw-prose-code:#f472b6;--tw-prose-pre-code:var(--tw-prose-invert-pre-code);--tw-prose-pre-bg:var(--tw-prose-invert-pre-bg);--tw-prose-th-borders:var(--tw-prose-invert-th-borders);--tw-prose-td-borders:var(--tw-prose-invert-td-borders)}.hover-link,.link{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1));text-decoration-line:underline;text-decoration-color:#60a5fa;text-decoration-thickness:.1em;text-underline-offset:.15em}.hover-link:hover,.link:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1));text-decoration-color:#3b82f6}.hover-link:is(.dark *),.link:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1));text-decoration-color:#3b82f6}.hover-link:hover:is(.dark *),.link:hover:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1));text-decoration-color:#93c5fd}.link-icon{margin-left:.125rem;display:inline-block;height:.85em;width:.85em;vertical-align:baseline;opacity:.8}.grid-area-subtitle{grid-area:subtitle}.grid-area-title{grid-area:title}.grid-area-body{grid-area:body}.grid-area-links{grid-area:links}.grid-areas-just-narrow{grid-template-areas:"subtitle subtitle subtitle" "title title title" "body body body" "links links links"}.hover-card-content{animation-duration:.6s;animation-timing-function:cubic-bezier(.16,1,.3,1);z-index:10}.hover-card-content[data-side=top]{animation-name:slideUp}.hover-card-content[data-side=bottom]{animation-name:slideDown}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hover-document{border-radius:.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity,1));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1));font-size:.875rem;line-height:1.25rem;--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover-document:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover-link,.hover-text{text-decoration-style:dotted}.hover-text{cursor:help;text-decoration-line:underline;text-decoration-color:#6b7280;text-decoration-thickness:.1em;text-underline-offset:.15em}.hover-text:is(.dark *){text-decoration-color:#9ca3af}a.button,button.button,cite.button a,span.button{cursor:pointer;border-radius:.25rem;padding:.5rem 1rem;font-weight:700;text-decoration-line:none}a.button,a.button:hover,button.button,button.button:hover,cite.button a,cite.button a:hover,span.button,span.button:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}a.button:is(.dark *),button.button:is(.dark *),cite.button a:is(.dark *),span.button:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}a.button:hover:is(.dark *),button.button:hover:is(.dark *),cite.button a:hover:is(.dark *),span.button:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}a.button,button.button,cite.button a,span.button{white-space:nowrap;--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1));&:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}& .link-icon{display:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-left-2{left:-.5rem}.-right-1{right:-.25rem}.-top-3{top:-.75rem}.-top-\[12px\]{top:-12px}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.left-0{left:0}.left-1{left:.25rem}.left-4{left:1rem}.right-0{right:0}.right-1{right:.25rem}.right-\[5px\]{right:5px}.start-0{inset-inline-start:0}.top-0{top:0}.top-1{top:.25rem}.top-\[115px\]{top:115px}.top-\[32px\]{top:32px}.top-\[5px\]{top:5px}.top-\[60px\]{top:60px}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-\[1000\]{z-index:1000}.z-\[1001\]{z-index:1001}.z-\[11\]{z-index:11}.z-\[2\]{z-index:2}.col-body{grid-column:body}.col-body-inset{grid-column:body-inset}.col-body-left{grid-column:body/gutter-right-start}.col-body-outset{grid-column:body-outset}.col-body-outset-left{grid-column:body-outset/body}.col-body-outset-right{grid-column:body/body-outset}.col-body-right{grid-column:gutter-left-end/body}.col-gutter-left{grid-column:gutter-left}.col-gutter-outset-left{grid-column:body-outset/gutter-left}.col-gutter-outset-right{grid-column:gutter-right/body-outset}.col-gutter-right{grid-column:gutter-right}.col-page{grid-column:page}.col-page-inset{grid-column:page-inset}.col-page-inset-left{grid-column:page-inset/body}.col-page-inset-right{grid-column:body/page-inset}.col-page-left{grid-column:page/body}.col-page-right{grid-column:body/page}.col-screen{grid-column:screen}.col-screen-inset{grid-column:screen-inset}.col-screen-inset-left{grid-column:screen-inset/body}.col-screen-inset-right{grid-column:body/screen-inset}.col-screen-left{grid-column:screen/body}.col-screen-right{grid-column:body/screen}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.row-span-1{grid-row:span 1/span 1}.row-span-2{grid-row:span 2/span 2}.row-span-3{grid-row:span 3/span 3}.row-span-4{grid-row:span 4/span 4}.row-span-5{grid-row:span 5/span 5}.row-span-6{grid-row:span 6/span 6}.float-right{float:right}.-m-2{margin:-.5rem}.m-0{margin:0}.m-1{margin:.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-\[4px\]{margin-left:4px;margin-right:4px}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-10{margin-top:2.5rem;margin-bottom:2.5rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-8,.my-\[2rem\]{margin-top:2rem;margin-bottom:2rem}.-mr-1{margin-right:-.25rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-8{margin-bottom:2rem}.mb-\[1rem\]{margin-bottom:1rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-\[0\.2rem\]{margin-left:.2rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.box-border{box-sizing:border-box}.\!block{display:block!important}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.size-\[24px\]{width:24px;height:24px}.size-\[25px\]{width:25px;height:25px}.h-0{height:0}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[0px\]{height:0}.h-\[10px\]{height:10px}.h-\[150px\]{height:150px}.h-\[22px\]{height:22px}.h-\[24px\]{height:24px}.h-\[2px\]{height:2px}.h-\[35px\]{height:35px}.h-\[60px\]{height:60px}.h-full{height:100%}.h-screen{height:100vh}.max-h-\[15rem\]{max-height:15rem}.max-h-\[300px\]{max-height:300px}.max-h-\[4rem\]{max-height:4rem}.max-h-\[5rem\]{max-height:5rem}.min-h-1{min-height:.25rem}.min-h-\[2em\]{min-height:2em}.w-0{width:0}.w-10{width:2.5rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-\[0px\]{width:0}.w-\[10px\]{width:10px}.w-\[22px\]{width:22px}.w-\[24px\]{width:24px}.w-\[300px\]{width:300px}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[400px\]{min-width:400px}.max-w-\[1440px\]{max-width:1440px}.max-w-\[200px\]{max-width:200px}.max-w-\[350px\]{max-width:350px}.max-w-\[400px\]{max-width:400px}.max-w-\[80vw\]{max-width:80vw}.max-w-\[90\%\]{max-width:90%}.max-w-full{max-width:100%}.max-w-screen-lg{max-width:1024px}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.border-collapse{border-collapse:collapse}.origin-top-left{transform-origin:top left}.origin-top-right{transform-origin:top right}.-translate-y-\[0\.1em\]{--tw-translate-y:-.1em;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-\[1px\],.-translate-y-px{--tw-translate-y:-1px}.-translate-y-\[1px\],.-translate-y-px,.translate-x-\[10px\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[10px\]{--tw-translate-x:10px}.translate-y-2{--tw-translate-y:.5rem}.translate-y-2,.translate-y-6{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-6{--tw-translate-y:1.5rem}.scale-100{--tw-scale-x:1;--tw-scale-y:1}.scale-100,.scale-95{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x:.95;--tw-scale-y:.95}.scale-x-100{--tw-scale-x:1}.scale-x-100,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes load{0%{width:0}to{width:50%}}.animate-load{animation:load 2.5s ease-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-rows-\[3rem_1fr\]{grid-template-rows:3rem 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-4{gap:1rem}.gap-x-1{-moz-column-gap:.25rem;column-gap:.25rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-gray-100>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(243 244 246/var(--tw-divide-opacity,1))}.self-start{align-self:flex-start}.self-center{align-self:center}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overflow-y-visible{overflow-y:visible}.overflow-y-scroll{overflow-y:scroll}.truncate{overflow:hidden;white-space:nowrap}.text-ellipsis,.truncate{text-overflow:ellipsis}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-l-md{border-top-left-radius:.375rem;border-bottom-left-radius:.375rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-t-0{border-top-width:0}.border-solid{border-style:solid}.border-dotted{border-style:dotted}.border-amber-500\/70{border-color:#f59e0bb3}.border-amber-600{--tw-border-opacity:1;border-color:rgb(217 119 6/var(--tw-border-opacity,1))}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-500\/60{border-color:#3b82f699}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-gray-500\/60{border-color:#6b728099}.border-gray-800{--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.border-green-500\/60{border-color:#22c55e99}.border-green-600{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity,1))}.border-orange-500\/60{border-color:#f9731699}.border-purple-500\/60{border-color:#a855f799}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-red-500\/60{border-color:#ef444499}.border-red-600{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity,1))}.border-slate-400{--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity,1))}.border-slate-600{--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.border-stone-200{--tw-border-opacity:1;border-color:rgb(231 229 228/var(--tw-border-opacity,1))}.border-stone-300{--tw-border-opacity:1;border-color:rgb(214 211 209/var(--tw-border-opacity,1))}.border-stone-400{--tw-border-opacity:1;border-color:rgb(168 162 158/var(--tw-border-opacity,1))}.border-stone-700{--tw-border-opacity:1;border-color:rgb(68 64 60/var(--tw-border-opacity,1))}.border-b-blue-600{--tw-border-opacity:1;border-bottom-color:rgb(37 99 235/var(--tw-border-opacity,1))}.border-b-gray-100{--tw-border-opacity:1;border-bottom-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-l-blue-400{--tw-border-opacity:1;border-left-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-l-blue-500{--tw-border-opacity:1;border-left-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-l-gray-300{--tw-border-opacity:1;border-left-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-l-gray-50{--tw-border-opacity:1;border-left-color:rgb(249 250 251/var(--tw-border-opacity,1))}.bg-\[\#656c85cc\]{background-color:#656c85cc}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-50\/80{background-color:#fffbebcc}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))}.bg-black\/80{background-color:#000c}.bg-blue-300\/30{background-color:#93c5fd4d}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-50\/80{background-color:#eff6ffcc}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-800{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.bg-blue-900{--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-100\/80{background-color:#f3f4f6cc}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-50\/10{background-color:#f9fafb1a}.bg-gray-50\/80{background-color:#f9fafbcc}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/80{background-color:#f0fdf4cc}.bg-inherit{background-color:inherit}.bg-orange-50\/80{background-color:#fff7edcc}.bg-orange-500{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-orange-700{--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.bg-purple-50\/80{background-color:#faf5ffcc}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-50\/80{background-color:#fef1f1cc}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-800{--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.bg-slate-100{--tw-bg-opacity:1;background-color:rgb(241 245 249/var(--tw-bg-opacity,1))}.bg-slate-200{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.bg-slate-300\/30{background-color:#cbd5e14d}.bg-slate-50{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity,1))}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-500{--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.bg-slate-700{--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.bg-slate-800{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.bg-slate-900{--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.bg-stone-200\/10{background-color:#e7e5e41a}.bg-stone-700{--tw-bg-opacity:1;background-color:rgb(68 64 60/var(--tw-bg-opacity,1))}.bg-stone-900{--tw-bg-opacity:1;background-color:rgb(28 25 23/var(--tw-bg-opacity,1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/80{background-color:#fffc}.bg-white\/95{background-color:#fffffff2}.bg-cover{background-size:cover}.bg-top{background-position:top}.bg-no-repeat{background-repeat:no-repeat}.fill-blue-900{fill:#1e3a8a}.fill-green-600{fill:#16a34a}.fill-white{fill:#fff}.object-cover{-o-object-fit:cover;object-fit:cover}.object-left{-o-object-position:left;object-position:left}.object-top{-o-object-position:top;object-position:top}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-0{padding-left:0;padding-right:0}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[15px\]{padding-left:15px;padding-right:15px}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-2{padding-bottom:.5rem}.pb-6{padding-bottom:1.5rem}.pb-\[14px\]{padding-bottom:14px}.pb-\[1rem\]{padding-bottom:1rem}.pl-0{padding-left:0}.pl-10{padding-left:2.5rem}.pl-12{padding-left:3rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-\[2px\]{padding-right:2px}.ps-10{padding-inline-start:2.5rem}.ps-\[32px\]{padding-inline-start:32px}.pt-10{padding-top:2.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-9{padding-top:2.25rem}.pt-\[40px\]{padding-top:40px}.pt-\[80px\]{padding-top:80px}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-5xl{font-size:3rem;line-height:1}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extralight{font-weight:200}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-thin{font-weight:100}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-3{line-height:.75rem}.leading-6{line-height:1.5rem}.leading-\[0\]{line-height:0}.leading-\[19px\]{line-height:19px}.leading-\[35px\]{line-height:35px}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-200{--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-indigo-400{--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.text-inherit{color:inherit}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-orange-600{--tw-text-opacity:1;color:rgb(234 88 12/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-slate-300{--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.text-slate-400{--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.text-slate-50{--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-stone-100{--tw-text-opacity:1;color:rgb(245 245 244/var(--tw-text-opacity,1))}.text-stone-200{--tw-text-opacity:1;color:rgb(231 229 228/var(--tw-text-opacity,1))}.text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity,1))}.text-stone-700{--tw-text-opacity:1;color:rgb(68 64 60/var(--tw-text-opacity,1))}.text-stone-800{--tw-text-opacity:1;color:rgb(41 37 36/var(--tw-text-opacity,1))}.text-stone-900{--tw-text-opacity:1;color:rgb(28 25 23/var(--tw-text-opacity,1))}.text-violet-200{--tw-text-opacity:1;color:rgb(221 214 254/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-\[0_0_0_1px\]{--tw-shadow:0 0 0 1px;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_38px_-10px_hsla\(206\,22\%\,7\%\,\.35\)\,0_10px_20px_-15px_hsla\(206\,22\%\,7\%\,\.2\)\]{--tw-shadow:0 10px 38px -10px rgba(14,18,22,.35),0 10px 20px -15px rgba(14,18,22,.2);--tw-shadow-colored:0 10px 38px -10px var(--tw-shadow-color),0 10px 20px -15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0px_2px_0px_0px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow:0px 2px 0px 0px rgba(0,0,0,.08);--tw-shadow-colored:0px 2px 0px 0px var(--tw-shadow-color)}.shadow-\[0px_2px_0px_0px_rgba\(0\,0\,0\,0\.08\)\],.shadow-inner{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 rgba(0,0,0,.05);--tw-shadow-colored:inset 0 2px 4px 0 var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-neutral-900{--tw-shadow-color:#171717;--tw-shadow:var(--tw-shadow-colored)}.shadow-slate-400{--tw-shadow-color:#94a3b8;--tw-shadow:var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.\!outline{outline-style:solid!important}.outline{outline-style:solid}.outline-2{outline-width:2px}.outline-blue-200{outline-color:#bfdbfe}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity,1))}.ring-blue-500{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.ring-opacity-5{--tw-ring-opacity:.05}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-75{transition-duration:75ms}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.smallcaps{font-variant:small-caps}details>summary{list-style:none;transition:margin .15s ease-out}details>summary::-webkit-details-marker,details>summary::marker{display:none}details[open]>summary .details-toggle{transform:rotate(90deg) translate(-5px) translateY(-5px)}details[open]>summary{margin-bottom:10px}details .details-body{overflow:auto}details[open] .details-body{margin-top:-10px}cite{font-style:normal}.cite-group.parenthetical>:after{content:";\a0"}.cite-group.narrative>:after,.xref-group>:after{content:",\a0"}.cite-group>:last-of-type:after,.xref-group>:last-of-type:after{content:""}.cite-group.parenthetical:before{content:var(--cite-group-open,"(")}.cite-group.parenthetical:after{content:var(--cite-group-close,")")}.xref-group.parenthetical:before{content:var(--xref-group-open,"(")}.xref-group.parenthetical:after{content:var(--xref-group-close,")")}figure.fig-quote figcaption{text-align:right}figure.fig-quote figcaption>p:before{content:"\2014";padding-right:.5em}figure.fig-quote.pull-quote>blockquote{font-size:1.4rem}figure.fig-code>div{margin:0}figure.subcontainer{margin-bottom:0}figure.subcontainer figcaption{margin-top:.25em;text-align:center}figure figcaption>p,figure img{margin-top:0!important;margin-bottom:0!important}.text-spacer:after{content:"\a0\2219\a0"}.text-comma:after{content:",\a0\a0"}pre>code>span[data-line-number]{display:block;position:relative;line-height:1.4rem;padding-right:1rem}pre>code>span[data-highlight=true]:after{content:" ";position:absolute;right:-.8rem;top:0;width:calc(100% + 1.6rem);opacity:.1;pointer-events:none;background:#5ca5ee}pre>code>span>.linenumber{color:gray}pre>code>span[data-highlight=true]>.linenumber{color:#5ca5ee}.dark .hljs{background:#1e1e1e!important;color:#dcdcdc}.dark .hljs-keyword,.dark .hljs-literal,.dark .hljs-name,.dark .hljs-symbol{color:#569cd6}.dark .hljs-link{color:#569cd6;text-decoration:underline}.dark .hljs-built_in,.dark .hljs-type{color:#4ec9b0}.dark .hljs-class,.dark .hljs-number{color:#b8d7a3}.dark .hljs-meta .hljs-string,.dark .hljs-string{color:#d69d85}.dark .hljs-regexp,.dark .hljs-template-tag{color:#9a5334}.dark .hljs-formula,.dark .hljs-function,.dark .hljs-params,.dark .hljs-subst,.dark .hljs-title{color:#dcdcdc}.dark .hljs-comment,.dark .hljs-quote{color:#57a64a;font-style:italic}.dark .hljs-doctag{color:#608b4e}.dark .hljs-meta,.dark .hljs-meta .hljs-keyword,.dark .hljs-tag{color:#9b9b9b}.dark .hljs-template-variable,.dark .hljs-variable{color:#bd63c5}.dark .hljs-attr,.dark .hljs-attribute{color:#9cdcfe}.dark .hljs-section{color:gold}.dark .hljs-emphasis{font-style:italic}.dark .hljs-strong{font-weight:700}.dark .hljs-bullet,.dark .hljs-selector-attr,.dark .hljs-selector-class,.dark .hljs-selector-id,.dark .hljs-selector-pseudo,.dark .hljs-selector-tag{color:#d7ba7d}.dark .hljs-addition{background-color:#144212;display:inline-block;width:100%}.dark .hljs-deletion{background-color:#600;display:inline-block;width:100%}.dark .hljs-code{color:unset}.xml .hljs-meta{color:silver;background:transparent}.hljs-comment,.hljs-quote{color:#007400}.hljs-attribute,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#aa0d91}.hljs-template-variable,.hljs-variable{color:#3f6e74}.hljs-code,.hljs-meta .hljs-string,.hljs-string{color:#c41a16}.hljs-link,.hljs-regexp{color:#0e0eff}.hljs-bullet,.hljs-number,.hljs-symbol,.hljs-title{color:#1c00cf}.hljs-meta,.hljs-section{color:#643820}.hljs-built_in,.hljs-class .hljs-title,.hljs-params,.hljs-title.class_,.hljs-type{color:#5c2699}.hljs-attr{color:#836c28}.hljs-subst{color:#000}.hljs-formula{background-color:#eee;font-style:italic}.hljs-addition{background-color:#baeeba}.hljs-deletion{background-color:#ffc8bd}.hljs-selector-class,.hljs-selector-id{color:#9b703f}.hljs-doctag,.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.katex-display{margin:0!important}.katex .eqn-num{opacity:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.font-system{font-family:Menlo,Consolas,DejaVu Sans Mono,monospace}.jupyter-error{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.jp-OutputPrompt{display:none}table.dataframe{margin:0!important;table-layout:fixed;border-collapse:collapse;--tw-border-spacing-x:0px;--tw-border-spacing-y:0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-style:none;font-size:.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dataframe thead{border-bottom-width:1px;--tw-border-opacity:1;border-color:rgb(0 0 0/var(--tw-border-opacity,1));vertical-align:bottom}.dataframe th{font-weight:700}.dataframe td{max-width:none;white-space:normal;border-style:none;padding:.5rem;text-align:right;vertical-align:middle;line-height:1.5}.jp-OutputArea-output table tr:nth-child(odd){--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(odd):is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(odd):hover>*{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(odd):hover:is(.dark *)>*{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(2n):is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(2n):hover>*{--tw-bg-opacity:1;background-color:rgb(224 242 254/var(--tw-bg-opacity,1))}.jp-OutputArea-output table tr:nth-child(2n):hover:is(.dark *)>*{--tw-bg-opacity:1;background-color:rgb(8 47 73/var(--tw-bg-opacity,1))}html.dark{--jp-ui-font-color0:#fff;--jp-ui-font-color1:hsla(0,0%,100%,.87);--jp-ui-font-color2:hsla(0,0%,100%,.54);--jp-ui-font-color3:hsla(0,0%,100%,.38);--jp-ui-inverse-font-color0:#000;--jp-ui-inverse-font-color1:rgba(0,0,0,.8);--jp-ui-inverse-font-color2:rgba(0,0,0,.5);--jp-ui-inverse-font-color3:rgba(0,0,0,.3);--jp-content-font-color0:#fff;--jp-content-font-color1:#fff;--jp-content-font-color2:hsla(0,0%,100%,.7);--jp-content-font-color3:hsla(0,0%,100%,.5);--jp-layout-color0:#111;--jp-layout-color1:var(--md-grey-900);--jp-layout-color2:var(--md-grey-800);--jp-layout-color3:var(--md-grey-700);--jp-layout-color4:var(--md-grey-600)}.sphinx-desc-addname,.sphinx-desc-inline,.sphinx-desc-name,.sphinx-desc-optional,.sphinx-desc-parameterlist,.sphinx-desc-returns,.sphinx-desc-sig-element,.sphinx-desc-sig-keyword,.sphinx-desc-sig-keyword-type,.sphinx-desc-sig-literal-char,.sphinx-desc-sig-literal-number,.sphinx-desc-sig-literal-string,.sphinx-desc-sig-name,.sphinx-desc-sig-operator,.sphinx-desc-sig-punctuation,.sphinx-desc-sig-space,.sphinx-desc-signature-line,.sphinx-desc-type,.sphinx-desc-type-parameter{white-space:pre}.sphinx-desc-name{font-size:1.1em;font-weight:700}.sphinx-desc-signature{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:300}.sphinx-desc-returns:before{--tw-content:" \2192 ";content:var(--tw-content)}dl>dt:has([class^=sphinx-desc-]){font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-weight:300}dl>dt:has([class^=sphinx-desc-])>em{white-space:pre}dl:has(>dt>[class^=sphinx-desc-])>dd>dl:not(:has(>dt>[class^=sphinx-desc-])){display:grid;grid-template-columns:fit-content(30%) auto}dl:has(>dt>[class^=sphinx-desc-])>dd>dl:not(:has(>dt>[class^=sphinx-desc-]))>dd>p{margin:unset!important}dl:has(>dt>[class^=sphinx-desc-])>dd>dl:not(:has(>dt>[class^=sphinx-desc-]))>:is(dt,dd){margin:unset!important}.myst-grid>*{margin:0!important}p[data-line-number].line:before{content:attr(data-line-number);position:absolute;left:0;font-family:monospace;width:1.25em;text-align:right;-webkit-user-select:none;-moz-user-select:none;user-select:none;color:gray;overflow:hidden}p.line{position:relative;margin:0}.collapsible-content{overflow:hidden}.collapsible-content[data-state=open]{animation:open-content .3s ease-out}.collapsible-content[data-state=closed]{animation:close-content .3s ease-out}@keyframes open-content{0%{height:0}to{height:var(--radix-collapsible-content-height)}}@keyframes close-content{0%{height:var(--radix-collapsible-content-height)}to{height:0}}.primary-scrollbar::-webkit-scrollbar{width:10px;height:10px}.primary-scrollbar::-webkit-scrollbar-thumb{border-radius:10px;background-color:#cbd5e14d}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}#myst-no-css{--has-styling:1}@media (min-width:1024px){.lg\:col-margin-right{grid-column:body}@media (min-width:1024px){.lg\:col-margin-right{grid-column:body-end/page-end}}}@media (min-width:1280px){.xl\:article-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.xl\:article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(2ch,10ch) [middle-start] minmax(2ch,10ch) [gutter-left-end] minmax(2ch,10ch) minmax(2ch,10ch) [gutter-right-start] minmax(2ch,10ch) [middle-end] minmax(2ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 1fr [body-outset-end page-inset-end page-end screen-inset-end] .25rem [screen-end]}}@media (min-width:1024px){.xl\:article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start] 1rem [page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1280px){.xl\:article-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1536px){.xl\:article-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(5rem,13rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.xl\:article-left-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.xl\:article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 1rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(5ch,15ch) [middle-start] minmax(5ch,15ch) [gutter-left-end] minmax(5ch,15ch) minmax(5ch,15ch) [gutter-right-start] minmax(5ch,15ch) [middle-end] minmax(5ch,15ch) [body-inset-end] 1rem [body-end gutter-right-end body-outset-end page-inset-end] 1rem [page-end screen-inset-end] .5rem [screen-end]}}@media (min-width:1024px){.xl\:article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 1rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(5ch,12ch) [middle-start] minmax(5ch,12ch) [gutter-left-end] minmax(5ch,12ch) minmax(5ch,12ch) [gutter-right-start] minmax(5ch,12ch) [middle-end] minmax(5ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}@media (min-width:1280px){.xl\:article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start page-inset-start body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,12ch) [middle-start] minmax(8ch,12ch) [gutter-left-end] minmax(8ch,12ch) minmax(8ch,12ch) [gutter-right-start] minmax(8ch,12ch) [middle-end] minmax(8ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}@media (min-width:1536px){.xl\:article-left-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start page-inset-start body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,12ch) [middle-start] minmax(8ch,12ch) [gutter-left-end] minmax(8ch,12ch) minmax(8ch,12ch) [gutter-right-start] minmax(8ch,12ch) [middle-end] minmax(8ch,12ch) [body-inset-end] 1rem [body-end] 1fr [gutter-right-end] 1rem [body-outset-end] minmax(10rem,18rem) [page-inset-end] 1rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.xl\:article-center-grid{display:grid;grid-template-columns:[screen-start screen-inset-start] .5rem [page-start page-inset-start body-outset-start body-start gutter-left-start body-inset-start middle-start] 1fr 1fr [gutter-left-end] 1fr 1fr [gutter-right-start] 1fr 1fr [middle-end body-inset-end body-end gutter-right-end body-outset-end page-inset-end page-end] .5rem [screen-inset-end screen-end];align-content:flex-start}@media (min-width:768px){.xl\:article-center-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start page-start page-inset-start body-outset-start] 1fr [body-start gutter-left-start] 1rem [body-inset-start] minmax(2ch,10ch) [middle-start] minmax(2ch,10ch) [gutter-left-end] minmax(2ch,10ch) minmax(2ch,10ch) [gutter-right-start] minmax(2ch,10ch) [middle-end] minmax(2ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 1fr [body-outset-end page-inset-end page-end screen-inset-end] .25rem [screen-end]}}@media (min-width:1024px){.xl\:article-center-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start page-start] 2rem [page-inset-start] 2fr [body-outset-start gutter-outset-left-start] 1rem [body-start gutter-left-start] 2rem [body-inset-start gutter-left-start] minmax(8ch,10ch) [gutter-left-end middle-start] minmax(8ch,10ch) minmax(8ch,10ch) [] minmax(8ch,10ch) [] minmax(8ch,10ch) [middle-end gutter-right-start gutter-page-right-start] minmax(8ch,10ch) [body-inset-end gutter-right-end] 2rem [body-end] 1rem [body-outset-end] 2fr [page-inset-end] 2rem [page-end screen-inset-end] .5rem [screen-end]}}@media (min-width:1280px){.xl\:article-center-grid{grid-template-columns:[screen-start] .25rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(4rem,9rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .25rem [screen-end]}}@media (min-width:1536px){.xl\:article-center-grid{grid-template-columns:[screen-start] .5rem [screen-inset-start] 1fr [page-start] 3rem [page-inset-start] minmax(4rem,9rem) [body-outset-start] 3rem [body-start gutter-left-start] 1rem [body-inset-start] minmax(8ch,10ch) [middle-start] minmax(8ch,10ch) [gutter-left-end] minmax(8ch,10ch) minmax(8ch,10ch) [gutter-right-start] minmax(8ch,10ch) [middle-end] minmax(8ch,10ch) [body-inset-end] 1rem [body-end gutter-right-end] 3rem [body-outset-end] minmax(4rem,9rem) [page-inset-end] 3rem [page-end] 1fr [screen-inset-end] .5rem [screen-end]}}.xl\:article-center-grid>*,.xl\:article-grid>*,.xl\:article-left-grid>*{grid-column:body}.xl\:article-center-grid>*,.xl\:article-grid>*,.xl\:article-left-grid>*{margin-top:0!important}.xl\:col-margin-left{grid-column:body}@media (min-width:1280px){.xl\:col-margin-left{grid-column:page/body-start}}.xl\:article-grid:where(footer)>*{grid-column:page}.xl\:article-left-grid :where(footer)>*{grid-column:page}.xl\:article-center-grid :where(footer)>*{grid-column:page}}@media (min-width:768px){.md\:grid-areas-just-wide{grid-template-areas:"subtitle subtitle subtitle" "title . links" "body body body"}}.before\:content-\[\'\.\.\._\'\]:before{--tw-content:"... ";content:var(--tw-content)}.after\:mr-1:after{content:var(--tw-content);margin-right:.25rem}.after\:content-\[\'\,\'\]:after{--tw-content:",";content:var(--tw-content)}.after\:content-\[\'_\.\.\.\'\]:after{--tw-content:" ...";content:var(--tw-content)}.focus-within\:z-40:focus-within{z-index:40}.focus-within\:h-auto:focus-within{height:auto}.focus-within\:w-auto:focus-within{width:auto}.focus-within\:p-2:focus-within{padding:.5rem}.focus-within\:ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.hover\:border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\:border-blue-600:hover{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.hover\:border-transparent:hover{border-color:transparent}.hover\:border-l-blue-500:hover{--tw-border-opacity:1;border-left-color:rgb(59 130 246/var(--tw-border-opacity,1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-500:hover{--tw-bg-opacity:1;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))}.hover\:bg-neutral-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.hover\:bg-orange-600:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-slate-200:hover{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity,1))}.hover\:bg-slate-300\/30:hover{background-color:#cbd5e14d}.hover\:bg-slate-800:hover{--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.hover\:bg-stone-700:hover{--tw-bg-opacity:1;background-color:rgb(68 64 60/var(--tw-bg-opacity,1))}.hover\:font-light:hover{font-weight:300}.hover\:font-semibold:hover{font-weight:600}.hover\:text-\[\#599F46\]:hover{--tw-text-opacity:1;color:rgb(89 159 70/var(--tw-text-opacity,1))}.hover\:text-\[\#A9C751\]:hover{--tw-text-opacity:1;color:rgb(169 199 81/var(--tw-text-opacity,1))}.hover\:text-\[\#E18435\]:hover{--tw-text-opacity:1;color:rgb(225 132 53/var(--tw-text-opacity,1))}.hover\:text-black:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.hover\:text-blue-400:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.hover\:text-blue-500:hover{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.hover\:text-blue-600:hover{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.hover\:text-blue-700:hover{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.hover\:text-green-500:hover{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.hover\:text-inherit:hover{color:inherit}.hover\:text-stone-500:hover{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity,1))}.hover\:text-stone-900:hover{--tw-text-opacity:1;color:rgb(28 25 23/var(--tw-text-opacity,1))}.hover\:text-violet-100:hover{--tw-text-opacity:1;color:rgb(237 233 254/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:no-underline:hover{text-decoration-line:none}.hover\:opacity-10:hover{opacity:.1}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_black\]:hover{--tw-shadow:0 0 0 1px #000;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[inset_0_0_0px_30px_\#00000003\]:hover{--tw-shadow:inset 0 0 0px 30px #00000003;--tw-shadow-colored:inset 0 0 0px 30px var(--tw-shadow-color)}.hover\:shadow-\[inset_0_0_0px_30px_\#00000003\]:hover,.hover\:shadow-lg:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:ring-blue-500:hover{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus\:border-blue-500:focus{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.focus\:opacity-100:focus{opacity:1}.focus\:shadow-\[0_0_0_2px\]:focus{--tw-shadow:0 0 0 2px;--tw-shadow-colored:0 0 0 2px var(--tw-shadow-color)}.focus\:shadow-\[0_0_0_2px\]:focus,.focus\:shadow-\[0_0_0_2px_black\]:focus{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:shadow-\[0_0_0_2px_black\]:focus{--tw-shadow:0 0 0 2px #000;--tw-shadow-colored:0 0 0 2px var(--tw-shadow-color)}.focus\:shadow-black:focus{--tw-shadow-color:#000;--tw-shadow:var(--tw-shadow-colored)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:outline:focus{outline-style:solid}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-blue-500:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.focus-visible\:ring-white:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.focus-visible\:ring-opacity-75:focus-visible{--tw-ring-opacity:.75}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:text-green-700:active{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.active\:opacity-100:active{opacity:1}.group\/block:hover .group-hover\/block\:flex{display:flex}.group\/block:hover .group-hover\/block\:hidden{display:none}.group:hover .group-hover\:-translate-x-1{--tw-translate-x:-.25rem}.group:hover .group-hover\:-translate-x-1,.group:hover .group-hover\:translate-x-1{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-1{--tw-translate-x:.25rem}.group:hover .group-hover\:underline{text-decoration-line:underline}.group:hover .group-hover\:opacity-100,.group\/backmatter:hover .group-hover\/backmatter\:opacity-100,.group\/block:hover .group-hover\/block\:opacity-100{opacity:1}.group:hover .group-hover\:opacity-70{opacity:.7}.group[aria-selected=true] .group-aria-selected\:visible{visibility:visible}.group[aria-selected=true] .group-aria-selected\:bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.group[aria-selected=true] .group-aria-selected\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group[aria-selected=true] .group-aria-selected\:underline{text-decoration-line:underline}.group[data-state=open] .group-data-\[state\=open\]\:rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion:no-preference){@keyframes spin{to{transform:rotate(1turn)}}.motion-safe\:animate-spin{animation:spin 1s linear infinite}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:rounded:is(.dark *){border-radius:.25rem}.dark\:border-y-0:is(.dark *){border-top-width:0;border-bottom-width:0}.dark\:border-l-4:is(.dark *){border-left-width:4px}.dark\:border-amber-500\/70:is(.dark *){border-color:#f59e0bb3}.dark\:border-blue-500\/60:is(.dark *){border-color:#3b82f699}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(107 114 128/var(--tw-border-opacity,1))}.dark\:border-gray-500\/60:is(.dark *){border-color:#6b728099}.dark\:border-gray-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity,1))}.dark\:border-gray-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(31 41 55/var(--tw-border-opacity,1))}.dark\:border-green-500\/60:is(.dark *){border-color:#22c55e99}.dark\:border-orange-500\/60:is(.dark *){border-color:#f9731699}.dark\:border-purple-500\/60:is(.dark *){border-color:#a855f799}.dark\:border-red-500\/60:is(.dark *){border-color:#ef444499}.dark\:border-slate-300:is(.dark *){--tw-border-opacity:1;border-color:rgb(203 213 225/var(--tw-border-opacity,1))}.dark\:border-slate-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(71 85 105/var(--tw-border-opacity,1))}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-b-white:is(.dark *){--tw-border-opacity:1;border-bottom-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:border-l-blue-400:is(.dark *){--tw-border-opacity:1;border-left-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-l-gray-50:is(.dark *){--tw-border-opacity:1;border-left-color:rgb(249 250 251/var(--tw-border-opacity,1))}.dark\:bg-black\/80:is(.dark *){background-color:#000c}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.dark\:bg-neutral-800\/80:is(.dark *){background-color:#262626cc}.dark\:bg-orange-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(194 65 12/var(--tw-bg-opacity,1))}.dark\:bg-red-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(153 27 27/var(--tw-bg-opacity,1))}.dark\:bg-slate-500:is(.dark *){--tw-bg-opacity:1;background-color:rgb(100 116 139/var(--tw-bg-opacity,1))}.dark\:bg-slate-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(71 85 105/var(--tw-bg-opacity,1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 41 59/var(--tw-bg-opacity,1))}.dark\:bg-slate-800\/50:is(.dark *){background-color:#1e293b80}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(15 23 42/var(--tw-bg-opacity,1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity:1;background-color:rgb(2 6 23/var(--tw-bg-opacity,1))}.dark\:bg-stone-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(68 64 60/var(--tw-bg-opacity,1))}.dark\:bg-stone-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(41 37 36/var(--tw-bg-opacity,1))}.dark\:bg-stone-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(28 25 23/var(--tw-bg-opacity,1))}.dark\:bg-stone-900\/80:is(.dark *){background-color:#1c1917cc}.dark\:bg-stone-900\/95:is(.dark *){background-color:#1c1917f2}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:fill-white:is(.dark *){fill:#fff}.dark\:text-black:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-blue-50:is(.dark *){--tw-text-opacity:1;color:rgb(239 246 255/var(--tw-text-opacity,1))}.dark\:text-blue-500:is(.dark *){--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity,1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity,1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.dark\:text-green-500:is(.dark *){--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.dark\:text-purple-500:is(.dark *){--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity,1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity,1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity:1;color:rgb(203 213 225/var(--tw-text-opacity,1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity:1;color:rgb(148 163 184/var(--tw-text-opacity,1))}.dark\:text-slate-50:is(.dark *){--tw-text-opacity:1;color:rgb(248 250 252/var(--tw-text-opacity,1))}.dark\:text-stone-200:is(.dark *){--tw-text-opacity:1;color:rgb(231 229 228/var(--tw-text-opacity,1))}.dark\:text-stone-300:is(.dark *){--tw-text-opacity:1;color:rgb(214 211 209/var(--tw-text-opacity,1))}.dark\:text-stone-700:is(.dark *){--tw-text-opacity:1;color:rgb(68 64 60/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:text-zinc-400:is(.dark *){--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:placeholder-gray-400:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(156 163 175/var(--tw-placeholder-opacity,1))}.dark\:shadow-2xl:is(.dark *){--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:shadow-none:is(.dark *){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:shadow-neutral-700:is(.dark *){--tw-shadow-color:#404040;--tw-shadow:var(--tw-shadow-colored)}.dark\:shadow-neutral-800:is(.dark *){--tw-shadow-color:#262626;--tw-shadow:var(--tw-shadow-colored)}.dark\:shadow-neutral-900:is(.dark *){--tw-shadow-color:#171717;--tw-shadow:var(--tw-shadow-colored)}.dark\:shadow-stone-700:is(.dark *){--tw-shadow-color:#44403c;--tw-shadow:var(--tw-shadow-colored)}.dark\:hover\:border-blue-400:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:hover\:border-blue-500:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.dark\:hover\:bg-slate-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(51 65 85/var(--tw-bg-opacity,1))}.dark\:hover\:bg-stone-200:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity,1))}.dark\:hover\:text-black:hover:is(.dark *){--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.dark\:hover\:text-blue-400:hover:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:hover\:text-gray-100:hover:is(.dark *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity,1))}.dark\:hover\:text-neutral-800:hover:is(.dark *){--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity,1))}.hover\:dark\:text-stone-100:is(.dark *):hover{--tw-text-opacity:1;color:rgb(245 245 244/var(--tw-text-opacity,1))}.dark\:hover\:shadow-\[inset_0_0_0px_30px_\#FFFFFF03\]:hover:is(.dark *){--tw-shadow:inset 0 0 0px 30px #ffffff03;--tw-shadow-colored:inset 0 0 0px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:hover\:ring-blue-500:hover:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.dark\:focus\:border-blue-500:focus:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:focus\:ring-blue-500:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}@media not all and (min-width:1280px){.max-xl\:min-w-\[300px\]{min-width:300px}}@media (min-width:640px){.sm\:left-1\/2{left:50%}.sm\:right-2{right:.5rem}.sm\:top-\[var\(--content-top\)\]{top:var(--content-top)}.sm\:col-span-2{grid-column:span 2/span 2}.sm\:mr-5{margin-right:1.25rem}.sm\:mr-7{margin-right:1.75rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-auto{height:auto}.sm\:max-h-\[var\(--content-max-height\)\]{max-height:var(--content-max-height)}.sm\:w-64{width:16rem}.sm\:w-\[90vw\]{width:90vw}.sm\:max-w-\[400px\]{max-width:400px}.sm\:max-w-\[500px\]{max-width:500px}.sm\:max-w-screen-sm{max-width:640px}.sm\:-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.sm\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.sm\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.sm\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:rounded-md{border-radius:.375rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-28{padding-top:7rem;padding-bottom:7rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:768px){.md\:absolute{position:absolute}.md\:my-\[4rem\]{margin-top:4rem;margin-bottom:4rem}.md\:ml-5{margin-left:1.25rem}.md\:ml-auto{margin-left:auto}.md\:block{display:block}.md\:h-full{height:100%}.md\:w-\[200px\]{width:200px}.md\:w-\[calc\(100\%\/3\)\]{width:33.33333%}.md\:w-\[calc\(2\*100\%\/3\)\]{width:66.66667%}.md\:max-w-\[300px\]{max-width:300px}.md\:flex-none{flex:none}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.md\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:p-8{padding:2rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pl-16{padding-left:4rem}}@media (min-width:1024px){.lg\:absolute{position:absolute}.lg\:sticky{position:sticky}.lg\:z-10{z-index:10}.lg\:my-0{margin-top:0;margin-bottom:0}.lg\:ml-10{margin-left:2.5rem}.lg\:ml-auto{margin-left:auto}.lg\:mr-0{margin-right:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:h-0{height:0}.lg\:h-full{height:100%}.lg\:w-\[calc\(50\%\)\]{width:50%}.lg\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.lg\:p-8{padding:2rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pl-24{padding-left:6rem}.lg\:pt-0{padding-top:0}}@media (min-width:1280px){.xl\:pointer-events-none{pointer-events:none}.xl\:ml-0{margin-left:0}.xl\:ml-7{margin-left:1.75rem}.xl\:flex{display:flex}.xl\:hidden{display:none}.xl\:w-screen{width:100vw}.xl\:min-w-\[19\.5rem\]{min-width:19.5rem}.xl\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.xl\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.xl\:grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.xl\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.xl\:grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}}.\[\&\>\*\]\:col-page>*{grid-column:page}.\[\&\>\*\]\:m-0>*{margin:0}.\[\&_a\]\:font-semibold a{font-weight:600}.\[\&_a\]\:underline a{text-decoration-line:underline}.\[\&_img\]\:m-0 img{margin:0}.\[\&_img\]\:h-full img{height:100%}.\[\&_img\]\:w-full img{width:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_picture\]\:m-0 picture{margin:0}.\[\&_picture\]\:inline picture{display:inline}@media (hover:hover){.\[\@media\(hover\:hover\)\]\:opacity-0{opacity:0}.\[\@media\(hover\:hover\)\]\:transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.\[\@media\(hover\:hover\)\]\:focus\:opacity-100:focus{opacity:1}.group:hover .\[\@media\(hover\:hover\)\]\:group-hover\:opacity-70{opacity:.7}} +/*! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com*/ diff --git a/build/_assets/audio-EHWPVEAB.svg b/build/_assets/audio-EHWPVEAB.svg new file mode 100644 index 00000000..3ce614ab --- /dev/null +++ b/build/_assets/audio-EHWPVEAB.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/bad-FQMIYYET.svg b/build/_assets/bad-FQMIYYET.svg new file mode 100644 index 00000000..1fe7dcd2 --- /dev/null +++ b/build/_assets/bad-FQMIYYET.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/bell-UZR6IG3E.svg b/build/_assets/bell-UZR6IG3E.svg new file mode 100644 index 00000000..554ac36b --- /dev/null +++ b/build/_assets/bell-UZR6IG3E.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/blank-US55MPOI.svg b/build/_assets/blank-US55MPOI.svg new file mode 100644 index 00000000..d44952fd --- /dev/null +++ b/build/_assets/blank-US55MPOI.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/breakpoint-ESAUWSLU.svg b/build/_assets/breakpoint-ESAUWSLU.svg new file mode 100644 index 00000000..297e8ccf --- /dev/null +++ b/build/_assets/breakpoint-ESAUWSLU.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/build/_assets/bug-TFP464KX.svg b/build/_assets/bug-TFP464KX.svg new file mode 100644 index 00000000..c94f4eb5 --- /dev/null +++ b/build/_assets/bug-TFP464KX.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/bug-dot-RWRZ6PJ5.svg b/build/_assets/bug-dot-RWRZ6PJ5.svg new file mode 100644 index 00000000..2daef637 --- /dev/null +++ b/build/_assets/bug-dot-RWRZ6PJ5.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/build-5VK2B6YU.svg b/build/_assets/build-5VK2B6YU.svg new file mode 100644 index 00000000..cf9151ac --- /dev/null +++ b/build/_assets/build-5VK2B6YU.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-down-O345KY3P.svg b/build/_assets/caret-down-O345KY3P.svg new file mode 100644 index 00000000..560ff987 --- /dev/null +++ b/build/_assets/caret-down-O345KY3P.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-down-empty-PDAJTPAD.svg b/build/_assets/caret-down-empty-PDAJTPAD.svg new file mode 100644 index 00000000..04705825 --- /dev/null +++ b/build/_assets/caret-down-empty-PDAJTPAD.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-down-empty-thin-WDJR4YZW.svg b/build/_assets/caret-down-empty-thin-WDJR4YZW.svg new file mode 100644 index 00000000..d54e1e3e --- /dev/null +++ b/build/_assets/caret-down-empty-thin-WDJR4YZW.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-left-LIM3NHXF.svg b/build/_assets/caret-left-LIM3NHXF.svg new file mode 100644 index 00000000..4487e617 --- /dev/null +++ b/build/_assets/caret-left-LIM3NHXF.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-right-7TSVDNQT.svg b/build/_assets/caret-right-7TSVDNQT.svg new file mode 100644 index 00000000..f8d14bd4 --- /dev/null +++ b/build/_assets/caret-right-7TSVDNQT.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-up-AOF2BNFW.svg b/build/_assets/caret-up-AOF2BNFW.svg new file mode 100644 index 00000000..878df764 --- /dev/null +++ b/build/_assets/caret-up-AOF2BNFW.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/caret-up-empty-thin-CZ3TJKGB.svg b/build/_assets/caret-up-empty-thin-CZ3TJKGB.svg new file mode 100644 index 00000000..c160e35b --- /dev/null +++ b/build/_assets/caret-up-empty-thin-CZ3TJKGB.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/case-sensitive-SYZQ2IQZ.svg b/build/_assets/case-sensitive-SYZQ2IQZ.svg new file mode 100644 index 00000000..6f5a6aad --- /dev/null +++ b/build/_assets/case-sensitive-SYZQ2IQZ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/check-JMGWD44E.svg b/build/_assets/check-JMGWD44E.svg new file mode 100644 index 00000000..425708fb --- /dev/null +++ b/build/_assets/check-JMGWD44E.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/circle-TBRY7AKG.svg b/build/_assets/circle-TBRY7AKG.svg new file mode 100644 index 00000000..cff80069 --- /dev/null +++ b/build/_assets/circle-TBRY7AKG.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/circle-empty-4T5YPCG7.svg b/build/_assets/circle-empty-4T5YPCG7.svg new file mode 100644 index 00000000..93eb29c8 --- /dev/null +++ b/build/_assets/circle-empty-4T5YPCG7.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/cleaning-VHKWIOHC.svg b/build/_assets/cleaning-VHKWIOHC.svg new file mode 100644 index 00000000..8e2e427d --- /dev/null +++ b/build/_assets/cleaning-VHKWIOHC.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/clear-SYYJCOUN.svg b/build/_assets/clear-SYYJCOUN.svg new file mode 100644 index 00000000..b95bbad2 --- /dev/null +++ b/build/_assets/clear-SYYJCOUN.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/build/_assets/close-NU2KBLEM.svg b/build/_assets/close-NU2KBLEM.svg new file mode 100644 index 00000000..625b88f9 --- /dev/null +++ b/build/_assets/close-NU2KBLEM.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/build/_assets/close-all-QYKV7C7H.svg b/build/_assets/close-all-QYKV7C7H.svg new file mode 100644 index 00000000..eddd3e60 --- /dev/null +++ b/build/_assets/close-all-QYKV7C7H.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/code-5H26NJU2.svg b/build/_assets/code-5H26NJU2.svg new file mode 100644 index 00000000..4c2dbf55 --- /dev/null +++ b/build/_assets/code-5H26NJU2.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/code-check-S36ZPFM6.svg b/build/_assets/code-check-S36ZPFM6.svg new file mode 100644 index 00000000..2d7bcb45 --- /dev/null +++ b/build/_assets/code-check-S36ZPFM6.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/collapse-RSBQCHOJ.svg b/build/_assets/collapse-RSBQCHOJ.svg new file mode 100644 index 00000000..4ad1d21f --- /dev/null +++ b/build/_assets/collapse-RSBQCHOJ.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/collapse-all-EHMBEKE7.svg b/build/_assets/collapse-all-EHMBEKE7.svg new file mode 100644 index 00000000..15943f7c --- /dev/null +++ b/build/_assets/collapse-all-EHMBEKE7.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/console-RIJDZ7YO.svg b/build/_assets/console-RIJDZ7YO.svg new file mode 100644 index 00000000..d794606a --- /dev/null +++ b/build/_assets/console-RIJDZ7YO.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/copy-BG7YLYNB.svg b/build/_assets/copy-BG7YLYNB.svg new file mode 100644 index 00000000..fe5fb5ad --- /dev/null +++ b/build/_assets/copy-BG7YLYNB.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/copyright-EYOPP2RX.svg b/build/_assets/copyright-EYOPP2RX.svg new file mode 100644 index 00000000..f2ca8e39 --- /dev/null +++ b/build/_assets/copyright-EYOPP2RX.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/cut-WTMC2L3J.svg b/build/_assets/cut-WTMC2L3J.svg new file mode 100644 index 00000000..d32e3cac --- /dev/null +++ b/build/_assets/cut-WTMC2L3J.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/delete-ODP3MM4R.svg b/build/_assets/delete-ODP3MM4R.svg new file mode 100644 index 00000000..d1c15c67 --- /dev/null +++ b/build/_assets/delete-ODP3MM4R.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/dock-bottom-364P7VUQ.svg b/build/_assets/dock-bottom-364P7VUQ.svg new file mode 100644 index 00000000..2faab062 --- /dev/null +++ b/build/_assets/dock-bottom-364P7VUQ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/dock-left-JTNG2JPR.svg b/build/_assets/dock-left-JTNG2JPR.svg new file mode 100644 index 00000000..ebe127f1 --- /dev/null +++ b/build/_assets/dock-left-JTNG2JPR.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/dock-right-LCSRZFJO.svg b/build/_assets/dock-right-LCSRZFJO.svg new file mode 100644 index 00000000..0b0eda9c --- /dev/null +++ b/build/_assets/dock-right-LCSRZFJO.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/dock-top-QJNCVPS7.svg b/build/_assets/dock-top-QJNCVPS7.svg new file mode 100644 index 00000000..5abda767 --- /dev/null +++ b/build/_assets/dock-top-QJNCVPS7.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/dots-UTPINTYU.svg b/build/_assets/dots-UTPINTYU.svg new file mode 100644 index 00000000..bed80a63 --- /dev/null +++ b/build/_assets/dots-UTPINTYU.svg @@ -0,0 +1,8 @@ + + + + diff --git a/build/_assets/download-2Z72GO5G.svg b/build/_assets/download-2Z72GO5G.svg new file mode 100644 index 00000000..98997970 --- /dev/null +++ b/build/_assets/download-2Z72GO5G.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/duplicate-IKKRPCQN.svg b/build/_assets/duplicate-IKKRPCQN.svg new file mode 100644 index 00000000..f7c8c9da --- /dev/null +++ b/build/_assets/duplicate-IKKRPCQN.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/edit-DULKWQS5.svg b/build/_assets/edit-DULKWQS5.svg new file mode 100644 index 00000000..ea04cf75 --- /dev/null +++ b/build/_assets/edit-DULKWQS5.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/ellipses-DOPMFHFD.svg b/build/_assets/ellipses-DOPMFHFD.svg new file mode 100644 index 00000000..db43abf0 --- /dev/null +++ b/build/_assets/ellipses-DOPMFHFD.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/error-NLUEYA3X.svg b/build/_assets/error-NLUEYA3X.svg new file mode 100644 index 00000000..4224bf94 --- /dev/null +++ b/build/_assets/error-NLUEYA3X.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/exceptions-4NDLBHYM.svg b/build/_assets/exceptions-4NDLBHYM.svg new file mode 100644 index 00000000..2b4da74a --- /dev/null +++ b/build/_assets/exceptions-4NDLBHYM.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/expand-P4KBH3BP.svg b/build/_assets/expand-P4KBH3BP.svg new file mode 100644 index 00000000..3a5c889e --- /dev/null +++ b/build/_assets/expand-P4KBH3BP.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/expand-all-LLL5IAMT.svg b/build/_assets/expand-all-LLL5IAMT.svg new file mode 100644 index 00000000..89fc8512 --- /dev/null +++ b/build/_assets/expand-all-LLL5IAMT.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/extension-M557DX5T.svg b/build/_assets/extension-M557DX5T.svg new file mode 100644 index 00000000..6e9ca5fd --- /dev/null +++ b/build/_assets/extension-M557DX5T.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/fast-forward-72LR7MZN.svg b/build/_assets/fast-forward-72LR7MZN.svg new file mode 100644 index 00000000..13b3b222 --- /dev/null +++ b/build/_assets/fast-forward-72LR7MZN.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/file-ZFA45KYV.svg b/build/_assets/file-ZFA45KYV.svg new file mode 100644 index 00000000..ba55bfe7 --- /dev/null +++ b/build/_assets/file-ZFA45KYV.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/file-upload-T4IKY7DZ.svg b/build/_assets/file-upload-T4IKY7DZ.svg new file mode 100644 index 00000000..fc7e2d73 --- /dev/null +++ b/build/_assets/file-upload-T4IKY7DZ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/filter-4E5YWSDN.svg b/build/_assets/filter-4E5YWSDN.svg new file mode 100644 index 00000000..2e4ea915 --- /dev/null +++ b/build/_assets/filter-4E5YWSDN.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/filter-dot-RRWZDFGJ.svg b/build/_assets/filter-dot-RRWZDFGJ.svg new file mode 100644 index 00000000..7b08fff3 --- /dev/null +++ b/build/_assets/filter-dot-RRWZDFGJ.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/filter-list-75E3GUMO.svg b/build/_assets/filter-list-75E3GUMO.svg new file mode 100644 index 00000000..5525383b --- /dev/null +++ b/build/_assets/filter-list-75E3GUMO.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/folder-SLNIHPBN.svg b/build/_assets/folder-SLNIHPBN.svg new file mode 100644 index 00000000..418b76b0 --- /dev/null +++ b/build/_assets/folder-SLNIHPBN.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/folder-favorite-MT5D7EYE.svg b/build/_assets/folder-favorite-MT5D7EYE.svg new file mode 100644 index 00000000..1d13569e --- /dev/null +++ b/build/_assets/folder-favorite-MT5D7EYE.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/history-J7VCQIYQ.svg b/build/_assets/history-J7VCQIYQ.svg new file mode 100644 index 00000000..f9d47d2c --- /dev/null +++ b/build/_assets/history-J7VCQIYQ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/home-5Q2FN7D4.svg b/build/_assets/home-5Q2FN7D4.svg new file mode 100644 index 00000000..a1e761fc --- /dev/null +++ b/build/_assets/home-5Q2FN7D4.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/html5-YHVA3ZAF.svg b/build/_assets/html5-YHVA3ZAF.svg new file mode 100644 index 00000000..87a285df --- /dev/null +++ b/build/_assets/html5-YHVA3ZAF.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/build/_assets/image-HMQWCSCV.svg b/build/_assets/image-HMQWCSCV.svg new file mode 100644 index 00000000..325ca108 --- /dev/null +++ b/build/_assets/image-HMQWCSCV.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/info-KZC3CSMP.svg b/build/_assets/info-KZC3CSMP.svg new file mode 100644 index 00000000..cde16224 --- /dev/null +++ b/build/_assets/info-KZC3CSMP.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/inspector-WF3WTDME.svg b/build/_assets/inspector-WF3WTDME.svg new file mode 100644 index 00000000..982b8647 --- /dev/null +++ b/build/_assets/inspector-WF3WTDME.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/json-ICXIIW2Q.svg b/build/_assets/json-ICXIIW2Q.svg new file mode 100644 index 00000000..088762c4 --- /dev/null +++ b/build/_assets/json-ICXIIW2Q.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_assets/julia-Z43FOCKA.svg b/build/_assets/julia-Z43FOCKA.svg new file mode 100644 index 00000000..0b0adad4 --- /dev/null +++ b/build/_assets/julia-Z43FOCKA.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/build/_assets/jupyter-CLDTFGKE.svg b/build/_assets/jupyter-CLDTFGKE.svg new file mode 100644 index 00000000..bc7ba182 --- /dev/null +++ b/build/_assets/jupyter-CLDTFGKE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/jupyter-favicon-BJPTC5W3.svg b/build/_assets/jupyter-favicon-BJPTC5W3.svg new file mode 100644 index 00000000..6a630fc9 --- /dev/null +++ b/build/_assets/jupyter-favicon-BJPTC5W3.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/jupyterlab-wordmark-X46RH4YR.svg b/build/_assets/jupyterlab-wordmark-X46RH4YR.svg new file mode 100644 index 00000000..ca5c1f19 --- /dev/null +++ b/build/_assets/jupyterlab-wordmark-X46RH4YR.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/kernel-64ZJF2BV.svg b/build/_assets/kernel-64ZJF2BV.svg new file mode 100644 index 00000000..a605cbf5 --- /dev/null +++ b/build/_assets/kernel-64ZJF2BV.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/keyboard-RPD7WNG3.svg b/build/_assets/keyboard-RPD7WNG3.svg new file mode 100644 index 00000000..26869fee --- /dev/null +++ b/build/_assets/keyboard-RPD7WNG3.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/launch-HTTG5BMY.svg b/build/_assets/launch-HTTG5BMY.svg new file mode 100644 index 00000000..677963d4 --- /dev/null +++ b/build/_assets/launch-HTTG5BMY.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/launcher-HGLSSDQQ.svg b/build/_assets/launcher-HGLSSDQQ.svg new file mode 100644 index 00000000..89778833 --- /dev/null +++ b/build/_assets/launcher-HGLSSDQQ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/line-form-HLFC5GXN.svg b/build/_assets/line-form-HLFC5GXN.svg new file mode 100644 index 00000000..ac8f051c --- /dev/null +++ b/build/_assets/line-form-HLFC5GXN.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/link-N3PRXZYS.svg b/build/_assets/link-N3PRXZYS.svg new file mode 100644 index 00000000..7f229ccc --- /dev/null +++ b/build/_assets/link-N3PRXZYS.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/list-776XSMFG.svg b/build/_assets/list-776XSMFG.svg new file mode 100644 index 00000000..02a6e86f --- /dev/null +++ b/build/_assets/list-776XSMFG.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/lock-U2OO6ZKE.svg b/build/_assets/lock-U2OO6ZKE.svg new file mode 100644 index 00000000..f872fc56 --- /dev/null +++ b/build/_assets/lock-U2OO6ZKE.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/markdown-7VYKMUK4.svg b/build/_assets/markdown-7VYKMUK4.svg new file mode 100644 index 00000000..d531fb4e --- /dev/null +++ b/build/_assets/markdown-7VYKMUK4.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/mermaid-4IGUJJE6.svg b/build/_assets/mermaid-4IGUJJE6.svg new file mode 100644 index 00000000..9ac2a4ef --- /dev/null +++ b/build/_assets/mermaid-4IGUJJE6.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/move-down-BK666PUN.svg b/build/_assets/move-down-BK666PUN.svg new file mode 100644 index 00000000..7ce13475 --- /dev/null +++ b/build/_assets/move-down-BK666PUN.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/move-up-AZUX24IH.svg b/build/_assets/move-up-AZUX24IH.svg new file mode 100644 index 00000000..3adcc32d --- /dev/null +++ b/build/_assets/move-up-AZUX24IH.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/new-folder-ZTGUIMZF.svg b/build/_assets/new-folder-ZTGUIMZF.svg new file mode 100644 index 00000000..351541e7 --- /dev/null +++ b/build/_assets/new-folder-ZTGUIMZF.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/not-trusted-WPJCOTBZ.svg b/build/_assets/not-trusted-WPJCOTBZ.svg new file mode 100644 index 00000000..5de838de --- /dev/null +++ b/build/_assets/not-trusted-WPJCOTBZ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/notebook-P5FYW3Q3.svg b/build/_assets/notebook-P5FYW3Q3.svg new file mode 100644 index 00000000..c480083c --- /dev/null +++ b/build/_assets/notebook-P5FYW3Q3.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/numbering-IHZOKY27.svg b/build/_assets/numbering-IHZOKY27.svg new file mode 100644 index 00000000..5e0ab95c --- /dev/null +++ b/build/_assets/numbering-IHZOKY27.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/offline-bolt-FWQJODIQ.svg b/build/_assets/offline-bolt-FWQJODIQ.svg new file mode 100644 index 00000000..104f3214 --- /dev/null +++ b/build/_assets/offline-bolt-FWQJODIQ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/open-kernel-source-OZS7ZFOI.svg b/build/_assets/open-kernel-source-OZS7ZFOI.svg new file mode 100644 index 00000000..4e41f38b --- /dev/null +++ b/build/_assets/open-kernel-source-OZS7ZFOI.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/palette-HCEGY3LH.svg b/build/_assets/palette-HCEGY3LH.svg new file mode 100644 index 00000000..3a6c1d30 --- /dev/null +++ b/build/_assets/palette-HCEGY3LH.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/paste-PFM4TTHL.svg b/build/_assets/paste-PFM4TTHL.svg new file mode 100644 index 00000000..845dd311 --- /dev/null +++ b/build/_assets/paste-PFM4TTHL.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/pause-JH4AFR5I.svg b/build/_assets/pause-JH4AFR5I.svg new file mode 100644 index 00000000..cba2214f --- /dev/null +++ b/build/_assets/pause-JH4AFR5I.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/pdf-3LH3N3NY.svg b/build/_assets/pdf-3LH3N3NY.svg new file mode 100644 index 00000000..994b68a8 --- /dev/null +++ b/build/_assets/pdf-3LH3N3NY.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/plotly-6TYK7N2P.svg b/build/_assets/plotly-6TYK7N2P.svg new file mode 100644 index 00000000..5d3d0274 --- /dev/null +++ b/build/_assets/plotly-6TYK7N2P.svg @@ -0,0 +1,31 @@ + + + + + plotly-logomark + + + + + + + + + + + + + + diff --git a/build/_assets/python-4D3ZAEQC.svg b/build/_assets/python-4D3ZAEQC.svg new file mode 100644 index 00000000..906930c0 --- /dev/null +++ b/build/_assets/python-4D3ZAEQC.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/r-kernel-AC4XU7AD.svg b/build/_assets/r-kernel-AC4XU7AD.svg new file mode 100644 index 00000000..6a688be0 --- /dev/null +++ b/build/_assets/r-kernel-AC4XU7AD.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/react-KEWG4YFH.svg b/build/_assets/react-KEWG4YFH.svg new file mode 100644 index 00000000..c0ed4c39 --- /dev/null +++ b/build/_assets/react-KEWG4YFH.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/redo-D2NJAQDT.svg b/build/_assets/redo-D2NJAQDT.svg new file mode 100644 index 00000000..5795f5ec --- /dev/null +++ b/build/_assets/redo-D2NJAQDT.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/refresh-6QLTU3ED.svg b/build/_assets/refresh-6QLTU3ED.svg new file mode 100644 index 00000000..e839801b --- /dev/null +++ b/build/_assets/refresh-6QLTU3ED.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/regex-OLOQFQYH.svg b/build/_assets/regex-OLOQFQYH.svg new file mode 100644 index 00000000..76d53368 --- /dev/null +++ b/build/_assets/regex-OLOQFQYH.svg @@ -0,0 +1,9 @@ + + + + diff --git a/build/_assets/run-JASR5YET.svg b/build/_assets/run-JASR5YET.svg new file mode 100644 index 00000000..4aecb3c8 --- /dev/null +++ b/build/_assets/run-JASR5YET.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/running-WXSXH3AW.svg b/build/_assets/running-WXSXH3AW.svg new file mode 100644 index 00000000..356283d0 --- /dev/null +++ b/build/_assets/running-WXSXH3AW.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/save-F7CIKF5U.svg b/build/_assets/save-F7CIKF5U.svg new file mode 100644 index 00000000..ddd775ce --- /dev/null +++ b/build/_assets/save-F7CIKF5U.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/search-IUWCZPNI.svg b/build/_assets/search-IUWCZPNI.svg new file mode 100644 index 00000000..a7528234 --- /dev/null +++ b/build/_assets/search-IUWCZPNI.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/selected-breakpoint-I3BOBCXF.svg b/build/_assets/selected-breakpoint-I3BOBCXF.svg new file mode 100644 index 00000000..85110bcf --- /dev/null +++ b/build/_assets/selected-breakpoint-I3BOBCXF.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/settings-NVLGB56U.svg b/build/_assets/settings-NVLGB56U.svg new file mode 100644 index 00000000..bdd39286 --- /dev/null +++ b/build/_assets/settings-NVLGB56U.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/share-V2TJNE23.svg b/build/_assets/share-V2TJNE23.svg new file mode 100644 index 00000000..ce0d36bb --- /dev/null +++ b/build/_assets/share-V2TJNE23.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/spreadsheet-53IRUUNR.svg b/build/_assets/spreadsheet-53IRUUNR.svg new file mode 100644 index 00000000..c3fb4e12 --- /dev/null +++ b/build/_assets/spreadsheet-53IRUUNR.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/step-into-CMYG6HZ3.svg b/build/_assets/step-into-CMYG6HZ3.svg new file mode 100644 index 00000000..cb0798ff --- /dev/null +++ b/build/_assets/step-into-CMYG6HZ3.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/step-out-4EAP4RZP.svg b/build/_assets/step-out-4EAP4RZP.svg new file mode 100644 index 00000000..f331ae3b --- /dev/null +++ b/build/_assets/step-out-4EAP4RZP.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/step-over-MSBBRXNS.svg b/build/_assets/step-over-MSBBRXNS.svg new file mode 100644 index 00000000..5c2cd7e1 --- /dev/null +++ b/build/_assets/step-over-MSBBRXNS.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/stop-MRBZ5DJC.svg b/build/_assets/stop-MRBZ5DJC.svg new file mode 100644 index 00000000..a091d5c7 --- /dev/null +++ b/build/_assets/stop-MRBZ5DJC.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/tab-BK4HQPU4.svg b/build/_assets/tab-BK4HQPU4.svg new file mode 100644 index 00000000..a070e68b --- /dev/null +++ b/build/_assets/tab-BK4HQPU4.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/table-rows-RR4IRJT7.svg b/build/_assets/table-rows-RR4IRJT7.svg new file mode 100644 index 00000000..1f87a65f --- /dev/null +++ b/build/_assets/table-rows-RR4IRJT7.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/tag-3CFWX7QM.svg b/build/_assets/tag-3CFWX7QM.svg new file mode 100644 index 00000000..67940c7d --- /dev/null +++ b/build/_assets/tag-3CFWX7QM.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/terminal-DTKKDLBB.svg b/build/_assets/terminal-DTKKDLBB.svg new file mode 100644 index 00000000..fd01df62 --- /dev/null +++ b/build/_assets/terminal-DTKKDLBB.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/text-editor-MJBWRXDS.svg b/build/_assets/text-editor-MJBWRXDS.svg new file mode 100644 index 00000000..9f9cf621 --- /dev/null +++ b/build/_assets/text-editor-MJBWRXDS.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/thebe-core-VKVHG5VY.css b/build/_assets/thebe-core-VKVHG5VY.css new file mode 100644 index 00000000..d66df9e5 --- /dev/null +++ b/build/_assets/thebe-core-VKVHG5VY.css @@ -0,0 +1 @@ +:root{--jp-shadow-base-lightness: 0;--jp-shadow-umbra-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), .2 );--jp-shadow-penumbra-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), .14 );--jp-shadow-ambient-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), .12 );--jp-elevation-z0: none;--jp-elevation-z1: 0 2px 1px -1px var(--jp-shadow-umbra-color), 0 1px 1px 0 var(--jp-shadow-penumbra-color), 0 1px 3px 0 var(--jp-shadow-ambient-color);--jp-elevation-z2: 0 3px 1px -2px var(--jp-shadow-umbra-color), 0 2px 2px 0 var(--jp-shadow-penumbra-color), 0 1px 5px 0 var(--jp-shadow-ambient-color);--jp-elevation-z4: 0 2px 4px -1px var(--jp-shadow-umbra-color), 0 4px 5px 0 var(--jp-shadow-penumbra-color), 0 1px 10px 0 var(--jp-shadow-ambient-color);--jp-elevation-z6: 0 3px 5px -1px var(--jp-shadow-umbra-color), 0 6px 10px 0 var(--jp-shadow-penumbra-color), 0 1px 18px 0 var(--jp-shadow-ambient-color);--jp-elevation-z8: 0 5px 5px -3px var(--jp-shadow-umbra-color), 0 8px 10px 1px var(--jp-shadow-penumbra-color), 0 3px 14px 2px var(--jp-shadow-ambient-color);--jp-elevation-z12: 0 7px 8px -4px var(--jp-shadow-umbra-color), 0 12px 17px 2px var(--jp-shadow-penumbra-color), 0 5px 22px 4px var(--jp-shadow-ambient-color);--jp-elevation-z16: 0 8px 10px -5px var(--jp-shadow-umbra-color), 0 16px 24px 2px var(--jp-shadow-penumbra-color), 0 6px 30px 5px var(--jp-shadow-ambient-color);--jp-elevation-z20: 0 10px 13px -6px var(--jp-shadow-umbra-color), 0 20px 31px 3px var(--jp-shadow-penumbra-color), 0 8px 38px 7px var(--jp-shadow-ambient-color);--jp-elevation-z24: 0 11px 15px -7px var(--jp-shadow-umbra-color), 0 24px 38px 3px var(--jp-shadow-penumbra-color), 0 9px 46px 8px var(--jp-shadow-ambient-color);--jp-border-width: 1px;--jp-border-color0: var(--md-grey-400, #bdbdbd);--jp-border-color1: var(--md-grey-400, #bdbdbd);--jp-border-color2: var(--md-grey-300, #e0e0e0);--jp-border-color3: var(--md-grey-200, #eee);--jp-inverse-border-color: var(--md-grey-600, #757575);--jp-border-radius: 2px;--jp-ui-font-scale-factor: 1.2;--jp-ui-font-size0: .83333em;--jp-ui-font-size1: 13px;--jp-ui-font-size2: 1.2em;--jp-ui-font-size3: 1.44em;--jp-ui-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--jp-ui-font-color0: rgba(0, 0, 0, 1);--jp-ui-font-color1: rgba(0, 0, 0, .87);--jp-ui-font-color2: rgba(0, 0, 0, .54);--jp-ui-font-color3: rgba(0, 0, 0, .38);--jp-ui-inverse-font-color0: rgba(255, 255, 255, 1);--jp-ui-inverse-font-color1: rgba(255, 255, 255, 1);--jp-ui-inverse-font-color2: rgba(255, 255, 255, .7);--jp-ui-inverse-font-color3: rgba(255, 255, 255, .5);--jp-content-line-height: 1.6;--jp-content-font-scale-factor: 1.2;--jp-content-font-size0: .83333em;--jp-content-font-size1: 14px;--jp-content-font-size2: 1.2em;--jp-content-font-size3: 1.44em;--jp-content-font-size4: 1.728em;--jp-content-font-size5: 2.0736em;--jp-content-presentation-font-size1: 17px;--jp-content-heading-line-height: 1;--jp-content-heading-margin-top: 1.2em;--jp-content-heading-margin-bottom: .8em;--jp-content-heading-font-weight: 500;--jp-content-font-color0: rgba(0, 0, 0, 1);--jp-content-font-color1: rgba(0, 0, 0, .87);--jp-content-font-color2: rgba(0, 0, 0, .54);--jp-content-font-color3: rgba(0, 0, 0, .38);--jp-content-link-color: var(--md-blue-900, #0d47a1);--jp-content-link-visited-color: var(--md-purple-700, #7b1fa2);--jp-content-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", helvetica, arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--jp-code-font-size: 13px;--jp-code-line-height: 1.3077;--jp-code-padding: 5px;--jp-code-font-family-default: menlo, consolas, "DejaVu Sans Mono", monospace;--jp-code-font-family: var(--jp-code-font-family-default);--jp-code-presentation-font-size: 16px;--jp-code-cursor-width0: 1.4px;--jp-code-cursor-width1: 2px;--jp-code-cursor-width2: 4px;--jp-layout-color0: white;--jp-layout-color1: white;--jp-layout-color2: var(--md-grey-200, #eee);--jp-layout-color3: var(--md-grey-400, #bdbdbd);--jp-layout-color4: var(--md-grey-600, #757575);--jp-inverse-layout-color0: #111;--jp-inverse-layout-color1: var(--md-grey-900, #212121);--jp-inverse-layout-color2: var(--md-grey-800, #424242);--jp-inverse-layout-color3: var(--md-grey-700, #616161);--jp-inverse-layout-color4: var(--md-grey-600, #757575);--jp-brand-color0: var(--md-blue-900, #0d47a1);--jp-brand-color1: var(--md-blue-700, #1976d2);--jp-brand-color2: var(--md-blue-300, #64b5f6);--jp-brand-color3: var(--md-blue-100, #bbdefb);--jp-brand-color4: var(--md-blue-50, #e3f2fd);--jp-accent-color0: var(--md-green-900, #1b5e20);--jp-accent-color1: var(--md-green-700, #388e3c);--jp-accent-color2: var(--md-green-300, #81c784);--jp-accent-color3: var(--md-green-100, #c8e6c9);--jp-warn-color0: var(--md-orange-900, #e65100);--jp-warn-color1: var(--md-orange-700, #f57c00);--jp-warn-color2: var(--md-orange-300, #ffb74d);--jp-warn-color3: var(--md-orange-100, #ffe0b2);--jp-error-color0: var(--md-red-900, #b71c1c);--jp-error-color1: var(--md-red-700, #d32f2f);--jp-error-color2: var(--md-red-300, #e57373);--jp-error-color3: var(--md-red-100, #ffcdd2);--jp-success-color0: var(--md-green-900, #1b5e20);--jp-success-color1: var(--md-green-700, #388e3c);--jp-success-color2: var(--md-green-300, #81c784);--jp-success-color3: var(--md-green-100, #c8e6c9);--jp-info-color0: var(--md-cyan-900, #006064);--jp-info-color1: var(--md-cyan-700, #0097a7);--jp-info-color2: var(--md-cyan-300, #4dd0e1);--jp-info-color3: var(--md-cyan-100, #b2ebf2);--jp-cell-padding: 5px;--jp-cell-collapser-width: 8px;--jp-cell-collapser-min-height: 20px;--jp-cell-collapser-not-active-hover-opacity: .6;--jp-cell-editor-background: var(--md-grey-100, #f5f5f5);--jp-cell-editor-border-color: var(--md-grey-300, #e0e0e0);--jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300, #64b5f6);--jp-cell-editor-active-background: var(--jp-layout-color0);--jp-cell-editor-active-border-color: var(--jp-brand-color1);--jp-cell-prompt-width: 64px;--jp-cell-prompt-font-family: var(--jp-code-font-family-default);--jp-cell-prompt-letter-spacing: 0;--jp-cell-prompt-opacity: 1;--jp-cell-prompt-not-active-opacity: .5;--jp-cell-prompt-not-active-font-color: var(--md-grey-700, #616161);--jp-cell-inprompt-font-color: #307fc1;--jp-cell-outprompt-font-color: #bf5b3d;--jp-notebook-padding: 10px;--jp-notebook-select-background: var(--jp-layout-color1);--jp-notebook-multiselected-color: var(--md-blue-50, #e3f2fd);--jp-notebook-scroll-padding: calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - var(--jp-cell-padding) - 1px );--jp-rendermime-error-background: #fdd;--jp-rendermime-table-row-background: var(--md-grey-100, #cfd8dc);--jp-rendermime-table-row-hover-background: var(--md-light-blue-50, #e1f5fe);--jp-dialog-background: rgba(0, 0, 0, .25);--jp-console-padding: 10px;--jp-toolbar-border-color: var(--jp-border-color1);--jp-toolbar-micro-height: 8px;--jp-toolbar-background: var(--jp-layout-color1);--jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, .24);--jp-toolbar-header-margin: 4px 4px 0 4px;--jp-toolbar-active-background: var(--md-grey-300, #90a4ae);--jp-statusbar-height: 24px;--jp-input-box-shadow: inset 0 0 2px var(--md-blue-300, #64b5f6);--jp-input-active-background: var(--jp-layout-color1);--jp-input-hover-background: var(--jp-layout-color1);--jp-input-background: var(--md-grey-100, #f5f5f5);--jp-input-border-color: var(--jp-inverse-border-color);--jp-input-active-border-color: var(--jp-brand-color1);--jp-input-active-box-shadow-color: rgba(19, 124, 189, .3);--jp-editor-selected-background: #d9d9d9;--jp-editor-selected-focused-background: #d7d4f0;--jp-editor-cursor-color: var(--jp-ui-font-color0);--jp-mirror-editor-keyword-color: #008000;--jp-mirror-editor-atom-color: #88f;--jp-mirror-editor-number-color: #080;--jp-mirror-editor-def-color: #00f;--jp-mirror-editor-variable-color: var(--md-grey-900, #212121);--jp-mirror-editor-variable-2-color: rgb(0, 54, 109);--jp-mirror-editor-variable-3-color: #085;--jp-mirror-editor-punctuation-color: #05a;--jp-mirror-editor-property-color: #05a;--jp-mirror-editor-operator-color: #a2f;--jp-mirror-editor-comment-color: #408080;--jp-mirror-editor-string-color: #ba2121;--jp-mirror-editor-string-2-color: #708;--jp-mirror-editor-meta-color: #a2f;--jp-mirror-editor-qualifier-color: #555;--jp-mirror-editor-builtin-color: #008000;--jp-mirror-editor-bracket-color: #997;--jp-mirror-editor-tag-color: #170;--jp-mirror-editor-attribute-color: #00c;--jp-mirror-editor-header-color: blue;--jp-mirror-editor-quote-color: #090;--jp-mirror-editor-link-color: #00c;--jp-mirror-editor-error-color: #f00;--jp-mirror-editor-hr-color: #999;--jp-collaborator-color1: #ffad8e;--jp-collaborator-color2: #dac83d;--jp-collaborator-color3: #72dd76;--jp-collaborator-color4: #00e4d0;--jp-collaborator-color5: #45d4ff;--jp-collaborator-color6: #e2b1ff;--jp-collaborator-color7: #ff9de6;--jp-vega-background: white;--jp-sidebar-min-width: 250px;--jp-search-toggle-off-opacity: .5;--jp-search-toggle-hover-opacity: .8;--jp-search-toggle-on-opacity: 1;--jp-search-selected-match-background-color: rgb(245, 200, 0);--jp-search-selected-match-color: black;--jp-search-unselected-match-background-color: var( --jp-inverse-layout-color0 );--jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0);--jp-icon-contrast-color0: var(--md-purple-600, #8e24aa);--jp-icon-contrast-color1: var(--md-green-600, #43a047);--jp-icon-contrast-color2: var(--md-pink-600, #d81b60);--jp-icon-contrast-color3: var(--md-blue-600, #1e88e5);--jp-accept-color-normal: var(--md-blue-700, #1976d2);--jp-accept-color-hover: var(--md-blue-800, #1565c0);--jp-accept-color-active: var(--md-blue-900, #0d47a1);--jp-warn-color-normal: var(--md-red-700, #d32f2f);--jp-warn-color-hover: var(--md-red-800, #c62828);--jp-warn-color-active: var(--md-red-900, #b71c1c);--jp-reject-color-normal: var(--md-grey-600, #757575);--jp-reject-color-hover: var(--md-grey-700, #616161);--jp-reject-color-active: var(--md-grey-800, #424242);--jp-jupyter-icon-color: #f37626;--jp-notebook-icon-color: #f37626;--jp-json-icon-color: var(--md-orange-700, #f57c00);--jp-console-icon-background-color: var(--md-blue-700, #1976d2);--jp-console-icon-color: white;--jp-terminal-icon-background-color: var(--md-grey-800, #424242);--jp-terminal-icon-color: var(--md-grey-200, #eee);--jp-text-editor-icon-color: var(--md-grey-700, #616161);--jp-inspector-icon-color: var(--md-grey-700, #616161);--jp-switch-color: var(--md-grey-400, #bdbdbd);--jp-switch-true-position-color: var(--md-orange-900, #e65100)}tt,code,kbd,samp,pre{font-family:var(--jp-code-font-family);font-size:var(--jp-code-font-size);line-height:var(--jp-code-line-height)}.jupyter-widgets.widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jupyter-widgets.widget-tab>.p-TabBar[data-orientation=horizontal],.jupyter-widgets.jupyter-widget-tab>.p-TabBar[data-orientation=horizontal],.jupyter-widgets.jupyter-widget-tab>.lm-TabBar[data-orientation=horizontal]{flex-direction:row}.jupyter-widgets.widget-tab>.p-TabBar[data-orientation=vertical],.jupyter-widgets.jupyter-widget-tab>.p-TabBar[data-orientation=vertical],.jupyter-widgets.jupyter-widget-tab>.lm-TabBar[data-orientation=vertical]{flex-direction:column}.jupyter-widgets.widget-tab>.p-TabBar>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.p-TabBar>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar>.lm-TabBar-content{margin:0;padding:0;display:flex;flex:1 1 auto;list-style-type:none}.jupyter-widgets.widget-tab>.p-TabBar[data-orientation=horizontal]>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.p-TabBar[data-orientation=horizontal]>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar[data-orientation=horizontal]>.lm-TabBar-content{flex-direction:row}.jupyter-widgets.widget-tab>.p-TabBar[data-orientation=vertical]>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.p-TabBar[data-orientation=vertical]>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar[data-orientation=vertical]>.lm-TabBar-content{flex-direction:column}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab{display:flex;flex-direction:row;box-sizing:border-box;overflow:hidden}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabIcon,.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabIcon,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabIcon,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabCloseIcon{flex:0 0 auto}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabLabel,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabLabel,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabLabel{flex:1 1 auto;overflow:hidden;white-space:nowrap}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab.p-mod-hidden,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab.p-mod-hidden,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab.lm-mod-hidden{display:none!important}.jupyter-widgets.widget-tab>.p-TabBar.p-mod-dragging .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.p-TabBar.p-mod-dragging .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar.lm-mod-dragging .lm-TabBar-tab{position:relative}.jupyter-widgets.widget-tab>.p-TabBar.p-mod-dragging[data-orientation=horizontal] .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.p-TabBar.p-mod-dragging[data-orientation=horizontal] .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar.lm-mod-dragging[data-orientation=horizontal] .lm-TabBar-tab{left:0;transition:left .15s ease}.jupyter-widgets.widget-tab>.p-TabBar.p-mod-dragging[data-orientation=vertical] .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.p-TabBar.p-mod-dragging[data-orientation=vertical] .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar.lm-mod-dragging[data-orientation=vertical] .lm-TabBar-tab{top:0;transition:top .15s ease}.jupyter-widgets.widget-tab>.p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging,.jupyter-widgets.jupyter-widget-tab>.p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging{transition:none}.widget-slider .noUi-target,.jupyter-widget-slider .noUi-target,.widget-slider .noUi-target *,.jupyter-widget-slider .noUi-target *{-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-user-select:none;-ms-touch-action:none;touch-action:none;-ms-user-select:none;-moz-user-select:none;user-select:none;-moz-box-sizing:border-box;box-sizing:border-box}.widget-slider .noUi-target,.jupyter-widget-slider .noUi-target{position:relative}.widget-slider .noUi-base,.jupyter-widget-slider .noUi-base,.widget-slider .noUi-connects,.jupyter-widget-slider .noUi-connects{width:100%;height:100%;position:relative;z-index:1}.widget-slider .noUi-connects,.jupyter-widget-slider .noUi-connects{overflow:hidden;z-index:0}.widget-slider .noUi-connect,.jupyter-widget-slider .noUi-connect,.widget-slider .noUi-origin,.jupyter-widget-slider .noUi-origin{will-change:transform;position:absolute;z-index:1;top:0;right:0;-ms-transform-origin:0 0;-webkit-transform-origin:0 0;-webkit-transform-style:preserve-3d;transform-origin:0 0;transform-style:flat}.widget-slider .noUi-connect,.jupyter-widget-slider .noUi-connect{height:100%;width:100%}.widget-slider .noUi-origin,.jupyter-widget-slider .noUi-origin{height:10%;width:10%}.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin,.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin{left:0;right:auto}.widget-slider .noUi-vertical .noUi-origin,.jupyter-widget-slider .noUi-vertical .noUi-origin{width:0}.widget-slider .noUi-horizontal .noUi-origin,.jupyter-widget-slider .noUi-horizontal .noUi-origin{height:0}.widget-slider .noUi-handle,.jupyter-widget-slider .noUi-handle{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute}.widget-slider .noUi-touch-area,.jupyter-widget-slider .noUi-touch-area{height:100%;width:100%}.widget-slider .noUi-state-tap .noUi-connect,.jupyter-widget-slider .noUi-state-tap .noUi-connect,.widget-slider .noUi-state-tap .noUi-origin,.jupyter-widget-slider .noUi-state-tap .noUi-origin{-webkit-transition:transform .3s;transition:transform .3s}.widget-slider .noUi-state-drag *,.jupyter-widget-slider .noUi-state-drag *{cursor:inherit!important}.widget-slider .noUi-horizontal,.jupyter-widget-slider .noUi-horizontal{height:18px}.widget-slider .noUi-horizontal .noUi-handle,.jupyter-widget-slider .noUi-horizontal .noUi-handle{width:34px;height:28px;right:-17px;top:-6px}.widget-slider .noUi-vertical,.jupyter-widget-slider .noUi-vertical{width:18px}.widget-slider .noUi-vertical .noUi-handle,.jupyter-widget-slider .noUi-vertical .noUi-handle{width:28px;height:34px;right:-6px;top:-17px}.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle,.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle{left:-17px;right:auto}.widget-slider .noUi-target,.jupyter-widget-slider .noUi-target{background:#FAFAFA;border-radius:4px;border:1px solid #D3D3D3;box-shadow:inset 0 1px 1px #f0f0f0,0 3px 6px -5px #bbb}.widget-slider .noUi-connects,.jupyter-widget-slider .noUi-connects{border-radius:3px}.widget-slider .noUi-connect,.jupyter-widget-slider .noUi-connect{background:#3FB8AF}.widget-slider .noUi-draggable,.jupyter-widget-slider .noUi-draggable{cursor:ew-resize}.widget-slider .noUi-vertical .noUi-draggable,.jupyter-widget-slider .noUi-vertical .noUi-draggable{cursor:ns-resize}.widget-slider .noUi-handle,.jupyter-widget-slider .noUi-handle{border:1px solid #D9D9D9;border-radius:3px;background:#FFF;cursor:default;box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ebebeb,0 3px 6px -3px #bbb}.widget-slider .noUi-active,.jupyter-widget-slider .noUi-active{box-shadow:inset 0 0 1px #fff,inset 0 1px 7px #ddd,0 3px 6px -3px #bbb}.widget-slider .noUi-handle:before,.jupyter-widget-slider .noUi-handle:before,.widget-slider .noUi-handle:after,.jupyter-widget-slider .noUi-handle:after{content:"";display:block;position:absolute;height:14px;width:1px;background:#E8E7E6;left:14px;top:6px}.widget-slider .noUi-handle:after,.jupyter-widget-slider .noUi-handle:after{left:17px}.widget-slider .noUi-vertical .noUi-handle:before,.jupyter-widget-slider .noUi-vertical .noUi-handle:before,.widget-slider .noUi-vertical .noUi-handle:after,.jupyter-widget-slider .noUi-vertical .noUi-handle:after{width:14px;height:1px;left:6px;top:14px}.widget-slider .noUi-vertical .noUi-handle:after,.jupyter-widget-slider .noUi-vertical .noUi-handle:after{top:17px}.widget-slider [disabled] .noUi-connect,.jupyter-widget-slider [disabled] .noUi-connect{background:#B8B8B8}.widget-slider [disabled].noUi-target,.jupyter-widget-slider [disabled].noUi-target,.widget-slider [disabled].noUi-handle,.jupyter-widget-slider [disabled].noUi-handle,.widget-slider [disabled] .noUi-handle,.jupyter-widget-slider [disabled] .noUi-handle{cursor:not-allowed}.widget-slider .noUi-pips,.jupyter-widget-slider .noUi-pips,.widget-slider .noUi-pips *,.jupyter-widget-slider .noUi-pips *{-moz-box-sizing:border-box;box-sizing:border-box}.widget-slider .noUi-pips,.jupyter-widget-slider .noUi-pips{position:absolute;color:#999}.widget-slider .noUi-value,.jupyter-widget-slider .noUi-value{position:absolute;white-space:nowrap;text-align:center}.widget-slider .noUi-value-sub,.jupyter-widget-slider .noUi-value-sub{color:#ccc;font-size:10px}.widget-slider .noUi-marker,.jupyter-widget-slider .noUi-marker{position:absolute;background:#CCC}.widget-slider .noUi-marker-sub,.jupyter-widget-slider .noUi-marker-sub,.widget-slider .noUi-marker-large,.jupyter-widget-slider .noUi-marker-large{background:#AAA}.widget-slider .noUi-pips-horizontal,.jupyter-widget-slider .noUi-pips-horizontal{padding:10px 0;height:80px;top:100%;left:0;width:100%}.widget-slider .noUi-value-horizontal,.jupyter-widget-slider .noUi-value-horizontal{-webkit-transform:translate(-50%,50%);transform:translate(-50%,50%)}.noUi-rtl .widget-slider .noUi-value-horizontal,.noUi-rtl .jupyter-widget-slider .noUi-value-horizontal{-webkit-transform:translate(50%,50%);transform:translate(50%,50%)}.widget-slider .noUi-marker-horizontal.noUi-marker,.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker{margin-left:-1px;width:2px;height:5px}.widget-slider .noUi-marker-horizontal.noUi-marker-sub,.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-sub{height:10px}.widget-slider .noUi-marker-horizontal.noUi-marker-large,.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-large{height:15px}.widget-slider .noUi-pips-vertical,.jupyter-widget-slider .noUi-pips-vertical{padding:0 10px;height:100%;top:0;left:100%}.widget-slider .noUi-value-vertical,.jupyter-widget-slider .noUi-value-vertical{-webkit-transform:translate(0,-50%);transform:translateY(-50%);padding-left:25px}.noUi-rtl .widget-slider .noUi-value-vertical,.noUi-rtl .jupyter-widget-slider .noUi-value-vertical{-webkit-transform:translate(0,50%);transform:translateY(50%)}.widget-slider .noUi-marker-vertical.noUi-marker,.jupyter-widget-slider .noUi-marker-vertical.noUi-marker{width:5px;height:2px;margin-top:-1px}.widget-slider .noUi-marker-vertical.noUi-marker-sub,.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-sub{width:10px}.widget-slider .noUi-marker-vertical.noUi-marker-large,.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-large{width:15px}.widget-slider .noUi-tooltip,.jupyter-widget-slider .noUi-tooltip{display:block;position:absolute;border:1px solid #D9D9D9;border-radius:3px;background:#fff;color:#000;padding:5px;text-align:center;white-space:nowrap}.widget-slider .noUi-horizontal .noUi-tooltip,.jupyter-widget-slider .noUi-horizontal .noUi-tooltip{-webkit-transform:translate(-50%,0);transform:translate(-50%);left:50%;bottom:120%}.widget-slider .noUi-vertical .noUi-tooltip,.jupyter-widget-slider .noUi-vertical .noUi-tooltip{-webkit-transform:translate(0,-50%);transform:translateY(-50%);top:50%;right:120%}.widget-slider .noUi-horizontal .noUi-origin>.noUi-tooltip,.jupyter-widget-slider .noUi-horizontal .noUi-origin>.noUi-tooltip{-webkit-transform:translate(50%,0);transform:translate(50%);left:auto;bottom:10px}.widget-slider .noUi-vertical .noUi-origin>.noUi-tooltip,.jupyter-widget-slider .noUi-vertical .noUi-origin>.noUi-tooltip{-webkit-transform:translate(0,-18px);transform:translateY(-18px);top:auto;right:28px}.widget-slider .noUi-connect,.jupyter-widget-slider .noUi-connect{background:#2196f3}.widget-slider .noUi-horizontal,.jupyter-widget-slider .noUi-horizontal{height:var(--jp-widgets-slider-track-thickness)}.widget-slider .noUi-vertical,.jupyter-widget-slider .noUi-vertical{width:var(--jp-widgets-slider-track-thickness);height:100%}.widget-slider .noUi-horizontal .noUi-handle,.jupyter-widget-slider .noUi-horizontal .noUi-handle{width:var(--jp-widgets-slider-handle-size);height:var(--jp-widgets-slider-handle-size);border-radius:50%;top:calc((var(--jp-widgets-slider-track-thickness) - var(--jp-widgets-slider-handle-size)) / 2);right:calc(var(--jp-widgets-slider-handle-size) / -2)}.widget-slider .noUi-vertical .noUi-handle,.jupyter-widget-slider .noUi-vertical .noUi-handle{height:var(--jp-widgets-slider-handle-size);width:var(--jp-widgets-slider-handle-size);border-radius:50%;right:calc((var(--jp-widgets-slider-handle-size) - var(--jp-widgets-slider-track-thickness)) / -2);top:calc(var(--jp-widgets-slider-handle-size) / -2)}.widget-slider .noUi-handle:after,.jupyter-widget-slider .noUi-handle:after{content:none}.widget-slider .noUi-handle:before,.jupyter-widget-slider .noUi-handle:before{content:none}.widget-slider .noUi-target,.jupyter-widget-slider .noUi-target{background:#fafafa;border-radius:4px;border:1px}.widget-slider .ui-slider,.jupyter-widget-slider .ui-slider{border:var(--jp-widgets-slider-border-width) solid var(--jp-layout-color3);background:var(--jp-layout-color3);box-sizing:border-box;position:relative;border-radius:0}.widget-slider .noUi-handle,.jupyter-widget-slider .noUi-handle{width:var(--jp-widgets-slider-handle-size);border:1px solid #d9d9d9;border-radius:3px;background:#fff;cursor:default;box-shadow:none;outline:none}.widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,.widget-slider .noUi-target:not([disabled]) .noUi-handle:focus,.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:focus{background-color:var(--jp-widgets-slider-active-handle-color);border:var(--jp-widgets-slider-border-width) solid var(--jp-widgets-slider-active-handle-color)}.widget-slider [disabled].noUi-target,.jupyter-widget-slider [disabled].noUi-target{opacity:.35}.widget-slider .noUi-connects,.jupyter-widget-slider .noUi-connects{overflow:visible;z-index:0;background:var(--jp-layout-color3)}.widget-slider .noUi-vertical .noUi-connect,.jupyter-widget-slider .noUi-vertical .noUi-connect{width:calc(100% + 2px);right:-1px}.widget-slider .noUi-horizontal .noUi-connect,.jupyter-widget-slider .noUi-horizontal .noUi-connect{height:calc(100% + 2px);top:-1px}:root{--jp-widgets-color: var(--jp-content-font-color1);--jp-widgets-label-color: var(--jp-widgets-color);--jp-widgets-readout-color: var(--jp-widgets-color);--jp-widgets-font-size: var(--jp-ui-font-size1);--jp-widgets-margin: 2px;--jp-widgets-inline-height: 28px;--jp-widgets-inline-width: 300px;--jp-widgets-inline-width-short: calc( var(--jp-widgets-inline-width) / 2 - var(--jp-widgets-margin) );--jp-widgets-inline-width-tiny: calc( var(--jp-widgets-inline-width-short) / 2 - var(--jp-widgets-margin) );--jp-widgets-inline-margin: 4px;--jp-widgets-inline-label-width: 80px;--jp-widgets-border-width: var(--jp-border-width);--jp-widgets-vertical-height: 200px;--jp-widgets-horizontal-tab-height: 24px;--jp-widgets-horizontal-tab-width: 144px;--jp-widgets-horizontal-tab-top-border: 2px;--jp-widgets-progress-thickness: 20px;--jp-widgets-container-padding: 15px;--jp-widgets-input-padding: 4px;--jp-widgets-radio-item-height-adjustment: 8px;--jp-widgets-radio-item-height: calc( var(--jp-widgets-inline-height) - var(--jp-widgets-radio-item-height-adjustment) );--jp-widgets-slider-track-thickness: 4px;--jp-widgets-slider-border-width: var(--jp-widgets-border-width);--jp-widgets-slider-handle-size: 16px;--jp-widgets-slider-handle-border-color: var(--jp-border-color1);--jp-widgets-slider-handle-background-color: var(--jp-layout-color1);--jp-widgets-slider-active-handle-color: var(--jp-brand-color1);--jp-widgets-menu-item-height: 24px;--jp-widgets-dropdown-arrow: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDpub25lO30KPC9zdHlsZT4KPHBhdGggZD0iTTUuMiw1LjlMOSw5LjdsMy44LTMuOGwxLjIsMS4ybC00LjksNWwtNC45LTVMNS4yLDUuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTAtMC42aDE4djE4SDBWLTAuNnoiLz4KPC9zdmc+Cg);--jp-widgets-input-color: var(--jp-ui-font-color1);--jp-widgets-input-background-color: var(--jp-layout-color1);--jp-widgets-input-border-color: var(--jp-border-color1);--jp-widgets-input-focus-border-color: var(--jp-brand-color2);--jp-widgets-input-border-width: var(--jp-widgets-border-width);--jp-widgets-disabled-opacity: .6;--md-shadow-key-umbra-opacity: .2;--md-shadow-key-penumbra-opacity: .14;--md-shadow-ambient-shadow-opacity: .12}.jupyter-widgets{margin:var(--jp-widgets-margin);box-sizing:border-box;color:var(--jp-widgets-color);overflow:visible}.jp-Output-result>.jupyter-widgets{margin-left:0;margin-right:0}.widget-inline-hbox,.jupyter-widget-inline-hbox{box-sizing:border-box;display:flex;flex-direction:row;align-items:baseline}.widget-inline-vbox,.jupyter-widget-inline-vbox{box-sizing:border-box;display:flex;flex-direction:column;align-items:center}.widget-box,.jupyter-widget-box{box-sizing:border-box;display:flex;margin:0;overflow:auto}.widget-gridbox,.jupyter-widget-gridbox{box-sizing:border-box;display:grid;margin:0;overflow:auto}.widget-hbox,.jupyter-widget-hbox{flex-direction:row}.widget-vbox,.jupyter-widget-vbox{flex-direction:column}.jupyter-widget-tagsinput{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;overflow:auto;cursor:text}.jupyter-widget-tag{padding:0 10px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:var(--jp-widgets-font-size);height:calc(var(--jp-widgets-inline-height) - 2px);border:0px solid;line-height:calc(var(--jp-widgets-inline-height) - 2px);box-shadow:none;color:var(--jp-ui-font-color1);background-color:var(--jp-layout-color2);border-color:var(--jp-border-color2);border:none;user-select:none;cursor:grab;transition:margin-left .2s;margin:1px}.jupyter-widget-tag.mod-active{box-shadow:0 4px 5px 0 rgba(0,0,0,var(--md-shadow-key-penumbra-opacity)),0 1px 10px 0 rgba(0,0,0,var(--md-shadow-ambient-shadow-opacity)),0 2px 4px -1px rgba(0,0,0,var(--md-shadow-key-umbra-opacity));color:var(--jp-ui-font-color1);background-color:var(--jp-layout-color3)}.jupyter-widget-colortag{color:var(--jp-inverse-ui-font-color1)}.jupyter-widget-colortag.mod-active{color:var(--jp-inverse-ui-font-color0)}.jupyter-widget-taginput{color:var(--jp-ui-font-color0);background-color:var(--jp-layout-color0);cursor:text;text-align:left}.jupyter-widget-taginput:focus{outline:none}.jupyter-widget-tag-close{margin-left:var(--jp-widgets-inline-margin);padding:2px 0 2px 2px}.jupyter-widget-tag-close:hover{cursor:pointer}.jupyter-widget-tag.mod-primary{color:var(--jp-inverse-ui-font-color1);background-color:var(--jp-brand-color1)}.jupyter-widget-tag.mod-primary.mod-active{color:var(--jp-inverse-ui-font-color0);background-color:var(--jp-brand-color0)}.jupyter-widget-tag.mod-success{color:var(--jp-inverse-ui-font-color1);background-color:var(--jp-success-color1)}.jupyter-widget-tag.mod-success.mod-active{color:var(--jp-inverse-ui-font-color0);background-color:var(--jp-success-color0)}.jupyter-widget-tag.mod-info{color:var(--jp-inverse-ui-font-color1);background-color:var(--jp-info-color1)}.jupyter-widget-tag.mod-info.mod-active{color:var(--jp-inverse-ui-font-color0);background-color:var(--jp-info-color0)}.jupyter-widget-tag.mod-warning{color:var(--jp-inverse-ui-font-color1);background-color:var(--jp-warn-color1)}.jupyter-widget-tag.mod-warning.mod-active{color:var(--jp-inverse-ui-font-color0);background-color:var(--jp-warn-color0)}.jupyter-widget-tag.mod-danger{color:var(--jp-inverse-ui-font-color1);background-color:var(--jp-error-color1)}.jupyter-widget-tag.mod-danger.mod-active{color:var(--jp-inverse-ui-font-color0);background-color:var(--jp-error-color0)}.jupyter-button{padding:0 10px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font-size:var(--jp-widgets-font-size);cursor:pointer;height:var(--jp-widgets-inline-height);border:0px solid;line-height:var(--jp-widgets-inline-height);box-shadow:none;color:var(--jp-ui-font-color1);background-color:var(--jp-layout-color2);border-color:var(--jp-border-color2);border:none;user-select:none}.jupyter-button i.fa{margin-right:var(--jp-widgets-inline-margin);pointer-events:none}.jupyter-button:empty:before{content:"\200b"}.jupyter-widgets.jupyter-button:disabled{opacity:var(--jp-widgets-disabled-opacity)}.jupyter-button i.fa.center{margin-right:0}.jupyter-button:hover:enabled,.jupyter-button:focus:enabled{box-shadow:0 2px 2px 0 rgba(0,0,0,var(--md-shadow-key-penumbra-opacity)),0 3px 1px -2px rgba(0,0,0,var(--md-shadow-key-umbra-opacity)),0 1px 5px 0 rgba(0,0,0,var(--md-shadow-ambient-shadow-opacity))}.jupyter-button:active,.jupyter-button.mod-active{box-shadow:0 4px 5px 0 rgba(0,0,0,var(--md-shadow-key-penumbra-opacity)),0 1px 10px 0 rgba(0,0,0,var(--md-shadow-ambient-shadow-opacity)),0 2px 4px -1px rgba(0,0,0,var(--md-shadow-key-umbra-opacity));color:var(--jp-ui-font-color1);background-color:var(--jp-layout-color3)}.jupyter-button:focus:enabled{outline:1px solid var(--jp-widgets-input-focus-border-color)}.jupyter-button.mod-primary{color:var(--jp-ui-inverse-font-color1);background-color:var(--jp-brand-color1)}.jupyter-button.mod-primary.mod-active,.jupyter-button.mod-primary:active{color:var(--jp-ui-inverse-font-color0);background-color:var(--jp-brand-color0)}.jupyter-button.mod-success{color:var(--jp-ui-inverse-font-color1);background-color:var(--jp-success-color1)}.jupyter-button.mod-success.mod-active,.jupyter-button.mod-success:active{color:var(--jp-ui-inverse-font-color0);background-color:var(--jp-success-color0)}.jupyter-button.mod-info{color:var(--jp-ui-inverse-font-color1);background-color:var(--jp-info-color1)}.jupyter-button.mod-info.mod-active,.jupyter-button.mod-info:active{color:var(--jp-ui-inverse-font-color0);background-color:var(--jp-info-color0)}.jupyter-button.mod-warning{color:var(--jp-ui-inverse-font-color1);background-color:var(--jp-warn-color1)}.jupyter-button.mod-warning.mod-active,.jupyter-button.mod-warning:active{color:var(--jp-ui-inverse-font-color0);background-color:var(--jp-warn-color0)}.jupyter-button.mod-danger{color:var(--jp-ui-inverse-font-color1);background-color:var(--jp-error-color1)}.jupyter-button.mod-danger.mod-active,.jupyter-button.mod-danger:active{color:var(--jp-ui-inverse-font-color0);background-color:var(--jp-error-color0)}.widget-button,.widget-toggle-button,.widget-upload,.jupyter-widget-button,.jupyter-widget-toggle-button,.jupyter-widget-upload{width:var(--jp-widgets-inline-width-short)}.jupyter-widgets label{margin-bottom:initial}.widget-label-basic,.jupyter-widget-label-basic,.widget-label,.jupyter-widget-label{color:var(--jp-widgets-label-color);font-size:var(--jp-widgets-font-size);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:var(--jp-widgets-inline-height)}.widget-inline-hbox .widget-label,.jupyter-widget-inline-hbox .jupyter-widget-label{color:var(--jp-widgets-label-color);text-align:right;margin-right:calc(var(--jp-widgets-inline-margin) * 2);width:var(--jp-widgets-inline-label-width);flex-shrink:0}.widget-inline-vbox .widget-label,.jupyter-widget-inline-vbox .jupyter-widget-label{color:var(--jp-widgets-label-color);text-align:center;line-height:var(--jp-widgets-inline-height)}.widget-readout,.jupyter-widget-readout{color:var(--jp-widgets-readout-color);font-size:var(--jp-widgets-font-size);height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height);overflow:hidden;white-space:nowrap;text-align:center}.widget-readout.overflow,.jupyter-widget-readout.overflow{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,.2),0 3px 1px -2px rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-moz-box-shadow:0 2px 2px 0 rgba(0,0,0,.2),0 3px 1px -2px rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 2px 2px #0003,0 3px 1px -2px #00000024,0 1px 5px #0000001f}.widget-inline-hbox .widget-readout,.jupyter-widget-inline-hbox .jupyter-widget-readout{text-align:center;max-width:var(--jp-widgets-inline-width-short);min-width:var(--jp-widgets-inline-width-tiny);margin-left:var(--jp-widgets-inline-margin)}.widget-inline-vbox .widget-readout,.jupyter-widget-inline-vbox .jupyter-widget-readout{margin-top:var(--jp-widgets-inline-margin);width:inherit}.widget-checkbox,.jupyter-widget-checkbox{width:var(--jp-widgets-inline-width);height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height)}.widget-checkbox input[type=checkbox],.jupyter-widget-checkbox input[type=checkbox]{margin:0px calc(var(--jp-widgets-inline-margin) * 2) 0px 0px;line-height:var(--jp-widgets-inline-height);font-size:large;flex-grow:1;flex-shrink:0;align-self:center}.widget-valid,.jupyter-widget-valid{height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height);width:var(--jp-widgets-inline-width-short);font-size:var(--jp-widgets-font-size)}.widget-valid i,.jupyter-widget-valid i{line-height:var(--jp-widgets-inline-height);margin-right:var(--jp-widgets-inline-margin);margin-left:var(--jp-widgets-inline-margin)}.widget-valid.mod-valid i,.jupyter-widget-valid.mod-valid i{color:green}.widget-valid.mod-invalid i,.jupyter-widget-valid.mod-invalid i{color:red}.widget-valid.mod-valid .widget-valid-readout,.jupyter-widget-valid.mod-valid .jupyter-widget-valid-readout{display:none}.widget-textarea,.widget-text,.jupyter-widget-textarea,.jupyter-widget-text{width:var(--jp-widgets-inline-width)}.widget-text input[type=text],.widget-text input[type=number],.widget-text input[type=password],.jupyter-widget-text input[type=text],.jupyter-widget-text input[type=number],.jupyter-widget-text input[type=password]{height:var(--jp-widgets-inline-height)}.widget-text input[type=text]:disabled,.widget-text input[type=number]:disabled,.widget-text input[type=password]:disabled,.widget-textarea textarea:disabled,.jupyter-widget-text input[type=text]:disabled,.jupyter-widget-text input[type=number]:disabled,.jupyter-widget-text input[type=password]:disabled,.jupyter-widget-textarea textarea:disabled{opacity:var(--jp-widgets-disabled-opacity)}.widget-text input[type=text],.widget-text input[type=number],.widget-text input[type=password],.widget-textarea textarea,.jupyter-widget-text input[type=text],.jupyter-widget-text input[type=number],.jupyter-widget-text input[type=password],.jupyter-widget-textarea textarea{box-sizing:border-box;border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);background-color:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);font-size:var(--jp-widgets-font-size);flex-grow:1;min-width:0;flex-shrink:1;outline:none!important}.widget-text input[type=text],.widget-text input[type=password],.widget-textarea textarea,.jupyter-widget-text input[type=text],.jupyter-widget-text input[type=password],.jupyter-widget-textarea textarea{padding:var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2)}.widget-text input[type=number],.jupyter-widget-text input[type=number]{padding:var(--jp-widgets-input-padding) 0 var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2)}.widget-textarea textarea,.jupyter-widget-textarea textarea{height:inherit;width:inherit}.widget-text input:focus,.widget-textarea textarea:focus,.jupyter-widget-text input:focus,.jupyter-widget-textarea textarea:focus{border-color:var(--jp-widgets-input-focus-border-color)}.widget-hslider,.jupyter-widget-hslider{width:var(--jp-widgets-inline-width);height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height);align-items:center}.widgets-slider .slider-container,.jupyter-widgets-slider .slider-container{overflow:visible}.widget-hslider .slider-container,.jupyter-widget-hslider .slider-container{margin-left:calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width));margin-right:calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width));flex:1 1 var(--jp-widgets-inline-width-short)}.widget-vbox .widget-label,.jupyter-widget-vbox .jupyter-widget-label{height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height)}.widget-vslider,.jupyter-widget-vslider{height:var(--jp-widgets-vertical-height);width:var(--jp-widgets-inline-width-tiny)}.widget-vslider .slider-container,.jupyter-widget-vslider .slider-container{flex:1 1 var(--jp-widgets-inline-width-short);margin-left:auto;margin-right:auto;margin-bottom:calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width));margin-top:calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width));display:flex;flex-direction:column}.progress-bar{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.progress-bar{height:var(--jp-widgets-inline-height)}.progress-bar{background-color:var(--jp-brand-color1)}.progress-bar-success{background-color:var(--jp-success-color1)}.progress-bar-info{background-color:var(--jp-info-color1)}.progress-bar-warning{background-color:var(--jp-warn-color1)}.progress-bar-danger{background-color:var(--jp-error-color1)}.progress{background-color:var(--jp-layout-color2);border:none;box-shadow:none}.widget-hprogress,.jupyter-widget-hprogress{height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height);width:var(--jp-widgets-inline-width);align-items:center}.widget-hprogress .progress,.jupyter-widget-hprogress .progress{flex-grow:1;margin-top:var(--jp-widgets-input-padding);margin-bottom:var(--jp-widgets-input-padding);align-self:stretch;height:initial}.widget-vprogress,.jupyter-widget-vprogress{height:var(--jp-widgets-vertical-height);width:var(--jp-widgets-inline-width-tiny)}.widget-vprogress .progress,.jupyter-widget-vprogress .progress{flex-grow:1;width:var(--jp-widgets-progress-thickness);margin-left:auto;margin-right:auto;margin-bottom:0}.widget-dropdown,.jupyter-widget-dropdown{height:var(--jp-widgets-inline-height);width:var(--jp-widgets-inline-width);line-height:var(--jp-widgets-inline-height)}.widget-dropdown>select,.jupyter-widget-dropdown>select{padding-right:20px;border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);border-radius:0;height:inherit;flex:1 1 var(--jp-widgets-inline-width-short);min-width:0;box-sizing:border-box;outline:none!important;box-shadow:none;background-color:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);font-size:var(--jp-widgets-font-size);vertical-align:top;padding-left:calc(var(--jp-widgets-input-padding) * 2);appearance:none;-webkit-appearance:none;-moz-appearance:none;background-repeat:no-repeat;background-size:20px;background-position:right center;background-image:var(--jp-widgets-dropdown-arrow)}.widget-dropdown>select:focus,.jupyter-widget-dropdown>select:focus{border-color:var(--jp-widgets-input-focus-border-color)}.widget-dropdown>select:disabled,.jupyter-widget-dropdown>select:disabled{opacity:var(--jp-widgets-disabled-opacity)}.widget-dropdown>select:-moz-focusring,.jupyter-widget-dropdown>select:-moz-focusring{color:transparent;text-shadow:0 0 0 #000}.widget-select,.jupyter-widget-select{width:var(--jp-widgets-inline-width);line-height:var(--jp-widgets-inline-height);align-items:flex-start}.widget-select>select,.jupyter-widget-select>select{border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);background-color:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);font-size:var(--jp-widgets-font-size);flex:1 1 var(--jp-widgets-inline-width-short);outline:none!important;overflow:auto;height:inherit;padding-top:5px}.widget-select>select:focus,.jupyter-widget-select>select:focus{border-color:var(--jp-widgets-input-focus-border-color)}.wiget-select>select>option,.jupyter-wiget-select>select>option{padding-left:var(--jp-widgets-input-padding);line-height:var(--jp-widgets-inline-height);padding-top:calc(var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2);padding-bottom:calc(var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2)}.widget-toggle-buttons,.jupyter-widget-toggle-buttons{line-height:var(--jp-widgets-inline-height)}.widget-toggle-buttons .widget-toggle-button,.jupyter-widget-toggle-buttons .jupyter-widget-toggle-button{margin-left:var(--jp-widgets-margin);margin-right:var(--jp-widgets-margin)}.widget-toggle-buttons .jupyter-button:disabled,.jupyter-widget-toggle-buttons .jupyter-button:disabled{opacity:var(--jp-widgets-disabled-opacity)}.widget-radio,.jupyter-widget-radio{width:var(--jp-widgets-inline-width);line-height:var(--jp-widgets-inline-height)}.widget-radio-box,.jupyter-widget-radio-box{display:flex;flex-direction:column;align-items:stretch;box-sizing:border-box;flex-grow:1;margin-bottom:var(--jp-widgets-radio-item-height-adjustment)}.widget-radio-box-vertical,.jupyter-widget-radio-box-vertical{flex-direction:column}.widget-radio-box-horizontal,.jupyter-widget-radio-box-horizontal{flex-direction:row}.widget-radio-box label,.jupyter-widget-radio-box label{height:var(--jp-widgets-radio-item-height);line-height:var(--jp-widgets-radio-item-height);font-size:var(--jp-widgets-font-size)}.widget-radio-box-horizontal label,.jupyter-widget-radio-box-horizontal label{margin:0 calc(var(--jp-widgets-input-padding) * 2) 0 0}.widget-radio-box input,.jupyter-widget-radio-box input{height:var(--jp-widgets-radio-item-height);line-height:var(--jp-widgets-radio-item-height);margin:0 calc(var(--jp-widgets-input-padding) * 2) 0 1px;float:left}.widget-colorpicker,.jupyter-widget-colorpicker{width:var(--jp-widgets-inline-width);height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height)}.widget-colorpicker>.widget-colorpicker-input,.jupyter-widget-colorpicker>.jupyter-widget-colorpicker-input{flex-grow:1;flex-shrink:1;min-width:var(--jp-widgets-inline-width-tiny)}.widget-colorpicker input[type=color],.jupyter-widget-colorpicker input[type=color]{width:var(--jp-widgets-inline-height);height:var(--jp-widgets-inline-height);padding:0 2px;background:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);border-left:none;flex-grow:0;flex-shrink:0;box-sizing:border-box;align-self:stretch;outline:none!important}.widget-colorpicker.concise input[type=color],.jupyter-widget-colorpicker.concise input[type=color]{border-left:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color)}.widget-colorpicker input[type=color]:focus,.widget-colorpicker input[type=text]:focus,.jupyter-widget-colorpicker input[type=color]:focus,.jupyter-widget-colorpicker input[type=text]:focus{border-color:var(--jp-widgets-input-focus-border-color)}.widget-colorpicker input[type=text],.jupyter-widget-colorpicker input[type=text]{flex-grow:1;outline:none!important;height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height);background:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);font-size:var(--jp-widgets-font-size);padding:var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2);min-width:0;flex-shrink:1;box-sizing:border-box}.widget-colorpicker input[type=text]:disabled,.jupyter-widget-colorpicker input[type=text]:disabled{opacity:var(--jp-widgets-disabled-opacity)}.widget-datepicker,.jupyter-widget-datepicker{width:var(--jp-widgets-inline-width);height:var(--jp-widgets-inline-height);line-height:var(--jp-widgets-inline-height)}.widget-datepicker input[type=date],.jupyter-widget-datepicker input[type=date]{flex-grow:1;flex-shrink:1;min-width:0;outline:none!important;height:var(--jp-widgets-inline-height);border:var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color);background-color:var(--jp-widgets-input-background-color);color:var(--jp-widgets-input-color);font-size:var(--jp-widgets-font-size);padding:var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2);box-sizing:border-box}.widget-datepicker input[type=date]:focus,.jupyter-widget-datepicker input[type=date]:focus{border-color:var(--jp-widgets-input-focus-border-color)}.widget-datepicker input[type=date]:invalid,.jupyter-widget-datepicker input[type=date]:invalid{border-color:var(--jp-warn-color1)}.widget-datepicker input[type=date]:disabled,.jupyter-widget-datepicker input[type=date]:disabled{opacity:var(--jp-widgets-disabled-opacity)}.widget-play,.jupyter-widget-play{width:var(--jp-widgets-inline-width-short);display:flex;align-items:stretch}.widget-play .jupyter-button,.jupyter-widget-play .jupyter-button{flex-grow:1;height:auto}.widget-play .jupyter-button:disabled,.jupyter-widget-play .jupyter-button:disabled{opacity:var(--jp-widgets-disabled-opacity)}.jupyter-widgets.widget-tab,.jupyter-widgets.jupyter-widget-tab{display:flex;flex-direction:column}.jupyter-widgets.widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar{overflow-x:visible;overflow-y:visible}.jupyter-widgets.widget-tab>.p-TabBar>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.p-TabBar>.p-TabBar-content,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar>.lm-TabBar-content{align-items:flex-end;min-width:0;min-height:0}.jupyter-widgets.widget-tab>.widget-tab-contents,.jupyter-widgets.jupyter-widget-tab>.widget-tab-contents{width:100%;box-sizing:border-box;margin:0;background:var(--jp-layout-color1);color:var(--jp-ui-font-color1);border:var(--jp-border-width) solid var(--jp-border-color1);padding:var(--jp-widgets-container-padding);flex-grow:1;overflow:auto}.jupyter-widgets.widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.p-TabBar,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar{font:var(--jp-widgets-font-size) Helvetica,Arial,sans-serif;min-height:calc(var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width))}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab{flex:0 1 var(--jp-widgets-horizontal-tab-width);min-width:35px;min-height:calc(var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width));line-height:var(--jp-widgets-horizontal-tab-height);margin-left:calc(-1 * var(--jp-border-width));padding:0 10px;background:var(--jp-layout-color2);color:var(--jp-ui-font-color2);border:var(--jp-border-width) solid var(--jp-border-color1);border-bottom:none;position:relative}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab.p-mod-current,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab.p-mod-current,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab.lm-mod-current{color:var(--jp-ui-font-color0);background:var(--jp-layout-color1);min-height:calc(var(--jp-widgets-horizontal-tab-height) + 2 * var(--jp-border-width));transform:translateY(var(--jp-border-width));overflow:visible}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab.p-mod-current:before,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab.p-mod-current:before,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab.lm-mod-current:before{position:absolute;top:calc(-1 * var(--jp-border-width));left:calc(-1 * var(--jp-border-width));content:"";height:var(--jp-widgets-horizontal-tab-top-border);width:calc(100% + 2 * var(--jp-border-width));background:var(--jp-brand-color1)}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab:first-child,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab:first-child,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab:first-child{margin-left:0}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tab:hover:not(.p-mod-current),.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tab:hover:not(.p-mod-current),.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tab:hover:not(.lm-mod-current){background:var(--jp-layout-color1);color:var(--jp-ui-font-color1)}.jupyter-widgets.widget-tab>.p-TabBar .p-mod-closable>.p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-mod-closable>.p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-mod-closable>.lm-TabBar-tabCloseIcon{margin-left:4px}.jupyter-widgets.widget-tab>.p-TabBar .p-mod-closable>.p-TabBar-tabCloseIcon:before,.jupyter-widgets.jupyter-widget-widget-tab>.p-TabBar .p-mod-closable>.p-TabBar-tabCloseIcon:before,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-mod-closable>.lm-TabBar-tabCloseIcon:before{font-family:FontAwesome;content:"\f00d"}.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabIcon,.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabLabel,.jupyter-widgets.widget-tab>.p-TabBar .p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabIcon,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabLabel,.jupyter-widgets.jupyter-widget-tab>.p-TabBar .p-TabBar-tabCloseIcon,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabIcon,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabLabel,.jupyter-widgets.jupyter-widget-tab>.lm-TabBar .lm-TabBar-tabCloseIcon{line-height:var(--jp-widgets-horizontal-tab-height)}.jupyter-widget-Collapse{display:flex;flex-direction:column;align-items:stretch}.jupyter-widget-Collapse-header{padding:var(--jp-widgets-input-padding);cursor:pointer;color:var(--jp-ui-font-color2);background-color:var(--jp-layout-color2);border:var(--jp-widgets-border-width) solid var(--jp-border-color1);padding:calc(var(--jp-widgets-container-padding) * 2 / 3) var(--jp-widgets-container-padding);font-weight:700}.jupyter-widget-Collapse-header:hover{background-color:var(--jp-layout-color1);color:var(--jp-ui-font-color1)}.jupyter-widget-Collapse-open>.jupyter-widget-Collapse-header{background-color:var(--jp-layout-color1);color:var(--jp-ui-font-color0);cursor:default;border-bottom:none}.jupyter-widget-Collapse-contents{padding:var(--jp-widgets-container-padding);background-color:var(--jp-layout-color1);color:var(--jp-ui-font-color1);border-left:var(--jp-widgets-border-width) solid var(--jp-border-color1);border-right:var(--jp-widgets-border-width) solid var(--jp-border-color1);border-bottom:var(--jp-widgets-border-width) solid var(--jp-border-color1);overflow:auto}.jupyter-widget-Accordion{display:flex;flex-direction:column;align-items:stretch}.jupyter-widget-Accordion .jupyter-widget-Collapse{margin-bottom:0}.jupyter-widget-Accordion .jupyter-widget-Collapse+.jupyter-widget-Collapse{margin-top:4px}.widget-html,.widget-htmlmath,.jupyter-widget-html,.jupyter-widget-htmlmath{font-size:var(--jp-widgets-font-size)}.widget-html>.widget-html-content,.widget-htmlmath>.widget-html-content,.jupyter-widget-html>.jupyter-widget-html-content,.jupyter-widget-htmlmath>.jupyter-widget-html-content{align-self:stretch;flex-grow:1;flex-shrink:1;line-height:var(--jp-widgets-inline-height);position:relative}.widget-image,.jupyter-widget-image{max-width:100%;height:auto}.lm-Widget{box-sizing:border-box;position:relative}.lm-Widget.lm-mod-hidden{display:none!important}.lm-AccordionPanel[data-orientation=horizontal]>.lm-AccordionPanel-title{display:block;transform-origin:top left;transform:rotate(-90deg) translate(-100%)}.lm-CommandPalette{display:flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lm-CommandPalette-search{flex:0 0 auto}.lm-CommandPalette-content{flex:1 1 auto;margin:0;padding:0;min-height:0;overflow:auto;list-style-type:none}.lm-CommandPalette-header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.lm-CommandPalette-item{display:flex;flex-direction:row}.lm-CommandPalette-itemIcon{flex:0 0 auto}.lm-CommandPalette-itemContent{flex:1 1 auto;overflow:hidden}.lm-CommandPalette-itemShortcut{flex:0 0 auto}.lm-CommandPalette-itemLabel{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.lm-close-icon{border:1px solid transparent;background-color:transparent;position:absolute;z-index:1;right:3%;top:0;bottom:0;margin:auto;padding:7px 0;display:none;vertical-align:middle;outline:0;cursor:pointer}.lm-close-icon:after{content:"X";display:block;width:15px;height:15px;text-align:center;color:#000;font-weight:400;font-size:12px;cursor:pointer}.lm-DockPanel,.lm-DockPanel-widget{z-index:0}.lm-DockPanel-tabBar{z-index:1}.lm-DockPanel-handle{z-index:2}.lm-DockPanel-handle.lm-mod-hidden{display:none!important}.lm-DockPanel-handle:after{position:absolute;top:0;left:0;width:100%;height:100%;content:""}.lm-DockPanel-handle[data-orientation=horizontal]{cursor:ew-resize}.lm-DockPanel-handle[data-orientation=vertical]{cursor:ns-resize}.lm-DockPanel-handle[data-orientation=horizontal]:after{left:50%;min-width:8px;transform:translate(-50%)}.lm-DockPanel-handle[data-orientation=vertical]:after{top:50%;min-height:8px;transform:translateY(-50%)}.lm-DockPanel-overlay{z-index:3;box-sizing:border-box;pointer-events:none}.lm-DockPanel-overlay.lm-mod-hidden{display:none!important}.lm-Menu{z-index:10000;position:absolute;white-space:nowrap;overflow-x:hidden;overflow-y:auto;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lm-Menu-content{margin:0;padding:0;display:table;list-style-type:none}.lm-Menu-item{display:table-row}.lm-Menu-item.lm-mod-hidden,.lm-Menu-item.lm-mod-collapsed{display:none!important}.lm-Menu-itemIcon,.lm-Menu-itemSubmenuIcon{display:table-cell;text-align:center}.lm-Menu-itemLabel{display:table-cell;text-align:left}.lm-Menu-itemShortcut{display:table-cell;text-align:right}.lm-MenuBar{outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lm-MenuBar-content{margin:0;padding:0;display:flex;flex-direction:row;list-style-type:none}.lm-MenuBar-item{box-sizing:border-box}.lm-MenuBar-itemIcon,.lm-MenuBar-itemLabel{display:inline-block}.lm-ScrollBar{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lm-ScrollBar[data-orientation=horizontal]{flex-direction:row}.lm-ScrollBar[data-orientation=vertical]{flex-direction:column}.lm-ScrollBar-button{box-sizing:border-box;flex:0 0 auto}.lm-ScrollBar-track{box-sizing:border-box;position:relative;overflow:hidden;flex:1 1 auto}.lm-ScrollBar-thumb{box-sizing:border-box;position:absolute}.lm-SplitPanel-child{z-index:0}.lm-SplitPanel-handle{z-index:1}.lm-SplitPanel-handle.lm-mod-hidden{display:none!important}.lm-SplitPanel-handle:after{position:absolute;top:0;left:0;width:100%;height:100%;content:""}.lm-SplitPanel[data-orientation=horizontal]>.lm-SplitPanel-handle{cursor:ew-resize}.lm-SplitPanel[data-orientation=vertical]>.lm-SplitPanel-handle{cursor:ns-resize}.lm-SplitPanel[data-orientation=horizontal]>.lm-SplitPanel-handle:after{left:50%;min-width:8px;transform:translate(-50%)}.lm-SplitPanel[data-orientation=vertical]>.lm-SplitPanel-handle:after{top:50%;min-height:8px;transform:translateY(-50%)}.lm-TabBar{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.lm-TabBar[data-orientation=horizontal]{flex-direction:row;align-items:flex-end}.lm-TabBar[data-orientation=vertical]{flex-direction:column;align-items:flex-end}.lm-TabBar-content{margin:0;padding:0;display:flex;flex:1 1 auto;list-style-type:none}.lm-TabBar[data-orientation=horizontal]>.lm-TabBar-content{flex-direction:row}.lm-TabBar[data-orientation=vertical]>.lm-TabBar-content{flex-direction:column}.lm-TabBar-tab{display:flex;flex-direction:row;box-sizing:border-box;overflow:hidden;touch-action:none}.lm-TabBar-tabIcon,.lm-TabBar-tabCloseIcon{flex:0 0 auto}.lm-TabBar-tabLabel{flex:1 1 auto;overflow:hidden;white-space:nowrap}.lm-TabBar-tabInput{user-select:all;width:100%;box-sizing:border-box}.lm-TabBar-tab.lm-mod-hidden,.lm-TabBar-addButton.lm-mod-hidden{display:none!important}.lm-TabBar.lm-mod-dragging .lm-TabBar-tab{position:relative}.lm-TabBar.lm-mod-dragging[data-orientation=horizontal] .lm-TabBar-tab{left:0;transition:left .15s ease}.lm-TabBar.lm-mod-dragging[data-orientation=vertical] .lm-TabBar-tab{top:0;transition:top .15s ease}.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging{transition:none}.lm-TabBar-tabLabel .lm-TabBar-tabInput{user-select:all;width:100%;box-sizing:border-box;background:inherit}.lm-TabPanel-tabBar{z-index:1}.lm-TabPanel-stackedPanel{z-index:0}:root{--jp-private-commandpalette-search-height: 28px}.lm-CommandPalette{padding-bottom:0;color:var(--jp-ui-font-color1);background:var(--jp-layout-color1);font-size:var(--jp-ui-font-size1)}.jp-ModalCommandPalette{position:absolute;z-index:10000;top:38px;left:30%;margin:0;padding:4px;width:40%;box-shadow:var(--jp-elevation-z4);border-radius:4px;background:var(--jp-layout-color0)}.jp-ModalCommandPalette .lm-CommandPalette{max-height:40vh}.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon:after{display:none}.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header{display:none}.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item{margin-left:4px;margin-right:4px}.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item.lm-mod-disabled{display:none}.lm-CommandPalette-search{padding:4px;background-color:var(--jp-layout-color1);z-index:2}.lm-CommandPalette-wrapper{overflow:overlay;padding:0 9px;background-color:var(--jp-input-active-background);height:30px;box-shadow:inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color)}.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper{box-shadow:inset 0 0 0 1px var(--jp-input-active-box-shadow-color),inset 0 0 0 3px var(--jp-input-active-box-shadow-color)}.jp-SearchIconGroup{color:#fff;background-color:var(--jp-brand-color1);position:absolute;top:4px;right:4px;padding:5px 5px 1px}.jp-SearchIconGroup svg{height:20px;width:20px}.jp-SearchIconGroup .jp-icon3[fill]{fill:var(--jp-layout-color0)}.lm-CommandPalette-input{background:transparent;width:calc(100% - 18px);float:left;border:none;outline:none;font-size:var(--jp-ui-font-size1);color:var(--jp-ui-font-color0);line-height:var(--jp-private-commandpalette-search-height)}.lm-CommandPalette-input::-webkit-input-placeholder,.lm-CommandPalette-input::-moz-placeholder,.lm-CommandPalette-input:-ms-input-placeholder{color:var(--jp-ui-font-color2);font-size:var(--jp-ui-font-size1)}.lm-CommandPalette-header:first-child{margin-top:0}.lm-CommandPalette-header{border-bottom:solid var(--jp-border-width) var(--jp-border-color2);color:var(--jp-ui-font-color1);cursor:pointer;display:flex;font-size:var(--jp-ui-font-size0);font-weight:600;letter-spacing:1px;margin-top:8px;padding:8px 0 8px 12px;text-transform:uppercase}.lm-CommandPalette-header.lm-mod-active{background:var(--jp-layout-color2)}.lm-CommandPalette-header>mark{background-color:transparent;font-weight:700;color:var(--jp-ui-font-color1)}.lm-CommandPalette-item{padding:4px 12px 4px 4px;color:var(--jp-ui-font-color1);font-size:var(--jp-ui-font-size1);font-weight:400;display:flex}.lm-CommandPalette-item.lm-mod-disabled{color:var(--jp-ui-font-color2)}.lm-CommandPalette-item.lm-mod-active{color:var(--jp-ui-inverse-font-color1);background:var(--jp-brand-color1)}.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel>mark{color:var(--jp-ui-inverse-font-color0)}.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill]{fill:var(--jp-layout-color0)}.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled){color:var(--jp-ui-inverse-font-color1);background:var(--jp-brand-color1)}.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled){background:var(--jp-layout-color2)}.lm-CommandPalette-itemContent{overflow:hidden}.lm-CommandPalette-itemLabel>mark{color:var(--jp-ui-font-color0);background-color:transparent;font-weight:700}.lm-CommandPalette-item.lm-mod-disabled mark{color:var(--jp-ui-font-color2)}.lm-CommandPalette-item .lm-CommandPalette-itemIcon{margin:0 4px 0 0;position:relative;width:16px;top:2px;flex:0 0 auto}.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon{opacity:.6}.lm-CommandPalette-item .lm-CommandPalette-itemShortcut{flex:0 0 auto}.lm-CommandPalette-itemCaption{display:none}.lm-CommandPalette-content{background-color:var(--jp-layout-color1)}.lm-CommandPalette-content:empty:after{content:"No results";margin:20px auto auto;width:100px;display:block;font-size:var(--jp-ui-font-size2);font-family:var(--jp-ui-font-family);font-weight:lighter}.lm-CommandPalette-emptyMessage{text-align:center;margin-top:24px;line-height:1.32;padding:0 8px;color:var(--jp-content-font-color3)}.jp-Dialog{position:absolute;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;top:0;left:0;margin:0;padding:0;width:100%;height:100%;background:var(--jp-dialog-background)}.jp-Dialog-content{display:flex;flex-direction:column;margin-left:auto;margin-right:auto;background:var(--jp-layout-color1);padding:24px 24px 12px;min-width:300px;min-height:150px;max-width:1000px;max-height:500px;box-sizing:border-box;box-shadow:var(--jp-elevation-z20);word-wrap:break-word;border-radius:var(--jp-border-radius);font-size:var(--jp-ui-font-size1);color:var(--jp-ui-font-color1);resize:both}.jp-Dialog-content.jp-Dialog-content-small{max-width:500px}.jp-Dialog-button{overflow:visible}button.jp-Dialog-button:disabled{opacity:.6}button.jp-Dialog-button:focus{outline:1px solid var(--jp-brand-color1);outline-offset:4px;-moz-outline-radius:0}button.jp-Dialog-button:focus::-moz-focus-inner{border:0}button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus,button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus,button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus{outline-offset:4px;-moz-outline-radius:0}button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus{outline:1px solid var(--jp-accept-color-normal, var(--jp-brand-color1))}button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus{outline:1px solid var(--jp-warn-color-normal, var(--jp-error-color1))}button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus{outline:1px solid var(--jp-reject-color-normal, var(--md-grey-600, #757575))}button.jp-Dialog-close-button{padding:0;height:100%;min-width:unset;min-height:unset}.jp-Dialog-header{display:flex;justify-content:space-between;flex:0 0 auto;padding-bottom:12px;font-size:var(--jp-ui-font-size3);font-weight:400;color:var(--jp-ui-font-color1)}.jp-Dialog-body{display:flex;flex-direction:column;flex:1 1 auto;font-size:var(--jp-ui-font-size1);background:var(--jp-layout-color1);color:var(--jp-ui-font-color1);overflow:auto}.jp-Dialog-footer{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;flex:0 0 auto;margin-left:-12px;margin-right:-12px;padding:12px}.jp-Dialog-checkbox{padding-right:5px}.jp-Dialog-spacer{flex:1 1 auto}.jp-Dialog-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.jp-Dialog-body>.jp-select-wrapper{width:100%}.jp-Dialog-body>button{padding:0 16px}.jp-Dialog-body>label{line-height:1.4;color:var(--jp-ui-font-color0)}.jp-Dialog-button.jp-mod-styled:not(:last-child){margin-right:12px}.jp-Input-Boolean-Dialog{flex-direction:row-reverse;align-items:end;width:100%}.jp-Input-Boolean-Dialog>label{flex:1 1 auto}.jp-InputDialog-inputWrapper{display:flex;align-items:baseline}.jp-InputDialog-inputWrapper>input.jp-mod-styled:invalid{border-color:var(--jp-error-color0);background:var(--jp-error-color3)}.jp-InputDialog-inputWrapper>input[required].jp-mod-styled:invalid:placeholder-shown{border-color:unset;background:unset}.jp-MainAreaWidget>:focus{outline:none}.jp-MainAreaWidget .jp-MainAreaWidget-error{padding:6px}.jp-MainAreaWidget .jp-MainAreaWidget-error>pre{width:auto;padding:10px;background:var(--jp-error-color3);border:var(--jp-border-width) solid var(--jp-error-color1);border-radius:var(--jp-border-radius);color:var(--jp-ui-font-color1);font-size:var(--jp-ui-font-size1);white-space:pre-wrap;word-wrap:break-word}:root{--md-red-50: #ffebee;--md-red-100: #ffcdd2;--md-red-200: #ef9a9a;--md-red-300: #e57373;--md-red-400: #ef5350;--md-red-500: #f44336;--md-red-600: #e53935;--md-red-700: #d32f2f;--md-red-800: #c62828;--md-red-900: #b71c1c;--md-red-A100: #ff8a80;--md-red-A200: #ff5252;--md-red-A400: #ff1744;--md-red-A700: #d50000;--md-pink-50: #fce4ec;--md-pink-100: #f8bbd0;--md-pink-200: #f48fb1;--md-pink-300: #f06292;--md-pink-400: #ec407a;--md-pink-500: #e91e63;--md-pink-600: #d81b60;--md-pink-700: #c2185b;--md-pink-800: #ad1457;--md-pink-900: #880e4f;--md-pink-A100: #ff80ab;--md-pink-A200: #ff4081;--md-pink-A400: #f50057;--md-pink-A700: #c51162;--md-purple-50: #f3e5f5;--md-purple-100: #e1bee7;--md-purple-200: #ce93d8;--md-purple-300: #ba68c8;--md-purple-400: #ab47bc;--md-purple-500: #9c27b0;--md-purple-600: #8e24aa;--md-purple-700: #7b1fa2;--md-purple-800: #6a1b9a;--md-purple-900: #4a148c;--md-purple-A100: #ea80fc;--md-purple-A200: #e040fb;--md-purple-A400: #d500f9;--md-purple-A700: #a0f;--md-deep-purple-50: #ede7f6;--md-deep-purple-100: #d1c4e9;--md-deep-purple-200: #b39ddb;--md-deep-purple-300: #9575cd;--md-deep-purple-400: #7e57c2;--md-deep-purple-500: #673ab7;--md-deep-purple-600: #5e35b1;--md-deep-purple-700: #512da8;--md-deep-purple-800: #4527a0;--md-deep-purple-900: #311b92;--md-deep-purple-A100: #b388ff;--md-deep-purple-A200: #7c4dff;--md-deep-purple-A400: #651fff;--md-deep-purple-A700: #6200ea;--md-indigo-50: #e8eaf6;--md-indigo-100: #c5cae9;--md-indigo-200: #9fa8da;--md-indigo-300: #7986cb;--md-indigo-400: #5c6bc0;--md-indigo-500: #3f51b5;--md-indigo-600: #3949ab;--md-indigo-700: #303f9f;--md-indigo-800: #283593;--md-indigo-900: #1a237e;--md-indigo-A100: #8c9eff;--md-indigo-A200: #536dfe;--md-indigo-A400: #3d5afe;--md-indigo-A700: #304ffe;--md-blue-50: #e3f2fd;--md-blue-100: #bbdefb;--md-blue-200: #90caf9;--md-blue-300: #64b5f6;--md-blue-400: #42a5f5;--md-blue-500: #2196f3;--md-blue-600: #1e88e5;--md-blue-700: #1976d2;--md-blue-800: #1565c0;--md-blue-900: #0d47a1;--md-blue-A100: #82b1ff;--md-blue-A200: #448aff;--md-blue-A400: #2979ff;--md-blue-A700: #2962ff;--md-light-blue-50: #e1f5fe;--md-light-blue-100: #b3e5fc;--md-light-blue-200: #81d4fa;--md-light-blue-300: #4fc3f7;--md-light-blue-400: #29b6f6;--md-light-blue-500: #03a9f4;--md-light-blue-600: #039be5;--md-light-blue-700: #0288d1;--md-light-blue-800: #0277bd;--md-light-blue-900: #01579b;--md-light-blue-A100: #80d8ff;--md-light-blue-A200: #40c4ff;--md-light-blue-A400: #00b0ff;--md-light-blue-A700: #0091ea;--md-cyan-50: #e0f7fa;--md-cyan-100: #b2ebf2;--md-cyan-200: #80deea;--md-cyan-300: #4dd0e1;--md-cyan-400: #26c6da;--md-cyan-500: #00bcd4;--md-cyan-600: #00acc1;--md-cyan-700: #0097a7;--md-cyan-800: #00838f;--md-cyan-900: #006064;--md-cyan-A100: #84ffff;--md-cyan-A200: #18ffff;--md-cyan-A400: #00e5ff;--md-cyan-A700: #00b8d4;--md-teal-50: #e0f2f1;--md-teal-100: #b2dfdb;--md-teal-200: #80cbc4;--md-teal-300: #4db6ac;--md-teal-400: #26a69a;--md-teal-500: #009688;--md-teal-600: #00897b;--md-teal-700: #00796b;--md-teal-800: #00695c;--md-teal-900: #004d40;--md-teal-A100: #a7ffeb;--md-teal-A200: #64ffda;--md-teal-A400: #1de9b6;--md-teal-A700: #00bfa5;--md-green-50: #e8f5e9;--md-green-100: #c8e6c9;--md-green-200: #a5d6a7;--md-green-300: #81c784;--md-green-400: #66bb6a;--md-green-500: #4caf50;--md-green-600: #43a047;--md-green-700: #388e3c;--md-green-800: #2e7d32;--md-green-900: #1b5e20;--md-green-A100: #b9f6ca;--md-green-A200: #69f0ae;--md-green-A400: #00e676;--md-green-A700: #00c853;--md-light-green-50: #f1f8e9;--md-light-green-100: #dcedc8;--md-light-green-200: #c5e1a5;--md-light-green-300: #aed581;--md-light-green-400: #9ccc65;--md-light-green-500: #8bc34a;--md-light-green-600: #7cb342;--md-light-green-700: #689f38;--md-light-green-800: #558b2f;--md-light-green-900: #33691e;--md-light-green-A100: #ccff90;--md-light-green-A200: #b2ff59;--md-light-green-A400: #76ff03;--md-light-green-A700: #64dd17;--md-lime-50: #f9fbe7;--md-lime-100: #f0f4c3;--md-lime-200: #e6ee9c;--md-lime-300: #dce775;--md-lime-400: #d4e157;--md-lime-500: #cddc39;--md-lime-600: #c0ca33;--md-lime-700: #afb42b;--md-lime-800: #9e9d24;--md-lime-900: #827717;--md-lime-A100: #f4ff81;--md-lime-A200: #eeff41;--md-lime-A400: #c6ff00;--md-lime-A700: #aeea00;--md-yellow-50: #fffde7;--md-yellow-100: #fff9c4;--md-yellow-200: #fff59d;--md-yellow-300: #fff176;--md-yellow-400: #ffee58;--md-yellow-500: #ffeb3b;--md-yellow-600: #fdd835;--md-yellow-700: #fbc02d;--md-yellow-800: #f9a825;--md-yellow-900: #f57f17;--md-yellow-A100: #ffff8d;--md-yellow-A200: #ff0;--md-yellow-A400: #ffea00;--md-yellow-A700: #ffd600;--md-amber-50: #fff8e1;--md-amber-100: #ffecb3;--md-amber-200: #ffe082;--md-amber-300: #ffd54f;--md-amber-400: #ffca28;--md-amber-500: #ffc107;--md-amber-600: #ffb300;--md-amber-700: #ffa000;--md-amber-800: #ff8f00;--md-amber-900: #ff6f00;--md-amber-A100: #ffe57f;--md-amber-A200: #ffd740;--md-amber-A400: #ffc400;--md-amber-A700: #ffab00;--md-orange-50: #fff3e0;--md-orange-100: #ffe0b2;--md-orange-200: #ffcc80;--md-orange-300: #ffb74d;--md-orange-400: #ffa726;--md-orange-500: #ff9800;--md-orange-600: #fb8c00;--md-orange-700: #f57c00;--md-orange-800: #ef6c00;--md-orange-900: #e65100;--md-orange-A100: #ffd180;--md-orange-A200: #ffab40;--md-orange-A400: #ff9100;--md-orange-A700: #ff6d00;--md-deep-orange-50: #fbe9e7;--md-deep-orange-100: #ffccbc;--md-deep-orange-200: #ffab91;--md-deep-orange-300: #ff8a65;--md-deep-orange-400: #ff7043;--md-deep-orange-500: #ff5722;--md-deep-orange-600: #f4511e;--md-deep-orange-700: #e64a19;--md-deep-orange-800: #d84315;--md-deep-orange-900: #bf360c;--md-deep-orange-A100: #ff9e80;--md-deep-orange-A200: #ff6e40;--md-deep-orange-A400: #ff3d00;--md-deep-orange-A700: #dd2c00;--md-brown-50: #efebe9;--md-brown-100: #d7ccc8;--md-brown-200: #bcaaa4;--md-brown-300: #a1887f;--md-brown-400: #8d6e63;--md-brown-500: #795548;--md-brown-600: #6d4c41;--md-brown-700: #5d4037;--md-brown-800: #4e342e;--md-brown-900: #3e2723;--md-grey-50: #fafafa;--md-grey-100: #f5f5f5;--md-grey-200: #eee;--md-grey-300: #e0e0e0;--md-grey-400: #bdbdbd;--md-grey-500: #9e9e9e;--md-grey-600: #757575;--md-grey-700: #616161;--md-grey-800: #424242;--md-grey-900: #212121;--md-blue-grey-50: #eceff1;--md-blue-grey-100: #cfd8dc;--md-blue-grey-200: #b0bec5;--md-blue-grey-300: #90a4ae;--md-blue-grey-400: #78909c;--md-blue-grey-500: #607d8b;--md-blue-grey-600: #546e7a;--md-blue-grey-700: #455a64;--md-blue-grey-800: #37474f;--md-blue-grey-900: #263238}.jp-Toolbar-item.jp-Toolbar-kernelStatus{display:inline-block;width:32px;background-repeat:no-repeat;background-position:center;background-size:16px}:root{--jp-private-code-span-padding: calc( (var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2 )}.jp-RenderedText{text-align:left;padding-left:var(--jp-code-padding);line-height:var(--jp-code-line-height);font-family:var(--jp-code-font-family)}.jp-RenderedText pre,.jp-RenderedJavaScript pre,.jp-RenderedHTMLCommon pre{color:var(--jp-content-font-color1);font-size:var(--jp-code-font-size);border:none;margin:0;padding:0}.jp-RenderedText pre a[href]:link{text-decoration:none;color:var(--jp-content-link-color)}.jp-RenderedText pre a[href]:hover{text-decoration:underline;color:var(--jp-content-link-hover-color, var(--jp-content-link-color))}.jp-RenderedText pre a[href]:visited{text-decoration:none;color:var(--jp-content-link-visited-color, var(--jp-content-link-color))}.jp-RenderedText pre .ansi-black-fg{color:#3e424d}.jp-RenderedText pre .ansi-red-fg{color:#e75c58}.jp-RenderedText pre .ansi-green-fg{color:#00a250}.jp-RenderedText pre .ansi-yellow-fg{color:#ddb62b}.jp-RenderedText pre .ansi-blue-fg{color:#208ffb}.jp-RenderedText pre .ansi-magenta-fg{color:#d160c4}.jp-RenderedText pre .ansi-cyan-fg{color:#60c6c8}.jp-RenderedText pre .ansi-white-fg{color:#c5c1b4}.jp-RenderedText pre .ansi-black-bg{background-color:#3e424d;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-red-bg{background-color:#e75c58;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-green-bg{background-color:#00a250;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-yellow-bg{background-color:#ddb62b;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-blue-bg{background-color:#208ffb;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-magenta-bg{background-color:#d160c4;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-cyan-bg{background-color:#60c6c8;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-white-bg{background-color:#c5c1b4;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-black-intense-fg{color:#282c36}.jp-RenderedText pre .ansi-red-intense-fg{color:#b22b31}.jp-RenderedText pre .ansi-green-intense-fg{color:#007427}.jp-RenderedText pre .ansi-yellow-intense-fg{color:#b27d12}.jp-RenderedText pre .ansi-blue-intense-fg{color:#0065ca}.jp-RenderedText pre .ansi-magenta-intense-fg{color:#a03196}.jp-RenderedText pre .ansi-cyan-intense-fg{color:#258f8f}.jp-RenderedText pre .ansi-white-intense-fg{color:#a1a6b2}.jp-RenderedText pre .ansi-black-intense-bg{background-color:#282c36;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-red-intense-bg{background-color:#b22b31;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-green-intense-bg{background-color:#007427;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-yellow-intense-bg{background-color:#b27d12;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-blue-intense-bg{background-color:#0065ca;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-magenta-intense-bg{background-color:#a03196;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-cyan-intense-bg{background-color:#258f8f;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-white-intense-bg{background-color:#a1a6b2;padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-default-inverse-fg{color:var(--jp-ui-inverse-font-color0)}.jp-RenderedText pre .ansi-default-inverse-bg{background-color:var(--jp-inverse-layout-color0);padding:var(--jp-private-code-span-padding) 0}.jp-RenderedText pre .ansi-bold{font-weight:700}.jp-RenderedText pre .ansi-underline{text-decoration:underline}.jp-RenderedText[data-mime-type="application/vnd.jupyter.stderr"]{background:var(--jp-rendermime-error-background);padding-top:var(--jp-code-padding)}.jp-RenderedLatex{color:var(--jp-content-font-color1);font-size:var(--jp-content-font-size1);line-height:var(--jp-content-line-height)}.jp-OutputArea-output.jp-RenderedLatex{padding:var(--jp-code-padding);text-align:left}.jp-RenderedHTMLCommon{color:var(--jp-content-font-color1);font-family:var(--jp-content-font-family);font-size:var(--jp-content-font-size1);line-height:var(--jp-content-line-height);padding-right:20px}.jp-RenderedHTMLCommon em{font-style:italic}.jp-RenderedHTMLCommon strong{font-weight:700}.jp-RenderedHTMLCommon u{text-decoration:underline}.jp-RenderedHTMLCommon a:link{text-decoration:none;color:var(--jp-content-link-color)}.jp-RenderedHTMLCommon a:hover{text-decoration:underline;color:var(--jp-content-link-hover-color, var(--jp-content-link-color))}.jp-RenderedHTMLCommon a:visited{text-decoration:none;color:var(--jp-content-link-visited-color, var(--jp-content-link-color))}.jp-RenderedHTMLCommon h1,.jp-RenderedHTMLCommon h2,.jp-RenderedHTMLCommon h3,.jp-RenderedHTMLCommon h4,.jp-RenderedHTMLCommon h5,.jp-RenderedHTMLCommon h6{line-height:var(--jp-content-heading-line-height);font-weight:var(--jp-content-heading-font-weight);font-style:normal;margin:var(--jp-content-heading-margin-top) 0 var(--jp-content-heading-margin-bottom) 0;scroll-margin-top:var(--jp-content-heading-margin-top)}.jp-RenderedHTMLCommon h1:first-child,.jp-RenderedHTMLCommon h2:first-child,.jp-RenderedHTMLCommon h3:first-child,.jp-RenderedHTMLCommon h4:first-child,.jp-RenderedHTMLCommon h5:first-child,.jp-RenderedHTMLCommon h6:first-child{margin-top:calc(.5 * var(--jp-content-heading-margin-top));scroll-margin-top:calc(.5 * var(--jp-content-heading-margin-top))}.jp-RenderedHTMLCommon h1:last-child,.jp-RenderedHTMLCommon h2:last-child,.jp-RenderedHTMLCommon h3:last-child,.jp-RenderedHTMLCommon h4:last-child,.jp-RenderedHTMLCommon h5:last-child,.jp-RenderedHTMLCommon h6:last-child{margin-bottom:calc(.5 * var(--jp-content-heading-margin-bottom))}.jp-RenderedHTMLCommon h1{font-size:var(--jp-content-font-size5)}.jp-RenderedHTMLCommon h2{font-size:var(--jp-content-font-size4)}.jp-RenderedHTMLCommon h3{font-size:var(--jp-content-font-size3)}.jp-RenderedHTMLCommon h4{font-size:var(--jp-content-font-size2)}.jp-RenderedHTMLCommon h5{font-size:var(--jp-content-font-size1)}.jp-RenderedHTMLCommon h6{font-size:var(--jp-content-font-size0)}.jp-RenderedHTMLCommon ul:not(.list-inline),.jp-RenderedHTMLCommon ol:not(.list-inline){padding-left:2em}.jp-RenderedHTMLCommon ul{list-style:disc}.jp-RenderedHTMLCommon ul ul{list-style:square}.jp-RenderedHTMLCommon ul ul ul{list-style:circle}.jp-RenderedHTMLCommon ol{list-style:decimal}.jp-RenderedHTMLCommon ol ol{list-style:upper-alpha}.jp-RenderedHTMLCommon ol ol ol{list-style:lower-alpha}.jp-RenderedHTMLCommon ol ol ol ol{list-style:lower-roman}.jp-RenderedHTMLCommon ol ol ol ol ol{list-style:decimal}.jp-RenderedHTMLCommon ol,.jp-RenderedHTMLCommon ul{margin-bottom:1em}.jp-RenderedHTMLCommon ul ul,.jp-RenderedHTMLCommon ul ol,.jp-RenderedHTMLCommon ol ul,.jp-RenderedHTMLCommon ol ol{margin-bottom:0}.jp-RenderedHTMLCommon hr{color:var(--jp-border-color2);background-color:var(--jp-border-color1);margin-top:1em;margin-bottom:1em}.jp-RenderedHTMLCommon>pre{margin:1.5em 2em}.jp-RenderedHTMLCommon pre,.jp-RenderedHTMLCommon code{border:0;background-color:var(--jp-layout-color0);color:var(--jp-content-font-color1);font-family:var(--jp-code-font-family);font-size:inherit;line-height:var(--jp-code-line-height);padding:0;white-space:pre-wrap}.jp-RenderedHTMLCommon :not(pre)>code{background-color:var(--jp-layout-color2);padding:1px 5px}.jp-RenderedHTMLCommon table{border-collapse:collapse;border-spacing:0;border:none;color:var(--jp-ui-font-color1);font-size:var(--jp-ui-font-size1);table-layout:fixed;margin-left:auto;margin-bottom:1em;margin-right:auto}.jp-RenderedHTMLCommon thead{border-bottom:var(--jp-border-width) solid var(--jp-border-color1);vertical-align:bottom}.jp-RenderedHTMLCommon td,.jp-RenderedHTMLCommon th,.jp-RenderedHTMLCommon tr{vertical-align:middle;padding:.5em;line-height:normal;white-space:normal;max-width:none;border:none}.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,.jp-RenderedMarkdown.jp-RenderedHTMLCommon th{max-width:none}:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr{text-align:right}.jp-RenderedHTMLCommon th{font-weight:700}.jp-RenderedHTMLCommon tbody tr:nth-child(odd){background:var(--jp-layout-color0)}.jp-RenderedHTMLCommon tbody tr:nth-child(even){background:var(--jp-rendermime-table-row-background)}.jp-RenderedHTMLCommon tbody tr:hover{background:var(--jp-rendermime-table-row-hover-background)}.jp-RenderedHTMLCommon p{text-align:left;margin:0 0 1em}.jp-RenderedHTMLCommon img{-moz-force-broken-image-icon:1}.jp-RenderedHTMLCommon>img{display:block;margin-left:0;margin-right:0;margin-bottom:1em}[data-jp-theme-light=false] .jp-RenderedImage img.jp-needs-light-background,[data-jp-theme-light=true] .jp-RenderedImage img.jp-needs-dark-background{background-color:var(--jp-inverse-layout-color1)}.jp-RenderedHTMLCommon img,.jp-RenderedImage img,.jp-RenderedHTMLCommon svg,.jp-RenderedSVG svg{max-width:100%;height:auto}.jp-RenderedHTMLCommon img.jp-mod-unconfined,.jp-RenderedImage img.jp-mod-unconfined,.jp-RenderedHTMLCommon svg.jp-mod-unconfined,.jp-RenderedSVG svg.jp-mod-unconfined{max-width:none}.jp-RenderedHTMLCommon .alert{padding:var(--jp-notebook-padding);border:var(--jp-border-width) solid transparent;border-radius:var(--jp-border-radius);margin-bottom:1em}.jp-RenderedHTMLCommon .alert-info{color:var(--jp-info-color0);background-color:var(--jp-info-color3);border-color:var(--jp-info-color2)}.jp-RenderedHTMLCommon .alert-info hr{border-color:var(--jp-info-color3)}.jp-RenderedHTMLCommon .alert-info>p:last-child,.jp-RenderedHTMLCommon .alert-info>ul:last-child{margin-bottom:0}.jp-RenderedHTMLCommon .alert-warning{color:var(--jp-warn-color0);background-color:var(--jp-warn-color3);border-color:var(--jp-warn-color2)}.jp-RenderedHTMLCommon .alert-warning hr{border-color:var(--jp-warn-color3)}.jp-RenderedHTMLCommon .alert-warning>p:last-child,.jp-RenderedHTMLCommon .alert-warning>ul:last-child{margin-bottom:0}.jp-RenderedHTMLCommon .alert-success{color:var(--jp-success-color0);background-color:var(--jp-success-color3);border-color:var(--jp-success-color2)}.jp-RenderedHTMLCommon .alert-success hr{border-color:var(--jp-success-color3)}.jp-RenderedHTMLCommon .alert-success>p:last-child,.jp-RenderedHTMLCommon .alert-success>ul:last-child{margin-bottom:0}.jp-RenderedHTMLCommon .alert-danger{color:var(--jp-error-color0);background-color:var(--jp-error-color3);border-color:var(--jp-error-color2)}.jp-RenderedHTMLCommon .alert-danger hr{border-color:var(--jp-error-color3)}.jp-RenderedHTMLCommon .alert-danger>p:last-child,.jp-RenderedHTMLCommon .alert-danger>ul:last-child{margin-bottom:0}.jp-RenderedHTMLCommon blockquote{margin:1em 2em;padding:0 1em;border-left:5px solid var(--jp-border-color2)}a.jp-InternalAnchorLink{visibility:hidden;margin-left:8px;color:var(--md-blue-800, #1565c0)}h1:hover .jp-InternalAnchorLink,h2:hover .jp-InternalAnchorLink,h3:hover .jp-InternalAnchorLink,h4:hover .jp-InternalAnchorLink,h5:hover .jp-InternalAnchorLink,h6:hover .jp-InternalAnchorLink{visibility:visible}.jp-RenderedHTMLCommon kbd{background-color:var(--jp-rendermime-table-row-background);border:1px solid var(--jp-border-color0);border-bottom-color:var(--jp-border-color2);border-radius:3px;box-shadow:inset 0 -1px #00000040;display:inline-block;font-size:var(--jp-ui-font-size0);line-height:1em;padding:.2em .5em}.jp-RenderedHTMLCommon>*:last-child{margin-bottom:.5em}.thebe-output-busy-spinner-alt{border:2px solid #f3f3f3;border-top:2px solid #3498db;border-radius:50%;width:30px;height:30px;-webkit-animation:thebeoutputspin 2s linear infinite;animation:thebeoutputspin 1s linear infinite}.thebe-output-busy-spinner{height:28px;width:28px;border-radius:50%;background-color:#fafafae6;z-index:9999;display:block}.thebe-output-busy-spinner:after{content:"";display:block;position:relative;top:2px;left:2px;width:20px;height:20px;border-style:solid;border-color:#3498db;border-top-color:transparent;border-width:2px;border-radius:50%;-webkit-animation:thebeoutputspin .8s linear infinite;animation:thebeoutputspin .8s linear infinite}@-webkit-keyframes thebeoutputspin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes thebeoutputspin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.thebe-ipywidgets-placeholder{display:flex;flex-direction:column;align-items:center;font-size:95%}.thebe-ipywidgets-placeholder>pre{font-size:80%;font-family:monospace;margin:8px 16px}.thebe-output .jp-OutputArea-child>.lm-Widget{overflow:auto} diff --git a/build/_assets/toc-I57DEZZ3.svg b/build/_assets/toc-I57DEZZ3.svg new file mode 100644 index 00000000..7c713411 --- /dev/null +++ b/build/_assets/toc-I57DEZZ3.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/tree-view-EXAO5CJQ.svg b/build/_assets/tree-view-EXAO5CJQ.svg new file mode 100644 index 00000000..1e34935e --- /dev/null +++ b/build/_assets/tree-view-EXAO5CJQ.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/trusted-EPQAOZZM.svg b/build/_assets/trusted-EPQAOZZM.svg new file mode 100644 index 00000000..e38cf15e --- /dev/null +++ b/build/_assets/trusted-EPQAOZZM.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/undo-HFH7A3CK.svg b/build/_assets/undo-HFH7A3CK.svg new file mode 100644 index 00000000..17257b10 --- /dev/null +++ b/build/_assets/undo-HFH7A3CK.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/user-LRCJLM6U.svg b/build/_assets/user-LRCJLM6U.svg new file mode 100644 index 00000000..3ed08f92 --- /dev/null +++ b/build/_assets/user-LRCJLM6U.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/users-K2RBK42E.svg b/build/_assets/users-K2RBK42E.svg new file mode 100644 index 00000000..29eed051 --- /dev/null +++ b/build/_assets/users-K2RBK42E.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/variable-EEIM2DMM.svg b/build/_assets/variable-EEIM2DMM.svg new file mode 100644 index 00000000..a5990ee3 --- /dev/null +++ b/build/_assets/variable-EEIM2DMM.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/vega-5KBIVREI.svg b/build/_assets/vega-5KBIVREI.svg new file mode 100644 index 00000000..a9886f54 --- /dev/null +++ b/build/_assets/vega-5KBIVREI.svg @@ -0,0 +1,6 @@ + + + diff --git a/build/_assets/video-65O2WMJE.svg b/build/_assets/video-65O2WMJE.svg new file mode 100644 index 00000000..cd7a87db --- /dev/null +++ b/build/_assets/video-65O2WMJE.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/view-breakpoint-OZS7ZFOI.svg b/build/_assets/view-breakpoint-OZS7ZFOI.svg new file mode 100644 index 00000000..4e41f38b --- /dev/null +++ b/build/_assets/view-breakpoint-OZS7ZFOI.svg @@ -0,0 +1,3 @@ + + + diff --git a/build/_assets/word-BSZOGJVT.svg b/build/_assets/word-BSZOGJVT.svg new file mode 100644 index 00000000..6f8c0124 --- /dev/null +++ b/build/_assets/word-BSZOGJVT.svg @@ -0,0 +1,4 @@ + + + + diff --git a/build/_assets/yaml-UNYFGJCG.svg b/build/_assets/yaml-UNYFGJCG.svg new file mode 100644 index 00000000..b70641e9 --- /dev/null +++ b/build/_assets/yaml-UNYFGJCG.svg @@ -0,0 +1,7 @@ + + + diff --git a/build/_shared/1c-F2UGQXXO.js b/build/_shared/1c-F2UGQXXO.js new file mode 100644 index 00000000..12c352f1 --- /dev/null +++ b/build/_shared/1c-F2UGQXXO.js @@ -0,0 +1 @@ +import{c as G}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var J=G((Q,r)=>{function H(s){var e="[A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_][A-Za-z\u0410-\u042F\u0430-\u044F\u0451\u0401_0-9]+",x="\u0434\u0430\u043B\u0435\u0435 ",v="\u0432\u043E\u0437\u0432\u0440\u0430\u0442 \u0432\u044B\u0437\u0432\u0430\u0442\u044C\u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u043B\u044F \u0435\u0441\u043B\u0438 \u0438 \u0438\u0437 \u0438\u043B\u0438 \u0438\u043D\u0430\u0447\u0435 \u0438\u043D\u0430\u0447\u0435\u0435\u0441\u043B\u0438 \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043A\u0430\u0436\u0434\u043E\u0433\u043E \u043A\u043E\u043D\u0435\u0446\u0435\u0441\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u043F\u043E\u043F\u044B\u0442\u043A\u0438 \u043A\u043E\u043D\u0435\u0446\u0446\u0438\u043A\u043B\u0430 \u043D\u0435 \u043D\u043E\u0432\u044B\u0439 \u043F\u0435\u0440\u0435\u0439\u0442\u0438 \u043F\u0435\u0440\u0435\u043C \u043F\u043E \u043F\u043E\u043A\u0430 \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0442\u043E\u0433\u0434\u0430 \u0446\u0438\u043A\u043B \u044D\u043A\u0441\u043F\u043E\u0440\u0442 ",a=x+v,d="\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0438\u0437\u0444\u0430\u0439\u043B\u0430 ",i="\u0432\u0435\u0431\u043A\u043B\u0438\u0435\u043D\u0442 \u0432\u043C\u0435\u0441\u0442\u043E \u0432\u043D\u0435\u0448\u043D\u0435\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u043A\u043B\u0438\u0435\u043D\u0442 \u043A\u043E\u043D\u0435\u0446\u043E\u0431\u043B\u0430\u0441\u0442\u0438 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043B\u0438\u0435\u043D\u0442 \u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0432\u0435\u0440 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0435\u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043D\u0430\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0431\u0435\u0437\u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442\u0430 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u043F\u0435\u0440\u0435\u0434 \u043F\u043E\u0441\u043B\u0435 \u0441\u0435\u0440\u0432\u0435\u0440 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u043E\u0431\u044B\u0447\u043D\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043B\u0441\u0442\u044B\u0439\u043A\u043B\u0438\u0435\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u043E\u043D\u043A\u0438\u0439\u043A\u043B\u0438\u0435\u043D\u0442 ",l=d+i,u="\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u0430\u043D\u0438\u0446 \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u0441\u0442\u0440\u043E\u043A \u0441\u0438\u043C\u0432\u043E\u043B\u0442\u0430\u0431\u0443\u043B\u044F\u0446\u0438\u0438 ",y="ansitooem oemtoansi \u0432\u0432\u0435\u0441\u0442\u0438\u0432\u0438\u0434\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u0435\u0440\u0438\u043E\u0434 \u0432\u0432\u0435\u0441\u0442\u0438\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u0434\u0430\u0442\u0430\u0433\u043E\u0434 \u0434\u0430\u0442\u0430\u043C\u0435\u0441\u044F\u0446 \u0434\u0430\u0442\u0430\u0447\u0438\u0441\u043B\u043E \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0438\u0431 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u0434\u0441\u0438\u043C\u0432 \u043A\u043E\u043D\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u043D\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043A\u043E\u043D\u0435\u0446\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043A\u043E\u043D\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u043D\u0435\u0434\u0435\u043B\u0438 \u043B\u043E\u0433 \u043B\u043E\u043310 \u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0443\u0431\u043A\u043E\u043D\u0442\u043E \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435\u043D\u0430\u0431\u043E\u0440\u0430\u043F\u0440\u0430\u0432 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0432\u0438\u0434 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0442\u044C\u0441\u0447\u0435\u0442 \u043D\u0430\u0439\u0442\u0438\u0441\u0441\u044B\u043B\u043A\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0431\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430 \u043D\u0430\u0447\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u0433\u043E\u0434\u0430 \u043D\u043E\u043C\u0435\u0440\u0434\u043D\u044F\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u043E\u043C\u0435\u0440\u043D\u0435\u0434\u0435\u043B\u0438\u0433\u043E\u0434\u0430 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u043F\u043B\u0430\u043D\u0441\u0447\u0435\u0442\u043E\u0432 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0439\u044F\u0437\u044B\u043A \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043E\u043A\u043D\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u043F\u0435\u0440\u0438\u043E\u0434\u0441\u0442\u0440 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u0442\u0443\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0430 \u043F\u0440\u0435\u0444\u0438\u043A\u0441\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u043E\u043F\u0438\u0441\u044C \u043F\u0443\u0441\u0442\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u043C \u0440\u0430\u0437\u043E\u0431\u0440\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u0430\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043F\u043E \u0441\u0438\u043C\u0432 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430 \u0441\u0442\u0440\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0444\u043E\u0440\u043C\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u043E\u0437\u0438\u0446\u0438\u044E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u0447\u0435\u0442\u043F\u043E\u043A\u043E\u0434\u0443 \u0442\u0435\u043A\u0443\u0449\u0435\u0435\u0432\u0440\u0435\u043C\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0442\u0440 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043D\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0442\u0430\u043F\u043E \u0444\u0438\u043A\u0441\u0448\u0430\u0431\u043B\u043E\u043D \u0448\u0430\u0431\u043B\u043E\u043D ",c="acos asin atan base64\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 base64\u0441\u0442\u0440\u043E\u043A\u0430 cos exp log log10 pow sin sqrt tan xml\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 xml\u0441\u0442\u0440\u043E\u043A\u0430 xml\u0442\u0438\u043F xml\u0442\u0438\u043F\u0437\u043D\u0447 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0435\u043E\u043A\u043D\u043E \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u043B\u0435\u0432\u043E \u0432\u0432\u0435\u0441\u0442\u0438\u0434\u0430\u0442\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0432\u0435\u0441\u0442\u0438\u0441\u0442\u0440\u043E\u043A\u0443 \u0432\u0432\u0435\u0441\u0442\u0438\u0447\u0438\u0441\u043B\u043E \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C\u0447\u0442\u0435\u043D\u0438\u044Fxml \u0432\u043E\u043F\u0440\u043E\u0441 \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0432\u0440\u0435\u0433 \u0432\u044B\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0443\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u043F\u0440\u0430\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u0432\u044B\u0447\u0438\u0441\u043B\u0438\u0442\u044C \u0433\u043E\u0434 \u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B\u0432\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0434\u0430\u0442\u0430 \u0434\u0435\u043D\u044C \u0434\u0435\u043D\u044C\u0433\u043E\u0434\u0430 \u0434\u0435\u043D\u044C\u043D\u0435\u0434\u0435\u043B\u0438 \u0434\u043E\u0431\u0430\u0432\u0438\u0442\u044C\u043C\u0435\u0441\u044F\u0446 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0437\u0430\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cjson \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044Cxml \u0437\u0430\u043F\u0438\u0441\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u0437\u0430\u043F\u0438\u0441\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0441\u0432\u043E\u0439\u0441\u0442\u0432 \u0437\u0430\u043F\u0440\u043E\u0441\u0438\u0442\u044C\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0443\u0441\u0442\u0438\u0442\u044C\u0441\u0438\u0441\u0442\u0435\u043C\u0443 \u0437\u0430\u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0441\u0442\u0440\u043E\u043A\u0443\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0432\u0444\u0430\u0439\u043B \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0441\u0442\u0440\u043E\u043A\u0438\u0432\u043D\u0443\u0442\u0440 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u0438\u0437xml\u0442\u0438\u043F\u0430 \u0438\u043C\u043F\u043E\u0440\u0442\u043C\u043E\u0434\u0435\u043B\u0438xdto \u0438\u043C\u044F\u043A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440\u0430 \u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0438\u043C\u043E\u0431\u0438\u043B\u044C\u043D\u043E\u0433\u043E\u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043A\u043E\u0434\u0441\u0438\u043C\u0432\u043E\u043B\u0430 \u043A\u043E\u043C\u0430\u043D\u0434\u0430\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043A\u043E\u043D\u0435\u0446\u0433\u043E\u0434\u0430 \u043A\u043E\u043D\u0435\u0446\u0434\u043D\u044F \u043A\u043E\u043D\u0435\u0446\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0435\u0441\u044F\u0446\u0430 \u043A\u043E\u043D\u0435\u0446\u043C\u0438\u043D\u0443\u0442\u044B \u043A\u043E\u043D\u0435\u0446\u043D\u0435\u0434\u0435\u043B\u0438 \u043A\u043E\u043D\u0435\u0446\u0447\u0430\u0441\u0430 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430 \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0444\u043E\u0440\u043C\u044B \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0444\u0430\u0439\u043B \u043A\u0440\u0430\u0442\u043A\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043B\u0435\u0432 \u043C\u0430\u043A\u0441 \u043C\u0435\u0441\u0442\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u043C\u0435\u0441\u044F\u0446 \u043C\u0438\u043D \u043C\u0438\u043D\u0443\u0442\u0430 \u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043D\u0430\u0439\u0442\u0438 \u043D\u0430\u0439\u0442\u0438\u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u043D\u0430\u0439\u0442\u0438\u043E\u043A\u043D\u043E\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u043C\u0435\u0447\u0435\u043D\u043D\u044B\u0435\u043D\u0430\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u043D\u0430\u0439\u0442\u0438\u043F\u043E\u0441\u0441\u044B\u043B\u043A\u0430\u043C \u043D\u0430\u0439\u0442\u0438\u0444\u0430\u0439\u043B\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u0433\u043E\u0434\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u0434\u043D\u044F \u043D\u0430\u0447\u0430\u043B\u043E\u043A\u0432\u0430\u0440\u0442\u0430\u043B\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0435\u0441\u044F\u0446\u0430 \u043D\u0430\u0447\u0430\u043B\u043E\u043C\u0438\u043D\u0443\u0442\u044B \u043D\u0430\u0447\u0430\u043B\u043E\u043D\u0435\u0434\u0435\u043B\u0438 \u043D\u0430\u0447\u0430\u043B\u043E\u0447\u0430\u0441\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u0437\u0430\u043F\u0443\u0441\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u0438\u0441\u043A\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u044B\u0445\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0433\u043E\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u043F\u043E\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u0437\u0444\u0430\u0439\u043B\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0430 \u043D\u0430\u0447\u0430\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0444\u0430\u0439\u043B\u043E\u0432 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043D\u0430\u0447\u0430\u0442\u044C\u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0443\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043D\u0435\u0434\u0435\u043B\u044F\u0433\u043E\u0434\u0430 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u044C\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043D\u043E\u043C\u0435\u0440\u0441\u0435\u0430\u043D\u0441\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u043E\u043C\u0435\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043D\u0440\u0435\u0433 \u043D\u0441\u0442\u0440 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044E\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u044B\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u0435\u0440\u044B\u0432\u0430\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043E\u043A\u0440 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C \u043E\u043F\u043E\u0432\u0435\u0441\u0442\u0438\u0442\u044C\u043E\u0431\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0438\u043D\u0434\u0435\u043A\u0441\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0430\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043A\u0438 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0441\u043F\u0440\u0430\u0432\u043A\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043E\u0442\u043A\u0440\u044B\u0442\u044C\u0444\u043E\u0440\u043C\u0443\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E \u043E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044E \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043E\u0447\u0438\u0441\u0442\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0435\u0440\u0435\u0439\u0442\u0438\u043F\u043E\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0441\u0441\u044B\u043B\u043A\u0435 \u043F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u0437\u0430\u043F\u0440\u043E\u0441\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043E\u0448\u0438\u0431\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0434\u0430\u0442\u044B \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0441\u0442\u0440\u043E\u043A\u0438 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u0432\u043E\u0434\u0447\u0438\u0441\u043B\u0430 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0432\u043E\u043F\u0440\u043E\u0441 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u043E\u0431\u043E\u0448\u0438\u0431\u043A\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043D\u0430\u043A\u0430\u0440\u0442\u0435 \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043A\u0430\u0437\u0430\u0442\u044C\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Ccom\u043E\u0431\u044A\u0435\u043A\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044Cxml\u0442\u0438\u043F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0430\u0434\u0440\u0435\u0441\u043F\u043E\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043A\u043E\u0434\u044B\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0447\u0430\u0441\u043E\u0432\u044B\u0435\u043F\u043E\u044F\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043C\u044F\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E\u044D\u043A\u0440\u0430\u043D\u043E\u0432\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0430\u0441\u043A\u0443\u0432\u0441\u0435\u0444\u0430\u0439\u043B\u044B\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0435\u0441\u0442\u043E\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0430\u0434\u0440\u0435\u0441\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E\u0441\u0441\u044B\u043B\u043A\u0443\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0438\u0439\u043C\u0430\u043A\u0435\u0442 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0431\u0449\u0443\u044E\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043A\u043D\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u0443\u044E\u043E\u0442\u043C\u0435\u0442\u043A\u0443\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u043E\u043B\u043D\u043E\u0435\u0438\u043C\u044F\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445\u0441\u0441\u044B\u043B\u043E\u043A \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043F\u0443\u0442\u0438\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0435\u0430\u043D\u0441\u044B\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0443\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0441\u0435\u0430\u043D\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u043E\u0440\u043C\u0443 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u0443\u044E\u043E\u043F\u0446\u0438\u044E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u043E\u0441 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0432\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u043F\u043E\u043C\u0435\u0441\u0442\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u043F\u0440\u0430\u0432 \u043F\u0440\u0430\u0432\u043E\u0434\u043E\u0441\u0442\u0443\u043F\u0430 \u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043A\u043E\u0434\u0430\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0430\u0432\u0430 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0447\u0430\u0441\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u044F\u0441\u0430 \u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043A\u0440\u0430\u0442\u0438\u0442\u044C\u0440\u0430\u0431\u043E\u0442\u0443\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C\u0432\u044B\u0437\u043E\u0432 \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cjson \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044Cxml \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C\u0434\u0430\u0442\u0443json \u043F\u0443\u0441\u0442\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0440\u0430\u0431\u043E\u0447\u0438\u0439\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0440\u0430\u0437\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0434\u043B\u044F\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B \u0440\u0430\u0437\u043E\u0440\u0432\u0430\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0440\u043E\u043B\u044C\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0441\u0435\u043A\u0443\u043D\u0434\u0430 \u0441\u0438\u0433\u043D\u0430\u043B \u0441\u0438\u043C\u0432\u043E\u043B \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u043B\u0435\u0442\u043D\u0435\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C\u0431\u0443\u0444\u0435\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u043A\u0430\u0442\u0430\u043B\u043E\u0433 \u0441\u043E\u0437\u0434\u0430\u0442\u044C\u0444\u0430\u0431\u0440\u0438\u043A\u0443xdto \u0441\u043E\u043A\u0440\u043B \u0441\u043E\u043A\u0440\u043B\u043F \u0441\u043E\u043A\u0440\u043F \u0441\u043E\u043E\u0431\u0449\u0438\u0442\u044C \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0440\u0435\u0434 \u0441\u0442\u0440\u0434\u043B\u0438\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043A\u0430\u043D\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044F\u043D\u0430 \u0441\u0442\u0440\u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u043D\u0430\u0439\u0442\u0438 \u0441\u0442\u0440\u043D\u0430\u0447\u0438\u043D\u0430\u0435\u0442\u0441\u044F\u0441 \u0441\u0442\u0440\u043E\u043A\u0430 \u0441\u0442\u0440\u043E\u043A\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0441\u0442\u0440\u043F\u043E\u043B\u0443\u0447\u0438\u0442\u044C\u0441\u0442\u0440\u043E\u043A\u0443 \u0441\u0442\u0440\u0440\u0430\u0437\u0434\u0435\u043B\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0441\u0440\u0430\u0432\u043D\u0438\u0442\u044C \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0432\u0445\u043E\u0436\u0434\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0447\u0438\u0441\u043B\u043E\u0441\u0442\u0440\u043E\u043A \u0441\u0442\u0440\u0448\u0430\u0431\u043B\u043E\u043D \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0434\u0430\u0442\u0430\u0441\u0435\u0430\u043D\u0441\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430 \u0442\u0435\u043A\u0443\u0449\u0430\u044F\u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u0432\u043C\u0438\u043B\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430\u0445 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u043A\u043E\u0434\u043B\u043E\u043A\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A \u0442\u0435\u043A\u0443\u0449\u0438\u0439\u044F\u0437\u044B\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0442\u0438\u043F \u0442\u0438\u043F\u0437\u043D\u0447 \u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u044F\u0430\u043A\u0442\u0438\u0432\u043D\u0430 \u0442\u0440\u0435\u0433 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0434\u0430\u043D\u043D\u044B\u0435\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0438\u0437\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u044B \u0443\u0434\u0430\u043B\u0438\u0442\u044C\u0444\u0430\u0439\u043B\u044B \u0443\u043D\u0438\u0432\u0435\u0440\u0441\u0430\u043B\u044C\u043D\u043E\u0435\u0432\u0440\u0435\u043C\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0443\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u043D\u0435\u0448\u043D\u044E\u044E\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u0443 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u0438\u044F\u0441\u043F\u044F\u0449\u0435\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u0437\u0430\u0441\u044B\u043F\u0430\u043D\u0438\u044F\u043F\u0430\u0441\u0441\u0438\u0432\u043D\u043E\u0433\u043E\u0441\u0435\u0430\u043D\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0432\u0440\u0435\u043C\u044F\u043E\u0436\u0438\u0434\u0430\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043A\u0440\u0430\u0442\u043A\u0438\u0439\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0443\u044E\u0434\u043B\u0438\u043D\u0443\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043C\u043E\u043D\u043E\u043F\u043E\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u043B\u0438\u0446\u0435\u043D\u0437\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E\u0440\u0435\u0436\u0438\u043C\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0444\u0443\u043D\u043A\u0446\u0438\u043E\u043D\u0430\u043B\u044C\u043D\u044B\u0445\u043E\u043F\u0446\u0438\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u0438\u0432\u0438\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0443\u0441\u043B\u043E\u0436\u043D\u043E\u0441\u0442\u0438\u043F\u0430\u0440\u043E\u043B\u0435\u0439\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0435\u0439 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0442\u044B\u0441\u0444\u0430\u0439\u043B\u0430\u043C\u0438 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435\u0441\u0432\u043D\u0435\u0448\u043D\u0438\u043C\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u043C\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0438\u0444\u043E\u0440\u043C\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430odata \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C\u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0444\u043E\u0440\u043C\u0430\u0442 \u0446\u0435\u043B \u0447\u0430\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441 \u0447\u0430\u0441\u043E\u0432\u043E\u0439\u043F\u043E\u044F\u0441\u0441\u0435\u0430\u043D\u0441\u0430 \u0447\u0438\u0441\u043B\u043E \u0447\u0438\u0441\u043B\u043E\u043F\u0440\u043E\u043F\u0438\u0441\u044C\u044E \u044D\u0442\u043E\u0430\u0434\u0440\u0435\u0441\u0432\u0440\u0435\u043C\u0435\u043D\u043D\u043E\u0433\u043E\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430 ",p="ws\u0441\u0441\u044B\u043B\u043A\u0438 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043C\u0430\u043A\u0435\u0442\u043E\u0432\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u0441\u0442\u0438\u043B\u0435\u0439 \u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u044B \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u0432\u043D\u0435\u0448\u043D\u0438\u0435\u043E\u0442\u0447\u0435\u0442\u044B \u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u043A\u0443\u043F\u043A\u0438 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0433\u043B\u0430\u0432\u043D\u044B\u0439\u0441\u0442\u0438\u043B\u044C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u044B \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u044B\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u043E\u0431\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0431\u043E\u0447\u0435\u0439\u0434\u0430\u0442\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0440\u0430\u0431\u043E\u0442\u044B\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u043A\u043E\u043D\u0441\u0442\u0430\u043D\u0442\u044B \u043A\u0440\u0438\u0442\u0435\u0440\u0438\u0438\u043E\u0442\u0431\u043E\u0440\u0430 \u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u043E\u0442\u0447\u0435\u0442\u044B \u043F\u0430\u043D\u0435\u043B\u044C\u0437\u0430\u0434\u0430\u0447\u043E\u0441 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0437\u0430\u043F\u0443\u0441\u043A\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0441\u0435\u0430\u043D\u0441\u0430 \u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044F \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u043B\u0430\u043D\u044B\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u043F\u043B\u0430\u043D\u044B\u043E\u0431\u043C\u0435\u043D\u0430 \u043F\u043B\u0430\u043D\u044B\u0441\u0447\u0435\u0442\u043E\u0432 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0438\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439\u0431\u0430\u0437\u044B \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0440\u0430\u0431\u043E\u0447\u0430\u044F\u0434\u0430\u0442\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u044B\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0433\u0435\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u043E\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043C\u0443\u043B\u044C\u0442\u0438\u043C\u0435\u0434\u0438\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u043B\u0430\u043C\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043F\u043E\u0447\u0442\u044B \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0438\u0438 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0435\u043F\u043E\u0442\u043E\u043A\u0438 \u0444\u043E\u043D\u043E\u0432\u044B\u0435\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0432\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043E\u0431\u0449\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0445\u0441\u043F\u0438\u0441\u043A\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u0441\u043A\u0438\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043E\u0442\u0447\u0435\u0442\u043E\u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A ",b=u+y+c+p,w="web\u0446\u0432\u0435\u0442\u0430 windows\u0446\u0432\u0435\u0442\u0430 windows\u0448\u0440\u0438\u0444\u0442\u044B \u0431\u0438\u0431\u043B\u0438\u043E\u0442\u0435\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u0440\u0430\u043C\u043A\u0438\u0441\u0442\u0438\u043B\u044F \u0441\u0438\u043C\u0432\u043E\u043B\u044B \u0446\u0432\u0435\u0442\u0430\u0441\u0442\u0438\u043B\u044F \u0448\u0440\u0438\u0444\u0442\u044B\u0441\u0442\u0438\u043B\u044F ",E="\u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u043E\u0435\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u044F\u0432\u0444\u043E\u0440\u043C\u0435 \u0430\u0432\u0442\u043E\u0440\u0430\u0437\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0435\u0441\u0435\u0440\u0438\u0439 \u0430\u043D\u0438\u043C\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0438\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0432\u044B\u0441\u043E\u0442\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u0430\u044F\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u0435\u043A\u043E\u0440\u0430\u0446\u0438\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0438\u0434\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u044F \u0432\u0438\u0434\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u0432\u0438\u0434\u043F\u043E\u043B\u044F\u0444\u043E\u0440\u043C\u044B \u0432\u0438\u0434\u0444\u043B\u0430\u0436\u043A\u0430 \u0432\u043B\u0438\u044F\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043D\u0430\u043F\u0443\u0437\u044B\u0440\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043A\u043E\u043B\u043E\u043D\u043E\u043A \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B \u0433\u0440\u0443\u043F\u043F\u044B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0434\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439\u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F\u043F\u0435\u0440\u0435\u0442\u0430\u0441\u043A\u0438\u0432\u0430\u043D\u0438\u044F \u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u043C\u0435\u0436\u0434\u0443\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043C\u0438\u0444\u043E\u0440\u043C\u044B \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u044B\u0432\u043E\u0434\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043E\u0441\u044B\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0438 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0435\u043C\u043E\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u043E\u0447\u043A\u0438\u0431\u0438\u0440\u0436\u0435\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0440\u0438\u044F\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043E\u0441\u0438\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043E\u043C\u0430\u043D\u0434 \u043C\u0430\u043A\u0441\u0438\u043C\u0443\u043C\u0441\u0435\u0440\u0438\u0439 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0434\u0435\u0440\u0435\u0432\u0430 \u043D\u0430\u0447\u0430\u043B\u044C\u043D\u043E\u0435\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u043F\u0438\u0441\u043A\u0430 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u043C\u0435\u0442\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043A\u043D\u043E\u043F\u043E\u043A \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043D\u043E\u043F\u043A\u0438\u0432\u044B\u0431\u043E\u0440\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0439\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043E\u0442\u0440\u0438\u0446\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u0443\u0437\u044B\u0440\u044C\u043A\u043E\u0432\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u044F\u043F\u0440\u0438\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0438 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0438\u043F\u043E\u043B\u043E\u0441\u044B\u0440\u0435\u0433\u0443\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0444\u043E\u0440\u043C\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0444\u0438\u0433\u0443\u0440\u044B\u043A\u043D\u043E\u043F\u043A\u0438 \u043F\u0430\u043B\u0438\u0442\u0440\u0430\u0446\u0432\u0435\u0442\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435\u043E\u0431\u044B\u0447\u043D\u043E\u0439\u0433\u0440\u0443\u043F\u043F\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0430\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0438\u0441\u043A\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u043A\u043D\u043E\u043F\u043A\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u0430\u043D\u0434\u043D\u043E\u0439\u043F\u0430\u043D\u0435\u043B\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0444\u043E\u0440\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043E\u043F\u043E\u0440\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u0434\u043F\u0438\u0441\u0435\u0439\u0448\u043A\u0430\u043B\u044B\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0438\u0437\u043C\u0435\u0440\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u043E\u0438\u0441\u043A\u0430 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u043E\u0438\u0441\u043A\u043E\u043C \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0433\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0439\u0433\u0438\u0441\u0442\u043E\u0433\u0440\u0430\u043C\u043C\u044B \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0441\u0435\u0440\u0438\u0439\u0432\u043B\u0435\u0433\u0435\u043D\u0434\u0435\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0437\u043C\u0435\u0440\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0430\u0441\u0442\u044F\u0433\u0438\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0432\u0435\u0440\u0442\u0438\u043A\u0430\u043B\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0432\u0432\u043E\u0434\u0430\u0441\u0442\u0440\u043E\u043A\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0431\u043E\u0440\u0430\u043D\u0435\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043D\u043E\u0433\u043E \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0434\u0430\u0442\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0437\u043C\u0435\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0441\u0432\u044F\u0437\u0430\u043D\u043D\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u043F\u0435\u0447\u0430\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u0430\u043D\u0434\u044B \u0440\u0435\u0436\u0438\u043C\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u043A\u043D\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u043E\u043A\u043D\u0430\u0444\u043E\u0440\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0441\u0435\u0440\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u0440\u0438\u0441\u043E\u0432\u043A\u0438\u0441\u0435\u0442\u043A\u0438\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u0440\u0435\u0436\u0438\u043C\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043A\u043E\u043B\u043E\u043D\u043A\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0440\u0435\u0436\u0438\u043C\u0441\u0433\u043B\u0430\u0436\u0438\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0434\u0438\u043A\u0430\u0442\u043E\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0441\u043F\u0438\u0441\u043A\u0430\u0437\u0430\u0434\u0430\u0447 \u0441\u043A\u0432\u043E\u0437\u043D\u043E\u0435\u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u0444\u043E\u0440\u043C\u044B\u0432\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0448\u043A\u0430\u043B\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u043F\u043E\u0441\u043E\u0431\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0433\u0440\u0443\u043F\u043F\u0430\u043A\u043E\u043C\u0430\u043D\u0434 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0435\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u0435 \u0441\u0442\u0430\u0442\u0443\u0441\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F \u0441\u0442\u0438\u043B\u044C\u0441\u0442\u0440\u0435\u043B\u043A\u0438 \u0442\u0438\u043F\u0430\u043F\u043F\u0440\u043E\u043A\u0441\u0438\u043C\u0430\u0446\u0438\u0438\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0442\u0438\u043F\u0438\u043C\u043F\u043E\u0440\u0442\u0430\u0441\u0435\u0440\u0438\u0439\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043C\u0430\u0440\u043A\u0435\u0440\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0438\u0438\u0441\u043B\u043E\u044F\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u0447\u043D\u043E\u0433\u043E\u043E\u0431\u044A\u0435\u043A\u0442\u0430\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0448\u043A\u0430\u043B\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0438\u0441\u043A\u0430\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u043F\u0440\u043E\u0435\u043A\u0446\u0438\u0438\u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0440\u0430\u043C\u043A\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u0433\u0430\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u043F\u043E\u0441\u0435\u0440\u0438\u044F\u043C\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0442\u043E\u0447\u0435\u043A\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0439\u043B\u0438\u043D\u0438\u0438 \u0442\u0438\u043F\u0441\u0442\u043E\u0440\u043E\u043D\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0448\u043A\u0430\u043B\u044B\u0440\u0430\u0434\u0430\u0440\u043D\u043E\u0439\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0430\u043A\u0442\u043E\u0440\u043B\u0438\u043D\u0438\u0438\u0442\u0440\u0435\u043D\u0434\u0430\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B \u0444\u0438\u0433\u0443\u0440\u0430\u043A\u043D\u043E\u043F\u043A\u0438 \u0444\u0438\u0433\u0443\u0440\u044B\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u043E\u0439\u0441\u0445\u0435\u043C\u044B \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u0432\u0442\u0430\u0431\u043B\u0438\u0446\u0435 \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u043D\u044F\u0448\u043A\u0430\u043B\u044B\u0432\u0440\u0435\u043C\u0435\u043D\u0438 \u0444\u043E\u0440\u043C\u0430\u0442\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0448\u0438\u0440\u0438\u043D\u0430\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0444\u043E\u0440\u043C\u044B ",g="\u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0438\u0438 \u0432\u0438\u0434\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0441\u0447\u0435\u0442\u0430 \u0432\u0438\u0434\u0442\u043E\u0447\u043A\u0438\u043C\u0430\u0440\u0448\u0440\u0443\u0442\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u0436\u0438\u043C\u0430\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0440\u0435\u0437\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0430\u0433\u0440\u0435\u0433\u0430\u0442\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u0432\u0440\u0435\u043C\u044F \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 ",h="\u0430\u0432\u0442\u043E\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u043D\u043E\u043C\u0435\u0440\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0430\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445 ",N="\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043E\u0440\u0438\u0435\u043D\u0442\u0430\u0446\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043B\u043E\u043D\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u0441\u0442\u0440\u043E\u043A\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430\u043E\u0442\u043D\u043E\u0441\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u0447\u0442\u0435\u043D\u0438\u044F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0434\u0432\u0443\u0441\u0442\u043E\u0440\u043E\u043D\u043D\u0435\u0439\u043F\u0435\u0447\u0430\u0442\u0438 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043A\u0443\u0440\u0441\u043E\u0440\u043E\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043B\u0438\u043D\u0438\u0438\u044F\u0447\u0435\u0439\u043A\u0438\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043B\u0438\u043D\u0438\u0439\u0441\u0432\u043E\u0434\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0440\u0438\u0441\u0443\u043D\u043A\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0441\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0443\u0437\u043E\u0440\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C\u043F\u0435\u0447\u0430\u0442\u0438 \u0447\u0435\u0440\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u044F\u0441\u0442\u0440\u0430\u043D\u0438\u0446 ",f="\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A\u0430 ",k="\u0442\u0438\u043F\u0444\u0430\u0439\u043B\u0430\u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0433\u043E\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 ",T="\u043E\u0431\u0445\u043E\u0434\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0437\u0430\u043F\u0438\u0441\u0438\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",j="\u0432\u0438\u0434\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u043E\u0442\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0438\u0442\u043E\u0433\u043E\u0432 ",z="\u0434\u043E\u0441\u0442\u0443\u043F\u043A\u0444\u0430\u0439\u043B\u0443 \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u0430\u0439\u043B\u0430 ",M="\u0442\u0438\u043F\u0438\u0437\u043C\u0435\u0440\u0435\u043D\u0438\u044F\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044F\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",O="\u0432\u0438\u0434\u0434\u0430\u043D\u043D\u044B\u0445\u0430\u043D\u0430\u043B\u0438\u0437\u0430 \u043C\u0435\u0442\u043E\u0434\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u0435\u0434\u0438\u043D\u0438\u0446\u044B\u0438\u043D\u0442\u0435\u0440\u0432\u0430\u043B\u0430\u0432\u0440\u0435\u043C\u0435\u043D\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0447\u0438\u0441\u043B\u043E\u0432\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u0434\u0435\u0440\u0435\u0432\u043E\u0440\u0435\u0448\u0435\u043D\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043B\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u044F \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0430\u044F\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0438\u0441\u043A\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0442\u0438\u043F\u043A\u043E\u043B\u043E\u043D\u043A\u0438\u043C\u043E\u0434\u0435\u043B\u0438\u043F\u0440\u043E\u0433\u043D\u043E\u0437\u0430 \u0442\u0438\u043F\u043C\u0435\u0440\u044B\u0440\u0430\u0441\u0441\u0442\u043E\u044F\u043D\u0438\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0442\u0441\u0435\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438 \u0442\u0438\u043F\u043F\u043E\u043B\u044F\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u0438\u0437\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0430\u0432\u0438\u043B\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u043E\u0440\u044F\u0434\u043E\u0447\u0438\u0432\u0430\u043D\u0438\u044F\u0448\u0430\u0431\u043B\u043E\u043D\u043E\u0432\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0443\u043F\u0440\u043E\u0449\u0435\u043D\u0438\u044F\u0434\u0435\u0440\u0435\u0432\u0430\u0440\u0435\u0448\u0435\u043D\u0438\u0439 ",R="ws\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442xpathxs \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0437\u0430\u043F\u0438\u0441\u0438\u0434\u0430\u0442\u044Bjson \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0432\u0438\u0434\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u0432\u0438\u0434\u0444\u0430\u0441\u0435\u0442\u0430xdto \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Fdom \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043D\u043D\u043E\u0441\u0442\u044C\u0441\u0445\u0435\u043C\u044Bxs \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u043D\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043A\u0430\u0442\u0435\u0433\u043E\u0440\u0438\u044F\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Dxs \u043C\u0435\u0442\u043E\u0434\u043D\u0430\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u044Fxs \u043C\u043E\u0434\u0435\u043B\u044C\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430xml \u043D\u0435\u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0435\u043F\u043E\u0434\u0441\u0442\u0430\u043D\u043E\u0432\u043A\u0438xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0441\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0433\u043Exs \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u043E\u0442\u0431\u043E\u0440\u0430\u0443\u0437\u043B\u043E\u0432dom \u043F\u0435\u0440\u0435\u043D\u043E\u0441\u0441\u0442\u0440\u043E\u043Ajson \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435dom \u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u044Bxml \u0442\u0438\u043F\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xml \u0442\u0438\u043F\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fjson \u0442\u0438\u043F\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043Exml \u0442\u0438\u043F\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044Bxs \u0442\u0438\u043F\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438xml \u0442\u0438\u043F\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430domxpath \u0442\u0438\u043F\u0443\u0437\u043B\u0430dom \u0442\u0438\u043F\u0443\u0437\u043B\u0430xml \u0444\u043E\u0440\u043C\u0430xml \u0444\u043E\u0440\u043C\u0430\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044Fxs \u0444\u043E\u0440\u043C\u0430\u0442\u0434\u0430\u0442\u044Bjson \u044D\u043A\u0440\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432json ",D="\u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0432\u043B\u043E\u0436\u0435\u043D\u043D\u044B\u0445\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0438\u0442\u043E\u0433\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u0435\u0439\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0431\u0443\u0445\u0433\u0430\u043B\u0442\u0435\u0440\u0441\u043A\u043E\u0433\u043E\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0432\u044B\u0432\u043E\u0434\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0433\u0440\u0443\u043F\u043F\u044B\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u043E\u0432\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0430\u043F\u043E\u043B\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043E\u0441\u0442\u0430\u0442\u043A\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u0438\u044F\u0442\u0435\u043A\u0441\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u0441\u0432\u044F\u0437\u0438\u043D\u0430\u0431\u043E\u0440\u043E\u0432\u0434\u0430\u043D\u043D\u044B\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u043B\u0435\u0433\u0435\u043D\u0434\u044B\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u044B\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u043E\u0442\u0431\u043E\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u0432\u0442\u043E\u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0440\u0435\u0441\u0443\u0440\u0441\u043E\u0432\u0432\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0444\u0438\u043A\u0441\u0430\u0446\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0443\u0441\u043B\u043E\u0432\u043D\u043E\u0433\u043E\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 ",I="\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0432\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u043D\u0435ascii\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0442\u0435\u043A\u0441\u0442\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0442\u043E\u043A\u043E\u043B\u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u044B \u0441\u0442\u0430\u0442\u0443\u0441\u0440\u0430\u0437\u0431\u043E\u0440\u0430\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0433\u043E\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F ",S="\u0440\u0435\u0436\u0438\u043C\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0438\u0437\u0430\u043F\u0438\u0441\u0438\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 ",A="\u0440\u0430\u0441\u043F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0440\u0435\u0436\u0438\u043C\u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0442\u0438\u043F\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0432\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 ",C="\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0438\u043C\u0435\u043D\u0444\u0430\u0439\u043B\u043E\u0432\u0432zip\u0444\u0430\u0439\u043B\u0435 \u043C\u0435\u0442\u043E\u0434\u0441\u0436\u0430\u0442\u0438\u044Fzip \u043C\u0435\u0442\u043E\u0434\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044Fzip \u0440\u0435\u0436\u0438\u043C\u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439\u0444\u0430\u0439\u043B\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u043F\u043E\u0434\u043A\u0430\u0442\u0430\u043B\u043E\u0433\u043E\u0432zip \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0438\u044F\u043F\u0443\u0442\u0435\u0439zip \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0441\u0436\u0430\u0442\u0438\u044Fzip ",L="\u0437\u0432\u0443\u043A\u043E\u0432\u043E\u0435\u043E\u043F\u043E\u0432\u0435\u0449\u0435\u043D\u0438\u0435 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0445\u043E\u0434\u0430\u043A\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u043E\u0437\u0438\u0446\u0438\u044F\u0432\u043F\u043E\u0442\u043E\u043A\u0435 \u043F\u043E\u0440\u044F\u0434\u043E\u043A\u0431\u0430\u0439\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u044B\u0445\u043F\u043E\u043A\u0443\u043F\u043E\u043A \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0444\u043E\u043D\u043E\u0432\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u043F\u043E\u0434\u043F\u0438\u0441\u0447\u0438\u043A\u0430\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u044B\u0445\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044Fftp ",B="\u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0440\u044F\u0434\u043A\u0430\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0434\u043E\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F\u043F\u0435\u0440\u0438\u043E\u0434\u0430\u043C\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043A\u043E\u043D\u0442\u0440\u043E\u043B\u044C\u043D\u043E\u0439\u0442\u043E\u0447\u043A\u0438\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043E\u0431\u044A\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0439\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u0442\u0438\u043F\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F\u0441\u0445\u0435\u043C\u044B\u0437\u0430\u043F\u0440\u043E\u0441\u0430 ",U="http\u043C\u0435\u0442\u043E\u0434 \u0430\u0432\u0442\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0430\u0432\u0442\u043E\u043F\u0440\u0435\u0444\u0438\u043A\u0441\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0432\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u043E\u0433\u043E\u044F\u0437\u044B\u043A\u0430 \u0432\u0438\u0434\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0432\u0438\u0434\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u043D\u0430\u043A\u043E\u043F\u043B\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0435\u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u0435\u0439 \u0438\u043D\u0434\u0435\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u0430\u0437\u044B\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0431\u044B\u0441\u0442\u0440\u043E\u0433\u043E\u0432\u044B\u0431\u043E\u0440\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u0434\u0447\u0438\u043D\u0435\u043D\u0438\u044F \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0430\u0437\u0434\u0435\u043B\u044F\u0435\u043C\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0435\u0440\u0430\u0442\u0438\u0432\u043D\u043E\u0435\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0432\u0438\u0434\u0430\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0437\u0430\u0434\u0430\u0447\u0438 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043B\u0430\u043D\u0430\u043E\u0431\u043C\u0435\u043D\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0435\u043F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0435\u043C\u0435\u0449\u0435\u043D\u0438\u0435\u0433\u0440\u0430\u043D\u0438\u0446\u044B\u043F\u0440\u0438\u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0438 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u043F\u0435\u0440\u0438\u043E\u0434\u0438\u0447\u043D\u043E\u0441\u0442\u044C\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0441\u0432\u0435\u0434\u0435\u043D\u0438\u0439 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0432\u043E\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043C\u044B\u0445\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u043F\u043E\u0438\u0441\u043A\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u043F\u0440\u0438\u043D\u0430\u0434\u043B\u0435\u0436\u043D\u043E\u0441\u0442\u044C\u043E\u0431\u044A\u0435\u043A\u0442\u0430 \u043F\u0440\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0430\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0430\u0437\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u0449\u0435\u0433\u043E\u0440\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u0430 \u0440\u0435\u0436\u0438\u043C\u0430\u0432\u0442\u043E\u043D\u0443\u043C\u0435\u0440\u0430\u0446\u0438\u0438\u043E\u0431\u044A\u0435\u043A\u0442\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0438\u0441\u0438\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u043C\u043E\u0434\u0430\u043B\u044C\u043D\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0438\u043D\u0445\u0440\u043E\u043D\u043D\u044B\u0445\u0432\u044B\u0437\u043E\u0432\u043E\u0432\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B\u0438\u0432\u043D\u0435\u0448\u043D\u0438\u0445\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E\u0433\u043E\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0435\u0430\u043D\u0441\u043E\u0432 \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u044B\u0431\u043E\u0440\u0430\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438 \u0440\u0435\u0436\u0438\u043C\u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0440\u0435\u0436\u0438\u043C\u0443\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u043E\u0439\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0445\u0430\u0440\u0430\u043A\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043A \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u043F\u043B\u0430\u043D\u0430\u0441\u0447\u0435\u0442\u043E\u0432 \u0441\u0435\u0440\u0438\u0438\u043A\u043E\u0434\u043E\u0432\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u043F\u043E\u0441\u043E\u0431\u043F\u043E\u0438\u0441\u043A\u0430\u0441\u0442\u0440\u043E\u043A\u0438\u043F\u0440\u0438\u0432\u0432\u043E\u0434\u0435\u043F\u043E\u0441\u0442\u0440\u043E\u043A\u0435 \u0441\u043F\u043E\u0441\u043E\u0431\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445\u0442\u0430\u0431\u043B\u0438\u0446\u044B\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u043F\u043B\u0430\u043D\u0430\u0432\u0438\u0434\u043E\u0432\u0440\u0430\u0441\u0447\u0435\u0442\u0430 \u0442\u0438\u043F\u043A\u043E\u0434\u0430\u0441\u043F\u0440\u0430\u0432\u043E\u0447\u043D\u0438\u043A\u0430 \u0442\u0438\u043F\u043C\u0430\u043A\u0435\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0431\u0438\u0437\u043D\u0435\u0441\u043F\u0440\u043E\u0446\u0435\u0441\u0441\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0442\u0438\u043F\u043D\u043E\u043C\u0435\u0440\u0430\u0437\u0430\u0434\u0430\u0447\u0438 \u0442\u0438\u043F\u0444\u043E\u0440\u043C\u044B \u0443\u0434\u0430\u043B\u0435\u043D\u0438\u0435\u0434\u0432\u0438\u0436\u0435\u043D\u0438\u0439 ",$="\u0432\u0430\u0436\u043D\u043E\u0441\u0442\u044C\u043F\u0440\u043E\u0431\u043B\u0435\u043C\u044B\u043F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u044F\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043C\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0444\u043E\u0440\u043C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E\u0448\u0440\u0438\u0444\u0442\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0439\u0434\u0430\u0442\u044B\u043D\u0430\u0447\u0430\u043B\u0430 \u0432\u0438\u0434\u0433\u0440\u0430\u043D\u0438\u0446\u044B \u0432\u0438\u0434\u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0438 \u0432\u0438\u0434\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0432\u0438\u0434\u0440\u0430\u043C\u043A\u0438 \u0432\u0438\u0434\u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0446\u0432\u0435\u0442\u0430 \u0432\u0438\u0434\u0447\u0438\u0441\u043B\u043E\u0432\u043E\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0432\u0438\u0434\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u0430\u044F\u0434\u043B\u0438\u043D\u0430 \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439\u0437\u043D\u0430\u043A \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435byteordermark \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0445\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0439\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043A\u043B\u0430\u0432\u0438\u0448\u0430 \u043A\u043E\u0434\u0432\u043E\u0437\u0432\u0440\u0430\u0442\u0430\u0434\u0438\u0430\u043B\u043E\u0433\u0430 \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430xbase \u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430\u0442\u0435\u043A\u0441\u0442\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u043E\u0438\u0441\u043A\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0435\u0434\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u0438\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043F\u0430\u043D\u0435\u043B\u0438\u0440\u0430\u0437\u0434\u0435\u043B\u043E\u0432 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u0434\u0438\u0430\u043B\u043E\u0433\u0430\u0432\u043E\u043F\u0440\u043E\u0441 \u0440\u0435\u0436\u0438\u043C\u0437\u0430\u043F\u0443\u0441\u043A\u0430\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u044F\u0444\u043E\u0440\u043C\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044F \u0440\u0435\u0436\u0438\u043C\u043F\u043E\u043B\u043D\u043E\u0442\u0435\u043A\u0441\u0442\u043E\u0432\u043E\u0433\u043E\u043F\u043E\u0438\u0441\u043A\u0430 \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u044C\u043A\u043B\u0438\u0435\u043D\u0442\u0441\u043A\u043E\u0433\u043E\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u0432\u043D\u0435\u0448\u043D\u0435\u0433\u043E\u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u043F\u043E\u0441\u043E\u0431\u0432\u044B\u0431\u043E\u0440\u0430\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u0430windows \u0441\u043F\u043E\u0441\u043E\u0431\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0440\u043E\u043A\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u044F \u0442\u0438\u043F\u0432\u043D\u0435\u0448\u043D\u0435\u0439\u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442\u044B \u0442\u0438\u043F\u043F\u043B\u0430\u0442\u0444\u043E\u0440\u043C\u044B \u0442\u0438\u043F\u043F\u043E\u0432\u0435\u0434\u0435\u043D\u0438\u044F\u043A\u043B\u0430\u0432\u0438\u0448\u0438enter \u0442\u0438\u043F\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u0438\u043E\u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u0438\u0438\u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438\u0431\u0430\u0437\u044B\u0434\u0430\u043D\u043D\u044B\u0445 \u0443\u0440\u043E\u0432\u0435\u043D\u044C\u0438\u0437\u043E\u043B\u044F\u0446\u0438\u0438\u0442\u0440\u0430\u043D\u0437\u0430\u043A\u0446\u0438\u0439 \u0445\u0435\u0448\u0444\u0443\u043D\u043A\u0446\u0438\u044F \u0447\u0430\u0441\u0442\u0438\u0434\u0430\u0442\u044B",q=w+E+g+h+N+f+k+T+j+z+M+O+R+D+I+S+A+C+L+B+U+$,Y="com\u043E\u0431\u044A\u0435\u043A\u0442 ftp\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 http\u0437\u0430\u043F\u0440\u043E\u0441 http\u0441\u0435\u0440\u0432\u0438\u0441\u043E\u0442\u0432\u0435\u0442 http\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 ws\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044F ws\u043F\u0440\u043E\u043A\u0441\u0438 xbase \u0430\u043D\u0430\u043B\u0438\u0437\u0434\u0430\u043D\u043D\u044B\u0445 \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044Fxs \u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u043A\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u0431\u0443\u0444\u0435\u0440\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435xs \u0432\u044B\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0433\u0435\u043D\u0435\u0440\u0430\u0442\u043E\u0440\u0441\u043B\u0443\u0447\u0430\u0439\u043D\u044B\u0445\u0447\u0438\u0441\u0435\u043B \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0435\u043E\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0438\u0435\u043A\u043E\u043E\u0440\u0434\u0438\u043D\u0430\u0442\u044B \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043A\u0430\u044F\u0441\u0445\u0435\u043C\u0430 \u0433\u0440\u0443\u043F\u043F\u0430\u043C\u043E\u0434\u0435\u043B\u0438xs \u0434\u0430\u043D\u043D\u044B\u0435\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0435\u0434\u0430\u043D\u043D\u044B\u0435 \u0434\u0435\u043D\u0434\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430\u0433\u0430\u043D\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0444\u0430\u0439\u043B\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0446\u0432\u0435\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0432\u044B\u0431\u043E\u0440\u0430\u0448\u0440\u0438\u0444\u0442\u0430 \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u044F\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0434\u0438\u0430\u043B\u043E\u0433\u0440\u0435\u0434\u0430\u043A\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u043E\u0433\u043E\u043F\u0435\u0440\u0438\u043E\u0434\u0430 \u0434\u0438\u0430\u043F\u0430\u0437\u043E\u043D \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442dom \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442html \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430\u0446\u0438\u044Fxs \u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u0435\u043C\u043E\u0435\u0443\u0432\u0435\u0434\u043E\u043C\u043B\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u044Cdom \u0437\u0430\u043F\u0438\u0441\u044Cfastinfoset \u0437\u0430\u043F\u0438\u0441\u044Chtml \u0437\u0430\u043F\u0438\u0441\u044Cjson \u0437\u0430\u043F\u0438\u0441\u044Cxml \u0437\u0430\u043F\u0438\u0441\u044Czip\u0444\u0430\u0439\u043B\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0434\u0430\u043D\u043D\u044B\u0445 \u0437\u0430\u043F\u0438\u0441\u044C\u0442\u0435\u043A\u0441\u0442\u0430 \u0437\u0430\u043F\u0438\u0441\u044C\u0443\u0437\u043B\u043E\u0432dom \u0437\u0430\u043F\u0440\u043E\u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u043E\u0435\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435openssl \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F\u043F\u043E\u043B\u0435\u0439\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0437\u0432\u043B\u0435\u0447\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0438\u043C\u043F\u043E\u0440\u0442xs \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u0430 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u043E\u0447\u0442\u043E\u0432\u044B\u0439\u043F\u0440\u043E\u0444\u0438\u043B\u044C \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u043F\u0440\u043E\u043A\u0441\u0438 \u0438\u043D\u0442\u0435\u0440\u043D\u0435\u0442\u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F\u0434\u043B\u044F\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u044Fxs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0445\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0438\u0442\u0435\u0440\u0430\u0442\u043E\u0440\u0443\u0437\u043B\u043E\u0432dom \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0430 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0430\u0442\u044B \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0441\u0442\u0440\u043E\u043A\u0438 \u043A\u0432\u0430\u043B\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u044B\u0447\u0438\u0441\u043B\u0430 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043C\u0430\u043A\u0435\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u0449\u0438\u043A\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043C\u0430\u043A\u0435\u0442\u0430\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0442\u043E\u0440\u0444\u043E\u0440\u043C\u0430\u0442\u043D\u043E\u0439\u0441\u0442\u0440\u043E\u043A\u0438 \u043B\u0438\u043D\u0438\u044F \u043C\u0430\u043A\u0435\u0442\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0431\u043B\u0430\u0441\u0442\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u043A\u0435\u0442\u043E\u0444\u043E\u0440\u043C\u043B\u0435\u043D\u0438\u044F\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043C\u0430\u0441\u043A\u0430xs \u043C\u0435\u043D\u0435\u0434\u0436\u0435\u0440\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u043D\u0430\u0431\u043E\u0440\u0441\u0445\u0435\u043Cxml \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438\u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438json \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u043A\u0430\u0440\u0442\u0438\u043D\u043E\u043A \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u0431\u0445\u043E\u0434\u0434\u0435\u0440\u0435\u0432\u0430dom \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u043D\u043E\u0442\u0430\u0446\u0438\u0438xs \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u0438\u0435\u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430xs \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u0434\u043E\u0441\u0442\u0443\u043F\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F\u0441\u043E\u0431\u044B\u0442\u0438\u044F\u043E\u0442\u043A\u0430\u0437\u0432\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u0436\u0443\u0440\u043D\u0430\u043B\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0438\u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043E\u0432\u043A\u0438\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u043F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0435\u043C\u043E\u0433\u043E\u0444\u0430\u0439\u043B\u0430 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0442\u0438\u043F\u043E\u0432 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043E\u0432xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0433\u0440\u0443\u043F\u043F\u044B\u043C\u043E\u0434\u0435\u043B\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0435\u043D\u0438\u044F\u0438\u0434\u0435\u043D\u0442\u0438\u0447\u043D\u043E\u0441\u0442\u0438xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u043F\u0440\u043E\u0441\u0442\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0441\u043E\u0441\u0442\u0430\u0432\u043D\u043E\u0433\u043E\u0442\u0438\u043F\u0430xs \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435\u0442\u0438\u043F\u0430\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430dom \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u044Fxpathxs \u043E\u0442\u0431\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u043A\u0435\u0442\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0435\u043C\u044B\u0445\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0432\u044B\u0431\u043E\u0440\u0430 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438json \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0437\u0430\u043F\u0438\u0441\u0438xml \u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u044B\u0447\u0442\u0435\u043D\u0438\u044Fxml \u043F\u0435\u0440\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u0438\u0435xs \u043F\u043B\u0430\u043D\u0438\u0440\u043E\u0432\u0449\u0438\u043A \u043F\u043E\u043B\u0435\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u043B\u0435\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044Cdom \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0437\u0430\u043F\u0440\u043E\u0441\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u043E\u0442\u0447\u0435\u0442\u0430\u0430\u043D\u0430\u043B\u0438\u0437\u0430\u0434\u0430\u043D\u043D\u044B\u0445 \u043F\u043E\u0441\u0442\u0440\u043E\u0438\u0442\u0435\u043B\u044C\u0441\u0445\u0435\u043Cxml \u043F\u043E\u0442\u043E\u043A \u043F\u043E\u0442\u043E\u043A\u0432\u043F\u0430\u043C\u044F\u0442\u0438 \u043F\u043E\u0447\u0442\u0430 \u043F\u043E\u0447\u0442\u043E\u0432\u043E\u0435\u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435xsl \u043F\u0440\u0435\u043E\u0431\u0440\u0430\u0437\u043E\u0432\u0430\u043D\u0438\u0435\u043A\u043A\u0430\u043D\u043E\u043D\u0438\u0447\u0435\u0441\u043A\u043E\u043C\u0443xml \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u043A\u043E\u043B\u043B\u0435\u043A\u0446\u0438\u044E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u0432\u044B\u0432\u043E\u0434\u0430\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445\u0432\u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u043F\u0440\u043E\u0446\u0435\u0441\u0441\u043E\u0440\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0440\u0430\u0437\u044B\u043C\u0435\u043D\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u0438\u043C\u0435\u043Ddom \u0440\u0430\u043C\u043A\u0430 \u0440\u0430\u0441\u043F\u0438\u0441\u0430\u043D\u0438\u0435\u0440\u0435\u0433\u043B\u0430\u043C\u0435\u043D\u0442\u043D\u043E\u0433\u043E\u0437\u0430\u0434\u0430\u043D\u0438\u044F \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u043E\u0435\u0438\u043C\u044Fxml \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0447\u0442\u0435\u043D\u0438\u044F\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0432\u043E\u0434\u043D\u0430\u044F\u0434\u0438\u0430\u0433\u0440\u0430\u043C\u043C\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u0430\u0440\u0430\u043C\u0435\u0442\u0440\u0430\u0432\u044B\u0431\u043E\u0440\u0430 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443 \u0441\u0432\u044F\u0437\u044C\u043F\u043E\u0442\u0438\u043F\u0443\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0435\u0440\u0438\u0430\u043B\u0438\u0437\u0430\u0442\u043E\u0440xdto \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u043B\u0438\u0435\u043D\u0442\u0430\u0444\u0430\u0439\u043B \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043A\u0440\u0438\u043F\u0442\u043E\u0433\u0440\u0430\u0444\u0438\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432windows \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u044B\u0443\u0434\u043E\u0441\u0442\u043E\u0432\u0435\u0440\u044F\u044E\u0449\u0438\u0445\u0446\u0435\u043D\u0442\u0440\u043E\u0432\u0444\u0430\u0439\u043B \u0441\u0436\u0430\u0442\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u0430\u044F\u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044E \u0441\u043E\u0447\u0435\u0442\u0430\u043D\u0438\u0435\u043A\u043B\u0430\u0432\u0438\u0448 \u0441\u0440\u0430\u0432\u043D\u0435\u043D\u0438\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u0430\u044F\u0434\u0430\u0442\u0430\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439\u043F\u0435\u0440\u0438\u043E\u0434 \u0441\u0445\u0435\u043C\u0430xml \u0441\u0445\u0435\u043C\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 \u0442\u0430\u0431\u043B\u0438\u0447\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u043A\u0441\u0442\u043E\u0432\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043C\u043E\u0435\u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0442\u0438\u043F\u0434\u0430\u043D\u043D\u044B\u0445xml \u0443\u043D\u0438\u043A\u0430\u043B\u044C\u043D\u044B\u0439\u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0431\u0440\u0438\u043A\u0430xdto \u0444\u0430\u0439\u043B \u0444\u0430\u0439\u043B\u043E\u0432\u044B\u0439\u043F\u043E\u0442\u043E\u043A \u0444\u0430\u0441\u0435\u0442\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432\u0434\u0440\u043E\u0431\u043D\u043E\u0439\u0447\u0430\u0441\u0442\u0438xs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0432\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0433\u043E\u0438\u0441\u043A\u043B\u044E\u0447\u0430\u044E\u0449\u0435\u0433\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0439\u0434\u043B\u0438\u043D\u044Bxs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0440\u0430\u0437\u0446\u0430xs \u0444\u0430\u0441\u0435\u0442\u043E\u0431\u0449\u0435\u0433\u043E\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430\u0440\u0430\u0437\u0440\u044F\u0434\u043E\u0432xs \u0444\u0430\u0441\u0435\u0442\u043F\u0435\u0440\u0435\u0447\u0438\u0441\u043B\u0435\u043D\u0438\u044Fxs \u0444\u0430\u0441\u0435\u0442\u043F\u0440\u043E\u0431\u0435\u043B\u044C\u043D\u044B\u0445\u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432xs \u0444\u0438\u043B\u044C\u0442\u0440\u0443\u0437\u043B\u043E\u0432dom \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u043E\u043A\u0430 \u0444\u043E\u0440\u043C\u0430\u0442\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442xs \u0445\u0435\u0448\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0446\u0432\u0435\u0442 \u0447\u0442\u0435\u043D\u0438\u0435fastinfoset \u0447\u0442\u0435\u043D\u0438\u0435html \u0447\u0442\u0435\u043D\u0438\u0435json \u0447\u0442\u0435\u043D\u0438\u0435xml \u0447\u0442\u0435\u043D\u0438\u0435zip\u0444\u0430\u0439\u043B\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0434\u0430\u043D\u043D\u044B\u0445 \u0447\u0442\u0435\u043D\u0438\u0435\u0442\u0435\u043A\u0441\u0442\u0430 \u0447\u0442\u0435\u043D\u0438\u0435\u0443\u0437\u043B\u043E\u0432dom \u0448\u0440\u0438\u0444\u0442 \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430\u043A\u043E\u043C\u043F\u043E\u043D\u043E\u0432\u043A\u0438\u0434\u0430\u043D\u043D\u044B\u0445 ",P="comsafearray \u0434\u0435\u0440\u0435\u0432\u043E\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u043C\u0430\u0441\u0441\u0438\u0432 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0441\u043F\u0438\u0441\u043E\u043A\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0442\u0430\u0431\u043B\u0438\u0446\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0439 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u0430\u044F\u0441\u0442\u0440\u0443\u043A\u0442\u0443\u0440\u0430 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u043E\u0435\u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0444\u0438\u043A\u0441\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0439\u043C\u0430\u0441\u0441\u0438\u0432 ",W=Y+P,n="null \u0438\u0441\u0442\u0438\u043D\u0430 \u043B\u043E\u0436\u044C \u043D\u0435\u043E\u043F\u0440\u0435\u0434\u0435\u043B\u0435\u043D\u043E",m=s.inherit(s.NUMBER_MODE),_={className:"string",begin:'"|\\|',end:'"|$',contains:[{begin:'""'}]},o={begin:"'",end:"'",excludeBegin:!0,excludeEnd:!0,contains:[{className:"number",begin:"\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}"}]},t=s.inherit(s.C_LINE_COMMENT_MODE),K={className:"meta",begin:"#|&",end:"$",keywords:{$pattern:e,"meta-keyword":a+l},contains:[t]},Z={className:"symbol",begin:"~",end:";|:",excludeEnd:!0},F={className:"function",variants:[{begin:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430|\u0444\u0443\u043D\u043A\u0446\u0438\u044F",end:"\\)",keywords:"\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u0430 \u0444\u0443\u043D\u043A\u0446\u0438\u044F"},{begin:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B|\u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438",keywords:"\u043A\u043E\u043D\u0435\u0446\u043F\u0440\u043E\u0446\u0435\u0434\u0443\u0440\u044B \u043A\u043E\u043D\u0435\u0446\u0444\u0443\u043D\u043A\u0446\u0438\u0438"}],contains:[{begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"params",begin:e,end:",",excludeEnd:!0,endsWithParent:!0,keywords:{$pattern:e,keyword:"\u0437\u043D\u0430\u0447",literal:n},contains:[m,_,o]},t]},s.inherit(s.TITLE_MODE,{begin:e})]};return{name:"1C:Enterprise",case_insensitive:!0,keywords:{$pattern:e,keyword:a,built_in:b,class:q,type:W,literal:n},contains:[K,F,t,Z,m,_,o]}}r.exports=H});export default J(); diff --git a/build/_shared/abap-WHQWDCZ7.js b/build/_shared/abap-WHQWDCZ7.js new file mode 100644 index 00000000..6f187fab --- /dev/null +++ b/build/_shared/abap-WHQWDCZ7.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-WABN7ZBP.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/abnf-4U5BBTX3.js b/build/_shared/abnf-4U5BBTX3.js new file mode 100644 index 00000000..4b58d20b --- /dev/null +++ b/build/_shared/abnf-4U5BBTX3.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-ONGMPSVC.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/abnf-C7FZREB7.js b/build/_shared/abnf-C7FZREB7.js new file mode 100644 index 00000000..1424b227 --- /dev/null +++ b/build/_shared/abnf-C7FZREB7.js @@ -0,0 +1 @@ +import{c as m}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var A=m((M,a)=>{function u(e){return e?typeof e=="string"?e:e.source:null}function d(...e){return e.map(o=>u(o)).join("")}function b(e){let n={ruleDeclaration:/^[a-zA-Z][a-zA-Z0-9-]*/,unexpectedChars:/[!@#$^&',?+~`|:]/},o=["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],t=e.COMMENT(/;/,/$/),s={className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},c={className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},i={className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},r={className:"symbol",begin:/%[si]/},l={className:"attribute",begin:d(n.ruleDeclaration,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:n.unexpectedChars,keywords:o,contains:[l,t,s,c,i,r,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}a.exports=b});export default A(); diff --git a/build/_shared/accesslog-24665KT7.js b/build/_shared/accesslog-24665KT7.js new file mode 100644 index 00000000..83390875 --- /dev/null +++ b/build/_shared/accesslog-24665KT7.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=s((g,i)=>{function l(e){return e?typeof e=="string"?e:e.source:null}function c(...e){return e.map(a=>l(a)).join("")}function r(...e){return"("+e.map(a=>l(a)).join("|")+")"}function t(e){let n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:c(/"/,r(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}i.exports=t});export default o(); diff --git a/build/_shared/actionscript-LM2TYF6M.js b/build/_shared/actionscript-LM2TYF6M.js new file mode 100644 index 00000000..c732afac --- /dev/null +++ b/build/_shared/actionscript-LM2TYF6M.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-W7TQAHK7.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/actionscript-XWY753HR.js b/build/_shared/actionscript-XWY753HR.js new file mode 100644 index 00000000..5ad8f4bd --- /dev/null +++ b/build/_shared/actionscript-XWY753HR.js @@ -0,0 +1 @@ +import{c}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var _=c((d,a)=>{function s(e){return e?typeof e=="string"?e:e.source:null}function r(...e){return e.map(n=>s(n)).join("")}function o(e){let t=/[a-zA-Z_$][a-zA-Z0-9_$]*/,n=/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/,i={className:"rest_arg",begin:/[.]{3}/,end:t,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"package",end:/\{/,contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i]},{begin:r(/:\s*/,n)}]},e.METHOD_GUARD],illegal:/#/}}a.exports=o});export default _(); diff --git a/build/_shared/ada-AJ2YWWHW.js b/build/_shared/ada-AJ2YWWHW.js new file mode 100644 index 00000000..22ab2eba --- /dev/null +++ b/build/_shared/ada-AJ2YWWHW.js @@ -0,0 +1 @@ +import{c as u}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var b=u((p,o)=>{function g(c){let n="\\d(_|\\d)*",s="[eE][-+]?"+n,d=n+"(\\."+n+")?("+s+")?",t="\\w+",l="\\b("+(n+"#"+t+"(\\."+t+")?#("+s+")?")+"|"+d+")",r="[A-Za-z](_?[A-Za-z0-9.])*",e=`[]\\{\\}%#'"`,a=c.COMMENT("--","$"),i={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:e,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:r,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[a,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:l,relevance:0},{className:"symbol",begin:"'"+r},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:e},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[a,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:e},i,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:e}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:e},i]}}o.exports=g});export default b(); diff --git a/build/_shared/ada-GLDAP67B.js b/build/_shared/ada-GLDAP67B.js new file mode 100644 index 00000000..8f5ecf62 --- /dev/null +++ b/build/_shared/ada-GLDAP67B.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-KY2YZF4X.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/agda-7W4UJEPA.js b/build/_shared/agda-7W4UJEPA.js new file mode 100644 index 00000000..5b30b6d9 --- /dev/null +++ b/build/_shared/agda-7W4UJEPA.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-NC6A5YVW.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/al-GIFXZXG4.js b/build/_shared/al-GIFXZXG4.js new file mode 100644 index 00000000..3b3e62ce --- /dev/null +++ b/build/_shared/al-GIFXZXG4.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-YVYPYS6Q.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/angelscript-X3F5DTJS.js b/build/_shared/angelscript-X3F5DTJS.js new file mode 100644 index 00000000..8c91f308 --- /dev/null +++ b/build/_shared/angelscript-X3F5DTJS.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var c=t((r,s)=>{function l(e){var n={className:"built_in",begin:"\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword",begin:"<",end:">",contains:[n,a]};return n.contains=[i],a.contains=[i],{name:"AngelScript",aliases:["asc"],keywords:"for in|0 break continue while do|0 return if else case switch namespace is cast or and xor not get|0 in inout|10 out override set|0 private public const default|0 final shared external mixin|10 enum typedef funcdef this super import from interface abstract|0 try catch protected explicit property",illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},n,a,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}s.exports=l});export default c(); diff --git a/build/_shared/antlr4-ANMXYIJ5.js b/build/_shared/antlr4-ANMXYIJ5.js new file mode 100644 index 00000000..705ef6dc --- /dev/null +++ b/build/_shared/antlr4-ANMXYIJ5.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-PL7JLSOT.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/apache-Q7NGZMNH.js b/build/_shared/apache-Q7NGZMNH.js new file mode 100644 index 00000000..ef8f3876 --- /dev/null +++ b/build/_shared/apache-Q7NGZMNH.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var c=t((l,a)=>{function i(e){let s={className:"number",begin:/[$%]\d+/},r={className:"number",begin:/\d+/},n={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/},o={className:"number",begin:/:\d{1,5}/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[n,o,e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",s]},n,r,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}a.exports=i});export default c(); diff --git a/build/_shared/apacheconf-W5B3C2WN.js b/build/_shared/apacheconf-W5B3C2WN.js new file mode 100644 index 00000000..9f60ec4c --- /dev/null +++ b/build/_shared/apacheconf-W5B3C2WN.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-NRBJS6YN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/apex-KVVUBTG4.js b/build/_shared/apex-KVVUBTG4.js new file mode 100644 index 00000000..094d5581 --- /dev/null +++ b/build/_shared/apex-KVVUBTG4.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-YCIV3G6X.js";import"/numpy-tutorials/build/_shared/chunk-GALEQFJV.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/apl-JDSRQHW5.js b/build/_shared/apl-JDSRQHW5.js new file mode 100644 index 00000000..88dd1dd3 --- /dev/null +++ b/build/_shared/apl-JDSRQHW5.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-4RJFF6WU.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/apl-ZZO6JXPL.js b/build/_shared/apl-ZZO6JXPL.js new file mode 100644 index 00000000..cbcad21a --- /dev/null +++ b/build/_shared/apl-ZZO6JXPL.js @@ -0,0 +1 @@ +import{b as l}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var t,a,i,u,o,s,f,p,c=l(()=>{t={"+":["conjugate","add"],"\u2212":["negate","subtract"],"\xD7":["signOf","multiply"],"\xF7":["reciprocal","divide"],"\u2308":["ceiling","greaterOf"],"\u230A":["floor","lesserOf"],"\u2223":["absolute","residue"],"\u2373":["indexGenerate","indexOf"],"?":["roll","deal"],"\u22C6":["exponentiate","toThePowerOf"],"\u235F":["naturalLog","logToTheBase"],"\u25CB":["piTimes","circularFuncs"],"!":["factorial","binomial"],"\u2339":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"\u2264":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"\u2265":[null,"greaterThanOrEqual"],"\u2260":[null,"notEqual"],"\u2261":["depth","match"],"\u2262":[null,"notMatch"],"\u2208":["enlist","membership"],"\u2377":[null,"find"],"\u222A":["unique","union"],"\u2229":[null,"intersection"],"\u223C":["not","without"],"\u2228":[null,"or"],"\u2227":[null,"and"],"\u2371":[null,"nor"],"\u2372":[null,"nand"],"\u2374":["shapeOf","reshape"],",":["ravel","catenate"],"\u236A":[null,"firstAxisCatenate"],"\u233D":["reverse","rotate"],"\u2296":["axis1Reverse","axis1Rotate"],"\u2349":["transpose",null],"\u2191":["first","take"],"\u2193":[null,"drop"],"\u2282":["enclose","partitionWithAxis"],"\u2283":["diclose","pick"],"\u2337":[null,"index"],"\u234B":["gradeUp",null],"\u2352":["gradeDown",null],"\u22A4":["encode",null],"\u22A5":["decode",null],"\u2355":["format","formatByExample"],"\u234E":["execute",null],"\u22A3":["stop","left"],"\u22A2":["pass","right"]},a=/[\.\/⌿⍀¨⍣]/,i=/⍬/,u=/[\+−×÷⌈⌊∣⍳\?⋆⍟○!⌹<≤=>≥≠≡≢∈⍷∪∩∼∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⌷⍋⍒⊤⊥⍕⍎⊣⊢]/,o=/←/,s=/[⍝#].*$/,f=function(r){var n;return n=!1,function(e){return n=e,e===r?n==="\\":!0}},p={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(r,n){var e;return r.eatSpace()?null:(e=r.next(),e==='"'||e==="'"?(r.eatWhile(f(e)),r.next(),n.prev=!0,"string"):/[\[{\(]/.test(e)?(n.prev=!1,null):/[\]}\)]/.test(e)?(n.prev=!0,null):i.test(e)?(n.prev=!1,"atom"):/[¯\d]/.test(e)?(n.func?(n.func=!1,n.prev=!1):n.prev=!0,r.eatWhile(/[\w\.]/),"number"):a.test(e)||o.test(e)?"operator":u.test(e)?(n.func=!0,n.prev=!1,t[e]?"variableName.function.standard":"variableName.function"):s.test(e)?(r.skipToEnd(),"comment"):e==="\u2218"&&r.peek()==="."?(r.next(),"variableName.function"):(r.eatWhile(/[\w\$_]/),n.prev=!0,"keyword"))}}});c();export{p as apl}; diff --git a/build/_shared/applescript-75HOSXMS.js b/build/_shared/applescript-75HOSXMS.js new file mode 100644 index 00000000..7babbaff --- /dev/null +++ b/build/_shared/applescript-75HOSXMS.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-MKSO5CZN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/applescript-PWRRJBMF.js b/build/_shared/applescript-PWRRJBMF.js new file mode 100644 index 00000000..c33a609d --- /dev/null +++ b/build/_shared/applescript-PWRRJBMF.js @@ -0,0 +1 @@ +import{c as f}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var p=f((b,s)=>{function a(e){return e?typeof e=="string"?e:e.source:null}function i(...e){return e.map(t=>a(t)).join("")}function r(...e){return"("+e.map(t=>a(t)).join("|")+")"}function m(e){let n=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),t={className:"params",begin:/\(/,end:/\)/,contains:["self",e.C_NUMBER_MODE,n]},o=e.COMMENT(/--/,/$/),l=e.COMMENT(/\(\*/,/\*\)/,{contains:["self",o]}),c=[o,l,e.HASH_COMMENT_MODE],u=[/apart from/,/aside from/,/instead of/,/out of/,/greater than/,/isn't|(doesn't|does not) (equal|come before|come after|contain)/,/(greater|less) than( or equal)?/,/(starts?|ends|begins?) with/,/contained by/,/comes (before|after)/,/a (ref|reference)/,/POSIX (file|path)/,/(date|time) string/,/quoted form/],d=[/clipboard info/,/the clipboard/,/info for/,/list (disks|folder)/,/mount volume/,/path to/,/(close|open for) access/,/(get|set) eof/,/current date/,/do shell script/,/get volume settings/,/random number/,/set volume/,/system attribute/,/system info/,/time to GMT/,/(load|run|store) script/,/scripting components/,/ASCII (character|number)/,/localized string/,/choose (application|color|file|file name|folder|from list|remote application|URL)/,/display (alert|dialog)/];return{name:"AppleScript",aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",literal:"AppleScript false linefeed return pi quote result space tab true",built_in:"alias application boolean class constant date file integer list number real record string text activate beep count delay launch log offset read round run say summarize write character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[n,e.C_NUMBER_MODE,{className:"built_in",begin:i(/\b/,r(...d),/\b/)},{className:"built_in",begin:/^\s*return\b/},{className:"literal",begin:/\b(text item delimiters|current application|missing value)\b/},{className:"keyword",begin:i(/\b/,r(...u),/\b/)},{beginKeywords:"on",illegal:/[${=;\n]/,contains:[e.UNDERSCORE_TITLE_MODE,t]},...c],illegal:/\/\/|->|=>|\[\[/}}s.exports=m});export default p(); diff --git a/build/_shared/aql-SID2KBCS.js b/build/_shared/aql-SID2KBCS.js new file mode 100644 index 00000000..e852e794 --- /dev/null +++ b/build/_shared/aql-SID2KBCS.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-NXW3QSEV.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/arcade-75OOVXVV.js b/build/_shared/arcade-75OOVXVV.js new file mode 100644 index 00000000..ec091046 --- /dev/null +++ b/build/_shared/arcade-75OOVXVV.js @@ -0,0 +1 @@ +import{c as u}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var d=u((E,s)=>{function l(e){let n="[A-Za-z_][0-9A-Za-z_]*",t={keyword:"if for while var new function do return void else break",literal:"BackSlash DoubleQuote false ForwardSlash Infinity NaN NewLine null PI SingleQuote Tab TextFormatting true undefined",built_in:"Abs Acos Angle Attachments Area AreaGeodetic Asin Atan Atan2 Average Bearing Boolean Buffer BufferGeodetic Ceil Centroid Clip Console Constrain Contains Cos Count Crosses Cut Date DateAdd DateDiff Day Decode DefaultValue Dictionary Difference Disjoint Distance DistanceGeodetic Distinct DomainCode DomainName Equals Exp Extent Feature FeatureSet FeatureSetByAssociation FeatureSetById FeatureSetByPortalItem FeatureSetByRelationshipName FeatureSetByTitle FeatureSetByUrl Filter First Floor Geometry GroupBy Guid HasKey Hour IIf IndexOf Intersection Intersects IsEmpty IsNan IsSelfIntersecting Length LengthGeodetic Log Max Mean Millisecond Min Minute Month MultiPartToSinglePart Multipoint NextSequenceValue Now Number OrderBy Overlaps Point Polygon Polyline Portal Pow Random Relate Reverse RingIsClockWise Round Second SetGeometry Sin Sort Sqrt Stdev Sum SymmetricDifference Tan Text Timestamp Today ToLocal Top Touches ToUTC TrackCurrentTime TrackGeometryWindow TrackIndex TrackStartTime TrackWindow TypeOf Union UrlEncode Variance Weekday When Within Year "},c={className:"symbol",begin:"\\$[datastore|feature|layer|map|measure|sourcefeature|sourcelayer|targetfeature|targetlayer|value|view]+"},r={className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},a={className:"subst",begin:"\\$\\{",end:"\\}",keywords:t,contains:[]},i={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,a]};a.contains=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,r,e.REGEXP_MODE];let o=a.contains.concat([e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]);return{name:"ArcGIS Arcade",keywords:t,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,r,{begin:/[{,]\s*/,relevance:0,contains:[{begin:n+"\\s*:",returnBegin:!0,relevance:0,contains:[{className:"attr",begin:n,relevance:0}]}]},{begin:"("+e.RE_STARTERS_RE+"|\\b(return)\\b)\\s*",keywords:"return",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{className:"function",begin:"(\\(.*?\\)|"+n+")\\s*=>",returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n},{begin:/\(\s*\)/},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:o}]}]}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:n}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:o}],illegal:/\[|%/},{begin:/\$[(.]/}],illegal:/#(?!!)/}}s.exports=l});export default d(); diff --git a/build/_shared/architecture-U656AL7Q-J6BQICAQ.js b/build/_shared/architecture-U656AL7Q-J6BQICAQ.js new file mode 100644 index 00000000..286e94cd --- /dev/null +++ b/build/_shared/architecture-U656AL7Q-J6BQICAQ.js @@ -0,0 +1 @@ +import{a as e,b as r}from"/numpy-tutorials/build/_shared/chunk-B7PDIXGE.js";import"/numpy-tutorials/build/_shared/chunk-ILONG3JM.js";import"/numpy-tutorials/build/_shared/chunk-JMV5HLZN.js";import"/numpy-tutorials/build/_shared/chunk-FZ2S7OYD.js";import"/numpy-tutorials/build/_shared/chunk-JEM6JXYA.js";import"/numpy-tutorials/build/_shared/chunk-34XIY2DH.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export{e as ArchitectureModule,r as createArchitectureServices}; diff --git a/build/_shared/architectureDiagram-VXUJARFQ-RNNRNJKX.js b/build/_shared/architectureDiagram-VXUJARFQ-RNNRNJKX.js new file mode 100644 index 00000000..efc262c8 --- /dev/null +++ b/build/_shared/architectureDiagram-VXUJARFQ-RNNRNJKX.js @@ -0,0 +1,36 @@ +import{a as ze}from"/numpy-tutorials/build/_shared/chunk-PSIFSBYU.js";import{a as qe}from"/numpy-tutorials/build/_shared/chunk-2RRX75WA.js";import{a as Qe}from"/numpy-tutorials/build/_shared/chunk-GS7QPNKU.js";import"/numpy-tutorials/build/_shared/chunk-D4I4FMU3.js";import"/numpy-tutorials/build/_shared/chunk-LHWWMMIN.js";import"/numpy-tutorials/build/_shared/chunk-PDV5BDST.js";import"/numpy-tutorials/build/_shared/chunk-B7PDIXGE.js";import"/numpy-tutorials/build/_shared/chunk-536FPRQA.js";import"/numpy-tutorials/build/_shared/chunk-MB4EJF2W.js";import"/numpy-tutorials/build/_shared/chunk-5GONE7L7.js";import"/numpy-tutorials/build/_shared/chunk-ILONG3JM.js";import"/numpy-tutorials/build/_shared/chunk-JMV5HLZN.js";import{a as Ee}from"/numpy-tutorials/build/_shared/chunk-PMWPHBDZ.js";import{b as Ze,c as ke,d as he,g as le}from"/numpy-tutorials/build/_shared/chunk-IFGNTSJO.js";import{l as Be,p as $e}from"/numpy-tutorials/build/_shared/chunk-H5UGLSR3.js";import"/numpy-tutorials/build/_shared/chunk-ILX2UBHN.js";import{D as Fe,M as be,P as Pe,Q as Ge,R as Ue,S as Ye,T as Xe,U as He,V as We,W as se,q as Re,y as Se}from"/numpy-tutorials/build/_shared/chunk-JU57NILB.js";import{b as ct,d as ye,j as Ve}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";import"/numpy-tutorials/build/_shared/chunk-FZ2S7OYD.js";import"/numpy-tutorials/build/_shared/chunk-JEM6JXYA.js";import"/numpy-tutorials/build/_shared/chunk-34XIY2DH.js";import"/numpy-tutorials/build/_shared/chunk-KQM5FBHR.js";import{c as pe,f as ur}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var Te=pe((re,me)=>{(function(w,N){typeof re=="object"&&typeof me=="object"?me.exports=N():typeof define=="function"&&define.amd?define([],N):typeof re=="object"?re.layoutBase=N():w.layoutBase=N()})(re,function(){return function(m){var w={};function N(u){if(w[u])return w[u].exports;var o=w[u]={i:u,l:!1,exports:{}};return m[u].call(o.exports,o,o.exports,N),o.l=!0,o.exports}return N.m=m,N.c=w,N.i=function(u){return u},N.d=function(u,o,n){N.o(u,o)||Object.defineProperty(u,o,{configurable:!1,enumerable:!0,get:n})},N.n=function(u){var o=u&&u.__esModule?function(){return u.default}:function(){return u};return N.d(o,"a",o),o},N.o=function(u,o){return Object.prototype.hasOwnProperty.call(u,o)},N.p="",N(N.s=28)}([function(m,w,N){"use strict";function u(){}u.QUALITY=1,u.DEFAULT_CREATE_BENDS_AS_NEEDED=!1,u.DEFAULT_INCREMENTAL=!1,u.DEFAULT_ANIMATION_ON_LAYOUT=!0,u.DEFAULT_ANIMATION_DURING_LAYOUT=!1,u.DEFAULT_ANIMATION_PERIOD=50,u.DEFAULT_UNIFORM_LEAF_NODE_SIZES=!1,u.DEFAULT_GRAPH_MARGIN=15,u.NODE_DIMENSIONS_INCLUDE_LABELS=!1,u.SIMPLE_NODE_SIZE=40,u.SIMPLE_NODE_HALF_SIZE=u.SIMPLE_NODE_SIZE/2,u.EMPTY_COMPOUND_NODE_SIZE=40,u.MIN_EDGE_LENGTH=1,u.WORLD_BOUNDARY=1e6,u.INITIAL_WORLD_BOUNDARY=u.WORLD_BOUNDARY/1e3,u.WORLD_CENTER_X=1200,u.WORLD_CENTER_Y=900,m.exports=u},function(m,w,N){"use strict";var u=N(2),o=N(8),n=N(9);function e(c,t,g){u.call(this,g),this.isOverlapingSourceAndTarget=!1,this.vGraphObject=g,this.bendpoints=[],this.source=c,this.target=t}e.prototype=Object.create(u.prototype);for(var a in u)e[a]=u[a];e.prototype.getSource=function(){return this.source},e.prototype.getTarget=function(){return this.target},e.prototype.isInterGraph=function(){return this.isInterGraph},e.prototype.getLength=function(){return this.length},e.prototype.isOverlapingSourceAndTarget=function(){return this.isOverlapingSourceAndTarget},e.prototype.getBendpoints=function(){return this.bendpoints},e.prototype.getLca=function(){return this.lca},e.prototype.getSourceInLca=function(){return this.sourceInLca},e.prototype.getTargetInLca=function(){return this.targetInLca},e.prototype.getOtherEnd=function(c){if(this.source===c)return this.target;if(this.target===c)return this.source;throw"Node is not incident with this edge"},e.prototype.getOtherEndInGraph=function(c,t){for(var g=this.getOtherEnd(c),i=t.getGraphManager().getRoot();;){if(g.getOwner()==t)return g;if(g.getOwner()==i)break;g=g.getOwner().getParent()}return null},e.prototype.updateLength=function(){var c=new Array(4);this.isOverlapingSourceAndTarget=o.getIntersection(this.target.getRect(),this.source.getRect(),c),this.isOverlapingSourceAndTarget||(this.lengthX=c[0]-c[2],this.lengthY=c[1]-c[3],Math.abs(this.lengthX)<1&&(this.lengthX=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY))},e.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=n.sign(this.lengthX)),Math.abs(this.lengthY)<1&&(this.lengthY=n.sign(this.lengthY)),this.length=Math.sqrt(this.lengthX*this.lengthX+this.lengthY*this.lengthY)},m.exports=e},function(m,w,N){"use strict";function u(o){this.vGraphObject=o}m.exports=u},function(m,w,N){"use strict";var u=N(2),o=N(10),n=N(13),e=N(0),a=N(16),c=N(5);function t(i,r,h,f){h==null&&f==null&&(f=r),u.call(this,f),i.graphManager!=null&&(i=i.graphManager),this.estimatedSize=o.MIN_VALUE,this.inclusionTreeDepth=o.MAX_VALUE,this.vGraphObject=f,this.edges=[],this.graphManager=i,h!=null&&r!=null?this.rect=new n(r.x,r.y,h.width,h.height):this.rect=new n}t.prototype=Object.create(u.prototype);for(var g in u)t[g]=u[g];t.prototype.getEdges=function(){return this.edges},t.prototype.getChild=function(){return this.child},t.prototype.getOwner=function(){return this.owner},t.prototype.getWidth=function(){return this.rect.width},t.prototype.setWidth=function(i){this.rect.width=i},t.prototype.getHeight=function(){return this.rect.height},t.prototype.setHeight=function(i){this.rect.height=i},t.prototype.getCenterX=function(){return this.rect.x+this.rect.width/2},t.prototype.getCenterY=function(){return this.rect.y+this.rect.height/2},t.prototype.getCenter=function(){return new c(this.rect.x+this.rect.width/2,this.rect.y+this.rect.height/2)},t.prototype.getLocation=function(){return new c(this.rect.x,this.rect.y)},t.prototype.getRect=function(){return this.rect},t.prototype.getDiagonal=function(){return Math.sqrt(this.rect.width*this.rect.width+this.rect.height*this.rect.height)},t.prototype.getHalfTheDiagonal=function(){return Math.sqrt(this.rect.height*this.rect.height+this.rect.width*this.rect.width)/2},t.prototype.setRect=function(i,r){this.rect.x=i.x,this.rect.y=i.y,this.rect.width=r.width,this.rect.height=r.height},t.prototype.setCenter=function(i,r){this.rect.x=i-this.rect.width/2,this.rect.y=r-this.rect.height/2},t.prototype.setLocation=function(i,r){this.rect.x=i,this.rect.y=r},t.prototype.moveBy=function(i,r){this.rect.x+=i,this.rect.y+=r},t.prototype.getEdgeListToNode=function(i){var r=[],h,f=this;return f.edges.forEach(function(l){if(l.target==i){if(l.source!=f)throw"Incorrect edge source!";r.push(l)}}),r},t.prototype.getEdgesBetween=function(i){var r=[],h,f=this;return f.edges.forEach(function(l){if(!(l.source==f||l.target==f))throw"Incorrect edge source and/or target";(l.target==i||l.source==i)&&r.push(l)}),r},t.prototype.getNeighborsList=function(){var i=new Set,r=this;return r.edges.forEach(function(h){if(h.source==r)i.add(h.target);else{if(h.target!=r)throw"Incorrect incidency!";i.add(h.source)}}),i},t.prototype.withChildren=function(){var i=new Set,r,h;if(i.add(this),this.child!=null)for(var f=this.child.getNodes(),l=0;lr?(this.rect.x-=(this.labelWidth-r)/2,this.setWidth(this.labelWidth)):this.labelPosHorizontal=="right"&&this.setWidth(r+this.labelWidth)),this.labelHeight&&(this.labelPosVertical=="top"?(this.rect.y-=this.labelHeight,this.setHeight(h+this.labelHeight)):this.labelPosVertical=="center"&&this.labelHeight>h?(this.rect.y-=(this.labelHeight-h)/2,this.setHeight(this.labelHeight)):this.labelPosVertical=="bottom"&&this.setHeight(h+this.labelHeight))}}},t.prototype.getInclusionTreeDepth=function(){if(this.inclusionTreeDepth==o.MAX_VALUE)throw"assert failed";return this.inclusionTreeDepth},t.prototype.transform=function(i){var r=this.rect.x;r>e.WORLD_BOUNDARY?r=e.WORLD_BOUNDARY:r<-e.WORLD_BOUNDARY&&(r=-e.WORLD_BOUNDARY);var h=this.rect.y;h>e.WORLD_BOUNDARY?h=e.WORLD_BOUNDARY:h<-e.WORLD_BOUNDARY&&(h=-e.WORLD_BOUNDARY);var f=new c(r,h),l=i.inverseTransformPoint(f);this.setLocation(l.x,l.y)},t.prototype.getLeft=function(){return this.rect.x},t.prototype.getRight=function(){return this.rect.x+this.rect.width},t.prototype.getTop=function(){return this.rect.y},t.prototype.getBottom=function(){return this.rect.y+this.rect.height},t.prototype.getParent=function(){return this.owner==null?null:this.owner.getParent()},m.exports=t},function(m,w,N){"use strict";var u=N(0);function o(){}for(var n in u)o[n]=u[n];o.MAX_ITERATIONS=2500,o.DEFAULT_EDGE_LENGTH=50,o.DEFAULT_SPRING_STRENGTH=.45,o.DEFAULT_REPULSION_STRENGTH=4500,o.DEFAULT_GRAVITY_STRENGTH=.4,o.DEFAULT_COMPOUND_GRAVITY_STRENGTH=1,o.DEFAULT_GRAVITY_RANGE_FACTOR=3.8,o.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=1.5,o.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION=!0,o.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION=!0,o.DEFAULT_COOLING_FACTOR_INCREMENTAL=.3,o.COOLING_ADAPTATION_FACTOR=.33,o.ADAPTATION_LOWER_NODE_LIMIT=1e3,o.ADAPTATION_UPPER_NODE_LIMIT=5e3,o.MAX_NODE_DISPLACEMENT_INCREMENTAL=100,o.MAX_NODE_DISPLACEMENT=o.MAX_NODE_DISPLACEMENT_INCREMENTAL*3,o.MIN_REPULSION_DIST=o.DEFAULT_EDGE_LENGTH/10,o.CONVERGENCE_CHECK_PERIOD=100,o.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=.1,o.MIN_EDGE_LENGTH=1,o.GRID_CALCULATION_CHECK_PERIOD=10,m.exports=o},function(m,w,N){"use strict";function u(o,n){o==null&&n==null?(this.x=0,this.y=0):(this.x=o,this.y=n)}u.prototype.getX=function(){return this.x},u.prototype.getY=function(){return this.y},u.prototype.setX=function(o){this.x=o},u.prototype.setY=function(o){this.y=o},u.prototype.getDifference=function(o){return new DimensionD(this.x-o.x,this.y-o.y)},u.prototype.getCopy=function(){return new u(this.x,this.y)},u.prototype.translate=function(o){return this.x+=o.width,this.y+=o.height,this},m.exports=u},function(m,w,N){"use strict";var u=N(2),o=N(10),n=N(0),e=N(7),a=N(3),c=N(1),t=N(13),g=N(12),i=N(11);function r(f,l,L){u.call(this,L),this.estimatedSize=o.MIN_VALUE,this.margin=n.DEFAULT_GRAPH_MARGIN,this.edges=[],this.nodes=[],this.isConnected=!1,this.parent=f,l!=null&&l instanceof e?this.graphManager=l:l!=null&&l instanceof Layout&&(this.graphManager=l.graphManager)}r.prototype=Object.create(u.prototype);for(var h in u)r[h]=u[h];r.prototype.getNodes=function(){return this.nodes},r.prototype.getEdges=function(){return this.edges},r.prototype.getGraphManager=function(){return this.graphManager},r.prototype.getParent=function(){return this.parent},r.prototype.getLeft=function(){return this.left},r.prototype.getRight=function(){return this.right},r.prototype.getTop=function(){return this.top},r.prototype.getBottom=function(){return this.bottom},r.prototype.isConnected=function(){return this.isConnected},r.prototype.add=function(f,l,L){if(l==null&&L==null){var y=f;if(this.graphManager==null)throw"Graph has no graph mgr!";if(this.getNodes().indexOf(y)>-1)throw"Node already in graph!";return y.owner=this,this.getNodes().push(y),y}else{var p=f;if(!(this.getNodes().indexOf(l)>-1&&this.getNodes().indexOf(L)>-1))throw"Source or target not in graph!";if(!(l.owner==L.owner&&l.owner==this))throw"Both owners must be this graph!";return l.owner!=L.owner?null:(p.source=l,p.target=L,p.isInterGraph=!1,this.getEdges().push(p),l.edges.push(p),L!=l&&L.edges.push(p),p)}},r.prototype.remove=function(f){var l=f;if(f instanceof a){if(l==null)throw"Node is null!";if(!(l.owner!=null&&l.owner==this))throw"Owner graph is invalid!";if(this.graphManager==null)throw"Owner graph manager is invalid!";for(var L=l.edges.slice(),y,p=L.length,C=0;C-1&&S>-1))throw"Source and/or target doesn't know this edge!";y.source.edges.splice(A,1),y.target!=y.source&&y.target.edges.splice(S,1);var R=y.source.owner.getEdges().indexOf(y);if(R==-1)throw"Not in owner's edge list!";y.source.owner.getEdges().splice(R,1)}},r.prototype.updateLeftTop=function(){for(var f=o.MAX_VALUE,l=o.MAX_VALUE,L,y,p,C=this.getNodes(),R=C.length,A=0;AL&&(f=L),l>y&&(l=y)}return f==o.MAX_VALUE?null:(C[0].getParent().paddingLeft!=null?p=C[0].getParent().paddingLeft:p=this.margin,this.left=l-p,this.top=f-p,new g(this.left,this.top))},r.prototype.updateBounds=function(f){for(var l=o.MAX_VALUE,L=-o.MAX_VALUE,y=o.MAX_VALUE,p=-o.MAX_VALUE,C,R,A,S,B,Y=this.nodes,tt=Y.length,x=0;xC&&(l=C),LA&&(y=A),pC&&(l=C),LA&&(y=A),p=this.nodes.length){var tt=0;L.forEach(function(x){x.owner==f&&tt++}),tt==this.nodes.length&&(this.isConnected=!0)}},m.exports=r},function(m,w,N){"use strict";var u,o=N(1);function n(e){u=N(6),this.layout=e,this.graphs=[],this.edges=[]}n.prototype.addRoot=function(){var e=this.layout.newGraph(),a=this.layout.newNode(null),c=this.add(e,a);return this.setRootGraph(c),this.rootGraph},n.prototype.add=function(e,a,c,t,g){if(c==null&&t==null&&g==null){if(e==null)throw"Graph is null!";if(a==null)throw"Parent node is null!";if(this.graphs.indexOf(e)>-1)throw"Graph already in this graph mgr!";if(this.graphs.push(e),e.parent!=null)throw"Already has a parent!";if(a.child!=null)throw"Already has a child!";return e.parent=a,a.child=e,e}else{g=c,t=a,c=e;var i=t.getOwner(),r=g.getOwner();if(!(i!=null&&i.getGraphManager()==this))throw"Source not in this graph mgr!";if(!(r!=null&&r.getGraphManager()==this))throw"Target not in this graph mgr!";if(i==r)return c.isInterGraph=!1,i.add(c,t,g);if(c.isInterGraph=!0,c.source=t,c.target=g,this.edges.indexOf(c)>-1)throw"Edge already in inter-graph edge list!";if(this.edges.push(c),!(c.source!=null&&c.target!=null))throw"Edge source and/or target is null!";if(!(c.source.edges.indexOf(c)==-1&&c.target.edges.indexOf(c)==-1))throw"Edge already in source and/or target incidency list!";return c.source.edges.push(c),c.target.edges.push(c),c}},n.prototype.remove=function(e){if(e instanceof u){var a=e;if(a.getGraphManager()!=this)throw"Graph not in this graph mgr";if(!(a==this.rootGraph||a.parent!=null&&a.parent.graphManager==this))throw"Invalid parent node!";var c=[];c=c.concat(a.getEdges());for(var t,g=c.length,i=0;i=e.getRight()?a[0]+=Math.min(e.getX()-n.getX(),n.getRight()-e.getRight()):e.getX()<=n.getX()&&e.getRight()>=n.getRight()&&(a[0]+=Math.min(n.getX()-e.getX(),e.getRight()-n.getRight())),n.getY()<=e.getY()&&n.getBottom()>=e.getBottom()?a[1]+=Math.min(e.getY()-n.getY(),n.getBottom()-e.getBottom()):e.getY()<=n.getY()&&e.getBottom()>=n.getBottom()&&(a[1]+=Math.min(n.getY()-e.getY(),e.getBottom()-n.getBottom()));var g=Math.abs((e.getCenterY()-n.getCenterY())/(e.getCenterX()-n.getCenterX()));e.getCenterY()===n.getCenterY()&&e.getCenterX()===n.getCenterX()&&(g=1);var i=g*a[0],r=a[1]/g;a[0]i)return a[0]=c,a[1]=h,a[2]=g,a[3]=Y,!1;if(tg)return a[0]=r,a[1]=t,a[2]=S,a[3]=i,!1;if(cg?(a[0]=l,a[1]=L,s=!0):(a[0]=f,a[1]=h,s=!0):v===d&&(c>g?(a[0]=r,a[1]=h,s=!0):(a[0]=y,a[1]=L,s=!0)),-T===d?g>c?(a[2]=B,a[3]=Y,E=!0):(a[2]=S,a[3]=A,E=!0):T===d&&(g>c?(a[2]=R,a[3]=A,E=!0):(a[2]=tt,a[3]=Y,E=!0)),s&&E)return!1;if(c>g?t>i?(D=this.getCardinalDirection(v,d,4),O=this.getCardinalDirection(T,d,2)):(D=this.getCardinalDirection(-v,d,3),O=this.getCardinalDirection(-T,d,1)):t>i?(D=this.getCardinalDirection(-v,d,1),O=this.getCardinalDirection(-T,d,3)):(D=this.getCardinalDirection(v,d,2),O=this.getCardinalDirection(T,d,4)),!s)switch(D){case 1:F=h,P=c+-C/d,a[0]=P,a[1]=F;break;case 2:P=y,F=t+p*d,a[0]=P,a[1]=F;break;case 3:F=L,P=c+C/d,a[0]=P,a[1]=F;break;case 4:P=l,F=t+-p*d,a[0]=P,a[1]=F;break}if(!E)switch(O){case 1:Z=A,I=g+-k/d,a[2]=I,a[3]=Z;break;case 2:I=tt,Z=i+x*d,a[2]=I,a[3]=Z;break;case 3:Z=Y,I=g+k/d,a[2]=I,a[3]=Z;break;case 4:I=B,Z=i+-x*d,a[2]=I,a[3]=Z;break}}return!1},o.getCardinalDirection=function(n,e,a){return n>e?a:1+a%4},o.getIntersection=function(n,e,a,c){if(c==null)return this.getIntersection2(n,e,a);var t=n.x,g=n.y,i=e.x,r=e.y,h=a.x,f=a.y,l=c.x,L=c.y,y=void 0,p=void 0,C=void 0,R=void 0,A=void 0,S=void 0,B=void 0,Y=void 0,tt=void 0;return C=r-g,A=t-i,B=i*g-t*r,R=L-f,S=h-l,Y=l*f-h*L,tt=C*S-R*A,tt===0?null:(y=(A*Y-S*B)/tt,p=(R*B-C*Y)/tt,new u(y,p))},o.angleOfVector=function(n,e,a,c){var t=void 0;return n!==a?(t=Math.atan((c-e)/(a-n)),a=0){var L=(-h+Math.sqrt(h*h-4*r*f))/(2*r),y=(-h-Math.sqrt(h*h-4*r*f))/(2*r),p=null;return L>=0&&L<=1?[L]:y>=0&&y<=1?[y]:p}else return null},o.HALF_PI=.5*Math.PI,o.ONE_AND_HALF_PI=1.5*Math.PI,o.TWO_PI=2*Math.PI,o.THREE_PI=3*Math.PI,m.exports=o},function(m,w,N){"use strict";function u(){}u.sign=function(o){return o>0?1:o<0?-1:0},u.floor=function(o){return o<0?Math.ceil(o):Math.floor(o)},u.ceil=function(o){return o<0?Math.floor(o):Math.ceil(o)},m.exports=u},function(m,w,N){"use strict";function u(){}u.MAX_VALUE=2147483647,u.MIN_VALUE=-2147483648,m.exports=u},function(m,w,N){"use strict";var u=function(){function t(g,i){for(var r=0;r"u"?"undefined":u(n);return n==null||e!="object"&&e!="function"},m.exports=o},function(m,w,N){"use strict";function u(h){if(Array.isArray(h)){for(var f=0,l=Array(h.length);f0&&f;){for(C.push(A[0]);C.length>0&&f;){var S=C[0];C.splice(0,1),p.add(S);for(var B=S.getEdges(),y=0;y-1&&A.splice(k,1)}p=new Set,R=new Map}}return h},r.prototype.createDummyNodesForBendpoints=function(h){for(var f=[],l=h.source,L=this.graphManager.calcLowestCommonAncestor(h.source,h.target),y=0;y0){for(var L=this.edgeToDummyNodes.get(l),y=0;y=0&&f.splice(Y,1);var tt=R.getNeighborsList();tt.forEach(function(s){if(l.indexOf(s)<0){var E=L.get(s),v=E-1;v==1&&S.push(s),L.set(s,v)}})}l=l.concat(S),(f.length==1||f.length==2)&&(y=!0,p=f[0])}return p},r.prototype.setGraphManager=function(h){this.graphManager=h},m.exports=r},function(m,w,N){"use strict";function u(){}u.seed=1,u.x=0,u.nextDouble=function(){return u.x=Math.sin(u.seed++)*1e4,u.x-Math.floor(u.x)},m.exports=u},function(m,w,N){"use strict";var u=N(5);function o(n,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}o.prototype.getWorldOrgX=function(){return this.lworldOrgX},o.prototype.setWorldOrgX=function(n){this.lworldOrgX=n},o.prototype.getWorldOrgY=function(){return this.lworldOrgY},o.prototype.setWorldOrgY=function(n){this.lworldOrgY=n},o.prototype.getWorldExtX=function(){return this.lworldExtX},o.prototype.setWorldExtX=function(n){this.lworldExtX=n},o.prototype.getWorldExtY=function(){return this.lworldExtY},o.prototype.setWorldExtY=function(n){this.lworldExtY=n},o.prototype.getDeviceOrgX=function(){return this.ldeviceOrgX},o.prototype.setDeviceOrgX=function(n){this.ldeviceOrgX=n},o.prototype.getDeviceOrgY=function(){return this.ldeviceOrgY},o.prototype.setDeviceOrgY=function(n){this.ldeviceOrgY=n},o.prototype.getDeviceExtX=function(){return this.ldeviceExtX},o.prototype.setDeviceExtX=function(n){this.ldeviceExtX=n},o.prototype.getDeviceExtY=function(){return this.ldeviceExtY},o.prototype.setDeviceExtY=function(n){this.ldeviceExtY=n},o.prototype.transformX=function(n){var e=0,a=this.lworldExtX;return a!=0&&(e=this.ldeviceOrgX+(n-this.lworldOrgX)*this.ldeviceExtX/a),e},o.prototype.transformY=function(n){var e=0,a=this.lworldExtY;return a!=0&&(e=this.ldeviceOrgY+(n-this.lworldOrgY)*this.ldeviceExtY/a),e},o.prototype.inverseTransformX=function(n){var e=0,a=this.ldeviceExtX;return a!=0&&(e=this.lworldOrgX+(n-this.ldeviceOrgX)*this.lworldExtX/a),e},o.prototype.inverseTransformY=function(n){var e=0,a=this.ldeviceExtY;return a!=0&&(e=this.lworldOrgY+(n-this.ldeviceOrgY)*this.lworldExtY/a),e},o.prototype.inverseTransformPoint=function(n){var e=new u(this.inverseTransformX(n.x),this.inverseTransformY(n.y));return e},m.exports=o},function(m,w,N){"use strict";function u(i){if(Array.isArray(i)){for(var r=0,h=Array(i.length);rn.ADAPTATION_LOWER_NODE_LIMIT&&(this.coolingFactor=Math.max(this.coolingFactor*n.COOLING_ADAPTATION_FACTOR,this.coolingFactor-(i-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*this.coolingFactor*(1-n.COOLING_ADAPTATION_FACTOR))),this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT_INCREMENTAL):(i>n.ADAPTATION_LOWER_NODE_LIMIT?this.coolingFactor=Math.max(n.COOLING_ADAPTATION_FACTOR,1-(i-n.ADAPTATION_LOWER_NODE_LIMIT)/(n.ADAPTATION_UPPER_NODE_LIMIT-n.ADAPTATION_LOWER_NODE_LIMIT)*(1-n.COOLING_ADAPTATION_FACTOR)):this.coolingFactor=1,this.initialCoolingFactor=this.coolingFactor,this.maxNodeDisplacement=n.MAX_NODE_DISPLACEMENT),this.maxIterations=Math.max(this.getAllNodes().length*5,this.maxIterations),this.displacementThresholdPerNode=3*n.DEFAULT_EDGE_LENGTH/100,this.totalDisplacementThreshold=this.displacementThresholdPerNode*this.getAllNodes().length,this.repulsionRange=this.calcRepulsionRange()},t.prototype.calcSpringForces=function(){for(var i=this.getAllEdges(),r,h=0;h0&&arguments[0]!==void 0?arguments[0]:!0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,h,f,l,L,y=this.getAllNodes(),p;if(this.useFRGridVariant)for(this.totalIterations%n.GRID_CALCULATION_CHECK_PERIOD==1&&i&&this.updateGrid(),p=new Set,h=0;hC||p>C)&&(i.gravitationForceX=-this.gravityConstant*l,i.gravitationForceY=-this.gravityConstant*L)):(C=r.getEstimatedSize()*this.compoundGravityRangeFactor,(y>C||p>C)&&(i.gravitationForceX=-this.gravityConstant*l*this.compoundGravityConstant,i.gravitationForceY=-this.gravityConstant*L*this.compoundGravityConstant))},t.prototype.isConverged=function(){var i,r=!1;return this.totalIterations>this.maxIterations/3&&(r=Math.abs(this.totalDisplacement-this.oldTotalDisplacement)<2),i=this.totalDisplacement=y.length||C>=y[0].length)){for(var R=0;Rt}}]),a}();m.exports=e},function(m,w,N){"use strict";function u(){}u.svd=function(o){this.U=null,this.V=null,this.s=null,this.m=0,this.n=0,this.m=o.length,this.n=o[0].length;var n=Math.min(this.m,this.n);this.s=function(Dt){for(var Nt=[];Dt-- >0;)Nt.push(0);return Nt}(Math.min(this.m+1,this.n)),this.U=function(Dt){var Nt=function $t(Rt){if(Rt.length==0)return 0;for(var Xt=[],zt=0;zt0;)Nt.push(0);return Nt}(this.n),a=function(Dt){for(var Nt=[];Dt-- >0;)Nt.push(0);return Nt}(this.m),c=!0,t=!0,g=Math.min(this.m-1,this.n),i=Math.max(0,Math.min(this.n-2,this.m)),r=0;r=0;d--)if(this.s[d]!==0){for(var D=d+1;D=0;b--){if(function(Dt,Nt){return Dt&&Nt}(b0;){var Q=void 0,Ut=void 0;for(Q=E-2;Q>=-1&&Q!==-1;Q--)if(Math.abs(e[Q])<=St+Lt*(Math.abs(this.s[Q])+Math.abs(this.s[Q+1]))){e[Q]=0;break}if(Q===E-2)Ut=4;else{var wt=void 0;for(wt=E-1;wt>=Q&&wt!==Q;wt--){var nt=(wt!==E?Math.abs(e[wt]):0)+(wt!==Q+1?Math.abs(e[wt-1]):0);if(Math.abs(this.s[wt])<=St+Lt*nt){this.s[wt]=0;break}}wt===Q?Ut=3:wt===E-1?Ut=1:(Ut=2,Q=wt)}switch(Q++,Ut){case 1:{var et=e[E-2];e[E-2]=0;for(var pt=E-2;pt>=Q;pt--){var Et=u.hypot(this.s[pt],et),Ct=this.s[pt]/Et,mt=et/Et;if(this.s[pt]=Et,pt!==Q&&(et=-mt*e[pt-1],e[pt-1]=Ct*e[pt-1]),t)for(var Tt=0;Tt=this.s[Q+1]);){var lt=this.s[Q];if(this.s[Q]=this.s[Q+1],this.s[Q+1]=lt,t&&QMath.abs(n)?(e=n/o,e=Math.abs(o)*Math.sqrt(1+e*e)):n!=0?(e=o/n,e=Math.abs(n)*Math.sqrt(1+e*e)):e=0,e},m.exports=u},function(m,w,N){"use strict";var u=function(){function e(a,c){for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:-1,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:-1;o(this,e),this.sequence1=a,this.sequence2=c,this.match_score=t,this.mismatch_penalty=g,this.gap_penalty=i,this.iMax=a.length+1,this.jMax=c.length+1,this.grid=new Array(this.iMax);for(var r=0;r=0;a--){var c=this.listeners[a];c.event===n&&c.callback===e&&this.listeners.splice(a,1)}},o.emit=function(n,e){for(var a=0;a{(function(w,N){typeof ie=="object"&&typeof Ne=="object"?Ne.exports=N(Te()):typeof define=="function"&&define.amd?define(["layout-base"],N):typeof ie=="object"?ie.coseBase=N(Te()):w.coseBase=N(w.layoutBase)})(ie,function(m){return(()=>{"use strict";var w={45:(n,e,a)=>{var c={};c.layoutBase=a(551),c.CoSEConstants=a(806),c.CoSEEdge=a(767),c.CoSEGraph=a(880),c.CoSEGraphManager=a(578),c.CoSELayout=a(765),c.CoSENode=a(991),c.ConstraintHandler=a(902),n.exports=c},806:(n,e,a)=>{var c=a(551).FDLayoutConstants;function t(){}for(var g in c)t[g]=c[g];t.DEFAULT_USE_MULTI_LEVEL_SCALING=!1,t.DEFAULT_RADIAL_SEPARATION=c.DEFAULT_EDGE_LENGTH,t.DEFAULT_COMPONENT_SEPERATION=60,t.TILE=!0,t.TILING_PADDING_VERTICAL=10,t.TILING_PADDING_HORIZONTAL=10,t.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,t.ENFORCE_CONSTRAINTS=!0,t.APPLY_LAYOUT=!0,t.RELAX_MOVEMENT_ON_CONSTRAINTS=!0,t.TREE_REDUCTION_ON_INCREMENTAL=!0,t.PURE_INCREMENTAL=t.DEFAULT_INCREMENTAL,n.exports=t},767:(n,e,a)=>{var c=a(551).FDLayoutEdge;function t(i,r,h){c.call(this,i,r,h)}t.prototype=Object.create(c.prototype);for(var g in c)t[g]=c[g];n.exports=t},880:(n,e,a)=>{var c=a(551).LGraph;function t(i,r,h){c.call(this,i,r,h)}t.prototype=Object.create(c.prototype);for(var g in c)t[g]=c[g];n.exports=t},578:(n,e,a)=>{var c=a(551).LGraphManager;function t(i){c.call(this,i)}t.prototype=Object.create(c.prototype);for(var g in c)t[g]=c[g];n.exports=t},765:(n,e,a)=>{var c=a(551).FDLayout,t=a(578),g=a(880),i=a(991),r=a(767),h=a(806),f=a(902),l=a(551).FDLayoutConstants,L=a(551).LayoutConstants,y=a(551).Point,p=a(551).PointD,C=a(551).DimensionD,R=a(551).Layout,A=a(551).Integer,S=a(551).IGeometry,B=a(551).LGraph,Y=a(551).Transform,tt=a(551).LinkedList;function x(){c.call(this),this.toBeTiled={},this.constraints={}}x.prototype=Object.create(c.prototype);for(var k in c)x[k]=c[k];x.prototype.newGraphManager=function(){var s=new t(this);return this.graphManager=s,s},x.prototype.newGraph=function(s){return new g(null,this.graphManager,s)},x.prototype.newNode=function(s){return new i(this.graphManager,s)},x.prototype.newEdge=function(s){return new r(null,null,s)},x.prototype.initParameters=function(){c.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=l.DEFAULT_GRAVITY_STRENGTH,this.compoundGravityConstant=l.DEFAULT_COMPOUND_GRAVITY_STRENGTH,this.gravityRangeFactor=l.DEFAULT_GRAVITY_RANGE_FACTOR,this.compoundGravityRangeFactor=l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR,this.prunedNodesAll=[],this.growTreeIterations=0,this.afterGrowthIterations=0,this.isTreeGrowing=!1,this.isGrowthFinished=!1)},x.prototype.initSpringEmbedder=function(){c.prototype.initSpringEmbedder.call(this),this.coolingCycle=0,this.maxCoolingCycle=this.maxIterations/l.CONVERGENCE_CHECK_PERIOD,this.finalTemperature=.04,this.coolingAdjuster=1},x.prototype.layout=function(){var s=L.DEFAULT_CREATE_BENDS_AS_NEEDED;return s&&(this.createBendpoints(),this.graphManager.resetAllEdges()),this.level=0,this.classicLayout()},x.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){if(h.TREE_REDUCTION_ON_INCREMENTAL){this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),v=this.nodesWithGravity.filter(function(D){return E.has(D)});this.graphManager.setAllNodesToApplyGravitation(v)}}else{var s=this.getFlatForest();if(s.length>0)this.positionNodesRadially(s);else{this.reduceTrees(),this.graphManager.resetAllNodesToApplyGravitation();var E=new Set(this.getAllNodes()),v=this.nodesWithGravity.filter(function(T){return E.has(T)});this.graphManager.setAllNodesToApplyGravitation(v),this.positionNodesRandomly()}}return Object.keys(this.constraints).length>0&&(f.handleConstraints(this),this.initConstraintVariables()),this.initSpringEmbedder(),h.APPLY_LAYOUT&&this.runSpringEmbedder(),!0},x.prototype.tick=function(){if(this.totalIterations++,this.totalIterations===this.maxIterations&&!this.isTreeGrowing&&!this.isGrowthFinished)if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;if(this.totalIterations%l.CONVERGENCE_CHECK_PERIOD==0&&!this.isTreeGrowing&&!this.isGrowthFinished){if(this.isConverged())if(this.prunedNodesAll.length>0)this.isTreeGrowing=!0;else return!0;this.coolingCycle++,this.layoutQuality==0?this.coolingAdjuster=this.coolingCycle:this.layoutQuality==1&&(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 s=new Set(this.getAllNodes()),E=this.nodesWithGravity.filter(function(d){return s.has(d)});this.graphManager.setAllNodesToApplyGravitation(E),this.graphManager.updateBounds(),this.updateGrid(),h.PURE_INCREMENTAL?this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2:this.coolingFactor=l.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=l.DEFAULT_COOLING_FACTOR_INCREMENTAL/2*((100-this.afterGrowthIterations)/100):this.coolingFactor=l.DEFAULT_COOLING_FACTOR_INCREMENTAL*((100-this.afterGrowthIterations)/100),this.afterGrowthIterations++}var v=!this.isTreeGrowing&&!this.isGrowthFinished,T=this.growTreeIterations%10==1&&this.isTreeGrowing||this.afterGrowthIterations%10==1&&this.isGrowthFinished;return this.totalDisplacement=0,this.graphManager.updateBounds(),this.calcSpringForces(),this.calcRepulsionForces(v,T),this.calcGravitationalForces(),this.moveNodes(),this.animate(),!1},x.prototype.getPositionsData=function(){for(var s=this.graphManager.getAllNodes(),E={},v=0;v0&&this.updateDisplacements();for(var v=0;v0&&(T.fixedNodeWeight=D)}}if(this.constraints.relativePlacementConstraint){var O=new Map,P=new Map;if(this.dummyToNodeForVerticalAlignment=new Map,this.dummyToNodeForHorizontalAlignment=new Map,this.fixedNodesOnHorizontal=new Set,this.fixedNodesOnVertical=new Set,this.fixedNodeSet.forEach(function(M){s.fixedNodesOnHorizontal.add(M),s.fixedNodesOnVertical.add(M)}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var F=this.constraints.alignmentConstraint.vertical,v=0;v=2*M.length/3;J--)U=Math.floor(Math.random()*(J+1)),X=M[J],M[J]=M[U],M[U]=X;return M},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(M){if(M.left){var U=O.has(M.left)?O.get(M.left):M.left,X=O.has(M.right)?O.get(M.right):M.right;s.nodesInRelativeHorizontal.includes(U)||(s.nodesInRelativeHorizontal.push(U),s.nodeToRelativeConstraintMapHorizontal.set(U,[]),s.dummyToNodeForVerticalAlignment.has(U)?s.nodeToTempPositionMapHorizontal.set(U,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(U)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(U,s.idToNodeMap.get(U).getCenterX())),s.nodesInRelativeHorizontal.includes(X)||(s.nodesInRelativeHorizontal.push(X),s.nodeToRelativeConstraintMapHorizontal.set(X,[]),s.dummyToNodeForVerticalAlignment.has(X)?s.nodeToTempPositionMapHorizontal.set(X,s.idToNodeMap.get(s.dummyToNodeForVerticalAlignment.get(X)[0]).getCenterX()):s.nodeToTempPositionMapHorizontal.set(X,s.idToNodeMap.get(X).getCenterX())),s.nodeToRelativeConstraintMapHorizontal.get(U).push({right:X,gap:M.gap}),s.nodeToRelativeConstraintMapHorizontal.get(X).push({left:U,gap:M.gap})}else{var J=P.has(M.top)?P.get(M.top):M.top,st=P.has(M.bottom)?P.get(M.bottom):M.bottom;s.nodesInRelativeVertical.includes(J)||(s.nodesInRelativeVertical.push(J),s.nodeToRelativeConstraintMapVertical.set(J,[]),s.dummyToNodeForHorizontalAlignment.has(J)?s.nodeToTempPositionMapVertical.set(J,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(J)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(J,s.idToNodeMap.get(J).getCenterY())),s.nodesInRelativeVertical.includes(st)||(s.nodesInRelativeVertical.push(st),s.nodeToRelativeConstraintMapVertical.set(st,[]),s.dummyToNodeForHorizontalAlignment.has(st)?s.nodeToTempPositionMapVertical.set(st,s.idToNodeMap.get(s.dummyToNodeForHorizontalAlignment.get(st)[0]).getCenterY()):s.nodeToTempPositionMapVertical.set(st,s.idToNodeMap.get(st).getCenterY())),s.nodeToRelativeConstraintMapVertical.get(J).push({bottom:st,gap:M.gap}),s.nodeToRelativeConstraintMapVertical.get(st).push({top:J,gap:M.gap})}});else{var Z=new Map,_=new Map;this.constraints.relativePlacementConstraint.forEach(function(M){if(M.left){var U=O.has(M.left)?O.get(M.left):M.left,X=O.has(M.right)?O.get(M.right):M.right;Z.has(U)?Z.get(U).push(X):Z.set(U,[X]),Z.has(X)?Z.get(X).push(U):Z.set(X,[U])}else{var J=P.has(M.top)?P.get(M.top):M.top,st=P.has(M.bottom)?P.get(M.bottom):M.bottom;_.has(J)?_.get(J).push(st):_.set(J,[st]),_.has(st)?_.get(st).push(J):_.set(st,[J])}});var b=function(U,X){var J=[],st=[],Lt=new tt,St=new Set,Q=0;return U.forEach(function(Ut,wt){if(!St.has(wt)){J[Q]=[],st[Q]=!1;var nt=wt;for(Lt.push(nt),St.add(nt),J[Q].push(nt);Lt.length!=0;){nt=Lt.shift(),X.has(nt)&&(st[Q]=!0);var et=U.get(nt);et.forEach(function(pt){St.has(pt)||(Lt.push(pt),St.add(pt),J[Q].push(pt))})}Q++}}),{components:J,isFixed:st}},j=b(Z,s.fixedNodesOnHorizontal);this.componentsOnHorizontal=j.components,this.fixedComponentsOnHorizontal=j.isFixed;var V=b(_,s.fixedNodesOnVertical);this.componentsOnVertical=V.components,this.fixedComponentsOnVertical=V.isFixed}}},x.prototype.updateDisplacements=function(){var s=this;if(this.constraints.fixedNodeConstraint&&this.constraints.fixedNodeConstraint.forEach(function(V){var M=s.idToNodeMap.get(V.nodeId);M.displacementX=0,M.displacementY=0}),this.constraints.alignmentConstraint){if(this.constraints.alignmentConstraint.vertical)for(var E=this.constraints.alignmentConstraint.vertical,v=0;v1){var P;for(P=0;PT&&(T=Math.floor(O.y)),D=Math.floor(O.x+h.DEFAULT_COMPONENT_SEPERATION)}this.transform(new p(L.WORLD_CENTER_X-O.x/2,L.WORLD_CENTER_Y-O.y/2))},x.radialLayout=function(s,E,v){var T=Math.max(this.maxDiagonalInTree(s),h.DEFAULT_RADIAL_SEPARATION);x.branchRadialLayout(E,null,0,359,0,T);var d=B.calculateBounds(s),D=new Y;D.setDeviceOrgX(d.getMinX()),D.setDeviceOrgY(d.getMinY()),D.setWorldOrgX(v.x),D.setWorldOrgY(v.y);for(var O=0;O1;){var J=X[0];X.splice(0,1);var st=b.indexOf(J);st>=0&&b.splice(st,1),M--,j--}E!=null?U=(b.indexOf(X[0])+1)%M:U=0;for(var Lt=Math.abs(T-v)/j,St=U;V!=j;St=++St%M){var Q=b[St].getOtherEnd(s);if(Q!=E){var Ut=(v+V*Lt)%360,wt=(Ut+Lt)%360;x.branchRadialLayout(Q,s,Ut,wt,d+D,D),V++}}},x.maxDiagonalInTree=function(s){for(var E=A.MIN_VALUE,v=0;vE&&(E=d)}return E},x.prototype.calcRepulsionRange=function(){return 2*(this.level+1)*this.idealEdgeLength},x.prototype.groupZeroDegreeMembers=function(){var s=this,E={};this.memberGroups={},this.idToDummyNode={};for(var v=[],T=this.graphManager.getAllNodes(),d=0;d"u"&&(E[P]=[]),E[P]=E[P].concat(D)}Object.keys(E).forEach(function(F){if(E[F].length>1){var I="DummyCompound_"+F;s.memberGroups[I]=E[F];var Z=E[F][0].getParent(),_=new i(s.graphManager);_.id=I,_.paddingLeft=Z.paddingLeft||0,_.paddingRight=Z.paddingRight||0,_.paddingBottom=Z.paddingBottom||0,_.paddingTop=Z.paddingTop||0,s.idToDummyNode[I]=_;var b=s.getGraphManager().add(s.newGraph(),_),j=Z.getChild();j.add(_);for(var V=0;Vd?(T.rect.x-=(T.labelWidth-d)/2,T.setWidth(T.labelWidth),T.labelMarginLeft=(T.labelWidth-d)/2):T.labelPosHorizontal=="right"&&T.setWidth(d+T.labelWidth)),T.labelHeight&&(T.labelPosVertical=="top"?(T.rect.y-=T.labelHeight,T.setHeight(D+T.labelHeight),T.labelMarginTop=T.labelHeight):T.labelPosVertical=="center"&&T.labelHeight>D?(T.rect.y-=(T.labelHeight-D)/2,T.setHeight(T.labelHeight),T.labelMarginTop=(T.labelHeight-D)/2):T.labelPosVertical=="bottom"&&T.setHeight(D+T.labelHeight))}})},x.prototype.repopulateCompounds=function(){for(var s=this.compoundOrder.length-1;s>=0;s--){var E=this.compoundOrder[s],v=E.id,T=E.paddingLeft,d=E.paddingTop,D=E.labelMarginLeft,O=E.labelMarginTop;this.adjustLocations(this.tiledMemberPack[v],E.rect.x,E.rect.y,T,d,D,O)}},x.prototype.repopulateZeroDegreeMembers=function(){var s=this,E=this.tiledZeroDegreePack;Object.keys(E).forEach(function(v){var T=s.idToDummyNode[v],d=T.paddingLeft,D=T.paddingTop,O=T.labelMarginLeft,P=T.labelMarginTop;s.adjustLocations(E[v],T.rect.x,T.rect.y,d,D,O,P)})},x.prototype.getToBeTiled=function(s){var E=s.id;if(this.toBeTiled[E]!=null)return this.toBeTiled[E];var v=s.getChild();if(v==null)return this.toBeTiled[E]=!1,!1;for(var T=v.getNodes(),d=0;d0)return this.toBeTiled[E]=!1,!1;if(D.getChild()==null){this.toBeTiled[D.id]=!1;continue}if(!this.getToBeTiled(D))return this.toBeTiled[E]=!1,!1}return this.toBeTiled[E]=!0,!0},x.prototype.getNodeDegree=function(s){for(var E=s.id,v=s.getEdges(),T=0,d=0;dZ&&(Z=b.rect.height)}v+=Z+s.verticalPadding}},x.prototype.tileCompoundMembers=function(s,E){var v=this;this.tiledMemberPack=[],Object.keys(s).forEach(function(T){var d=E[T];if(v.tiledMemberPack[T]=v.tileNodes(s[T],d.paddingLeft+d.paddingRight),d.rect.width=v.tiledMemberPack[T].width,d.rect.height=v.tiledMemberPack[T].height,d.setCenter(v.tiledMemberPack[T].centerX,v.tiledMemberPack[T].centerY),d.labelMarginLeft=0,d.labelMarginTop=0,h.NODE_DIMENSIONS_INCLUDE_LABELS){var D=d.rect.width,O=d.rect.height;d.labelWidth&&(d.labelPosHorizontal=="left"?(d.rect.x-=d.labelWidth,d.setWidth(D+d.labelWidth),d.labelMarginLeft=d.labelWidth):d.labelPosHorizontal=="center"&&d.labelWidth>D?(d.rect.x-=(d.labelWidth-D)/2,d.setWidth(d.labelWidth),d.labelMarginLeft=(d.labelWidth-D)/2):d.labelPosHorizontal=="right"&&d.setWidth(D+d.labelWidth)),d.labelHeight&&(d.labelPosVertical=="top"?(d.rect.y-=d.labelHeight,d.setHeight(O+d.labelHeight),d.labelMarginTop=d.labelHeight):d.labelPosVertical=="center"&&d.labelHeight>O?(d.rect.y-=(d.labelHeight-O)/2,d.setHeight(d.labelHeight),d.labelMarginTop=(d.labelHeight-O)/2):d.labelPosVertical=="bottom"&&d.setHeight(O+d.labelHeight))}})},x.prototype.tileNodes=function(s,E){var v=this.tileNodesByFavoringDim(s,E,!0),T=this.tileNodesByFavoringDim(s,E,!1),d=this.getOrgRatio(v),D=this.getOrgRatio(T),O;return DP&&(P=V.getWidth())});var F=D/d,I=O/d,Z=Math.pow(v-T,2)+4*(F+T)*(I+v)*d,_=(T-v+Math.sqrt(Z))/(2*(F+T)),b;E?(b=Math.ceil(_),b==_&&b++):b=Math.floor(_);var j=b*(F+T)-T;return P>j&&(j=P),j+=T*2,j},x.prototype.tileNodesByFavoringDim=function(s,E,v){var T=h.TILING_PADDING_VERTICAL,d=h.TILING_PADDING_HORIZONTAL,D=h.TILING_COMPARE_BY,O={rows:[],rowWidth:[],rowHeight:[],width:0,height:E,verticalPadding:T,horizontalPadding:d,centerX:0,centerY:0};D&&(O.idealRowWidth=this.calcIdealRowWidth(s,v));var P=function(M){return M.rect.width*M.rect.height},F=function(M,U){return P(U)-P(M)};s.sort(function(V,M){var U=F;return O.idealRowWidth?(U=D,U(V.id,M.id)):U(V,M)});for(var I=0,Z=0,_=0;_0&&(O+=s.horizontalPadding),s.rowWidth[v]=O,s.width0&&(P+=s.verticalPadding);var F=0;P>s.rowHeight[v]&&(F=s.rowHeight[v],s.rowHeight[v]=P,F=s.rowHeight[v]-F),s.height+=F,s.rows[v].push(E)},x.prototype.getShortestRowIndex=function(s){for(var E=-1,v=Number.MAX_VALUE,T=0;Tv&&(E=T,v=s.rowWidth[T]);return E},x.prototype.canAddHorizontal=function(s,E,v){if(s.idealRowWidth){var T=s.rows.length-1,d=s.rowWidth[T];return d+E+s.horizontalPadding<=s.idealRowWidth}var D=this.getShortestRowIndex(s);if(D<0)return!0;var O=s.rowWidth[D];if(O+s.horizontalPadding+E<=s.width)return!0;var P=0;s.rowHeight[D]0&&(P=v+s.verticalPadding-s.rowHeight[D]);var F;s.width-O>=E+s.horizontalPadding?F=(s.height+P)/(O+E+s.horizontalPadding):F=(s.height+P)/s.width,P=v+s.verticalPadding;var I;return s.widthD&&E!=v){T.splice(-1,1),s.rows[v].push(d),s.rowWidth[E]=s.rowWidth[E]-D,s.rowWidth[v]=s.rowWidth[v]+D,s.width=s.rowWidth[instance.getLongestRowIndex(s)];for(var O=Number.MIN_VALUE,P=0;PO&&(O=T[P].height);E>0&&(O+=s.verticalPadding);var F=s.rowHeight[E]+s.rowHeight[v];s.rowHeight[E]=O,s.rowHeight[v]0)for(var j=d;j<=D;j++)b[0]+=this.grid[j][O-1].length+this.grid[j][O].length-1;if(D0)for(var j=O;j<=P;j++)b[3]+=this.grid[d-1][j].length+this.grid[d][j].length-1;for(var V=A.MAX_VALUE,M,U,X=0;X{var c=a(551).FDLayoutNode,t=a(551).IMath;function g(r,h,f,l){c.call(this,r,h,f,l)}g.prototype=Object.create(c.prototype);for(var i in c)g[i]=c[i];g.prototype.calculateDisplacement=function(){var r=this.graphManager.getLayout();this.getChild()!=null&&this.fixedNodeWeight?(this.displacementX+=r.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.fixedNodeWeight,this.displacementY+=r.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.fixedNodeWeight):(this.displacementX+=r.coolingFactor*(this.springForceX+this.repulsionForceX+this.gravitationForceX)/this.noOfChildren,this.displacementY+=r.coolingFactor*(this.springForceY+this.repulsionForceY+this.gravitationForceY)/this.noOfChildren),Math.abs(this.displacementX)>r.coolingFactor*r.maxNodeDisplacement&&(this.displacementX=r.coolingFactor*r.maxNodeDisplacement*t.sign(this.displacementX)),Math.abs(this.displacementY)>r.coolingFactor*r.maxNodeDisplacement&&(this.displacementY=r.coolingFactor*r.maxNodeDisplacement*t.sign(this.displacementY)),this.child&&this.child.getNodes().length>0&&this.propogateDisplacementToChildren(this.displacementX,this.displacementY)},g.prototype.propogateDisplacementToChildren=function(r,h){for(var f=this.getChild().getNodes(),l,L=0;L{function c(f){if(Array.isArray(f)){for(var l=0,L=Array(f.length);l0){var dt=0;it.forEach(function(lt){W=="horizontal"?(q.set(lt,y.has(lt)?p[y.get(lt)]:$.get(lt)),dt+=q.get(lt)):(q.set(lt,y.has(lt)?C[y.get(lt)]:$.get(lt)),dt+=q.get(lt))}),dt=dt/it.length,ot.forEach(function(lt){z.has(lt)||q.set(lt,dt)})}else{var at=0;ot.forEach(function(lt){W=="horizontal"?at+=y.has(lt)?p[y.get(lt)]:$.get(lt):at+=y.has(lt)?C[y.get(lt)]:$.get(lt)}),at=at/ot.length,ot.forEach(function(lt){q.set(lt,at)})}});for(var rt=function(){var it=gt.shift(),dt=H.get(it);dt.forEach(function(at){if(q.get(at.id)lt&&(lt=Xt),ztFt&&(Ft=zt)}}catch(_t){Vt=!0,Dt=_t}finally{try{!xt&&Nt.return&&Nt.return()}finally{if(Vt)throw Dt}}var ce=(dt+lt)/2-(at+Ft)/2,qt=!0,Jt=!1,Kt=void 0;try{for(var Qt=ot[Symbol.iterator](),oe;!(qt=(oe=Qt.next()).done);qt=!0){var jt=oe.value;q.set(jt,q.get(jt)+ce)}}catch(_t){Jt=!0,Kt=_t}finally{try{!qt&&Qt.return&&Qt.return()}finally{if(Jt)throw Kt}}})}return q},k=function(H){var W=0,z=0,$=0,K=0;if(H.forEach(function(ht){ht.left?p[y.get(ht.left)]-p[y.get(ht.right)]>=0?W++:z++:C[y.get(ht.top)]-C[y.get(ht.bottom)]>=0?$++:K++}),W>z&&$>K)for(var ut=0;utz)for(var ft=0;ftK)for(var q=0;q1)l.fixedNodeConstraint.forEach(function(G,H){T[H]=[G.position.x,G.position.y],d[H]=[p[y.get(G.nodeId)],C[y.get(G.nodeId)]]}),D=!0;else if(l.alignmentConstraint)(function(){var G=0;if(l.alignmentConstraint.vertical){for(var H=l.alignmentConstraint.vertical,W=function(q){var ht=new Set;H[q].forEach(function(vt){ht.add(vt)});var gt=new Set([].concat(c(ht)).filter(function(vt){return P.has(vt)})),rt=void 0;gt.size>0?rt=p[y.get(gt.values().next().value)]:rt=tt(ht).x,H[q].forEach(function(vt){T[G]=[rt,C[y.get(vt)]],d[G]=[p[y.get(vt)],C[y.get(vt)]],G++})},z=0;z0?rt=p[y.get(gt.values().next().value)]:rt=tt(ht).y,$[q].forEach(function(vt){T[G]=[p[y.get(vt)],rt],d[G]=[p[y.get(vt)],C[y.get(vt)]],G++})},ut=0;ut<$.length;ut++)K(ut);D=!0}l.relativePlacementConstraint&&(O=!0)})();else if(l.relativePlacementConstraint){for(var _=0,b=0,j=0;j_&&(_=Z[j].length,b=j);if(_0){var Ct={x:0,y:0};l.fixedNodeConstraint.forEach(function(G,H){var W={x:p[y.get(G.nodeId)],y:C[y.get(G.nodeId)]},z=G.position,$=Y(z,W);Ct.x+=$.x,Ct.y+=$.y}),Ct.x/=l.fixedNodeConstraint.length,Ct.y/=l.fixedNodeConstraint.length,p.forEach(function(G,H){p[H]+=Ct.x}),C.forEach(function(G,H){C[H]+=Ct.y}),l.fixedNodeConstraint.forEach(function(G){p[y.get(G.nodeId)]=G.position.x,C[y.get(G.nodeId)]=G.position.y})}if(l.alignmentConstraint){if(l.alignmentConstraint.vertical)for(var mt=l.alignmentConstraint.vertical,Tt=function(H){var W=new Set;mt[H].forEach(function(K){W.add(K)});var z=new Set([].concat(c(W)).filter(function(K){return P.has(K)})),$=void 0;z.size>0?$=p[y.get(z.values().next().value)]:$=tt(W).x,W.forEach(function(K){P.has(K)||(p[y.get(K)]=$)})},Ot=0;Ot0?$=C[y.get(z.values().next().value)]:$=tt(W).y,W.forEach(function(K){P.has(K)||(C[y.get(K)]=$)})},Pt=0;Pt{n.exports=m}},N={};function u(n){var e=N[n];if(e!==void 0)return e.exports;var a=N[n]={exports:{}};return w[n](a,a.exports,u),a.exports}var o=u(45);return o})()})});var Je=pe((ae,Ce)=>{(function(w,N){typeof ae=="object"&&typeof Ce=="object"?Ce.exports=N(Le()):typeof define=="function"&&define.amd?define(["cose-base"],N):typeof ae=="object"?ae.cytoscapeFcose=N(Le()):w.cytoscapeFcose=N(w.coseBase)})(ae,function(m){return(()=>{"use strict";var w={658:n=>{n.exports=Object.assign!=null?Object.assign.bind(Object):function(e){for(var a=arguments.length,c=Array(a>1?a-1:0),t=1;t{var c=function(){function i(r,h){var f=[],l=!0,L=!1,y=void 0;try{for(var p=r[Symbol.iterator](),C;!(l=(C=p.next()).done)&&(f.push(C.value),!(h&&f.length===h));l=!0);}catch(R){L=!0,y=R}finally{try{!l&&p.return&&p.return()}finally{if(L)throw y}}return f}return function(r,h){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return i(r,h);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),t=a(140).layoutBase.LinkedList,g={};g.getTopMostNodes=function(i){for(var r={},h=0;h0&&D.merge(I)});for(var O=0;O1){C=y[0],R=C.connectedEdges().length,y.forEach(function(d){d.connectedEdges().length0&&f.set("dummy"+(f.size+1),B),Y},g.relocateComponent=function(i,r,h){if(!h.fixedNodeConstraint){var f=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY,y=Number.NEGATIVE_INFINITY;if(h.quality=="draft"){var p=!0,C=!1,R=void 0;try{for(var A=r.nodeIndexes[Symbol.iterator](),S;!(p=(S=A.next()).done);p=!0){var B=S.value,Y=c(B,2),tt=Y[0],x=Y[1],k=h.cy.getElementById(tt);if(k){var s=k.boundingBox(),E=r.xCoords[x]-s.w/2,v=r.xCoords[x]+s.w/2,T=r.yCoords[x]-s.h/2,d=r.yCoords[x]+s.h/2;El&&(l=v),Ty&&(y=d)}}}catch(I){C=!0,R=I}finally{try{!p&&A.return&&A.return()}finally{if(C)throw R}}var D=i.x-(l+f)/2,O=i.y-(y+L)/2;r.xCoords=r.xCoords.map(function(I){return I+D}),r.yCoords=r.yCoords.map(function(I){return I+O})}else{Object.keys(r).forEach(function(I){var Z=r[I],_=Z.getRect().x,b=Z.getRect().x+Z.getRect().width,j=Z.getRect().y,V=Z.getRect().y+Z.getRect().height;_l&&(l=b),jy&&(y=V)});var P=i.x-(l+f)/2,F=i.y-(y+L)/2;Object.keys(r).forEach(function(I){var Z=r[I];Z.setCenter(Z.getCenterX()+P,Z.getCenterY()+F)})}}},g.calcBoundingBox=function(i,r,h,f){for(var l=Number.MAX_SAFE_INTEGER,L=Number.MIN_SAFE_INTEGER,y=Number.MAX_SAFE_INTEGER,p=Number.MIN_SAFE_INTEGER,C=void 0,R=void 0,A=void 0,S=void 0,B=i.descendants().not(":parent"),Y=B.length,tt=0;ttC&&(l=C),LA&&(y=A),p{var c=a(548),t=a(140).CoSELayout,g=a(140).CoSENode,i=a(140).layoutBase.PointD,r=a(140).layoutBase.DimensionD,h=a(140).layoutBase.LayoutConstants,f=a(140).layoutBase.FDLayoutConstants,l=a(140).CoSEConstants,L=function(p,C){var R=p.cy,A=p.eles,S=A.nodes(),B=A.edges(),Y=void 0,tt=void 0,x=void 0,k={};p.randomize&&(Y=C.nodeIndexes,tt=C.xCoords,x=C.yCoords);var s=function(I){return typeof I=="function"},E=function(I,Z){return s(I)?I(Z):I},v=c.calcParentsWithoutChildren(R,A),T=function F(I,Z,_,b){for(var j=Z.length,V=0;V0){var Lt=void 0;Lt=_.getGraphManager().add(_.newGraph(),X),F(Lt,U,_,b)}}},d=function(I,Z,_){for(var b=0,j=0,V=0;V<_.length;V++){var M=_[V],U=k[M.data("source")],X=k[M.data("target")];if(U&&X&&U!==X&&U.getEdgesBetween(X).length==0){var J=Z.add(I.newEdge(),U,X);J.id=M.id(),J.idealLength=E(p.idealEdgeLength,M),J.edgeElasticity=E(p.edgeElasticity,M),b+=J.idealLength,j++}}p.idealEdgeLength!=null&&(j>0?l.DEFAULT_EDGE_LENGTH=f.DEFAULT_EDGE_LENGTH=b/j:s(p.idealEdgeLength)?l.DEFAULT_EDGE_LENGTH=f.DEFAULT_EDGE_LENGTH=50:l.DEFAULT_EDGE_LENGTH=f.DEFAULT_EDGE_LENGTH=p.idealEdgeLength,l.MIN_REPULSION_DIST=f.MIN_REPULSION_DIST=f.DEFAULT_EDGE_LENGTH/10,l.DEFAULT_RADIAL_SEPARATION=f.DEFAULT_EDGE_LENGTH)},D=function(I,Z){Z.fixedNodeConstraint&&(I.constraints.fixedNodeConstraint=Z.fixedNodeConstraint),Z.alignmentConstraint&&(I.constraints.alignmentConstraint=Z.alignmentConstraint),Z.relativePlacementConstraint&&(I.constraints.relativePlacementConstraint=Z.relativePlacementConstraint)};p.nestingFactor!=null&&(l.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=f.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR=p.nestingFactor),p.gravity!=null&&(l.DEFAULT_GRAVITY_STRENGTH=f.DEFAULT_GRAVITY_STRENGTH=p.gravity),p.numIter!=null&&(l.MAX_ITERATIONS=f.MAX_ITERATIONS=p.numIter),p.gravityRange!=null&&(l.DEFAULT_GRAVITY_RANGE_FACTOR=f.DEFAULT_GRAVITY_RANGE_FACTOR=p.gravityRange),p.gravityCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_STRENGTH=f.DEFAULT_COMPOUND_GRAVITY_STRENGTH=p.gravityCompound),p.gravityRangeCompound!=null&&(l.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=f.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR=p.gravityRangeCompound),p.initialEnergyOnIncremental!=null&&(l.DEFAULT_COOLING_FACTOR_INCREMENTAL=f.DEFAULT_COOLING_FACTOR_INCREMENTAL=p.initialEnergyOnIncremental),p.tilingCompareBy!=null&&(l.TILING_COMPARE_BY=p.tilingCompareBy),p.quality=="proof"?h.QUALITY=2:h.QUALITY=0,l.NODE_DIMENSIONS_INCLUDE_LABELS=f.NODE_DIMENSIONS_INCLUDE_LABELS=h.NODE_DIMENSIONS_INCLUDE_LABELS=p.nodeDimensionsIncludeLabels,l.DEFAULT_INCREMENTAL=f.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!p.randomize,l.ANIMATE=f.ANIMATE=h.ANIMATE=p.animate,l.TILE=p.tile,l.TILING_PADDING_VERTICAL=typeof p.tilingPaddingVertical=="function"?p.tilingPaddingVertical.call():p.tilingPaddingVertical,l.TILING_PADDING_HORIZONTAL=typeof p.tilingPaddingHorizontal=="function"?p.tilingPaddingHorizontal.call():p.tilingPaddingHorizontal,l.DEFAULT_INCREMENTAL=f.DEFAULT_INCREMENTAL=h.DEFAULT_INCREMENTAL=!0,l.PURE_INCREMENTAL=!p.randomize,h.DEFAULT_UNIFORM_LEAF_NODE_SIZES=p.uniformNodeDimensions,p.step=="transformed"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!1),p.step=="enforced"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!1),p.step=="cose"&&(l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!1,l.APPLY_LAYOUT=!0),p.step=="all"&&(p.randomize?l.TRANSFORM_ON_CONSTRAINT_HANDLING=!0:l.TRANSFORM_ON_CONSTRAINT_HANDLING=!1,l.ENFORCE_CONSTRAINTS=!0,l.APPLY_LAYOUT=!0),p.fixedNodeConstraint||p.alignmentConstraint||p.relativePlacementConstraint?l.TREE_REDUCTION_ON_INCREMENTAL=!1:l.TREE_REDUCTION_ON_INCREMENTAL=!0;var O=new t,P=O.newGraphManager();return T(P.addRoot(),c.getTopMostNodes(S),O,p),d(O,P,B),D(O,p),O.runLayout(),k};n.exports={coseLayout:L}},212:(n,e,a)=>{var c=function(){function p(C,R){for(var A=0;A0)if(d){var P=i.getTopMostNodes(A.eles.nodes());if(s=i.connectComponents(S,A.eles,P),s.forEach(function(nt){var et=nt.boundingBox();E.push({x:et.x1+et.w/2,y:et.y1+et.h/2})}),A.randomize&&s.forEach(function(nt){A.eles=nt,Y.push(h(A))}),A.quality=="default"||A.quality=="proof"){var F=S.collection();if(A.tile){var I=new Map,Z=[],_=[],b=0,j={nodeIndexes:I,xCoords:Z,yCoords:_},V=[];if(s.forEach(function(nt,et){nt.edges().length==0&&(nt.nodes().forEach(function(pt,Et){F.merge(nt.nodes()[Et]),pt.isParent()||(j.nodeIndexes.set(nt.nodes()[Et].id(),b++),j.xCoords.push(nt.nodes()[0].position().x),j.yCoords.push(nt.nodes()[0].position().y))}),V.push(et))}),F.length>1){var M=F.boundingBox();E.push({x:M.x1+M.w/2,y:M.y1+M.h/2}),s.push(F),Y.push(j);for(var U=V.length-1;U>=0;U--)s.splice(V[U],1),Y.splice(V[U],1),E.splice(V[U],1)}}s.forEach(function(nt,et){A.eles=nt,k.push(l(A,Y[et])),i.relocateComponent(E[et],k[et],A)})}else s.forEach(function(nt,et){i.relocateComponent(E[et],Y[et],A)});var X=new Set;if(s.length>1){var J=[],st=B.filter(function(nt){return nt.css("display")=="none"});s.forEach(function(nt,et){var pt=void 0;if(A.quality=="draft"&&(pt=Y[et].nodeIndexes),nt.nodes().not(st).length>0){var Et={};Et.edges=[],Et.nodes=[];var Ct=void 0;nt.nodes().not(st).forEach(function(mt){if(A.quality=="draft")if(!mt.isParent())Ct=pt.get(mt.id()),Et.nodes.push({x:Y[et].xCoords[Ct]-mt.boundingbox().w/2,y:Y[et].yCoords[Ct]-mt.boundingbox().h/2,width:mt.boundingbox().w,height:mt.boundingbox().h});else{var Tt=i.calcBoundingBox(mt,Y[et].xCoords,Y[et].yCoords,pt);Et.nodes.push({x:Tt.topLeftX,y:Tt.topLeftY,width:Tt.width,height:Tt.height})}else k[et][mt.id()]&&Et.nodes.push({x:k[et][mt.id()].getLeft(),y:k[et][mt.id()].getTop(),width:k[et][mt.id()].getWidth(),height:k[et][mt.id()].getHeight()})}),nt.edges().forEach(function(mt){var Tt=mt.source(),Ot=mt.target();if(Tt.css("display")!="none"&&Ot.css("display")!="none")if(A.quality=="draft"){var It=pt.get(Tt.id()),Wt=pt.get(Ot.id()),Pt=[],Yt=[];if(Tt.isParent()){var bt=i.calcBoundingBox(Tt,Y[et].xCoords,Y[et].yCoords,pt);Pt.push(bt.topLeftX+bt.width/2),Pt.push(bt.topLeftY+bt.height/2)}else Pt.push(Y[et].xCoords[It]),Pt.push(Y[et].yCoords[It]);if(Ot.isParent()){var G=i.calcBoundingBox(Ot,Y[et].xCoords,Y[et].yCoords,pt);Yt.push(G.topLeftX+G.width/2),Yt.push(G.topLeftY+G.height/2)}else Yt.push(Y[et].xCoords[Wt]),Yt.push(Y[et].yCoords[Wt]);Et.edges.push({startX:Pt[0],startY:Pt[1],endX:Yt[0],endY:Yt[1]})}else k[et][Tt.id()]&&k[et][Ot.id()]&&Et.edges.push({startX:k[et][Tt.id()].getCenterX(),startY:k[et][Tt.id()].getCenterY(),endX:k[et][Ot.id()].getCenterX(),endY:k[et][Ot.id()].getCenterY()})}),Et.nodes.length>0&&(J.push(Et),X.add(et))}});var Lt=T.packComponents(J,A.randomize).shifts;if(A.quality=="draft")Y.forEach(function(nt,et){var pt=nt.xCoords.map(function(Ct){return Ct+Lt[et].dx}),Et=nt.yCoords.map(function(Ct){return Ct+Lt[et].dy});nt.xCoords=pt,nt.yCoords=Et});else{var St=0;X.forEach(function(nt){Object.keys(k[nt]).forEach(function(et){var pt=k[nt][et];pt.setCenter(pt.getCenterX()+Lt[St].dx,pt.getCenterY()+Lt[St].dy)}),St++})}}}else{var D=A.eles.boundingBox();if(E.push({x:D.x1+D.w/2,y:D.y1+D.h/2}),A.randomize){var O=h(A);Y.push(O)}A.quality=="default"||A.quality=="proof"?(k.push(l(A,Y[0])),i.relocateComponent(E[0],k[0],A)):i.relocateComponent(E[0],Y[0],A)}var Q=function(et,pt){if(A.quality=="default"||A.quality=="proof"){typeof et=="number"&&(et=pt);var Et=void 0,Ct=void 0,mt=et.data("id");return k.forEach(function(Ot){mt in Ot&&(Et={x:Ot[mt].getRect().getCenterX(),y:Ot[mt].getRect().getCenterY()},Ct=Ot[mt])}),A.nodeDimensionsIncludeLabels&&(Ct.labelWidth&&(Ct.labelPosHorizontal=="left"?Et.x+=Ct.labelWidth/2:Ct.labelPosHorizontal=="right"&&(Et.x-=Ct.labelWidth/2)),Ct.labelHeight&&(Ct.labelPosVertical=="top"?Et.y+=Ct.labelHeight/2:Ct.labelPosVertical=="bottom"&&(Et.y-=Ct.labelHeight/2))),Et==null&&(Et={x:et.position("x"),y:et.position("y")}),{x:Et.x,y:Et.y}}else{var Tt=void 0;return Y.forEach(function(Ot){var It=Ot.nodeIndexes.get(et.id());It!=null&&(Tt={x:Ot.xCoords[It],y:Ot.yCoords[It]})}),Tt==null&&(Tt={x:et.position("x"),y:et.position("y")}),{x:Tt.x,y:Tt.y}}};if(A.quality=="default"||A.quality=="proof"||A.randomize){var Ut=i.calcParentsWithoutChildren(S,B),wt=B.filter(function(nt){return nt.css("display")=="none"});A.eles=B.not(wt),B.nodes().not(":parent").not(wt).layoutPositions(R,A,Q),Ut.length>0&&Ut.forEach(function(nt){nt.position(Q(nt))})}else console.log("If randomize option is set to false, then quality option must be 'default' or 'proof'.")}}]),p}();n.exports=y},657:(n,e,a)=>{var c=a(548),t=a(140).layoutBase.Matrix,g=a(140).layoutBase.SVD,i=function(h){var f=h.cy,l=h.eles,L=l.nodes(),y=l.nodes(":parent"),p=new Map,C=new Map,R=new Map,A=[],S=[],B=[],Y=[],tt=[],x=[],k=[],s=[],E=void 0,v=void 0,T=1e8,d=1e-9,D=h.piTol,O=h.samplingType,P=h.nodeSeparation,F=void 0,I=function(){for(var W=0,z=0,$=!1;z=ut;){q=K[ut++];for(var ot=A[q],it=0;itrt&&(rt=tt[at],vt=at)}return vt},_=function(W){var z=void 0;if(W){z=Math.floor(Math.random()*v),E=z;for(var K=0;K=1)break;rt=gt}for(var ot=0;ot=1)break;rt=gt}for(var dt=0;dt0&&(z.isParent()?A[W].push(R.get(z.id())):A[W].push(z.id()))})});var Ut=function(W){var z=C.get(W),$=void 0;p.get(W).forEach(function(K){f.getElementById(K).isParent()?$=R.get(K):$=K,A[z].push($),A[C.get($)].push(W)})},wt=!0,nt=!1,et=void 0;try{for(var pt=p.keys()[Symbol.iterator](),Et;!(wt=(Et=pt.next()).done);wt=!0){var Ct=Et.value;Ut(Ct)}}catch(H){nt=!0,et=H}finally{try{!wt&&pt.return&&pt.return()}finally{if(nt)throw et}}v=C.size;var mt=void 0;if(v>2){F=v{var c=a(212),t=function(i){i&&i("layout","fcose",c)};typeof cytoscape<"u"&&t(cytoscape),n.exports=t},140:n=>{n.exports=m}},N={};function u(n){var e=N[n];if(e!==void 0)return e.exports;var a=N[n]={exports:{}};return w[n](a,a.exports,u),a.exports}var o=u(579);return o})()})});var ir=ur(Je(),1);var Ke={L:"left",R:"right",T:"top",B:"bottom"},je={L:ct(m=>`${m},${m/2} 0,${m} 0,0`,"L"),R:ct(m=>`0,${m/2} ${m},0 ${m},${m}`,"R"),T:ct(m=>`0,0 ${m},0 ${m/2},${m}`,"T"),B:ct(m=>`${m/2},0 ${m},${m} 0,${m}`,"B")},fe={L:ct((m,w)=>m-w+2,"L"),R:ct((m,w)=>m-2,"R"),T:ct((m,w)=>m-w+2,"T"),B:ct((m,w)=>m-2,"B")},dr=ct(function(m){return Ht(m)?m==="L"?"R":"L":m==="T"?"B":"T"},"getOppositeArchitectureDirection"),_e=ct(function(m){let w=m;return w==="L"||w==="R"||w==="T"||w==="B"},"isArchitectureDirection"),Ht=ct(function(m){let w=m;return w==="L"||w==="R"},"isArchitectureDirectionX"),kt=ct(function(m){let w=m;return w==="T"||w==="B"},"isArchitectureDirectionY"),Me=ct(function(m,w){let N=Ht(m)&&kt(w),u=kt(m)&&Ht(w);return N||u},"isArchitectureDirectionXY"),vr=ct(function(m){let w=m[0],N=m[1],u=Ht(w)&&kt(N),o=kt(w)&&Ht(N);return u||o},"isArchitecturePairXY"),pr=ct(function(m){return m!=="LL"&&m!=="RR"&&m!=="TT"&&m!=="BB"},"isValidArchitectureDirectionPair"),Ae=ct(function(m,w){let N=`${m}${w}`;return pr(N)?N:void 0},"getArchitectureDirectionPair"),yr=ct(function([m,w],N){let u=N[0],o=N[1];return Ht(u)?kt(o)?[m+(u==="L"?-1:1),w+(o==="T"?1:-1)]:[m+(u==="L"?-1:1),w]:Ht(o)?[m+(o==="L"?1:-1),w+(u==="T"?1:-1)]:[m,w+(u==="T"?1:-1)]},"shiftPositionByArchitectureDirectionPair"),Er=ct(function(m){return m==="LT"||m==="TL"?[1,1]:m==="BL"||m==="LB"?[1,-1]:m==="BR"||m==="RB"?[-1,-1]:[-1,1]},"getArchitectureDirectionXYFactors"),mr=ct(function(m,w){return Me(m,w)?"bend":Ht(m)?"horizontal":"vertical"},"getArchitectureDirectionAlignment"),Tr=ct(function(m){return m.type==="service"},"isArchitectureService"),Nr=ct(function(m){return m.type==="junction"},"isArchitectureJunction"),tr=ct(m=>m.data(),"edgeData"),ee=ct(m=>m.data(),"nodeData"),Lr=Re.architecture,er=class{constructor(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.elements={},this.setAccTitle=Ge,this.getAccTitle=Ue,this.setDiagramTitle=He,this.getDiagramTitle=We,this.getAccDescription=Xe,this.setAccDescription=Ye,this.clear()}static{ct(this,"ArchitectureDB")}clear(){this.nodes={},this.groups={},this.edges=[],this.registeredIds={},this.dataStructures=void 0,this.elements={},Pe()}addService({id:m,icon:w,in:N,title:u,iconText:o}){if(this.registeredIds[m]!==void 0)throw new Error(`The service id [${m}] is already in use by another ${this.registeredIds[m]}`);if(N!==void 0){if(m===N)throw new Error(`The service [${m}] cannot be placed within itself`);if(this.registeredIds[N]===void 0)throw new Error(`The service [${m}]'s parent does not exist. Please make sure the parent is created before this service`);if(this.registeredIds[N]==="node")throw new Error(`The service [${m}]'s parent is not a group`)}this.registeredIds[m]="node",this.nodes[m]={id:m,type:"service",icon:w,iconText:o,title:u,edges:[],in:N}}getServices(){return Object.values(this.nodes).filter(Tr)}addJunction({id:m,in:w}){this.registeredIds[m]="node",this.nodes[m]={id:m,type:"junction",edges:[],in:w}}getJunctions(){return Object.values(this.nodes).filter(Nr)}getNodes(){return Object.values(this.nodes)}getNode(m){return this.nodes[m]??null}addGroup({id:m,icon:w,in:N,title:u}){if(this.registeredIds?.[m]!==void 0)throw new Error(`The group id [${m}] is already in use by another ${this.registeredIds[m]}`);if(N!==void 0){if(m===N)throw new Error(`The group [${m}] cannot be placed within itself`);if(this.registeredIds?.[N]===void 0)throw new Error(`The group [${m}]'s parent does not exist. Please make sure the parent is created before this group`);if(this.registeredIds?.[N]==="node")throw new Error(`The group [${m}]'s parent is not a group`)}this.registeredIds[m]="group",this.groups[m]={id:m,icon:w,title:u,in:N}}getGroups(){return Object.values(this.groups)}addEdge({lhsId:m,rhsId:w,lhsDir:N,rhsDir:u,lhsInto:o,rhsInto:n,lhsGroup:e,rhsGroup:a,title:c}){if(!_e(N))throw new Error(`Invalid direction given for left hand side of edge ${m}--${w}. Expected (L,R,T,B) got ${String(N)}`);if(!_e(u))throw new Error(`Invalid direction given for right hand side of edge ${m}--${w}. Expected (L,R,T,B) got ${String(u)}`);if(this.nodes[m]===void 0&&this.groups[m]===void 0)throw new Error(`The left-hand id [${m}] does not yet exist. Please create the service/group before declaring an edge to it.`);if(this.nodes[w]===void 0&&this.groups[w]===void 0)throw new Error(`The right-hand id [${w}] does not yet exist. Please create the service/group before declaring an edge to it.`);let t=this.nodes[m].in,g=this.nodes[w].in;if(e&&t&&g&&t==g)throw new Error(`The left-hand id [${m}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);if(a&&t&&g&&t==g)throw new Error(`The right-hand id [${w}] is modified to traverse the group boundary, but the edge does not pass through two groups.`);let i={lhsId:m,lhsDir:N,lhsInto:o,lhsGroup:e,rhsId:w,rhsDir:u,rhsInto:n,rhsGroup:a,title:c};this.edges.push(i),this.nodes[m]&&this.nodes[w]&&(this.nodes[m].edges.push(this.edges[this.edges.length-1]),this.nodes[w].edges.push(this.edges[this.edges.length-1]))}getEdges(){return this.edges}getDataStructures(){if(this.dataStructures===void 0){let m={},w=Object.entries(this.nodes).reduce((a,[c,t])=>(a[c]=t.edges.reduce((g,i)=>{let r=this.getNode(i.lhsId)?.in,h=this.getNode(i.rhsId)?.in;if(r&&h&&r!==h){let f=mr(i.lhsDir,i.rhsDir);f!=="bend"&&(m[r]??={},m[r][h]=f,m[h]??={},m[h][r]=f)}if(i.lhsId===c){let f=Ae(i.lhsDir,i.rhsDir);f&&(g[f]=i.rhsId)}else{let f=Ae(i.rhsDir,i.lhsDir);f&&(g[f]=i.lhsId)}return g},{}),a),{}),N=Object.keys(w)[0],u={[N]:1},o=Object.keys(w).reduce((a,c)=>c===N?a:{...a,[c]:1},{}),n=ct(a=>{let c={[a]:[0,0]},t=[a];for(;t.length>0;){let g=t.shift();if(g){u[g]=1,delete o[g];let i=w[g],[r,h]=c[g];Object.entries(i).forEach(([f,l])=>{u[l]||(c[l]=yr([r,h],f),t.push(l))})}}return c},"BFS"),e=[n(N)];for(;Object.keys(o).length>0;)e.push(n(Object.keys(o)[0]));this.dataStructures={adjList:w,spatialMaps:e,groupAlignments:m}}return this.dataStructures}setElementForId(m,w){this.elements[m]=w}getElementById(m){return this.elements[m]}getConfig(){return Be({...Lr,...Se().architecture})}getConfigField(m){return this.getConfig()[m]}},Cr=ct((m,w)=>{qe(m,w),m.groups.map(N=>w.addGroup(N)),m.services.map(N=>w.addService({...N,type:"service"})),m.junctions.map(N=>w.addJunction({...N,type:"junction"})),m.edges.map(N=>w.addEdge(N))},"populateDb"),rr={parser:{yy:void 0},parse:ct(async m=>{let w=await Qe("architecture",m);ye.debug(w);let N=rr.parser?.yy;if(!(N instanceof er))throw new Error("parser.parser?.yy was not a ArchitectureDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");Cr(w,N)},"parse")},Ar=ct(m=>` + .edge { + stroke-width: ${m.archEdgeWidth}; + stroke: ${m.archEdgeColor}; + fill: none; + } + + .arrow { + fill: ${m.archEdgeArrowColor}; + } + + .node-bkg { + fill: none; + stroke: ${m.archGroupBorderColor}; + stroke-width: ${m.archGroupBorderWidth}; + stroke-dasharray: 8; + } + .node-icon-text { + display: flex; + align-items: center; + } + + .node-icon-text > div { + color: #fff; + margin: 1px; + height: fit-content; + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + } +`,"getStyles"),Mr=Ar,te=ct(m=>`${m}`,"wrapIcon"),ne={prefix:"mermaid-architecture",height:80,width:80,icons:{database:{body:te('')},server:{body:te('')},disk:{body:te('')},internet:{body:te('')},cloud:{body:te('')},unknown:Ze,blank:{body:te("")}}},wr=ct(async function(m,w,N){let u=N.getConfigField("padding"),o=N.getConfigField("iconSize"),n=o/2,e=o/6,a=e/2;await Promise.all(w.edges().map(async c=>{let{source:t,sourceDir:g,sourceArrow:i,sourceGroup:r,target:h,targetDir:f,targetArrow:l,targetGroup:L,label:y}=tr(c),{x:p,y:C}=c[0].sourceEndpoint(),{x:R,y:A}=c[0].midpoint(),{x:S,y:B}=c[0].targetEndpoint(),Y=u+4;if(r&&(Ht(g)?p+=g==="L"?-Y:Y:C+=g==="T"?-Y:Y+18),L&&(Ht(f)?S+=f==="L"?-Y:Y:B+=f==="T"?-Y:Y+18),!r&&N.getNode(t)?.type==="junction"&&(Ht(g)?p+=g==="L"?n:-n:C+=g==="T"?n:-n),!L&&N.getNode(h)?.type==="junction"&&(Ht(f)?S+=f==="L"?n:-n:B+=f==="T"?n:-n),c[0]._private.rscratch){let tt=m.insert("g");if(tt.insert("path").attr("d",`M ${p},${C} L ${R},${A} L${S},${B} `).attr("class","edge").attr("id",$e(t,h,{prefix:"L"})),i){let x=Ht(g)?fe[g](p,e):p-a,k=kt(g)?fe[g](C,e):C-a;tt.insert("polygon").attr("points",je[g](e)).attr("transform",`translate(${x},${k})`).attr("class","arrow")}if(l){let x=Ht(f)?fe[f](S,e):S-a,k=kt(f)?fe[f](B,e):B-a;tt.insert("polygon").attr("points",je[f](e)).attr("transform",`translate(${x},${k})`).attr("class","arrow")}if(y){let x=Me(g,f)?"XY":Ht(g)?"X":"Y",k=0;x==="X"?k=Math.abs(p-S):x==="Y"?k=Math.abs(C-B)/1.5:k=Math.abs(p-S)/2;let s=tt.append("g");if(await le(s,y,{useHtmlLabels:!1,width:k,classes:"architecture-service-label"},se()),s.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),x==="X")s.attr("transform","translate("+R+", "+A+")");else if(x==="Y")s.attr("transform","translate("+R+", "+A+") rotate(-90)");else if(x==="XY"){let E=Ae(g,f);if(E&&vr(E)){let v=s.node().getBoundingClientRect(),[T,d]=Er(E);s.attr("dominant-baseline","auto").attr("transform",`rotate(${-1*T*d*45})`);let D=s.node().getBoundingClientRect();s.attr("transform",` + translate(${R}, ${A-v.height/2}) + translate(${T*D.width/2}, ${d*D.height/2}) + rotate(${-1*T*d*45}, 0, ${v.height/2}) + `)}}}}}))},"drawEdges"),Or=ct(async function(m,w,N){let o=N.getConfigField("padding")*.75,n=N.getConfigField("fontSize"),a=N.getConfigField("iconSize")/2;await Promise.all(w.nodes().map(async c=>{let t=ee(c);if(t.type==="group"){let{h:g,w:i,x1:r,y1:h}=c.boundingBox(),f=m.append("rect");f.attr("id",`group-${t.id}`).attr("x",r+a).attr("y",h+a).attr("width",i).attr("height",g).attr("class","node-bkg");let l=m.append("g"),L=r,y=h;if(t.icon){let p=l.append("g");p.html(`${await he(t.icon,{height:o,width:o,fallbackPrefix:ne.prefix})}`),p.attr("transform","translate("+(L+a+1)+", "+(y+a+1)+")"),L+=o,y+=n/2-1-2}if(t.label){let p=l.append("g");await le(p,t.label,{useHtmlLabels:!1,width:i,classes:"architecture-service-label"},se()),p.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","start").attr("text-anchor","start"),p.attr("transform","translate("+(L+a+4)+", "+(y+a+2)+")")}N.setElementForId(t.id,f)}}))},"drawGroups"),Dr=ct(async function(m,w,N){let u=se();for(let o of N){let n=w.append("g"),e=m.getConfigField("iconSize");if(o.title){let g=n.append("g");await le(g,o.title,{useHtmlLabels:!1,width:e*1.5,classes:"architecture-service-label"},u),g.attr("dy","1em").attr("alignment-baseline","middle").attr("dominant-baseline","middle").attr("text-anchor","middle"),g.attr("transform","translate("+e/2+", "+e+")")}let a=n.append("g");if(o.icon)a.html(`${await he(o.icon,{height:e,width:e,fallbackPrefix:ne.prefix})}`);else if(o.iconText){a.html(`${await he("blank",{height:e,width:e,fallbackPrefix:ne.prefix})}`);let r=a.append("g").append("foreignObject").attr("width",e).attr("height",e).append("div").attr("class","node-icon-text").attr("style",`height: ${e}px;`).append("div").html(Fe(o.iconText,u)),h=parseInt(window.getComputedStyle(r.node(),null).getPropertyValue("font-size").replace(/\D/g,""))??16;r.attr("style",`-webkit-line-clamp: ${Math.floor((e-2)/h)};`)}else a.append("path").attr("class","node-bkg").attr("id","node-"+o.id).attr("d",`M0 ${e} v${-e} q0,-5 5,-5 h${e} q5,0 5,5 v${e} H0 Z`);n.attr("id",`service-${o.id}`).attr("class","architecture-service");let{width:c,height:t}=n.node().getBBox();o.width=c,o.height=t,m.setElementForId(o.id,n)}return 0},"drawServices"),xr=ct(function(m,w,N){N.forEach(u=>{let o=w.append("g"),n=m.getConfigField("iconSize");o.append("g").append("rect").attr("id","node-"+u.id).attr("fill-opacity","0").attr("width",n).attr("height",n),o.attr("class","architecture-junction");let{width:a,height:c}=o._groups[0][0].getBBox();o.width=a,o.height=c,m.setElementForId(u.id,o)})},"drawJunctions");ke([{name:ne.prefix,icons:ne}]);Ee.use(ir.default);function ar(m,w,N){m.forEach(u=>{w.add({group:"nodes",data:{type:"service",id:u.id,icon:u.icon,label:u.title,parent:u.in,width:N.getConfigField("iconSize"),height:N.getConfigField("iconSize")},classes:"node-service"})})}ct(ar,"addServices");function nr(m,w,N){m.forEach(u=>{w.add({group:"nodes",data:{type:"junction",id:u.id,parent:u.in,width:N.getConfigField("iconSize"),height:N.getConfigField("iconSize")},classes:"node-junction"})})}ct(nr,"addJunctions");function or(m,w){w.nodes().map(N=>{let u=ee(N);if(u.type==="group")return;u.x=N.position().x,u.y=N.position().y,m.getElementById(u.id).attr("transform","translate("+(u.x||0)+","+(u.y||0)+")")})}ct(or,"positionNodes");function sr(m,w){m.forEach(N=>{w.add({group:"nodes",data:{type:"group",id:N.id,icon:N.icon,label:N.title,parent:N.in},classes:"node-group"})})}ct(sr,"addGroups");function hr(m,w){m.forEach(N=>{let{lhsId:u,rhsId:o,lhsInto:n,lhsGroup:e,rhsInto:a,lhsDir:c,rhsDir:t,rhsGroup:g,title:i}=N,r=Me(N.lhsDir,N.rhsDir)?"segments":"straight",h={id:`${u}-${o}`,label:i,source:u,sourceDir:c,sourceArrow:n,sourceGroup:e,sourceEndpoint:c==="L"?"0 50%":c==="R"?"100% 50%":c==="T"?"50% 0":"50% 100%",target:o,targetDir:t,targetArrow:a,targetGroup:g,targetEndpoint:t==="L"?"0 50%":t==="R"?"100% 50%":t==="T"?"50% 0":"50% 100%"};w.add({group:"edges",data:h,classes:r})})}ct(hr,"addEdges");function lr(m,w,N){let u=ct((a,c)=>Object.entries(a).reduce((t,[g,i])=>{let r=0,h=Object.entries(i);if(h.length===1)return t[g]=h[0][1],t;for(let f=0;f{let c={},t={};return Object.entries(a).forEach(([g,[i,r]])=>{let h=m.getNode(g)?.in??"default";c[r]??={},c[r][h]??=[],c[r][h].push(g),t[i]??={},t[i][h]??=[],t[i][h].push(g)}),{horiz:Object.values(u(c,"horizontal")).filter(g=>g.length>1),vert:Object.values(u(t,"vertical")).filter(g=>g.length>1)}}),[n,e]=o.reduce(([a,c],{horiz:t,vert:g})=>[[...a,...t],[...c,...g]],[[],[]]);return{horizontal:n,vertical:e}}ct(lr,"getAlignments");function fr(m,w){let N=[],u=ct(n=>`${n[0]},${n[1]}`,"posToStr"),o=ct(n=>n.split(",").map(e=>parseInt(e)),"strToPos");return m.forEach(n=>{let e=Object.fromEntries(Object.entries(n).map(([g,i])=>[u(i),g])),a=[u([0,0])],c={},t={L:[-1,0],R:[1,0],T:[0,1],B:[0,-1]};for(;a.length>0;){let g=a.shift();if(g){c[g]=1;let i=e[g];if(i){let r=o(g);Object.entries(t).forEach(([h,f])=>{let l=u([r[0]+f[0],r[1]+f[1]]),L=e[l];L&&!c[l]&&(a.push(l),N.push({[Ke[h]]:L,[Ke[dr(h)]]:i,gap:1.5*w.getConfigField("iconSize")}))})}}}}),N}ct(fr,"getRelativeConstraints");function cr(m,w,N,u,o,{spatialMaps:n,groupAlignments:e}){return new Promise(a=>{let c=Ve("body").append("div").attr("id","cy").attr("style","display:none"),t=Ee({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":`${o.getConfigField("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:`${o.getConfigField("padding")}px`}}],layout:{name:"grid",boundingBox:{x1:0,x2:100,y1:0,y2:100}}});c.remove(),sr(N,t),ar(m,t,o),nr(w,t,o),hr(u,t);let g=lr(o,n,e),i=fr(n,o),r=t.layout({name:"fcose",quality:"proof",styleEnabled:!1,animate:!1,nodeDimensionsIncludeLabels:!1,idealEdgeLength(h){let[f,l]=h.connectedNodes(),{parent:L}=ee(f),{parent:y}=ee(l);return L===y?1.5*o.getConfigField("iconSize"):.5*o.getConfigField("iconSize")},edgeElasticity(h){let[f,l]=h.connectedNodes(),{parent:L}=ee(f),{parent:y}=ee(l);return L===y?.45:.001},alignmentConstraint:g,relativePlacementConstraint:i});r.one("layoutstop",()=>{function h(f,l,L,y){let p,C,{x:R,y:A}=f,{x:S,y:B}=l;C=(y-A+(R-L)*(A-B)/(R-S))/Math.sqrt(1+Math.pow((A-B)/(R-S),2)),p=Math.sqrt(Math.pow(y-A,2)+Math.pow(L-R,2)-Math.pow(C,2));let Y=Math.sqrt(Math.pow(S-R,2)+Math.pow(B-A,2));p=p/Y;let tt=(S-R)*(y-A)-(B-A)*(L-R);switch(!0){case tt>=0:tt=1;break;case tt<0:tt=-1;break}let x=(S-R)*(L-R)+(B-A)*(y-A);switch(!0){case x>=0:x=1;break;case x<0:x=-1;break}return C=Math.abs(C)*tt,p=p*x,{distances:C,weights:p}}ct(h,"getSegmentWeights"),t.startBatch();for(let f of Object.values(t.edges()))if(f.data?.()){let{x:l,y:L}=f.source().position(),{x:y,y:p}=f.target().position();if(l!==y&&L!==p){let C=f.sourceEndpoint(),R=f.targetEndpoint(),{sourceDir:A}=tr(f),[S,B]=kt(A)?[C.x,R.y]:[R.x,C.y],{weights:Y,distances:tt}=h(C,R,S,B);f.style("segment-distances",tt),f.style("segment-weights",Y)}}t.endBatch(),r.run()}),r.run(),t.ready(h=>{ye.info("Ready",h),a(t)})})}ct(cr,"layoutArchitecture");var Ir=ct(async(m,w,N,u)=>{let o=u.db,n=o.getServices(),e=o.getJunctions(),a=o.getGroups(),c=o.getEdges(),t=o.getDataStructures(),g=ze(w),i=g.append("g");i.attr("class","architecture-edges");let r=g.append("g");r.attr("class","architecture-services");let h=g.append("g");h.attr("class","architecture-groups"),await Dr(o,r,n),xr(o,r,e);let f=await cr(n,e,a,c,o,t);await wr(i,f,o),await Or(h,f,o),or(o,f),be(void 0,g,o.getConfigField("padding"),o.getConfigField("useMaxWidth"))},"draw"),Rr={draw:Ir},Wr={parser:rr,get db(){return new er},renderer:Rr,styles:Mr};export{Wr as diagram}; diff --git a/build/_shared/arduino-2KNPIRKZ.js b/build/_shared/arduino-2KNPIRKZ.js new file mode 100644 index 00000000..452f431b --- /dev/null +++ b/build/_shared/arduino-2KNPIRKZ.js @@ -0,0 +1 @@ +import{c as f}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var M=f((w,g)=>{function T(e){return e?typeof e=="string"?e:e.source:null}function C(e){return u("(?=",e,")")}function c(e){return u("(",e,")?")}function u(...e){return e.map(n=>T(n)).join("")}function I(e){let t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",_="<[^<>]+>",S="("+n+"|"+c(i)+"[a-zA-Z_]\\w*"+c(_)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},b="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+b+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},E={className:"title",begin:c(i)+e.IDENT_RE,relevance:0},m=c(i)+e.IDENT_RE+"\\s*\\(",r={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"_Bool _Complex _Imaginary",_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,keywords:r,begin:u(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,e.IDENT_RE,C(/\s*\(/))},d=[p,l,s,t,e.C_BLOCK_COMMENT_MODE,o,a],y={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:r,contains:d.concat([{begin:/\(/,end:/\)/,keywords:r,contains:d.concat(["self"]),relevance:0}]),relevance:0},N={className:"function",begin:"("+S+"[\\*&\\s]+)+"+m,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:r,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:r,relevance:0},{begin:m,returnBegin:!0,contains:[E],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[a,o]},{className:"params",begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,a,o,s,{begin:/\(/,end:/\)/,keywords:r,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,a,o,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:r,illegal:"",keywords:r,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:r},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:l,strings:a,keywords:r}}}function h(e){let t={keyword:"boolean byte word String",built_in:"KeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD ",_:"setup loop runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put",literal:"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW"},n=I(e),i=n.keywords;return i.keyword+=" "+t.keyword,i.literal+=" "+t.literal,i.built_in+=" "+t.built_in,i._+=" "+t._,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}g.exports=h});export default M(); diff --git a/build/_shared/arduino-ZLIG7J2J.js b/build/_shared/arduino-ZLIG7J2J.js new file mode 100644 index 00000000..266bef11 --- /dev/null +++ b/build/_shared/arduino-ZLIG7J2J.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-CRUAY37J.js";import"/numpy-tutorials/build/_shared/chunk-YB2OJRYJ.js";import"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/arff-RBNCSNAF.js b/build/_shared/arff-RBNCSNAF.js new file mode 100644 index 00000000..b294c33b --- /dev/null +++ b/build/_shared/arff-RBNCSNAF.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-ORVC663C.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/armasm-F4ZQKLTT.js b/build/_shared/armasm-F4ZQKLTT.js new file mode 100644 index 00000000..b237f6fe --- /dev/null +++ b/build/_shared/armasm-F4ZQKLTT.js @@ -0,0 +1 @@ +import{c}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=c((E,e)=>{function d(s){let r={variants:[s.COMMENT("^[ \\t]*(?=#)","$",{relevance:0,excludeBegin:!0}),s.COMMENT("[;@]","$",{relevance:0}),s.C_LINE_COMMENT_MODE,s.C_BLOCK_COMMENT_MODE]};return{name:"ARM Assembly",case_insensitive:!0,aliases:["arm"],keywords:{$pattern:"\\.?"+s.IDENT_RE,meta:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @"},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?(?=\\s)"},r,s.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"symbol",variants:[{begin:"^[ \\t]*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"[=#]\\w+"}],relevance:0}]}}e.exports=d});export default a(); diff --git a/build/_shared/asciiarmor-RPXMRT54.js b/build/_shared/asciiarmor-RPXMRT54.js new file mode 100644 index 00000000..2ada5873 --- /dev/null +++ b/build/_shared/asciiarmor-RPXMRT54.js @@ -0,0 +1 @@ +import{b as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function t(e){var r=e.match(/^\s*\S/);return e.skipToEnd(),r?"error":null}var f,u=i(()=>{f={name:"asciiarmor",token:function(e,r){var n;if(r.state=="top")return e.sol()&&(n=e.match(/^-----BEGIN (.*)?-----\s*$/))?(r.state="headers",r.type=n[1],"tag"):t(e);if(r.state=="headers"){if(e.sol()&&e.match(/^\w+:/))return r.state="header","atom";var o=t(e);return o&&(r.state="body"),o}else{if(r.state=="header")return e.skipToEnd(),r.state="headers","string";if(r.state=="body")return e.sol()&&(n=e.match(/^-----END (.*)?-----\s*$/))?n[1]!=r.type?"error":(r.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error");if(r.state=="end")return t(e)}},blankLine:function(e){e.state=="headers"&&(e.state="body")},startState:function(){return{state:"top",type:null}}}});u();export{f as asciiArmor}; diff --git a/build/_shared/asciidoc-KJVWK42L.js b/build/_shared/asciidoc-KJVWK42L.js new file mode 100644 index 00000000..7f0c9179 --- /dev/null +++ b/build/_shared/asciidoc-KJVWK42L.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-UFWPTHNM.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/asciidoc-MOHQMFQQ.js b/build/_shared/asciidoc-MOHQMFQQ.js new file mode 100644 index 00000000..77e0a7fa --- /dev/null +++ b/build/_shared/asciidoc-MOHQMFQQ.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=r((N,c)=>{function b(e){return e?typeof e=="string"?e:e.source:null}function s(...e){return e.map(n=>b(n)).join("")}function m(e){let a={begin:"^'{3,}[ \\t]*$",relevance:10},n=[{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/}],i=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:s(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],l=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:s(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}],t={className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},g={className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"};return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ ].+?([ ]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},g,t,...n,...i,...l,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},a,{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}c.exports=m});export default o(); diff --git a/build/_shared/asm6502-TIBZBI2R.js b/build/_shared/asm6502-TIBZBI2R.js new file mode 100644 index 00000000..2c05b22f --- /dev/null +++ b/build/_shared/asm6502-TIBZBI2R.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-HITKPN66.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/asmatmel-FSDNXLWH.js b/build/_shared/asmatmel-FSDNXLWH.js new file mode 100644 index 00000000..9ccbf996 --- /dev/null +++ b/build/_shared/asmatmel-FSDNXLWH.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-NLW45EHG.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/asn1-N4ENKCWM.js b/build/_shared/asn1-N4ENKCWM.js new file mode 100644 index 00000000..84ef3553 --- /dev/null +++ b/build/_shared/asn1-N4ENKCWM.js @@ -0,0 +1 @@ +import{b as L}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function u(i){for(var s={},c=i.split(" "),T=0;T{o={keywords:u("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),cmipVerbs:u("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),compareTypes:u("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),status:u("current deprecated mandatory obsolete"),tags:u("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),storage:u("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),modifier:u("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),accessTypes:u("not-accessible accessible-for-notify read-only read-create read-write"),multiLineStrings:!0}});P();export{U as asn1}; diff --git a/build/_shared/aspectj-6IUL36MF.js b/build/_shared/aspectj-6IUL36MF.js new file mode 100644 index 00000000..4696594e --- /dev/null +++ b/build/_shared/aspectj-6IUL36MF.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=r((E,a)=>{function c(e){return e?typeof e=="string"?e:e.source:null}function i(...e){return e.map(t=>c(t)).join("")}function o(e){let n="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",t="get set args call";return{name:"AspectJ",keywords:n,illegal:/<\/|#/,contains:[e.COMMENT(/\/\*\*/,/\*\//,{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:/@[A-Za-z]+/}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:n+" "+t,excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:i(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:n,illegal:/["\[\]]/,contains:[{begin:i(e.UNDERSCORE_IDENT_RE,/\s*\(/),keywords:n+" "+t,relevance:0},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.\w+)?\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:n,excludeEnd:!0,contains:[{begin:i(e.UNDERSCORE_IDENT_RE,/\s*\(/),returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:n,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:/@[A-Za-z]+/}]}}a.exports=o});export default s(); diff --git a/build/_shared/aspnet-73DK2CZM.js b/build/_shared/aspnet-73DK2CZM.js new file mode 100644 index 00000000..bcd0ad87 --- /dev/null +++ b/build/_shared/aspnet-73DK2CZM.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-DI6AYDOT.js";import"/numpy-tutorials/build/_shared/chunk-37MEAX4M.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/asterisk-MOV35MZK.js b/build/_shared/asterisk-MOV35MZK.js new file mode 100644 index 00000000..5a4328de --- /dev/null +++ b/build/_shared/asterisk-MOV35MZK.js @@ -0,0 +1 @@ +import{b as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function s(e,n){var i="",a=e.next();if(n.blockComment)return a=="-"&&e.match("-;",!0)?n.blockComment=!1:e.skipTo("--;")?(e.next(),e.next(),e.next(),n.blockComment=!1):e.skipToEnd(),"comment";if(a==";")return e.match("--",!0)&&!e.match("-",!1)?(n.blockComment=!0,"comment"):(e.skipToEnd(),"comment");if(a=="[")return e.skipTo("]"),e.eat("]"),"header";if(a=='"')return e.skipTo('"'),"string";if(a=="'")return e.skipTo("'"),"string.special";if(a=="#"&&(e.eatWhile(/\w/),i=e.current(),c.indexOf(i)!==-1))return e.skipToEnd(),"strong";if(a=="$"){var r=e.peek();if(r=="{")return e.skipTo("}"),e.eat("}"),"variableName.special"}if(e.eatWhile(/\w/),i=e.current(),o.indexOf(i)!==-1){switch(n.extenStart=!0,i){case"same":n.extenSame=!0;break;case"include":case"switch":case"ignorepat":n.extenInclude=!0;break;default:break}return"atom"}}var o,c,l,d,u=t(()=>{o=["exten","same","include","ignorepat","switch"],c=["#include","#exec"],l=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];d={name:"asterisk",startState:function(){return{blockComment:!1,extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(e,n){var i="";if(e.eatSpace())return null;if(n.extenStart)return e.eatWhile(/[^\s]/),i=e.current(),/^=>?$/.test(i)?(n.extenExten=!0,n.extenStart=!1,"strong"):(n.extenStart=!1,e.skipToEnd(),"error");if(n.extenExten)return n.extenExten=!1,n.extenPriority=!0,e.eatWhile(/[^,]/),n.extenInclude&&(e.skipToEnd(),n.extenPriority=!1,n.extenInclude=!1),n.extenSame&&(n.extenPriority=!1,n.extenSame=!1,n.extenApplication=!0),"tag";if(n.extenPriority)return n.extenPriority=!1,n.extenApplication=!0,e.next(),n.extenSame?null:(e.eatWhile(/[^,]/),"number");if(n.extenApplication){if(e.eatWhile(/,/),i=e.current(),i===",")return null;if(e.eatWhile(/\w/),i=e.current().toLowerCase(),n.extenApplication=!1,l.indexOf(i)!==-1)return"def"}else return s(e,n);return null},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}}});u();export{d as asterisk}; diff --git a/build/_shared/autohotkey-AWXUS5OS.js b/build/_shared/autohotkey-AWXUS5OS.js new file mode 100644 index 00000000..9e157d64 --- /dev/null +++ b/build/_shared/autohotkey-AWXUS5OS.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=n((r,i)=>{function t(e){let a={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[a,e.inherit(e.QUOTE_STRING_MODE,{contains:[a]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}i.exports=t});export default s(); diff --git a/build/_shared/autohotkey-JTUWDUXZ.js b/build/_shared/autohotkey-JTUWDUXZ.js new file mode 100644 index 00000000..7459398d --- /dev/null +++ b/build/_shared/autohotkey-JTUWDUXZ.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-U4CGUKVN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/autoit-22VHHLMX.js b/build/_shared/autoit-22VHHLMX.js new file mode 100644 index 00000000..9652ded0 --- /dev/null +++ b/build/_shared/autoit-22VHHLMX.js @@ -0,0 +1 @@ +import{c as G}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var g=G((u,l)=>{function d(e){let o="ByRef Case Const ContinueCase ContinueLoop Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",a=["EndRegion","forcedef","forceref","ignorefunc","include","include-once","NoTrayIcon","OnAutoItStartRegister","pragma","Region","RequireAdmin","Tidy_Off","Tidy_On","Tidy_Parameters"],s="True False And Null Not Or Default",S="Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown, UDPShutdown TCPStartup, UDPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive",r={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},i={begin:"\\$[A-z0-9_]+"},t={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},C={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":a},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",keywords:{"meta-keyword":"include"},end:"$",contains:[t,{className:"meta-string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},t,r]},I={className:"symbol",begin:"@[A-z0-9_]+"},c={className:"function",beginKeywords:"Func",end:"$",illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[i,t,n]}]};return{name:"AutoIt",case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:o,built_in:S,literal:s},contains:[r,i,t,n,C,I,c]}}l.exports=d});export default g(); diff --git a/build/_shared/autoit-IL2HQ5FH.js b/build/_shared/autoit-IL2HQ5FH.js new file mode 100644 index 00000000..f3ee518a --- /dev/null +++ b/build/_shared/autoit-IL2HQ5FH.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-3LVLBA5H.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/avisynth-LKHO36WZ.js b/build/_shared/avisynth-LKHO36WZ.js new file mode 100644 index 00000000..3ae7af8a --- /dev/null +++ b/build/_shared/avisynth-LKHO36WZ.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-SKHM3O7J.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/avrasm-52ANMWJX.js b/build/_shared/avrasm-52ANMWJX.js new file mode 100644 index 00000000..bc7708a0 --- /dev/null +++ b/build/_shared/avrasm-52ANMWJX.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var b=s((t,c)=>{function e(r){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[r.C_BLOCK_COMMENT_MODE,r.COMMENT(";","$",{relevance:0}),r.C_NUMBER_MODE,r.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},r.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}c.exports=e});export default b(); diff --git a/build/_shared/avro-idl-3UV4FMBD.js b/build/_shared/avro-idl-3UV4FMBD.js new file mode 100644 index 00000000..4862b11b --- /dev/null +++ b/build/_shared/avro-idl-3UV4FMBD.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-UAS6YPDQ.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/awk-D56OFTBM.js b/build/_shared/awk-D56OFTBM.js new file mode 100644 index 00000000..ab39197e --- /dev/null +++ b/build/_shared/awk-D56OFTBM.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var E=t((c,n)=>{function b(e){let r={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},i="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",a={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{name:"Awk",keywords:{keyword:i},contains:[r,a,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}n.exports=b});export default E(); diff --git a/build/_shared/axapta-S5AYD5NK.js b/build/_shared/axapta-S5AYD5NK.js new file mode 100644 index 00000000..01ee961d --- /dev/null +++ b/build/_shared/axapta-S5AYD5NK.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=n((l,t)=>{function s(e){return{name:"X++",aliases:["x++"],keywords:{keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}t.exports=s});export default r(); diff --git a/build/_shared/bash-2LDSSWEX.js b/build/_shared/bash-2LDSSWEX.js new file mode 100644 index 00000000..2769db9e --- /dev/null +++ b/build/_shared/bash-2LDSSWEX.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-ICG7AHS4.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bash-G5VR5642.js b/build/_shared/bash-G5VR5642.js new file mode 100644 index 00000000..89a55bff --- /dev/null +++ b/build/_shared/bash-G5VR5642.js @@ -0,0 +1 @@ +import{c as b}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var f=b((E,i)=>{function m(e){return e?typeof e=="string"?e:e.source:null}function g(...e){return e.map(t=>m(t)).join("")}function h(e){let n={},t={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:g(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});let s={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},o={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,s]};s.contains.push(a);let c={className:"",begin:/\\"/},r={className:"string",begin:/'/,end:/'/},l={begin:/\$\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},p=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],u=e.SHEBANG({binary:`(${p.join("|")})`,relevance:10}),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"},contains:[u,e.SHEBANG(),d,l,e.HASH_COMMENT_MODE,o,a,c,r,n]}}i.exports=h});export default f(); diff --git a/build/_shared/basic-R4W3MPHH.js b/build/_shared/basic-R4W3MPHH.js new file mode 100644 index 00000000..7c71bb03 --- /dev/null +++ b/build/_shared/basic-R4W3MPHH.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-TEESLJ7F.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/basic-RFD4FF33.js b/build/_shared/basic-RFD4FF33.js new file mode 100644 index 00000000..37b87072 --- /dev/null +++ b/build/_shared/basic-RFD4FF33.js @@ -0,0 +1 @@ +import{c as R}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var I=R((O,T)=>{function N(E){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:"ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE WEND WIDTH WINDOW WRITE XOR"},contains:[E.QUOTE_STRING_MODE,E.COMMENT("REM","$",{relevance:10}),E.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}T.exports=N});export default I(); diff --git a/build/_shared/batch-T6HXYSU5.js b/build/_shared/batch-T6HXYSU5.js new file mode 100644 index 00000000..0eac391c --- /dev/null +++ b/build/_shared/batch-T6HXYSU5.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-RAY42E53.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bbcode-ICL6JI2X.js b/build/_shared/bbcode-ICL6JI2X.js new file mode 100644 index 00000000..dadd1a5a --- /dev/null +++ b/build/_shared/bbcode-ICL6JI2X.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-WTB6FEV2.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bicep-5TFZQ4DE.js b/build/_shared/bicep-5TFZQ4DE.js new file mode 100644 index 00000000..0c36bc94 --- /dev/null +++ b/build/_shared/bicep-5TFZQ4DE.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-P2RNH3XZ.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/birb-5AJUM5MZ.js b/build/_shared/birb-5AJUM5MZ.js new file mode 100644 index 00000000..88f083f3 --- /dev/null +++ b/build/_shared/birb-5AJUM5MZ.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-HCREDZXY.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bison-7JS4W2XU.js b/build/_shared/bison-7JS4W2XU.js new file mode 100644 index 00000000..f3777c15 --- /dev/null +++ b/build/_shared/bison-7JS4W2XU.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-5LDMESXP.js";import"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/blockDiagram-VD42YOAC-AQQ6RJBY.js b/build/_shared/blockDiagram-VD42YOAC-AQQ6RJBY.js new file mode 100644 index 00000000..cadf4c64 --- /dev/null +++ b/build/_shared/blockDiagram-VD42YOAC-AQQ6RJBY.js @@ -0,0 +1,122 @@ +import{a as jt}from"/numpy-tutorials/build/_shared/chunk-E5KZHAS7.js";import{b as Ut}from"/numpy-tutorials/build/_shared/chunk-JMV5HLZN.js";import{a as Vt}from"/numpy-tutorials/build/_shared/chunk-AHSZ7MKH.js";import{c as Yt}from"/numpy-tutorials/build/_shared/chunk-PLXGGK6F.js";import{a as Ht}from"/numpy-tutorials/build/_shared/chunk-X25FUMBP.js";import{f as Xt,g as mt}from"/numpy-tutorials/build/_shared/chunk-IFGNTSJO.js";import{d as Kt,m as tt,o as lt}from"/numpy-tutorials/build/_shared/chunk-H5UGLSR3.js";import"/numpy-tutorials/build/_shared/chunk-ILX2UBHN.js";import{D as nt,E as zt,F as X,K as At,L as Mt,P as Ft,W as I,a as Ot,b as Rt,y as $}from"/numpy-tutorials/build/_shared/chunk-JU57NILB.js";import{b as d,d as w,j as N,v as Wt,z as Pt}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";import"/numpy-tutorials/build/_shared/chunk-FZ2S7OYD.js";import"/numpy-tutorials/build/_shared/chunk-JEM6JXYA.js";import"/numpy-tutorials/build/_shared/chunk-34XIY2DH.js";import"/numpy-tutorials/build/_shared/chunk-KQM5FBHR.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var wt=function(){var e=d(function(D,x,g,f){for(g=g||{},f=D.length;f--;g[D[f]]=x);return g},"o"),t=[1,15],a=[1,7],i=[1,13],l=[1,14],s=[1,19],r=[1,16],n=[1,17],c=[1,18],u=[8,30],o=[8,10,21,28,29,30,31,39,43,46],b=[1,23],m=[1,24],y=[8,10,15,16,21,28,29,30,31,39,43,46],L=[8,10,15,16,21,27,28,29,30,31,39,43,46],E=[1,49],S={trace:d(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,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$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:"NODE_ID",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"},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],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:d(function(x,g,f,k,v,h,W){var p=h.length-1;switch(v){case 4:k.getLogger().debug("Rule: separator (NL) ");break;case 5:k.getLogger().debug("Rule: separator (Space) ");break;case 6:k.getLogger().debug("Rule: separator (EOF) ");break;case 7:k.getLogger().debug("Rule: hierarchy: ",h[p-1]),k.setHierarchy(h[p-1]);break;case 8:k.getLogger().debug("Stop NL ");break;case 9:k.getLogger().debug("Stop EOF ");break;case 10:k.getLogger().debug("Stop NL2 ");break;case 11:k.getLogger().debug("Stop EOF2 ");break;case 12:k.getLogger().debug("Rule: statement: ",h[p]),typeof h[p].length=="number"?this.$=h[p]:this.$=[h[p]];break;case 13:k.getLogger().debug("Rule: statement #2: ",h[p-1]),this.$=[h[p-1]].concat(h[p]);break;case 14:k.getLogger().debug("Rule: link: ",h[p],x),this.$={edgeTypeStr:h[p],label:""};break;case 15:k.getLogger().debug("Rule: LABEL link: ",h[p-3],h[p-1],h[p]),this.$={edgeTypeStr:h[p],label:h[p-1]};break;case 18:let R=parseInt(h[p]),G=k.generateId();this.$={id:G,type:"space",label:"",width:R,children:[]};break;case 23:k.getLogger().debug("Rule: (nodeStatement link node) ",h[p-2],h[p-1],h[p]," typestr: ",h[p-1].edgeTypeStr);let V=k.edgeStrToEdgeData(h[p-1].edgeTypeStr);this.$=[{id:h[p-2].id,label:h[p-2].label,type:h[p-2].type,directions:h[p-2].directions},{id:h[p-2].id+"-"+h[p].id,start:h[p-2].id,end:h[p].id,label:h[p-1].label,type:"edge",directions:h[p].directions,arrowTypeEnd:V,arrowTypeStart:"arrow_open"},{id:h[p].id,label:h[p].label,type:k.typeStr2Type(h[p].typeStr),directions:h[p].directions}];break;case 24:k.getLogger().debug("Rule: nodeStatement (abc88 node size) ",h[p-1],h[p]),this.$={id:h[p-1].id,label:h[p-1].label,type:k.typeStr2Type(h[p-1].typeStr),directions:h[p-1].directions,widthInColumns:parseInt(h[p],10)};break;case 25:k.getLogger().debug("Rule: nodeStatement (node) ",h[p]),this.$={id:h[p].id,label:h[p].label,type:k.typeStr2Type(h[p].typeStr),directions:h[p].directions,widthInColumns:1};break;case 26:k.getLogger().debug("APA123",this?this:"na"),k.getLogger().debug("COLUMNS: ",h[p]),this.$={type:"column-setting",columns:h[p]==="auto"?-1:parseInt(h[p])};break;case 27:k.getLogger().debug("Rule: id-block statement : ",h[p-2],h[p-1]);let Bt=k.generateId();this.$={...h[p-2],type:"composite",children:h[p-1]};break;case 28:k.getLogger().debug("Rule: blockStatement : ",h[p-2],h[p-1],h[p]);let at=k.generateId();this.$={id:at,type:"composite",label:"",children:h[p-1]};break;case 29:k.getLogger().debug("Rule: node (NODE_ID separator): ",h[p]),this.$={id:h[p]};break;case 30:k.getLogger().debug("Rule: node (NODE_ID nodeShapeNLabel separator): ",h[p-1],h[p]),this.$={id:h[p-1],label:h[p].label,typeStr:h[p].typeStr,directions:h[p].directions};break;case 31:k.getLogger().debug("Rule: dirList: ",h[p]),this.$=[h[p]];break;case 32:k.getLogger().debug("Rule: dirList: ",h[p-1],h[p]),this.$=[h[p-1]].concat(h[p]);break;case 33:k.getLogger().debug("Rule: nodeShapeNLabel: ",h[p-2],h[p-1],h[p]),this.$={typeStr:h[p-2]+h[p],label:h[p-1]};break;case 34:k.getLogger().debug("Rule: BLOCK_ARROW nodeShapeNLabel: ",h[p-3],h[p-2]," #3:",h[p-1],h[p]),this.$={typeStr:h[p-3]+h[p],label:h[p-2],directions:h[p-1]};break;case 35:case 36:this.$={type:"classDef",id:h[p-1].trim(),css:h[p].trim()};break;case 37:this.$={type:"applyClass",id:h[p-1].trim(),styleClass:h[p].trim()};break;case 38:this.$={type:"applyStyles",id:h[p-1].trim(),stylesStr:h[p].trim()};break}},"anonymous"),table:[{9:1,10:[1,2]},{1:[3]},{10:t,11:3,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:c},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:t,21:a,28:i,29:l,31:s,39:r,43:n,46:c}),e(o,[2,16],{14:22,15:b,16:m}),e(o,[2,17]),e(o,[2,18]),e(o,[2,19]),e(o,[2,20]),e(o,[2,21]),e(o,[2,22]),e(y,[2,25],{27:[1,25]}),e(o,[2,26]),{19:26,26:12,31:s},{10:t,11:27,13:4,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:c},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(L,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,31:s},{31:[2,14]},{17:[1,36]},e(y,[2,24]),{10:t,11:37,13:4,14:22,15:b,16:m,19:5,20:6,21:a,22:8,23:9,24:10,25:11,26:12,28:i,29:l,31:s,39:r,43:n,46:c},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(L,[2,30]),{18:[1,43]},{18:[1,44]},e(y,[2,23]),{18:[1,45]},{30:[1,46]},e(o,[2,28]),e(o,[2,35]),e(o,[2,36]),e(o,[2,37]),e(o,[2,38]),{36:[1,47]},{33:48,34:E},{15:[1,50]},e(o,[2,27]),e(L,[2,33]),{38:[1,51]},{33:52,34:E,38:[2,31]},{31:[2,15]},e(L,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:d(function(x,g){if(g.recoverable)this.trace(x);else{var f=new Error(x);throw f.hash=g,f}},"parseError"),parse:d(function(x){var g=this,f=[0],k=[],v=[null],h=[],W=this.table,p="",R=0,G=0,V=0,Bt=2,at=1,Se=h.slice.call(arguments,1),z=Object.create(this.lexer),q={yy:{}};for(var pt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,pt)&&(q.yy[pt]=this.yy[pt]);z.setInput(x,q.yy),q.yy.lexer=z,q.yy.parser=this,typeof z.yylloc>"u"&&(z.yylloc={});var ft=z.yylloc;h.push(ft);var ve=z.options&&z.options.ranges;typeof q.yy.parseError=="function"?this.parseError=q.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Ee(P){f.length=f.length-2*P,v.length=v.length-P,h.length=h.length-P}d(Ee,"popStack");function Ct(){var P;return P=k.pop()||z.lex()||at,typeof P!="number"&&(P instanceof Array&&(k=P,P=k.pop()),P=g.symbols_[P]||P),P}d(Ct,"lex");for(var F,bt,J,H,qr,xt,Q={},st,Z,It,it;;){if(J=f[f.length-1],this.defaultActions[J]?H=this.defaultActions[J]:((F===null||typeof F>"u")&&(F=Ct()),H=W[J]&&W[J][F]),typeof H>"u"||!H.length||!H[0]){var yt="";it=[];for(st in W[J])this.terminals_[st]&&st>Bt&&it.push("'"+this.terminals_[st]+"'");z.showPosition?yt="Parse error on line "+(R+1)+`: +`+z.showPosition()+` +Expecting `+it.join(", ")+", got '"+(this.terminals_[F]||F)+"'":yt="Parse error on line "+(R+1)+": Unexpected "+(F==at?"end of input":"'"+(this.terminals_[F]||F)+"'"),this.parseError(yt,{text:z.match,token:this.terminals_[F]||F,line:z.yylineno,loc:ft,expected:it})}if(H[0]instanceof Array&&H.length>1)throw new Error("Parse Error: multiple actions possible at state: "+J+", token: "+F);switch(H[0]){case 1:f.push(F),v.push(z.yytext),h.push(z.yylloc),f.push(H[1]),F=null,bt?(F=bt,bt=null):(G=z.yyleng,p=z.yytext,R=z.yylineno,ft=z.yylloc,V>0&&V--);break;case 2:if(Z=this.productions_[H[1]][1],Q.$=v[v.length-Z],Q._$={first_line:h[h.length-(Z||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(Z||1)].first_column,last_column:h[h.length-1].last_column},ve&&(Q._$.range=[h[h.length-(Z||1)].range[0],h[h.length-1].range[1]]),xt=this.performAction.apply(Q,[p,G,R,q.yy,H[1],v,h].concat(Se)),typeof xt<"u")return xt;Z&&(f=f.slice(0,-1*Z*2),v=v.slice(0,-1*Z),h=h.slice(0,-1*Z)),f.push(this.productions_[H[1]][0]),v.push(Q.$),h.push(Q._$),It=W[f[f.length-2]][f[f.length-1]],f.push(It);break;case 3:return!0}}return!0},"parse")},C=function(){var D={EOF:1,parseError:d(function(g,f){if(this.yy.parser)this.yy.parser.parseError(g,f);else throw new Error(g)},"parseError"),setInput:d(function(x,g){return this.yy=g||this.yy||{},this._input=x,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:d(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var g=x.match(/(?:\r\n?|\n).*/g);return g?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:d(function(x){var g=x.length,f=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-g),this.offset-=g;var k=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),f.length-1&&(this.yylineno-=f.length-1);var v=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:f?(f.length===k.length?this.yylloc.first_column:0)+k[k.length-f.length].length-f[0].length:this.yylloc.first_column-g},this.options.ranges&&(this.yylloc.range=[v[0],v[0]+this.yyleng-g]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return 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). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(x){this.unput(this.match.slice(x))},"less"),pastInput:d(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var x=this.pastInput(),g=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+g+"^"},"showPosition"),test_match:d(function(x,g){var f,k,v;if(this.options.backtrack_lexer&&(v={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&&(v.yylloc.range=this.yylloc.range.slice(0))),k=x[0].match(/(?:\r\n?|\n).*/g),k&&(this.yylineno+=k.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:k?k[k.length-1].length-k[k.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,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(x[0].length),this.matched+=x[0],f=this.performAction.call(this,this.yy,this,g,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),f)return f;if(this._backtrack){for(var h in v)this[h]=v[h];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,g,f,k;this._more||(this.yytext="",this.match="");for(var v=this._currentRules(),h=0;hg[0].length)){if(g=f,k=h,this.options.backtrack_lexer){if(x=this.test_match(f,v[h]),x!==!1)return x;if(this._backtrack){g=!1;continue}else return!1}else if(!this.options.flex)break}return g?(x=this.test_match(g,v[k]),x!==!1?x:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var g=this.next();return g||this.lex()},"lex"),begin:d(function(g){this.conditionStack.push(g)},"begin"),popState:d(function(){var g=this.conditionStack.length-1;return g>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(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:d(function(g){return g=this.conditionStack.length-1-Math.abs(g||0),g>=0?this.conditionStack[g]:"INITIAL"},"topState"),pushState:d(function(g){this.begin(g)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:d(function(g,f,k,v){var h=v;switch(k){case 0:return g.getLogger().debug("Found block-beta"),10;break;case 1:return g.getLogger().debug("Found id-block"),29;break;case 2:return g.getLogger().debug("Found block"),10;break;case 3:g.getLogger().debug(".",f.yytext);break;case 4:g.getLogger().debug("_",f.yytext);break;case 5:return 5;case 6:return f.yytext=-1,28;break;case 7:return f.yytext=f.yytext.replace(/columns\s+/,""),g.getLogger().debug("COLUMNS (LEX)",f.yytext),28;break;case 8:this.pushState("md_string");break;case 9:return"MD_STR";case 10:this.popState();break;case 11:this.pushState("string");break;case 12:g.getLogger().debug("LEX: POPPING STR:",f.yytext),this.popState();break;case 13:return g.getLogger().debug("LEX: STR end:",f.yytext),"STR";break;case 14:return f.yytext=f.yytext.replace(/space\:/,""),g.getLogger().debug("SPACE NUM (LEX)",f.yytext),21;break;case 15:return f.yytext="1",g.getLogger().debug("COLUMNS (LEX)",f.yytext),21;break;case 16:return 42;case 17:return"LINKSTYLE";case 18:return"INTERPOLATE";case 19:return this.pushState("CLASSDEF"),39;break;case 20:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 21:return this.popState(),this.pushState("CLASSDEFID"),40;break;case 22:return this.popState(),41;break;case 23:return this.pushState("CLASS"),43;break;case 24:return this.popState(),this.pushState("CLASS_STYLE"),44;break;case 25:return this.popState(),45;break;case 26:return this.pushState("STYLE_STMNT"),46;break;case 27:return this.popState(),this.pushState("STYLE_DEFINITION"),47;break;case 28:return this.popState(),48;break;case 29:return this.pushState("acc_title"),"acc_title";break;case 30:return this.popState(),"acc_title_value";break;case 31:return this.pushState("acc_descr"),"acc_descr";break;case 32:return this.popState(),"acc_descr_value";break;case 33:this.pushState("acc_descr_multiline");break;case 34:this.popState();break;case 35:return"acc_descr_multiline_value";case 36:return 30;case 37:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 38:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 39:return this.popState(),g.getLogger().debug("Lex: ))"),"NODE_DEND";break;case 40:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 41:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 42:return this.popState(),g.getLogger().debug("Lex: (-"),"NODE_DEND";break;case 43:return this.popState(),g.getLogger().debug("Lex: -)"),"NODE_DEND";break;case 44:return this.popState(),g.getLogger().debug("Lex: (("),"NODE_DEND";break;case 45:return this.popState(),g.getLogger().debug("Lex: ]]"),"NODE_DEND";break;case 46:return this.popState(),g.getLogger().debug("Lex: ("),"NODE_DEND";break;case 47:return this.popState(),g.getLogger().debug("Lex: ])"),"NODE_DEND";break;case 48:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 49:return this.popState(),g.getLogger().debug("Lex: /]"),"NODE_DEND";break;case 50:return this.popState(),g.getLogger().debug("Lex: )]"),"NODE_DEND";break;case 51:return this.popState(),g.getLogger().debug("Lex: )"),"NODE_DEND";break;case 52:return this.popState(),g.getLogger().debug("Lex: ]>"),"NODE_DEND";break;case 53:return this.popState(),g.getLogger().debug("Lex: ]"),"NODE_DEND";break;case 54:return g.getLogger().debug("Lexa: -)"),this.pushState("NODE"),35;break;case 55:return g.getLogger().debug("Lexa: (-"),this.pushState("NODE"),35;break;case 56:return g.getLogger().debug("Lexa: ))"),this.pushState("NODE"),35;break;case 57:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 58:return g.getLogger().debug("Lex: ((("),this.pushState("NODE"),35;break;case 59:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 60:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 61:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 62:return g.getLogger().debug("Lexc: >"),this.pushState("NODE"),35;break;case 63:return g.getLogger().debug("Lexa: (["),this.pushState("NODE"),35;break;case 64:return g.getLogger().debug("Lexa: )"),this.pushState("NODE"),35;break;case 65:return this.pushState("NODE"),35;break;case 66:return this.pushState("NODE"),35;break;case 67:return this.pushState("NODE"),35;break;case 68:return this.pushState("NODE"),35;break;case 69:return this.pushState("NODE"),35;break;case 70:return this.pushState("NODE"),35;break;case 71:return this.pushState("NODE"),35;break;case 72:return g.getLogger().debug("Lexa: ["),this.pushState("NODE"),35;break;case 73:return this.pushState("BLOCK_ARROW"),g.getLogger().debug("LEX ARR START"),37;break;case 74:return g.getLogger().debug("Lex: NODE_ID",f.yytext),31;break;case 75:return g.getLogger().debug("Lex: EOF",f.yytext),8;break;case 76:this.pushState("md_string");break;case 77:this.pushState("md_string");break;case 78:return"NODE_DESCR";case 79:this.popState();break;case 80:g.getLogger().debug("Lex: Starting string"),this.pushState("string");break;case 81:g.getLogger().debug("LEX ARR: Starting string"),this.pushState("string");break;case 82:return g.getLogger().debug("LEX: NODE_DESCR:",f.yytext),"NODE_DESCR";break;case 83:g.getLogger().debug("LEX POPPING"),this.popState();break;case 84:g.getLogger().debug("Lex: =>BAE"),this.pushState("ARROW_DIR");break;case 85:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (right): dir:",f.yytext),"DIR";break;case 86:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (left):",f.yytext),"DIR";break;case 87:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (x):",f.yytext),"DIR";break;case 88:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (y):",f.yytext),"DIR";break;case 89:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (up):",f.yytext),"DIR";break;case 90:return f.yytext=f.yytext.replace(/^,\s*/,""),g.getLogger().debug("Lex (down):",f.yytext),"DIR";break;case 91:return f.yytext="]>",g.getLogger().debug("Lex (ARROW_DIR end):",f.yytext),this.popState(),this.popState(),"BLOCK_ARROW_END";break;case 92:return g.getLogger().debug("Lex: LINK","#"+f.yytext+"#"),15;break;case 93:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 94:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 95:return g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 96:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 97:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 98:return g.getLogger().debug("Lex: START_LINK",f.yytext),this.pushState("LLABEL"),16;break;case 99:this.pushState("md_string");break;case 100:return g.getLogger().debug("Lex: Starting string"),this.pushState("string"),"LINK_LABEL";break;case 101:return this.popState(),g.getLogger().debug("Lex: LINK","#"+f.yytext+"#"),15;break;case 102:return this.popState(),g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 103:return this.popState(),g.getLogger().debug("Lex: LINK",f.yytext),15;break;case 104:return g.getLogger().debug("Lex: COLON",f.yytext),f.yytext=f.yytext.slice(1),27;break}},"anonymous"),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\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:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}};return D}();S.lexer=C;function _(){this.yy={}}return d(_,"Parser"),_.prototype=S,S.Parser=_,new _}();wt.parser=wt;var _e=wt,U=new Map,Et=[],kt=new Map,Zt="color",Gt="fill",De="bgFill",ae=",",Ne=I(),ht=new Map,Te=d(e=>At.sanitizeText(e,Ne),"sanitizeText"),Be=d(function(e,t=""){let a=ht.get(e);a||(a={id:e,styles:[],textStyles:[]},ht.set(e,a)),t?.split(ae).forEach(i=>{let l=i.replace(/([^;]*);/,"$1").trim();if(RegExp(Zt).exec(i)){let r=l.replace(Gt,De).replace(Zt,Gt);a.textStyles.push(r)}a.styles.push(l)})},"addStyleClass"),Ce=d(function(e,t=""){let a=U.get(e);t!=null&&(a.styles=t.split(ae))},"addStyle2Node"),Ie=d(function(e,t){e.split(",").forEach(function(a){let i=U.get(a);if(i===void 0){let l=a.trim();i={id:l,type:"na",children:[]},U.set(l,i)}i.classes||(i.classes=[]),i.classes.push(t)})},"setCssClass"),se=d((e,t)=>{let a=e.flat(),i=[],s=a.find(r=>r?.type==="column-setting")?.columns??-1;for(let r of a){if(typeof s=="number"&&s>0&&r.type!=="column-setting"&&typeof r.widthInColumns=="number"&&r.widthInColumns>s&&w.warn(`Block ${r.id} width ${r.widthInColumns} exceeds configured column width ${s}`),r.label&&(r.label=Te(r.label)),r.type==="classDef"){Be(r.id,r.css);continue}if(r.type==="applyClass"){Ie(r.id,r?.styleClass??"");continue}if(r.type==="applyStyles"){r?.stylesStr&&Ce(r.id,r?.stylesStr);continue}if(r.type==="column-setting")t.columns=r.columns??-1;else if(r.type==="edge"){let n=(kt.get(r.id)??0)+1;kt.set(r.id,n),r.id=n+"-"+r.id,Et.push(r)}else{r.label||(r.type==="composite"?r.label="":r.label=r.id);let n=U.get(r.id);if(n===void 0?U.set(r.id,r):(r.type!=="na"&&(n.type=r.type),r.label!==r.id&&(n.label=r.label)),r.children&&se(r.children,r),r.type==="space"){let c=r.width??1;for(let u=0;u{w.debug("Clear called"),Ft(),rt={id:"root",type:"composite",children:[],columns:-1},U=new Map([["root",rt]]),_t=[],ht=new Map,Et=[],kt=new Map},"clear");function ie(e){switch(w.debug("typeStr2Type",e),e){case"[]":return"square";case"()":return w.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"}}d(ie,"typeStr2Type");function ne(e){switch(w.debug("typeStr2Type",e),e){case"==":return"thick";default:return"normal"}}d(ne,"edgeTypeStr2Type");function le(e){switch(e.replace(/^[\s-]+|[\s-]+$/g,"")){case"x":return"arrow_cross";case"o":return"arrow_circle";case">":return"arrow_point";default:return""}}d(le,"edgeStrToEdgeData");var qt=0,Re=d(()=>(qt++,"id-"+Math.random().toString(36).substr(2,12)+"-"+qt),"generateId"),ze=d(e=>{rt.children=e,se(e,rt),_t=rt.children},"setHierarchy"),Ae=d(e=>{let t=U.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},"getColumns"),Me=d(()=>[...U.values()],"getBlocksFlat"),Fe=d(()=>_t||[],"getBlocks"),We=d(()=>Et,"getEdges"),Pe=d(e=>U.get(e),"getBlock"),Ye=d(e=>{U.set(e.id,e)},"setBlock"),He=d(()=>w,"getLogger"),Ke=d(function(){return ht},"getClasses"),Xe={getConfig:d(()=>$().block,"getConfig"),typeStr2Type:ie,edgeTypeStr2Type:ne,edgeStrToEdgeData:le,getLogger:He,getBlocksFlat:Me,getBlocks:Fe,getEdges:We,setHierarchy:ze,getBlock:Pe,setBlock:Ye,getColumns:Ae,getClasses:Ke,clear:Oe,generateId:Re},Ue=Xe,ct=d((e,t)=>{let a=Rt,i=a(e,"r"),l=a(e,"g"),s=a(e,"b");return Ot(i,l,s,t)},"fade"),je=d(e=>`.label { + font-family: ${e.fontFamily}; + color: ${e.nodeTextColor||e.textColor}; + } + .cluster-label text { + fill: ${e.titleColor}; + } + .cluster-label span,p { + color: ${e.titleColor}; + } + + + + .label text,span,p { + fill: ${e.nodeTextColor||e.textColor}; + color: ${e.nodeTextColor||e.textColor}; + } + + .node rect, + .node circle, + .node ellipse, + .node polygon, + .node path { + fill: ${e.mainBkg}; + stroke: ${e.nodeBorder}; + stroke-width: 1px; + } + .flowchart-label text { + text-anchor: middle; + } + // .flowchart-label .text-outer-tspan { + // text-anchor: middle; + // } + // .flowchart-label .text-inner-tspan { + // text-anchor: start; + // } + + .node .label { + text-align: center; + } + .node.clickable { + cursor: pointer; + } + + .arrowheadPath { + fill: ${e.arrowheadColor}; + } + + .edgePath .path { + stroke: ${e.lineColor}; + stroke-width: 2.0px; + } + + .flowchart-link { + stroke: ${e.lineColor}; + fill: none; + } + + .edgeLabel { + background-color: ${e.edgeLabelBackground}; + rect { + opacity: 0.5; + background-color: ${e.edgeLabelBackground}; + fill: ${e.edgeLabelBackground}; + } + text-align: center; + } + + /* For html labels only */ + .labelBkg { + background-color: ${ct(e.edgeLabelBackground,.5)}; + // background-color: + } + + .node .cluster { + // fill: ${ct(e.mainBkg,.5)}; + fill: ${ct(e.clusterBkg,.5)}; + stroke: ${ct(e.clusterBorder,.2)}; + box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; + stroke-width: 1px; + } + + .cluster text { + fill: ${e.titleColor}; + } + + .cluster span,p { + color: ${e.titleColor}; + } + /* .cluster div { + color: ${e.titleColor}; + } */ + + div.mermaidTooltip { + position: absolute; + text-align: center; + max-width: 200px; + padding: 2px; + font-family: ${e.fontFamily}; + font-size: 12px; + background: ${e.tertiaryColor}; + border: 1px solid ${e.border2}; + border-radius: 2px; + pointer-events: none; + z-index: 100; + } + + .flowchartTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${e.textColor}; + } + ${Vt()} +`,"getStyles"),Ve=je,Ze=d((e,t,a,i)=>{t.forEach(l=>{sr[l](e,a,i)})},"insertMarkers"),Ge=d((e,t,a)=>{w.trace("Making markers for ",a),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionStart").attr("class","marker extension "+t).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"),e.append("defs").append("marker").attr("id",a+"_"+t+"-extensionEnd").attr("class","marker extension "+t).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"),qe=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionStart").attr("class","marker composition "+t).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"),e.append("defs").append("marker").attr("id",a+"_"+t+"-compositionEnd").attr("class","marker composition "+t).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"),Je=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationStart").attr("class","marker aggregation "+t).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"),e.append("defs").append("marker").attr("id",a+"_"+t+"-aggregationEnd").attr("class","marker aggregation "+t).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"),Qe=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyStart").attr("class","marker dependency "+t).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"),e.append("defs").append("marker").attr("id",a+"_"+t+"-dependencyEnd").attr("class","marker dependency "+t).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"),$e=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopStart").attr("class","marker lollipop "+t).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),e.append("defs").append("marker").attr("id",a+"_"+t+"-lollipopEnd").attr("class","marker lollipop "+t).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"),tr=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-pointEnd").attr("class","marker "+t).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"),e.append("marker").attr("id",a+"_"+t+"-pointStart").attr("class","marker "+t).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"),er=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-circleEnd").attr("class","marker "+t).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"),e.append("marker").attr("id",a+"_"+t+"-circleStart").attr("class","marker "+t).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"),rr=d((e,t,a)=>{e.append("marker").attr("id",a+"_"+t+"-crossEnd").attr("class","marker cross "+t).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"),e.append("marker").attr("id",a+"_"+t+"-crossStart").attr("class","marker cross "+t).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"),ar=d((e,t,a)=>{e.append("defs").append("marker").attr("id",a+"_"+t+"-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"),sr={extension:Ge,composition:qe,aggregation:Je,dependency:Qe,lollipop:$e,point:tr,circle:er,cross:rr,barb:ar},ir=Ze,O=I()?.block?.padding??8;function ce(e,t){if(e===0||!Number.isInteger(e))throw new Error("Columns must be an integer !== 0.");if(t<0||!Number.isInteger(t))throw new Error("Position must be a non-negative integer."+t);if(e<0)return{px:t,py:0};if(e===1)return{px:0,py:t};let a=t%e,i=Math.floor(t/e);return{px:a,py:i}}d(ce,"calculateBlockPosition");var nr=d(e=>{let t=0,a=0;for(let i of e.children){let{width:l,height:s,x:r,y:n}=i.size??{width:0,height:0,x:0,y:0};w.debug("getMaxChildSize abc95 child:",i.id,"width:",l,"height:",s,"x:",r,"y:",n,i.type),i.type!=="space"&&(l>t&&(t=l/(e.widthInColumns??1)),s>a&&(a=s))}return{width:t,height:a}},"getMaxChildSize");function dt(e,t,a=0,i=0){w.debug("setBlockSizes abc95 (start)",e.id,e?.size?.x,"block width =",e?.size,"siblingWidth",a),e?.size?.width||(e.size={width:a,height:i,x:0,y:0});let l=0,s=0;if(e.children?.length>0){for(let y of e.children)dt(y,t);let r=nr(e);l=r.width,s=r.height,w.debug("setBlockSizes abc95 maxWidth of",e.id,":s children is ",l,s);for(let y of e.children)y.size&&(w.debug(`abc95 Setting size of children of ${e.id} id=${y.id} ${l} ${s} ${JSON.stringify(y.size)}`),y.size.width=l*(y.widthInColumns??1)+O*((y.widthInColumns??1)-1),y.size.height=s,y.size.x=0,y.size.y=0,w.debug(`abc95 updating size of ${e.id} children child:${y.id} maxWidth:${l} maxHeight:${s}`));for(let y of e.children)dt(y,t,l,s);let n=e.columns??-1,c=0;for(let y of e.children)c+=y.widthInColumns??1;let u=e.children.length;n>0&&n0?Math.min(e.children.length,n):e.children.length;if(y>0){let L=(b-y*O-O)/y;w.debug("abc95 (growing to fit) width",e.id,b,e.size?.width,L);for(let E of e.children)E.size&&(E.size.width=L)}}e.size={width:b,height:m,x:0,y:0}}w.debug("setBlockSizes abc94 (done)",e.id,e?.size?.x,e?.size?.width,e?.size?.y,e?.size?.height)}d(dt,"setBlockSizes");function Dt(e,t){w.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);let a=e.columns??-1;if(w.debug("layoutBlocks columns abc95",e.id,"=>",a,e),e.children&&e.children.length>0){let i=e?.children[0]?.size?.width??0,l=e.children.length*i+(e.children.length-1)*O;w.debug("widthOfChildren 88",l,"posX");let s=0;w.debug("abc91 block?.size?.x",e.id,e?.size?.x);let r=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-O,n=0;for(let c of e.children){let u=e;if(!c.size)continue;let{width:o,height:b}=c.size,{px:m,py:y}=ce(a,s);if(y!=n&&(n=y,r=e?.size?.x?e?.size?.x+(-e?.size?.width/2||0):-O,w.debug("New row in layout for block",e.id," and child ",c.id,n)),w.debug(`abc89 layout blocks (child) id: ${c.id} Pos: ${s} (px, py) ${m},${y} (${u?.size?.x},${u?.size?.y}) parent: ${u.id} width: ${o}${O}`),u.size){let E=o/2;c.size.x=r+O+E,w.debug(`abc91 layout blocks (calc) px, pyid:${c.id} startingPos=X${r} new startingPosX${c.size.x} ${E} padding=${O} width=${o} halfWidth=${E} => x:${c.size.x} y:${c.size.y} ${c.widthInColumns} (width * (child?.w || 1)) / 2 ${o*(c?.widthInColumns??1)/2}`),r=c.size.x+E,c.size.y=u.size.y-u.size.height/2+y*(b+O)+b/2+O,w.debug(`abc88 layout blocks (calc) px, pyid:${c.id}startingPosX${r}${O}${E}=>x:${c.size.x}y:${c.size.y}${c.widthInColumns}(width * (child?.w || 1)) / 2${o*(c?.widthInColumns??1)/2}`)}c.children&&Dt(c,t);let L=c?.widthInColumns??1;a>0&&(L=Math.min(L,a-s%a)),s+=L,w.debug("abc88 columnsPos",c,s)}}w.debug(`layout blocks (<==layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`)}d(Dt,"layoutBlocks");function Nt(e,{minX:t,minY:a,maxX:i,maxY:l}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!=="root"){let{x:s,y:r,width:n,height:c}=e.size;s-n/2i&&(i=s+n/2),r+c/2>l&&(l=r+c/2)}if(e.children)for(let s of e.children)({minX:t,minY:a,maxX:i,maxY:l}=Nt(s,{minX:t,minY:a,maxX:i,maxY:l}));return{minX:t,minY:a,maxX:i,maxY:l}}d(Nt,"findBounds");function oe(e){let t=e.getBlock("root");if(!t)return;dt(t,e,0,0),Dt(t,e),w.debug("getBlocks",JSON.stringify(t,null,2));let{minX:a,minY:i,maxX:l,maxY:s}=Nt(t),r=s-i,n=l-a;return{x:a,y:i,width:n,height:r}}d(oe,"layout");function Lt(e,t){t&&e.attr("style",t)}d(Lt,"applyStyle");function he(e,t){let a=N(document.createElementNS("http://www.w3.org/2000/svg","foreignObject")),i=a.append("xhtml:div"),l=e.label,s=e.isNode?"nodeLabel":"edgeLabel",r=i.append("span");return r.html(nt(l,t)),Lt(r,e.labelStyle),r.attr("class",s),Lt(i,e.labelStyle),i.style("display","inline-block"),i.style("white-space","nowrap"),i.attr("xmlns","http://www.w3.org/1999/xhtml"),a.node()}d(he,"addHtmlLabel");var lr=d(async(e,t,a,i)=>{let l=e||"";typeof l=="object"&&(l=l[0]);let s=I();if(X(s.flowchart.htmlLabels)){l=l.replace(/\\n|\n/g,"
"),w.debug("vertexText"+l);let r=await Xt(lt(l)),n={isNode:i,label:r,labelStyle:t.replace("fill:","color:")};return he(n,s)}else{let r=document.createElementNS("http://www.w3.org/2000/svg","text");r.setAttribute("style",t.replace("color:","fill:"));let n=[];typeof l=="string"?n=l.split(/\\n|\n|/gi):Array.isArray(l)?n=l:n=[];for(let c of n){let u=document.createElementNS("http://www.w3.org/2000/svg","tspan");u.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),u.setAttribute("dy","1em"),u.setAttribute("x","0"),a?u.setAttribute("class","title-row"):u.setAttribute("class","row"),u.textContent=c.trim(),r.appendChild(u)}return r}},"createLabel"),K=lr,cr=d((e,t,a,i,l)=>{t.arrowTypeStart&&Jt(e,"start",t.arrowTypeStart,a,i,l),t.arrowTypeEnd&&Jt(e,"end",t.arrowTypeEnd,a,i,l)},"addEdgeMarkers"),or={arrow_cross:"cross",arrow_point:"point",arrow_barb:"barb",arrow_circle:"circle",aggregation:"aggregation",extension:"extension",composition:"composition",dependency:"dependency",lollipop:"lollipop"},Jt=d((e,t,a,i,l,s)=>{let r=or[a];if(!r){w.warn(`Unknown arrow type: ${a}`);return}let n=t==="start"?"Start":"End";e.attr(`marker-${t}`,`url(${i}#${l}_${s}-${r}${n})`)},"addEdgeMarker"),St={},M={},hr=d(async(e,t)=>{let a=I(),i=X(a.flowchart.htmlLabels),l=t.labelType==="markdown"?mt(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:!0},a):await K(t.label,t.labelStyle),s=e.insert("g").attr("class","edgeLabel"),r=s.insert("g").attr("class","label");r.node().appendChild(l);let n=l.getBBox();if(i){let u=l.children[0],o=N(l);n=u.getBoundingClientRect(),o.attr("width",n.width),o.attr("height",n.height)}r.attr("transform","translate("+-n.width/2+", "+-n.height/2+")"),St[t.id]=s,t.width=n.width,t.height=n.height;let c;if(t.startLabelLeft){let u=await K(t.startLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),b=o.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),M[t.id]||(M[t.id]={}),M[t.id].startLeft=o,et(c,t.startLabelLeft)}if(t.startLabelRight){let u=await K(t.startLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),b=o.insert("g").attr("class","inner");c=o.node().appendChild(u),b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),M[t.id]||(M[t.id]={}),M[t.id].startRight=o,et(c,t.startLabelRight)}if(t.endLabelLeft){let u=await K(t.endLabelLeft,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),b=o.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),o.node().appendChild(u),M[t.id]||(M[t.id]={}),M[t.id].endLeft=o,et(c,t.endLabelLeft)}if(t.endLabelRight){let u=await K(t.endLabelRight,t.labelStyle),o=e.insert("g").attr("class","edgeTerminals"),b=o.insert("g").attr("class","inner");c=b.node().appendChild(u);let m=u.getBBox();b.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),o.node().appendChild(u),M[t.id]||(M[t.id]={}),M[t.id].endRight=o,et(c,t.endLabelRight)}return l},"insertEdgeLabel");function et(e,t){I().flowchart.htmlLabels&&e&&(e.style.width=t.length*9+"px",e.style.height="12px")}d(et,"setTerminalWidth");var dr=d((e,t)=>{w.debug("Moving label abc88 ",e.id,e.label,St[e.id],t);let a=t.updatedPath?t.updatedPath:t.originalPath,i=I(),{subGraphTitleTotalMargin:l}=Ht(i);if(e.label){let s=St[e.id],r=e.x,n=e.y;if(a){let c=tt.calcLabelPosition(a);w.debug("Moving label "+e.label+" from (",r,",",n,") to (",c.x,",",c.y,") abc88"),t.updatedPath&&(r=c.x,n=c.y)}s.attr("transform",`translate(${r}, ${n+l/2})`)}if(e.startLabelLeft){let s=M[e.id].startLeft,r=e.x,n=e.y;if(a){let c=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_left",a);r=c.x,n=c.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.startLabelRight){let s=M[e.id].startRight,r=e.x,n=e.y;if(a){let c=tt.calcTerminalLabelPosition(e.arrowTypeStart?10:0,"start_right",a);r=c.x,n=c.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelLeft){let s=M[e.id].endLeft,r=e.x,n=e.y;if(a){let c=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_left",a);r=c.x,n=c.y}s.attr("transform",`translate(${r}, ${n})`)}if(e.endLabelRight){let s=M[e.id].endRight,r=e.x,n=e.y;if(a){let c=tt.calcTerminalLabelPosition(e.arrowTypeEnd?10:0,"end_right",a);r=c.x,n=c.y}s.attr("transform",`translate(${r}, ${n})`)}},"positionEdgeLabel"),gr=d((e,t)=>{let a=e.x,i=e.y,l=Math.abs(t.x-a),s=Math.abs(t.y-i),r=e.width/2,n=e.height/2;return l>=r||s>=n},"outsideNode"),ur=d((e,t,a)=>{w.debug(`intersection calc abc89: + outsidePoint: ${JSON.stringify(t)} + insidePoint : ${JSON.stringify(a)} + node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);let i=e.x,l=e.y,s=Math.abs(i-a.x),r=e.width/2,n=a.xMath.abs(i-t.x)*c){let b=a.y{w.debug("abc88 cutPathAtIntersect",e,t);let a=[],i=e[0],l=!1;return e.forEach(s=>{if(!gr(t,s)&&!l){let r=ur(t,i,s),n=!1;a.forEach(c=>{n=n||c.x===r.x&&c.y===r.y}),a.some(c=>c.x===r.x&&c.y===r.y)||a.push(r),l=!0}else i=s,l||a.push(s)}),a},"cutPathAtIntersect"),pr=d(function(e,t,a,i,l,s,r){let n=a.points;w.debug("abc88 InsertEdge: edge=",a,"e=",t);let c=!1,u=s.node(t.v);var o=s.node(t.w);o?.intersect&&u?.intersect&&(n=n.slice(1,a.points.length-1),n.unshift(u.intersect(n[0])),n.push(o.intersect(n[n.length-1]))),a.toCluster&&(w.debug("to cluster abc88",i[a.toCluster]),n=Qt(a.points,i[a.toCluster].node),c=!0),a.fromCluster&&(w.debug("from cluster abc88",i[a.fromCluster]),n=Qt(n.reverse(),i[a.fromCluster].node).reverse(),c=!0);let b=n.filter(x=>!Number.isNaN(x.y)),m=Pt;a.curve&&(l==="graph"||l==="flowchart")&&(m=a.curve);let{x:y,y:L}=Yt(a),E=Wt().x(y).y(L).curve(m),S;switch(a.thickness){case"normal":S="edge-thickness-normal";break;case"thick":S="edge-thickness-thick";break;case"invisible":S="edge-thickness-thick";break;default:S=""}switch(a.pattern){case"solid":S+=" edge-pattern-solid";break;case"dotted":S+=" edge-pattern-dotted";break;case"dashed":S+=" edge-pattern-dashed";break}let C=e.append("path").attr("d",E(b)).attr("id",a.id).attr("class"," "+S+(a.classes?" "+a.classes:"")).attr("style",a.style),_="";(I().flowchart.arrowMarkerAbsolute||I().state.arrowMarkerAbsolute)&&(_=zt(!0)),cr(C,a,_,r,l);let D={};return c&&(D.updatedPath=n),D.originalPath=a.points,D},"insertEdge"),fr=d(e=>{let t=new Set;for(let a of e)switch(a){case"x":t.add("right"),t.add("left");break;case"y":t.add("up"),t.add("down");break;default:t.add(a);break}return t},"expandAndDeduplicateDirections"),br=d((e,t,a)=>{let i=fr(e),l=2,s=t.height+2*a.padding,r=s/l,n=t.width+2*r+a.padding,c=a.padding/2;return i.has("right")&&i.has("left")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:r,y:0},{x:n/2,y:2*c},{x:n-r,y:0},{x:n,y:0},{x:n,y:-s/3},{x:n+2*c,y:-s/2},{x:n,y:-2*s/3},{x:n,y:-s},{x:n-r,y:-s},{x:n/2,y:-s-2*c},{x:r,y:-s},{x:0,y:-s},{x:0,y:-2*s/3},{x:-2*c,y:-s/2},{x:0,y:-s/3}]:i.has("right")&&i.has("left")&&i.has("up")?[{x:r,y:0},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:r,y:-s},{x:0,y:-s/2}]:i.has("right")&&i.has("left")&&i.has("down")?[{x:0,y:0},{x:r,y:-s},{x:n-r,y:-s},{x:n,y:0}]:i.has("right")&&i.has("up")&&i.has("down")?[{x:0,y:0},{x:n,y:-r},{x:n,y:-s+r},{x:0,y:-s}]:i.has("left")&&i.has("up")&&i.has("down")?[{x:n,y:0},{x:0,y:-r},{x:0,y:-s+r},{x:n,y:-s}]:i.has("right")&&i.has("left")?[{x:r,y:0},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s},{x:0,y:-s/2}]:i.has("up")&&i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:r,y:-c},{x:r,y:-s+c},{x:0,y:-s+c},{x:n/2,y:-s},{x:n,y:-s+c},{x:n-r,y:-s+c},{x:n-r,y:-c},{x:n,y:-c}]:i.has("right")&&i.has("up")?[{x:0,y:0},{x:n,y:-r},{x:0,y:-s}]:i.has("right")&&i.has("down")?[{x:0,y:0},{x:n,y:0},{x:0,y:-s}]:i.has("left")&&i.has("up")?[{x:n,y:0},{x:0,y:-r},{x:n,y:-s}]:i.has("left")&&i.has("down")?[{x:n,y:0},{x:0,y:0},{x:n,y:-s}]:i.has("right")?[{x:r,y:-c},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s+c}]:i.has("left")?[{x:r,y:0},{x:r,y:-c},{x:n-r,y:-c},{x:n-r,y:-s+c},{x:r,y:-s+c},{x:r,y:-s},{x:0,y:-s/2}]:i.has("up")?[{x:r,y:-c},{x:r,y:-s+c},{x:0,y:-s+c},{x:n/2,y:-s},{x:n,y:-s+c},{x:n-r,y:-s+c},{x:n-r,y:-c}]:i.has("down")?[{x:n/2,y:0},{x:0,y:-c},{x:r,y:-c},{x:r,y:-s+c},{x:n-r,y:-s+c},{x:n-r,y:-c},{x:n,y:-c}]:[{x:0,y:0}]},"getArrowPoints");function de(e,t){return e.intersect(t)}d(de,"intersectNode");var xr=de;function ge(e,t,a,i){var l=e.x,s=e.y,r=l-i.x,n=s-i.y,c=Math.sqrt(t*t*n*n+a*a*r*r),u=Math.abs(t*a*r/c);i.x0}d(vt,"sameSign");var mr=fe,wr=be;function be(e,t,a){var i=e.x,l=e.y,s=[],r=Number.POSITIVE_INFINITY,n=Number.POSITIVE_INFINITY;typeof t.forEach=="function"?t.forEach(function(L){r=Math.min(r,L.x),n=Math.min(n,L.y)}):(r=Math.min(r,t.x),n=Math.min(n,t.y));for(var c=i-e.width/2-r,u=l-e.height/2-n,o=0;o1&&s.sort(function(L,E){var S=L.x-a.x,C=L.y-a.y,_=Math.sqrt(S*S+C*C),D=E.x-a.x,x=E.y-a.y,g=Math.sqrt(D*D+x*x);return _{var a=e.x,i=e.y,l=t.x-a,s=t.y-i,r=e.width/2,n=e.height/2,c,u;return Math.abs(s)*r>Math.abs(l)*n?(s<0&&(n=-n),c=s===0?0:n*l/s,u=n):(l<0&&(r=-r),c=r,u=l===0?0:r*s/l),{x:a+c,y:i+u}},"intersectRect"),Lr=kr,T={node:xr,circle:yr,ellipse:ue,polygon:wr,rect:Lr},A=d(async(e,t,a,i)=>{let l=I(),s,r=t.useHtmlLabels||X(l.flowchart.htmlLabels);a?s=a:s="node default";let n=e.insert("g").attr("class",s).attr("id",t.domId||t.id),c=n.insert("g").attr("class","label").attr("style",t.labelStyle),u;t.labelText===void 0?u="":u=typeof t.labelText=="string"?t.labelText:t.labelText[0];let o=c.node(),b;t.labelType==="markdown"?b=mt(c,nt(lt(u),l),{useHtmlLabels:r,width:t.width||l.flowchart.wrappingWidth,classes:"markdown-node-label"},l):b=o.appendChild(await K(nt(lt(u),l),t.labelStyle,!1,i));let m=b.getBBox(),y=t.padding/2;if(X(l.flowchart.htmlLabels)){let L=b.children[0],E=N(b),S=L.getElementsByTagName("img");if(S){let C=u.replace(/]*>/g,"").trim()==="";await Promise.all([...S].map(_=>new Promise(D=>{function x(){if(_.style.display="flex",_.style.flexDirection="column",C){let g=l.fontSize?l.fontSize:window.getComputedStyle(document.body).fontSize,f=5,k=parseInt(g,10)*f+"px";_.style.minWidth=k,_.style.maxWidth=k}else _.style.width="100%";D(_)}d(x,"setupImage"),setTimeout(()=>{_.complete&&x()}),_.addEventListener("error",x),_.addEventListener("load",x)})))}m=L.getBoundingClientRect(),E.attr("width",m.width),E.attr("height",m.height)}return r?c.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"):c.attr("transform","translate(0, "+-m.height/2+")"),t.centerLabel&&c.attr("transform","translate("+-m.width/2+", "+-m.height/2+")"),c.insert("rect",":first-child"),{shapeSvg:n,bbox:m,halfPadding:y,label:c}},"labelHelper"),B=d((e,t)=>{let a=t.node().getBBox();e.width=a.width,e.height=a.height},"updateNodeBounds");function j(e,t,a,i){return e.insert("polygon",":first-child").attr("points",i.map(function(l){return l.x+","+l.y}).join(" ")).attr("class","label-container").attr("transform","translate("+-t/2+","+a/2+")")}d(j,"insertPolygonShape");var Sr=d(async(e,t)=>{t.useHtmlLabels||I().flowchart.htmlLabels||(t.centerLabel=!0);let{shapeSvg:i,bbox:l,halfPadding:s}=await A(e,t,"node "+t.classes,!0);w.info("Classes = ",t.classes);let r=i.insert("rect",":first-child");return r.attr("rx",t.rx).attr("ry",t.ry).attr("x",-l.width/2-s).attr("y",-l.height/2-s).attr("width",l.width+t.padding).attr("height",l.height+t.padding),B(t,r),t.intersect=function(n){return T.rect(t,n)},i},"note"),vr=Sr,$t=d(e=>e?" "+e:"","formatClass"),Y=d((e,t)=>`${t||"node default"}${$t(e.classes)} ${$t(e.class)}`,"getClassesFromNode"),te=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=l+s,n=[{x:r/2,y:0},{x:r,y:-r/2},{x:r/2,y:-r},{x:0,y:-r/2}];w.info("Question main (Circle)");let c=j(a,r,r,n);return c.attr("style",t.style),B(t,c),t.intersect=function(u){return w.warn("Intersect called"),T.polygon(t,n,u)},a},"question"),Er=d((e,t)=>{let a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=28,l=[{x:0,y:i/2},{x:i/2,y:0},{x:0,y:-i/2},{x:-i/2,y:0}];return a.insert("polygon",":first-child").attr("points",l.map(function(r){return r.x+","+r.y}).join(" ")).attr("class","state-start").attr("r",7).attr("width",28).attr("height",28),t.width=28,t.height=28,t.intersect=function(r){return T.circle(t,14,r)},a},"choice"),_r=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=4,s=i.height+t.padding,r=s/l,n=i.width+2*r+t.padding,c=[{x:r,y:0},{x:n-r,y:0},{x:n,y:-s/2},{x:n-r,y:-s},{x:r,y:-s},{x:0,y:-s/2}],u=j(a,n,s,c);return u.attr("style",t.style),B(t,u),t.intersect=function(o){return T.polygon(t,c,o)},a},"hexagon"),Dr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,void 0,!0),l=2,s=i.height+2*t.padding,r=s/l,n=i.width+2*r+t.padding,c=br(t.directions,i,t),u=j(a,n,s,c);return u.attr("style",t.style),B(t,u),t.intersect=function(o){return T.polygon(t,c,o)},a},"block_arrow"),Nr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-s/2,y:0},{x:l,y:0},{x:l,y:-s},{x:-s/2,y:-s},{x:0,y:-s/2}];return j(a,l,s,r).attr("style",t.style),t.width=l+s,t.height=s,t.intersect=function(c){return T.polygon(t,r,c)},a},"rect_left_inv_arrow"),Tr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-2*s/6,y:0},{x:l-s/6,y:0},{x:l+2*s/6,y:-s},{x:s/6,y:-s}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"lean_right"),Br=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:2*s/6,y:0},{x:l+s/6,y:0},{x:l-2*s/6,y:-s},{x:-s/6,y:-s}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"lean_left"),Cr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:-2*s/6,y:0},{x:l+2*s/6,y:0},{x:l-s/6,y:-s},{x:s/6,y:-s}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"trapezoid"),Ir=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:s/6,y:0},{x:l-s/6,y:0},{x:l+2*s/6,y:-s},{x:-2*s/6,y:-s}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"inv_trapezoid"),Or=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:0,y:0},{x:l+s/2,y:0},{x:l,y:-s/2},{x:l+s/2,y:-s},{x:0,y:-s}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"rect_right_inv_arrow"),Rr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=l/2,r=s/(2.5+l/50),n=i.height+r+t.padding,c="M 0,"+r+" a "+s+","+r+" 0,0,0 "+l+" 0 a "+s+","+r+" 0,0,0 "+-l+" 0 l 0,"+n+" a "+s+","+r+" 0,0,0 "+l+" 0 l 0,"+-n,u=a.attr("label-offset-y",r).insert("path",":first-child").attr("style",t.style).attr("d",c).attr("transform","translate("+-l/2+","+-(n/2+r)+")");return B(t,u),t.intersect=function(o){let b=T.rect(t,o),m=b.x-t.x;if(s!=0&&(Math.abs(m)t.height/2-r)){let y=r*r*(1-m*m/(s*s));y!=0&&(y=Math.sqrt(y)),y=r-y,o.y-t.y>0&&(y=-y),b.y+=y}return b},a},"cylinder"),zr=d(async(e,t)=>{let{shapeSvg:a,bbox:i,halfPadding:l}=await A(e,t,"node "+t.classes+" "+t.class,!0),s=a.insert("rect",":first-child"),r=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-r/2:-i.width/2-l,u=t.positioned?-n/2:-i.height/2-l;if(s.attr("class","basic label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",u).attr("width",r).attr("height",n),t.props){let o=new Set(Object.keys(t.props));t.props.borders&&(gt(s,t.props.borders,r,n),o.delete("borders")),o.forEach(b=>{w.warn(`Unknown node property ${b}`)})}return B(t,s),t.intersect=function(o){return T.rect(t,o)},a},"rect"),Ar=d(async(e,t)=>{let{shapeSvg:a,bbox:i,halfPadding:l}=await A(e,t,"node "+t.classes,!0),s=a.insert("rect",":first-child"),r=t.positioned?t.width:i.width+t.padding,n=t.positioned?t.height:i.height+t.padding,c=t.positioned?-r/2:-i.width/2-l,u=t.positioned?-n/2:-i.height/2-l;if(s.attr("class","basic cluster composite label-container").attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("x",c).attr("y",u).attr("width",r).attr("height",n),t.props){let o=new Set(Object.keys(t.props));t.props.borders&&(gt(s,t.props.borders,r,n),o.delete("borders")),o.forEach(b=>{w.warn(`Unknown node property ${b}`)})}return B(t,s),t.intersect=function(o){return T.rect(t,o)},a},"composite"),Mr=d(async(e,t)=>{let{shapeSvg:a}=await A(e,t,"label",!0);w.trace("Classes = ",t.class);let i=a.insert("rect",":first-child"),l=0,s=0;if(i.attr("width",l).attr("height",s),a.attr("class","label edgeLabel"),t.props){let r=new Set(Object.keys(t.props));t.props.borders&&(gt(i,t.props.borders,l,s),r.delete("borders")),r.forEach(n=>{w.warn(`Unknown node property ${n}`)})}return B(t,i),t.intersect=function(r){return T.rect(t,r)},a},"labelRect");function gt(e,t,a,i){let l=[],s=d(n=>{l.push(n,0)},"addBorder"),r=d(n=>{l.push(0,n)},"skipBorder");t.includes("t")?(w.debug("add top border"),s(a)):r(a),t.includes("r")?(w.debug("add right border"),s(i)):r(i),t.includes("b")?(w.debug("add bottom border"),s(a)):r(a),t.includes("l")?(w.debug("add left border"),s(i)):r(i),e.attr("stroke-dasharray",l.join(" "))}d(gt,"applyNodePropertyBorders");var Fr=d(async(e,t)=>{let a;t.classes?a="node "+t.classes:a="node default";let i=e.insert("g").attr("class",a).attr("id",t.domId||t.id),l=i.insert("rect",":first-child"),s=i.insert("line"),r=i.insert("g").attr("class","label"),n=t.labelText.flat?t.labelText.flat():t.labelText,c="";typeof n=="object"?c=n[0]:c=n,w.info("Label text abc79",c,n,typeof n=="object");let u=r.node().appendChild(await K(c,t.labelStyle,!0,!0)),o={width:0,height:0};if(X(I().flowchart.htmlLabels)){let E=u.children[0],S=N(u);o=E.getBoundingClientRect(),S.attr("width",o.width),S.attr("height",o.height)}w.info("Text 2",n);let b=n.slice(1,n.length),m=u.getBBox(),y=r.node().appendChild(await K(b.join?b.join("
"):b,t.labelStyle,!0,!0));if(X(I().flowchart.htmlLabels)){let E=y.children[0],S=N(y);o=E.getBoundingClientRect(),S.attr("width",o.width),S.attr("height",o.height)}let L=t.padding/2;return N(y).attr("transform","translate( "+(o.width>m.width?0:(m.width-o.width)/2)+", "+(m.height+L+5)+")"),N(u).attr("transform","translate( "+(o.width{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.height+t.padding,s=i.width+l/4+t.padding,r=a.insert("rect",":first-child").attr("style",t.style).attr("rx",l/2).attr("ry",l/2).attr("x",-s/2).attr("y",-l/2).attr("width",s).attr("height",l);return B(t,r),t.intersect=function(n){return T.rect(t,n)},a},"stadium"),Pr=d(async(e,t)=>{let{shapeSvg:a,bbox:i,halfPadding:l}=await A(e,t,Y(t,void 0),!0),s=a.insert("circle",":first-child");return s.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),w.info("Circle main"),B(t,s),t.intersect=function(r){return w.info("Circle intersect",t,i.width/2+l,r),T.circle(t,i.width/2+l,r)},a},"circle"),Yr=d(async(e,t)=>{let{shapeSvg:a,bbox:i,halfPadding:l}=await A(e,t,Y(t,void 0),!0),s=5,r=a.insert("g",":first-child"),n=r.insert("circle"),c=r.insert("circle");return r.attr("class",t.class),n.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l+s).attr("width",i.width+t.padding+s*2).attr("height",i.height+t.padding+s*2),c.attr("style",t.style).attr("rx",t.rx).attr("ry",t.ry).attr("r",i.width/2+l).attr("width",i.width+t.padding).attr("height",i.height+t.padding),w.info("DoubleCircle main"),B(t,n),t.intersect=function(u){return w.info("DoubleCircle intersect",t,i.width/2+l+s,u),T.circle(t,i.width/2+l+s,u)},a},"doublecircle"),Hr=d(async(e,t)=>{let{shapeSvg:a,bbox:i}=await A(e,t,Y(t,void 0),!0),l=i.width+t.padding,s=i.height+t.padding,r=[{x:0,y:0},{x:l,y:0},{x:l,y:-s},{x:0,y:-s},{x:0,y:0},{x:-8,y:0},{x:l+8,y:0},{x:l+8,y:-s},{x:-8,y:-s},{x:-8,y:0}],n=j(a,l,s,r);return n.attr("style",t.style),B(t,n),t.intersect=function(c){return T.polygon(t,r,c)},a},"subroutine"),Kr=d((e,t)=>{let a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child");return i.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),B(t,i),t.intersect=function(l){return T.circle(t,7,l)},a},"start"),ee=d((e,t,a)=>{let i=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),l=70,s=10;a==="LR"&&(l=10,s=70);let r=i.append("rect").attr("x",-1*l/2).attr("y",-1*s/2).attr("width",l).attr("height",s).attr("class","fork-join");return B(t,r),t.height=t.height+t.padding/2,t.width=t.width+t.padding/2,t.intersect=function(n){return T.rect(t,n)},i},"forkJoin"),Xr=d((e,t)=>{let a=e.insert("g").attr("class","node default").attr("id",t.domId||t.id),i=a.insert("circle",":first-child"),l=a.insert("circle",":first-child");return l.attr("class","state-start").attr("r",7).attr("width",14).attr("height",14),i.attr("class","state-end").attr("r",5).attr("width",10).attr("height",10),B(t,l),t.intersect=function(s){return T.circle(t,7,s)},a},"end"),Ur=d(async(e,t)=>{let a=t.padding/2,i=4,l=8,s;t.classes?s="node "+t.classes:s="node default";let r=e.insert("g").attr("class",s).attr("id",t.domId||t.id),n=r.insert("rect",":first-child"),c=r.insert("line"),u=r.insert("line"),o=0,b=i,m=r.insert("g").attr("class","label"),y=0,L=t.classData.annotations?.[0],E=t.classData.annotations[0]?"\xAB"+t.classData.annotations[0]+"\xBB":"",S=m.node().appendChild(await K(E,t.labelStyle,!0,!0)),C=S.getBBox();if(X(I().flowchart.htmlLabels)){let v=S.children[0],h=N(S);C=v.getBoundingClientRect(),h.attr("width",C.width),h.attr("height",C.height)}t.classData.annotations[0]&&(b+=C.height+i,o+=C.width);let _=t.classData.label;t.classData.type!==void 0&&t.classData.type!==""&&(I().flowchart.htmlLabels?_+="<"+t.classData.type+">":_+="<"+t.classData.type+">");let D=m.node().appendChild(await K(_,t.labelStyle,!0,!0));N(D).attr("class","classTitle");let x=D.getBBox();if(X(I().flowchart.htmlLabels)){let v=D.children[0],h=N(D);x=v.getBoundingClientRect(),h.attr("width",x.width),h.attr("height",x.height)}b+=x.height+i,x.width>o&&(o=x.width);let g=[];t.classData.members.forEach(async v=>{let h=v.getDisplayDetails(),W=h.displayText;I().flowchart.htmlLabels&&(W=W.replace(//g,">"));let p=m.node().appendChild(await K(W,h.cssStyle?h.cssStyle:t.labelStyle,!0,!0)),R=p.getBBox();if(X(I().flowchart.htmlLabels)){let G=p.children[0],V=N(p);R=G.getBoundingClientRect(),V.attr("width",R.width),V.attr("height",R.height)}R.width>o&&(o=R.width),b+=R.height+i,g.push(p)}),b+=l;let f=[];if(t.classData.methods.forEach(async v=>{let h=v.getDisplayDetails(),W=h.displayText;I().flowchart.htmlLabels&&(W=W.replace(//g,">"));let p=m.node().appendChild(await K(W,h.cssStyle?h.cssStyle:t.labelStyle,!0,!0)),R=p.getBBox();if(X(I().flowchart.htmlLabels)){let G=p.children[0],V=N(p);R=G.getBoundingClientRect(),V.attr("width",R.width),V.attr("height",R.height)}R.width>o&&(o=R.width),b+=R.height+i,f.push(p)}),b+=l,L){let v=(o-C.width)/2;N(S).attr("transform","translate( "+(-1*o/2+v)+", "+-1*b/2+")"),y=C.height+i}let k=(o-x.width)/2;return N(D).attr("transform","translate( "+(-1*o/2+k)+", "+(-1*b/2+y)+")"),y+=x.height+i,c.attr("class","divider").attr("x1",-o/2-a).attr("x2",o/2+a).attr("y1",-b/2-a+l+y).attr("y2",-b/2-a+l+y),y+=l,g.forEach(v=>{N(v).attr("transform","translate( "+-o/2+", "+(-1*b/2+y+l/2)+")");let h=v?.getBBox();y+=(h?.height??0)+i}),y+=l,u.attr("class","divider").attr("x1",-o/2-a).attr("x2",o/2+a).attr("y1",-b/2-a+l+y).attr("y2",-b/2-a+l+y),y+=l,f.forEach(v=>{N(v).attr("transform","translate( "+-o/2+", "+(-1*b/2+y)+")");let h=v?.getBBox();y+=(h?.height??0)+i}),n.attr("style",t.style).attr("class","outer title-state").attr("x",-o/2-a).attr("y",-(b/2)-a).attr("width",o+t.padding).attr("height",b+t.padding),B(t,n),t.intersect=function(v){return T.rect(t,v)},r},"class_box"),re={rhombus:te,composite:Ar,question:te,rect:zr,labelRect:Mr,rectWithTitle:Fr,choice:Er,circle:Pr,doublecircle:Yr,stadium:Wr,hexagon:_r,block_arrow:Dr,rect_left_inv_arrow:Nr,lean_right:Tr,lean_left:Br,trapezoid:Cr,inv_trapezoid:Ir,rect_right_inv_arrow:Or,cylinder:Rr,start:Kr,end:Xr,note:vr,subroutine:Hr,fork:ee,join:ee,class_box:Ur},ot={},xe=d(async(e,t,a)=>{let i,l;if(t.link){let s;I().securityLevel==="sandbox"?s="_top":t.linkTarget&&(s=t.linkTarget||"_blank"),i=e.insert("svg:a").attr("xlink:href",t.link).attr("target",s),l=await re[t.shape](i,t,a)}else l=await re[t.shape](e,t,a),i=l;return t.tooltip&&l.attr("title",t.tooltip),t.class&&l.attr("class","node default "+t.class),ot[t.id]=i,t.haveCallback&&ot[t.id].attr("class",ot[t.id].attr("class")+" clickable"),i},"insertNode"),jr=d(e=>{let t=ot[e.id];w.trace("Transforming node",e.diff,e,"translate("+(e.x-e.width/2-5)+", "+e.width/2+")");let a=8,i=e.diff||0;return e.clusterNode?t.attr("transform","translate("+(e.x+i-e.width/2)+", "+(e.y-e.height/2-a)+")"):t.attr("transform","translate("+e.x+", "+e.y+")"),i},"positionNode");function Tt(e,t,a=!1){let i=e,l="default";(i?.classes?.length||0)>0&&(l=(i?.classes??[]).join(" ")),l=l+" flowchart-label";let s=0,r="",n;switch(i.type){case"round":s=5,r="rect";break;case"composite":s=0,r="composite",n=0;break;case"square":r="rect";break;case"diamond":r="question";break;case"hexagon":r="hexagon";break;case"block_arrow":r="block_arrow";break;case"odd":r="rect_left_inv_arrow";break;case"lean_right":r="lean_right";break;case"lean_left":r="lean_left";break;case"trapezoid":r="trapezoid";break;case"inv_trapezoid":r="inv_trapezoid";break;case"rect_left_inv_arrow":r="rect_left_inv_arrow";break;case"circle":r="circle";break;case"ellipse":r="ellipse";break;case"stadium":r="stadium";break;case"subroutine":r="subroutine";break;case"cylinder":r="cylinder";break;case"group":r="rect";break;case"doublecircle":r="doublecircle";break;default:r="rect"}let c=Kt(i?.styles??[]),u=i.label,o=i.size??{width:0,height:0,x:0,y:0};return{labelStyle:c.labelStyle,shape:r,labelText:u,rx:s,ry:s,class:l,style:c.style,id:i.id,directions:i.directions,width:o.width,height:o.height,x:o.x,y:o.y,positioned:a,intersect:void 0,type:i.type,padding:n??$()?.block?.padding??0}}d(Tt,"getNodeFromBlock");async function ye(e,t,a){let i=Tt(t,a,!1);if(i.type==="group")return;let l=$(),s=await xe(e,i,{config:l}),r=s.node().getBBox(),n=a.getBlock(i.id);n.size={width:r.width,height:r.height,x:0,y:0,node:s},a.setBlock(n),s.remove()}d(ye,"calculateBlockSize");async function me(e,t,a){let i=Tt(t,a,!0);if(a.getBlock(i.id).type!=="space"){let s=$();await xe(e,i,{config:s}),t.intersect=i?.intersect,jr(i)}}d(me,"insertBlockPositioned");async function ut(e,t,a,i){for(let l of t)await i(e,l,a),l.children&&await ut(e,l.children,a,i)}d(ut,"performOperations");async function we(e,t,a){await ut(e,t,a,ye)}d(we,"calculateBlockSizes");async function ke(e,t,a){await ut(e,t,a,me)}d(ke,"insertBlocks");async function Le(e,t,a,i,l){let s=new jt({multigraph:!0,compound:!0});s.setGraph({rankdir:"TB",nodesep:10,ranksep:10,marginx:8,marginy:8});for(let r of a)r.size&&s.setNode(r.id,{width:r.size.width,height:r.size.height,intersect:r.intersect});for(let r of t)if(r.start&&r.end){let n=i.getBlock(r.start),c=i.getBlock(r.end);if(n?.size&&c?.size){let u=n.size,o=c.size,b=[{x:u.x,y:u.y},{x:u.x+(o.x-u.x)/2,y:u.y+(o.y-u.y)/2},{x:o.x,y:o.y}];pr(e,{v:r.start,w:r.end,name:r.id},{...r,arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:b,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"},void 0,"block",s,l),r.label&&(await hr(e,{...r,label:r.label,labelStyle:"stroke: #333; stroke-width: 1.5px;fill:none;",arrowTypeEnd:r.arrowTypeEnd,arrowTypeStart:r.arrowTypeStart,points:b,classes:"edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1"}),dr({...r,x:b[1].x,y:b[1].y},{originalPath:b}))}}}d(Le,"insertEdges");var Vr=d(function(e,t){return t.db.getClasses()},"getClasses"),Zr=d(async function(e,t,a,i){let{securityLevel:l,block:s}=$(),r=i.db,n;l==="sandbox"&&(n=N("#i"+t));let c=l==="sandbox"?N(n.nodes()[0].contentDocument.body):N("body"),u=l==="sandbox"?c.select(`[id="${t}"]`):N(`[id="${t}"]`);ir(u,["point","circle","cross"],i.type,t);let b=r.getBlocks(),m=r.getBlocksFlat(),y=r.getEdges(),L=u.insert("g").attr("class","block");await we(L,b,r);let E=oe(r);if(await ke(L,b,r),await Le(L,y,m,r,t),E){let S=E,C=Math.max(1,Math.round(.125*(S.width/S.height))),_=S.height+C+10,D=S.width+10,{useMaxWidth:x}=s;Mt(u,_,D,!!x),w.debug("Here Bounds",E,S),u.attr("viewBox",`${S.x-5} ${S.y-5} ${S.width+10} ${S.height+10}`)}},"draw"),Gr={draw:Zr,getClasses:Vr},ga={parser:_e,db:Ue,renderer:Gr,styles:Ve};export{ga as diagram}; diff --git a/build/_shared/bnf-ETWB3Q7P.js b/build/_shared/bnf-ETWB3Q7P.js new file mode 100644 index 00000000..8b8c2260 --- /dev/null +++ b/build/_shared/bnf-ETWB3Q7P.js @@ -0,0 +1 @@ +import{c as _}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=_((t,e)=>{function O(n){return{name:"Backus\u2013Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]}]}}e.exports=O});export default a(); diff --git a/build/_shared/bnf-WHRQUNDL.js b/build/_shared/bnf-WHRQUNDL.js new file mode 100644 index 00000000..646dcc37 --- /dev/null +++ b/build/_shared/bnf-WHRQUNDL.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-I5SV5DMR.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/brainfuck-4TGC4DRO.js b/build/_shared/brainfuck-4TGC4DRO.js new file mode 100644 index 00000000..e7acc508 --- /dev/null +++ b/build/_shared/brainfuck-4TGC4DRO.js @@ -0,0 +1,3 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=r((s,n)=>{function c(a){let e={className:"literal",begin:/[+-]/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[a.COMMENT(`[^\\[\\]\\.,\\+\\-<> \r +]`,`[\\[\\]\\.,\\+\\-<> \r +]`,{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?:\+\+|--)/,contains:[e]},e]}}n.exports=c});export default i(); diff --git a/build/_shared/brainfuck-KJ7DDEPS.js b/build/_shared/brainfuck-KJ7DDEPS.js new file mode 100644 index 00000000..e9af4d9d --- /dev/null +++ b/build/_shared/brainfuck-KJ7DDEPS.js @@ -0,0 +1 @@ +import{b as f}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r,t,o=f(()=>{r="><+-.,[]".split(""),t={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(i,n){if(i.eatSpace())return null;i.sol()&&(n.commentLine=!1);var e=i.next().toString();if(r.indexOf(e)!==-1){if(n.commentLine===!0)return i.eol()&&(n.commentLine=!1),"comment";if(e==="]"||e==="[")return e==="["?n.left++:n.right++,"bracket";if(e==="+"||e==="-")return"keyword";if(e==="<"||e===">")return"atom";if(e==="."||e===",")return"def"}else return n.commentLine=!0,i.eol()&&(n.commentLine=!1),"comment";i.eol()&&(n.commentLine=!1)}}});o();export{t as brainfuck}; diff --git a/build/_shared/brainfuck-YU7EB23L.js b/build/_shared/brainfuck-YU7EB23L.js new file mode 100644 index 00000000..adb1aea2 --- /dev/null +++ b/build/_shared/brainfuck-YU7EB23L.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-UUIXVG6L.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/brightscript-Q2OL65P7.js b/build/_shared/brightscript-Q2OL65P7.js new file mode 100644 index 00000000..93098806 --- /dev/null +++ b/build/_shared/brightscript-Q2OL65P7.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-XEH4Q6JR.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bro-FGHLWUHP.js b/build/_shared/bro-FGHLWUHP.js new file mode 100644 index 00000000..abe32d47 --- /dev/null +++ b/build/_shared/bro-FGHLWUHP.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-V54ZRUFH.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/bsl-PZR5N6JQ.js b/build/_shared/bsl-PZR5N6JQ.js new file mode 100644 index 00000000..5d8bc6d2 --- /dev/null +++ b/build/_shared/bsl-PZR5N6JQ.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-HWYWLTJF.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/c-IXWX2FPE.js b/build/_shared/c-IXWX2FPE.js new file mode 100644 index 00000000..b3668ec2 --- /dev/null +++ b/build/_shared/c-IXWX2FPE.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/c-VIKOOS7T.js b/build/_shared/c-VIKOOS7T.js new file mode 100644 index 00000000..5f09308a --- /dev/null +++ b/build/_shared/c-VIKOOS7T.js @@ -0,0 +1 @@ +import{c as N}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var T=N((O,_)=>{function C(e){return e?typeof e=="string"?e:e.source:null}function o(e){return y("(",e,")?")}function y(...e){return e.map(a=>C(a)).join("")}function w(e){let n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),a="decltype\\(auto\\)",c="[a-zA-Z_]\\w*::",m="<[^<>]+>",p="("+a+"|"+o(c)+"[a-zA-Z_]\\w*"+o(m)+")",r={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},g="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",i={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+g+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},l={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},s={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(i,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},E={className:"title",begin:o(c)+e.IDENT_RE,relevance:0},u=o(c)+e.IDENT_RE+"\\s*\\(",t={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},d=[s,r,n,e.C_BLOCK_COMMENT_MODE,l,i],f={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:t,contains:d.concat([{begin:/\(/,end:/\)/,keywords:t,contains:d.concat(["self"]),relevance:0}]),relevance:0},b={className:"function",begin:"("+p+"[\\*&\\s]+)+"+u,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:a,keywords:t,relevance:0},{begin:u,returnBegin:!0,contains:[E],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,i,l,r,{begin:/\(/,end:/\)/,keywords:t,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,i,l,r]}]},r,n,e.C_BLOCK_COMMENT_MODE,s]};return{name:"C",aliases:["h"],keywords:t,disableAutodetect:!0,illegal:"",keywords:t,contains:["self",r]},{begin:e.IDENT_RE+"::",keywords:t},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:s,strings:i,keywords:t}}}_.exports=w});export default T(); diff --git a/build/_shared/c-like-R5UC5PF7.js b/build/_shared/c-like-R5UC5PF7.js new file mode 100644 index 00000000..e22a8332 --- /dev/null +++ b/build/_shared/c-like-R5UC5PF7.js @@ -0,0 +1 @@ +import{c as T}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var M=T((A,m)=>{function y(e){return e?typeof e=="string"?e:e.source:null}function O(e){return d("(?=",e,")")}function l(e){return d("(",e,")?")}function d(...e){return e.map(i=>y(i)).join("")}function w(e){let t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),i="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",g="<[^<>]+>",f="("+i+"|"+l(r)+"[a-zA-Z_]\\w*"+l(g)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},E="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+E+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},o={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(a,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/},t,e.C_BLOCK_COMMENT_MODE]},b={className:"title",begin:l(r)+e.IDENT_RE,relevance:0},_=l(r)+e.IDENT_RE+"\\s*\\(",n={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"_Bool _Complex _Imaginary",_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,keywords:n,begin:d(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,e.IDENT_RE,O(/\s*\(/))},u=[p,o,s,t,e.C_BLOCK_COMMENT_MODE,c,a],N={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:n,contains:u.concat([{begin:/\(/,end:/\)/,keywords:n,contains:u.concat(["self"]),relevance:0}]),relevance:0},C={className:"function",begin:"("+f+"[\\*&\\s]+)+"+_,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:i,keywords:n,relevance:0},{begin:_,returnBegin:!0,contains:[b],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[a,c]},{className:"params",begin:/\(/,end:/\)/,keywords:n,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,a,c,s,{begin:/\(/,end:/\)/,keywords:n,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,a,c,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,o]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:n,illegal:"",keywords:n,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:n},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:o,strings:a,keywords:n}}}function h(e){let t=w(e),i=["c","h"],r=["cc","c++","h++","hpp","hh","hxx","cxx"];return t.disableAutodetect=!0,t.aliases=[],e.getLanguage("c")||t.aliases.push(...i),e.getLanguage("cpp")||t.aliases.push(...r),t}m.exports=h});export default M(); diff --git a/build/_shared/c4Diagram-YG6GDRKO-5KGQCFHK.js b/build/_shared/c4Diagram-YG6GDRKO-5KGQCFHK.js new file mode 100644 index 00000000..70fdb195 --- /dev/null +++ b/build/_shared/c4Diagram-YG6GDRKO-5KGQCFHK.js @@ -0,0 +1,10 @@ +import{a as ke,f as Ee}from"/numpy-tutorials/build/_shared/chunk-VZ3YLKNL.js";import{g as ve,h as ee,i as Ct}from"/numpy-tutorials/build/_shared/chunk-H5UGLSR3.js";import{a as Fe}from"/numpy-tutorials/build/_shared/chunk-ILX2UBHN.js";import{D as te,K as Yt,L as be,Q as ge,R as _e,S as xe,T as me,W as Ot,n as ye}from"/numpy-tutorials/build/_shared/chunk-JU57NILB.js";import{b,d as $t,j as Dt}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";import"/numpy-tutorials/build/_shared/chunk-34XIY2DH.js";import"/numpy-tutorials/build/_shared/chunk-KQM5FBHR.js";import{f as Ue}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var Re=Ue(Fe(),1),Ut=function(){var e=b(function(_t,x,m,v){for(m=m||{},v=_t.length;v--;m[_t[v]]=x);return m},"o"),t=[1,24],s=[1,25],o=[1,26],l=[1,27],a=[1,28],n=[1,63],r=[1,64],i=[1,65],u=[1,66],d=[1,67],y=[1,68],p=[1,69],k=[1,29],O=[1,30],S=[1,31],P=[1,32],M=[1,33],U=[1,34],H=[1,35],q=[1,36],G=[1,37],K=[1,38],J=[1,39],Z=[1,40],$=[1,41],tt=[1,42],et=[1,43],at=[1,44],it=[1,45],rt=[1,46],nt=[1,47],st=[1,48],lt=[1,50],ot=[1,51],ct=[1,52],ht=[1,53],ut=[1,54],dt=[1,55],ft=[1,56],pt=[1,57],yt=[1,58],bt=[1,59],gt=[1,60],wt=[14,42],Wt=[14,34,36,37,38,39,40,41,42,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,69,70,71,72,73,74],Rt=[12,14,34,36,37,38,39,40,41,42,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,69,70,71,72,73,74],E=[1,82],A=[1,83],C=[1,84],w=[1,85],T=[12,14,42],ce=[12,14,33,42],It=[12,14,33,42,76,77,79,80],vt=[12,33],Qt=[34,36,37,38,39,40,41,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,69,70,71,72,73,74],Ht={trace:b(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,direction:5,direction_tb:6,direction_bt:7,direction_rl:8,direction_lr:9,graphConfig:10,C4_CONTEXT:11,NEWLINE:12,statements:13,EOF:14,C4_CONTAINER:15,C4_COMPONENT:16,C4_DYNAMIC:17,C4_DEPLOYMENT:18,otherStatements:19,diagramStatements:20,otherStatement:21,title:22,accDescription:23,acc_title:24,acc_title_value:25,acc_descr:26,acc_descr_value:27,acc_descr_multiline_value:28,boundaryStatement:29,boundaryStartStatement:30,boundaryStopStatement:31,boundaryStart:32,LBRACE:33,ENTERPRISE_BOUNDARY:34,attributes:35,SYSTEM_BOUNDARY:36,BOUNDARY:37,CONTAINER_BOUNDARY:38,NODE:39,NODE_L:40,NODE_R:41,RBRACE:42,diagramStatement:43,PERSON:44,PERSON_EXT:45,SYSTEM:46,SYSTEM_DB:47,SYSTEM_QUEUE:48,SYSTEM_EXT:49,SYSTEM_EXT_DB:50,SYSTEM_EXT_QUEUE:51,CONTAINER:52,CONTAINER_DB:53,CONTAINER_QUEUE:54,CONTAINER_EXT:55,CONTAINER_EXT_DB:56,CONTAINER_EXT_QUEUE:57,COMPONENT:58,COMPONENT_DB:59,COMPONENT_QUEUE:60,COMPONENT_EXT:61,COMPONENT_EXT_DB:62,COMPONENT_EXT_QUEUE:63,REL:64,BIREL:65,REL_U:66,REL_D:67,REL_L:68,REL_R:69,REL_B:70,REL_INDEX:71,UPDATE_EL_STYLE:72,UPDATE_REL_STYLE:73,UPDATE_LAYOUT_CONFIG:74,attribute:75,STR:76,STR_KEY:77,STR_VALUE:78,ATTRIBUTE:79,ATTRIBUTE_EMPTY:80,$accept:0,$end:1},terminals_:{2:"error",6:"direction_tb",7:"direction_bt",8:"direction_rl",9:"direction_lr",11:"C4_CONTEXT",12:"NEWLINE",14:"EOF",15:"C4_CONTAINER",16:"C4_COMPONENT",17:"C4_DYNAMIC",18:"C4_DEPLOYMENT",22:"title",23:"accDescription",24:"acc_title",25:"acc_title_value",26:"acc_descr",27:"acc_descr_value",28:"acc_descr_multiline_value",33:"LBRACE",34:"ENTERPRISE_BOUNDARY",36:"SYSTEM_BOUNDARY",37:"BOUNDARY",38:"CONTAINER_BOUNDARY",39:"NODE",40:"NODE_L",41:"NODE_R",42:"RBRACE",44:"PERSON",45:"PERSON_EXT",46:"SYSTEM",47:"SYSTEM_DB",48:"SYSTEM_QUEUE",49:"SYSTEM_EXT",50:"SYSTEM_EXT_DB",51:"SYSTEM_EXT_QUEUE",52:"CONTAINER",53:"CONTAINER_DB",54:"CONTAINER_QUEUE",55:"CONTAINER_EXT",56:"CONTAINER_EXT_DB",57:"CONTAINER_EXT_QUEUE",58:"COMPONENT",59:"COMPONENT_DB",60:"COMPONENT_QUEUE",61:"COMPONENT_EXT",62:"COMPONENT_EXT_DB",63:"COMPONENT_EXT_QUEUE",64:"REL",65:"BIREL",66:"REL_U",67:"REL_D",68:"REL_L",69:"REL_R",70:"REL_B",71:"REL_INDEX",72:"UPDATE_EL_STYLE",73:"UPDATE_REL_STYLE",74:"UPDATE_LAYOUT_CONFIG",76:"STR",77:"STR_KEY",78:"STR_VALUE",79:"ATTRIBUTE",80:"ATTRIBUTE_EMPTY"},productions_:[0,[3,1],[3,1],[5,1],[5,1],[5,1],[5,1],[4,1],[10,4],[10,4],[10,4],[10,4],[10,4],[13,1],[13,1],[13,2],[19,1],[19,2],[19,3],[21,1],[21,1],[21,2],[21,2],[21,1],[29,3],[30,3],[30,3],[30,4],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[32,2],[31,1],[20,1],[20,2],[20,3],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,1],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[43,2],[35,1],[35,2],[75,1],[75,2],[75,1],[75,1]],performAction:b(function(x,m,v,g,R,h,St){var f=h.length-1;switch(R){case 3:g.setDirection("TB");break;case 4:g.setDirection("BT");break;case 5:g.setDirection("RL");break;case 6:g.setDirection("LR");break;case 8:case 9:case 10:case 11:case 12:g.setC4Type(h[f-3]);break;case 19:g.setTitle(h[f].substring(6)),this.$=h[f].substring(6);break;case 20:g.setAccDescription(h[f].substring(15)),this.$=h[f].substring(15);break;case 21:this.$=h[f].trim(),g.setTitle(this.$);break;case 22:case 23:this.$=h[f].trim(),g.setAccDescription(this.$);break;case 28:h[f].splice(2,0,"ENTERPRISE"),g.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 29:h[f].splice(2,0,"SYSTEM"),g.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 30:g.addPersonOrSystemBoundary(...h[f]),this.$=h[f];break;case 31:h[f].splice(2,0,"CONTAINER"),g.addContainerBoundary(...h[f]),this.$=h[f];break;case 32:g.addDeploymentNode("node",...h[f]),this.$=h[f];break;case 33:g.addDeploymentNode("nodeL",...h[f]),this.$=h[f];break;case 34:g.addDeploymentNode("nodeR",...h[f]),this.$=h[f];break;case 35:g.popBoundaryParseStack();break;case 39:g.addPersonOrSystem("person",...h[f]),this.$=h[f];break;case 40:g.addPersonOrSystem("external_person",...h[f]),this.$=h[f];break;case 41:g.addPersonOrSystem("system",...h[f]),this.$=h[f];break;case 42:g.addPersonOrSystem("system_db",...h[f]),this.$=h[f];break;case 43:g.addPersonOrSystem("system_queue",...h[f]),this.$=h[f];break;case 44:g.addPersonOrSystem("external_system",...h[f]),this.$=h[f];break;case 45:g.addPersonOrSystem("external_system_db",...h[f]),this.$=h[f];break;case 46:g.addPersonOrSystem("external_system_queue",...h[f]),this.$=h[f];break;case 47:g.addContainer("container",...h[f]),this.$=h[f];break;case 48:g.addContainer("container_db",...h[f]),this.$=h[f];break;case 49:g.addContainer("container_queue",...h[f]),this.$=h[f];break;case 50:g.addContainer("external_container",...h[f]),this.$=h[f];break;case 51:g.addContainer("external_container_db",...h[f]),this.$=h[f];break;case 52:g.addContainer("external_container_queue",...h[f]),this.$=h[f];break;case 53:g.addComponent("component",...h[f]),this.$=h[f];break;case 54:g.addComponent("component_db",...h[f]),this.$=h[f];break;case 55:g.addComponent("component_queue",...h[f]),this.$=h[f];break;case 56:g.addComponent("external_component",...h[f]),this.$=h[f];break;case 57:g.addComponent("external_component_db",...h[f]),this.$=h[f];break;case 58:g.addComponent("external_component_queue",...h[f]),this.$=h[f];break;case 60:g.addRel("rel",...h[f]),this.$=h[f];break;case 61:g.addRel("birel",...h[f]),this.$=h[f];break;case 62:g.addRel("rel_u",...h[f]),this.$=h[f];break;case 63:g.addRel("rel_d",...h[f]),this.$=h[f];break;case 64:g.addRel("rel_l",...h[f]),this.$=h[f];break;case 65:g.addRel("rel_r",...h[f]),this.$=h[f];break;case 66:g.addRel("rel_b",...h[f]),this.$=h[f];break;case 67:h[f].splice(0,1),g.addRel("rel",...h[f]),this.$=h[f];break;case 68:g.updateElStyle("update_el_style",...h[f]),this.$=h[f];break;case 69:g.updateRelStyle("update_rel_style",...h[f]),this.$=h[f];break;case 70:g.updateLayoutConfig("update_layout_config",...h[f]),this.$=h[f];break;case 71:this.$=[h[f]];break;case 72:h[f].unshift(h[f-1]),this.$=h[f];break;case 73:case 75:this.$=h[f].trim();break;case 74:let kt={};kt[h[f-1].trim()]=h[f].trim(),this.$=kt;break;case 76:this.$="";break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],7:[1,6],8:[1,7],9:[1,8],10:4,11:[1,9],15:[1,10],16:[1,11],17:[1,12],18:[1,13]},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,7]},{1:[2,3]},{1:[2,4]},{1:[2,5]},{1:[2,6]},{12:[1,14]},{12:[1,15]},{12:[1,16]},{12:[1,17]},{12:[1,18]},{13:19,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{13:70,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{13:71,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{13:72,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{13:73,19:20,20:21,21:22,22:t,23:s,24:o,26:l,28:a,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{14:[1,74]},e(wt,[2,13],{43:23,29:49,30:61,32:62,20:75,34:n,36:r,37:i,38:u,39:d,40:y,41:p,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt}),e(wt,[2,14]),e(Wt,[2,16],{12:[1,76]}),e(wt,[2,36],{12:[1,77]}),e(Rt,[2,19]),e(Rt,[2,20]),{25:[1,78]},{27:[1,79]},e(Rt,[2,23]),{35:80,75:81,76:E,77:A,79:C,80:w},{35:86,75:81,76:E,77:A,79:C,80:w},{35:87,75:81,76:E,77:A,79:C,80:w},{35:88,75:81,76:E,77:A,79:C,80:w},{35:89,75:81,76:E,77:A,79:C,80:w},{35:90,75:81,76:E,77:A,79:C,80:w},{35:91,75:81,76:E,77:A,79:C,80:w},{35:92,75:81,76:E,77:A,79:C,80:w},{35:93,75:81,76:E,77:A,79:C,80:w},{35:94,75:81,76:E,77:A,79:C,80:w},{35:95,75:81,76:E,77:A,79:C,80:w},{35:96,75:81,76:E,77:A,79:C,80:w},{35:97,75:81,76:E,77:A,79:C,80:w},{35:98,75:81,76:E,77:A,79:C,80:w},{35:99,75:81,76:E,77:A,79:C,80:w},{35:100,75:81,76:E,77:A,79:C,80:w},{35:101,75:81,76:E,77:A,79:C,80:w},{35:102,75:81,76:E,77:A,79:C,80:w},{35:103,75:81,76:E,77:A,79:C,80:w},{35:104,75:81,76:E,77:A,79:C,80:w},e(T,[2,59]),{35:105,75:81,76:E,77:A,79:C,80:w},{35:106,75:81,76:E,77:A,79:C,80:w},{35:107,75:81,76:E,77:A,79:C,80:w},{35:108,75:81,76:E,77:A,79:C,80:w},{35:109,75:81,76:E,77:A,79:C,80:w},{35:110,75:81,76:E,77:A,79:C,80:w},{35:111,75:81,76:E,77:A,79:C,80:w},{35:112,75:81,76:E,77:A,79:C,80:w},{35:113,75:81,76:E,77:A,79:C,80:w},{35:114,75:81,76:E,77:A,79:C,80:w},{35:115,75:81,76:E,77:A,79:C,80:w},{20:116,29:49,30:61,32:62,34:n,36:r,37:i,38:u,39:d,40:y,41:p,43:23,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt},{12:[1,118],33:[1,117]},{35:119,75:81,76:E,77:A,79:C,80:w},{35:120,75:81,76:E,77:A,79:C,80:w},{35:121,75:81,76:E,77:A,79:C,80:w},{35:122,75:81,76:E,77:A,79:C,80:w},{35:123,75:81,76:E,77:A,79:C,80:w},{35:124,75:81,76:E,77:A,79:C,80:w},{35:125,75:81,76:E,77:A,79:C,80:w},{14:[1,126]},{14:[1,127]},{14:[1,128]},{14:[1,129]},{1:[2,8]},e(wt,[2,15]),e(Wt,[2,17],{21:22,19:130,22:t,23:s,24:o,26:l,28:a}),e(wt,[2,37],{19:20,20:21,21:22,43:23,29:49,30:61,32:62,13:131,22:t,23:s,24:o,26:l,28:a,34:n,36:r,37:i,38:u,39:d,40:y,41:p,44:k,45:O,46:S,47:P,48:M,49:U,50:H,51:q,52:G,53:K,54:J,55:Z,56:$,57:tt,58:et,59:at,60:it,61:rt,62:nt,63:st,64:lt,65:ot,66:ct,67:ht,68:ut,69:dt,70:ft,71:pt,72:yt,73:bt,74:gt}),e(Rt,[2,21]),e(Rt,[2,22]),e(T,[2,39]),e(ce,[2,71],{75:81,35:132,76:E,77:A,79:C,80:w}),e(It,[2,73]),{78:[1,133]},e(It,[2,75]),e(It,[2,76]),e(T,[2,40]),e(T,[2,41]),e(T,[2,42]),e(T,[2,43]),e(T,[2,44]),e(T,[2,45]),e(T,[2,46]),e(T,[2,47]),e(T,[2,48]),e(T,[2,49]),e(T,[2,50]),e(T,[2,51]),e(T,[2,52]),e(T,[2,53]),e(T,[2,54]),e(T,[2,55]),e(T,[2,56]),e(T,[2,57]),e(T,[2,58]),e(T,[2,60]),e(T,[2,61]),e(T,[2,62]),e(T,[2,63]),e(T,[2,64]),e(T,[2,65]),e(T,[2,66]),e(T,[2,67]),e(T,[2,68]),e(T,[2,69]),e(T,[2,70]),{31:134,42:[1,135]},{12:[1,136]},{33:[1,137]},e(vt,[2,28]),e(vt,[2,29]),e(vt,[2,30]),e(vt,[2,31]),e(vt,[2,32]),e(vt,[2,33]),e(vt,[2,34]),{1:[2,9]},{1:[2,10]},{1:[2,11]},{1:[2,12]},e(Wt,[2,18]),e(wt,[2,38]),e(ce,[2,72]),e(It,[2,74]),e(T,[2,24]),e(T,[2,35]),e(Qt,[2,25]),e(Qt,[2,26],{12:[1,138]}),e(Qt,[2,27])],defaultActions:{2:[2,1],3:[2,2],4:[2,7],5:[2,3],6:[2,4],7:[2,5],8:[2,6],74:[2,8],126:[2,9],127:[2,10],128:[2,11],129:[2,12]},parseError:b(function(x,m){if(m.recoverable)this.trace(x);else{var v=new Error(x);throw v.hash=m,v}},"parseError"),parse:b(function(x){var m=this,v=[0],g=[],R=[null],h=[],St=this.table,f="",kt=0,he=0,ue=0,Le=2,de=1,Ne=h.slice.call(arguments,1),D=Object.create(this.lexer),Et={yy:{}};for(var qt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,qt)&&(Et.yy[qt]=this.yy[qt]);D.setInput(x,Et.yy),Et.yy.lexer=D,Et.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Gt=D.yylloc;h.push(Gt);var Ye=D.options&&D.options.ranges;typeof Et.yy.parseError=="function"?this.parseError=Et.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(L){v.length=v.length-2*L,R.length=R.length-L,h.length=h.length-L}b(je,"popStack");function fe(){var L;return L=g.pop()||D.lex()||de,typeof L!="number"&&(L instanceof Array&&(g=L,L=g.pop()),L=m.symbols_[L]||L),L}b(fe,"lex");for(var B,Kt,At,N,M0,Jt,Tt={},Lt,W,pe,Nt;;){if(At=v[v.length-1],this.defaultActions[At]?N=this.defaultActions[At]:((B===null||typeof B>"u")&&(B=fe()),N=St[At]&&St[At][B]),typeof N>"u"||!N.length||!N[0]){var Zt="";Nt=[];for(Lt in St[At])this.terminals_[Lt]&&Lt>Le&&Nt.push("'"+this.terminals_[Lt]+"'");D.showPosition?Zt="Parse error on line "+(kt+1)+`: +`+D.showPosition()+` +Expecting `+Nt.join(", ")+", got '"+(this.terminals_[B]||B)+"'":Zt="Parse error on line "+(kt+1)+": Unexpected "+(B==de?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(Zt,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Gt,expected:Nt})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+At+", token: "+B);switch(N[0]){case 1:v.push(B),R.push(D.yytext),h.push(D.yylloc),v.push(N[1]),B=null,Kt?(B=Kt,Kt=null):(he=D.yyleng,f=D.yytext,kt=D.yylineno,Gt=D.yylloc,ue>0&&ue--);break;case 2:if(W=this.productions_[N[1]][1],Tt.$=R[R.length-W],Tt._$={first_line:h[h.length-(W||1)].first_line,last_line:h[h.length-1].last_line,first_column:h[h.length-(W||1)].first_column,last_column:h[h.length-1].last_column},Ye&&(Tt._$.range=[h[h.length-(W||1)].range[0],h[h.length-1].range[1]]),Jt=this.performAction.apply(Tt,[f,he,kt,Et.yy,N[1],R,h].concat(Ne)),typeof Jt<"u")return Jt;W&&(v=v.slice(0,-1*W*2),R=R.slice(0,-1*W),h=h.slice(0,-1*W)),v.push(this.productions_[N[1]][0]),R.push(Tt.$),h.push(Tt._$),pe=St[v[v.length-2]][v[v.length-1]],v.push(pe);break;case 3:return!0}}return!0},"parse")},Me=function(){var _t={EOF:1,parseError:b(function(m,v){if(this.yy.parser)this.yy.parser.parseError(m,v);else throw new Error(m)},"parseError"),setInput:b(function(x,m){return this.yy=m||this.yy||{},this._input=x,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:b(function(){var x=this._input[0];this.yytext+=x,this.yyleng++,this.offset++,this.match+=x,this.matched+=x;var m=x.match(/(?:\r\n?|\n).*/g);return m?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),x},"input"),unput:b(function(x){var m=x.length,v=x.split(/(?:\r\n?|\n)/g);this._input=x+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-m),this.offset-=m;var g=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),v.length-1&&(this.yylineno-=v.length-1);var R=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:v?(v.length===g.length?this.yylloc.first_column:0)+g[g.length-v.length].length-v[0].length:this.yylloc.first_column-m},this.options.ranges&&(this.yylloc.range=[R[0],R[0]+this.yyleng-m]),this.yyleng=this.yytext.length,this},"unput"),more:b(function(){return this._more=!0,this},"more"),reject:b(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return 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). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:b(function(x){this.unput(this.match.slice(x))},"less"),pastInput:b(function(){var x=this.matched.substr(0,this.matched.length-this.match.length);return(x.length>20?"...":"")+x.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:b(function(){var x=this.match;return x.length<20&&(x+=this._input.substr(0,20-x.length)),(x.substr(0,20)+(x.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:b(function(){var x=this.pastInput(),m=new Array(x.length+1).join("-");return x+this.upcomingInput()+` +`+m+"^"},"showPosition"),test_match:b(function(x,m){var v,g,R;if(this.options.backtrack_lexer&&(R={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&&(R.yylloc.range=this.yylloc.range.slice(0))),g=x[0].match(/(?:\r\n?|\n).*/g),g&&(this.yylineno+=g.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:g?g[g.length-1].length-g[g.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+x[0].length},this.yytext+=x[0],this.match+=x[0],this.matches=x,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(x[0].length),this.matched+=x[0],v=this.performAction.call(this,this.yy,this,m,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),v)return v;if(this._backtrack){for(var h in R)this[h]=R[h];return!1}return!1},"test_match"),next:b(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var x,m,v,g;this._more||(this.yytext="",this.match="");for(var R=this._currentRules(),h=0;hm[0].length)){if(m=v,g=h,this.options.backtrack_lexer){if(x=this.test_match(v,R[h]),x!==!1)return x;if(this._backtrack){m=!1;continue}else return!1}else if(!this.options.flex)break}return m?(x=this.test_match(m,R[g]),x!==!1?x:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:b(function(){var m=this.next();return m||this.lex()},"lex"),begin:b(function(m){this.conditionStack.push(m)},"begin"),popState:b(function(){var m=this.conditionStack.length-1;return m>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:b(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:b(function(m){return m=this.conditionStack.length-1-Math.abs(m||0),m>=0?this.conditionStack[m]:"INITIAL"},"topState"),pushState:b(function(m){this.begin(m)},"pushState"),stateStackSize:b(function(){return this.conditionStack.length},"stateStackSize"),options:{},performAction:b(function(m,v,g,R){var h=R;switch(g){case 0:return 6;case 1:return 7;case 2:return 8;case 3:return 9;case 4:return 22;case 5:return 23;case 6:return this.begin("acc_title"),24;break;case 7:return this.popState(),"acc_title_value";break;case 8:return this.begin("acc_descr"),26;break;case 9:return this.popState(),"acc_descr_value";break;case 10:this.begin("acc_descr_multiline");break;case 11:this.popState();break;case 12:return"acc_descr_multiline_value";case 13:break;case 14:c;break;case 15:return 12;case 16:break;case 17:return 11;case 18:return 15;case 19:return 16;case 20:return 17;case 21:return 18;case 22:return this.begin("person_ext"),45;break;case 23:return this.begin("person"),44;break;case 24:return this.begin("system_ext_queue"),51;break;case 25:return this.begin("system_ext_db"),50;break;case 26:return this.begin("system_ext"),49;break;case 27:return this.begin("system_queue"),48;break;case 28:return this.begin("system_db"),47;break;case 29:return this.begin("system"),46;break;case 30:return this.begin("boundary"),37;break;case 31:return this.begin("enterprise_boundary"),34;break;case 32:return this.begin("system_boundary"),36;break;case 33:return this.begin("container_ext_queue"),57;break;case 34:return this.begin("container_ext_db"),56;break;case 35:return this.begin("container_ext"),55;break;case 36:return this.begin("container_queue"),54;break;case 37:return this.begin("container_db"),53;break;case 38:return this.begin("container"),52;break;case 39:return this.begin("container_boundary"),38;break;case 40:return this.begin("component_ext_queue"),63;break;case 41:return this.begin("component_ext_db"),62;break;case 42:return this.begin("component_ext"),61;break;case 43:return this.begin("component_queue"),60;break;case 44:return this.begin("component_db"),59;break;case 45:return this.begin("component"),58;break;case 46:return this.begin("node"),39;break;case 47:return this.begin("node"),39;break;case 48:return this.begin("node_l"),40;break;case 49:return this.begin("node_r"),41;break;case 50:return this.begin("rel"),64;break;case 51:return this.begin("birel"),65;break;case 52:return this.begin("rel_u"),66;break;case 53:return this.begin("rel_u"),66;break;case 54:return this.begin("rel_d"),67;break;case 55:return this.begin("rel_d"),67;break;case 56:return this.begin("rel_l"),68;break;case 57:return this.begin("rel_l"),68;break;case 58:return this.begin("rel_r"),69;break;case 59:return this.begin("rel_r"),69;break;case 60:return this.begin("rel_b"),70;break;case 61:return this.begin("rel_index"),71;break;case 62:return this.begin("update_el_style"),72;break;case 63:return this.begin("update_rel_style"),73;break;case 64:return this.begin("update_layout_config"),74;break;case 65:return"EOF_IN_STRUCT";case 66:return this.begin("attribute"),"ATTRIBUTE_EMPTY";break;case 67:this.begin("attribute");break;case 68:this.popState(),this.popState();break;case 69:return 80;case 70:break;case 71:return 80;case 72:this.begin("string");break;case 73:this.popState();break;case 74:return"STR";case 75:this.begin("string_kv");break;case 76:return this.begin("string_kv_key"),"STR_KEY";break;case 77:this.popState(),this.begin("string_kv_value");break;case 78:return"STR_VALUE";case 79:this.popState(),this.popState();break;case 80:return"STR";case 81:return"LBRACE";case 82:return"RBRACE";case 83:return"SPACE";case 84:return"EOL";case 85:return 14}},"anonymous"),rules:[/^(?:.*direction\s+TB[^\n]*)/,/^(?:.*direction\s+BT[^\n]*)/,/^(?:.*direction\s+RL[^\n]*)/,/^(?:.*direction\s+LR[^\n]*)/,/^(?:title\s[^#\n;]+)/,/^(?:accDescription\s[^#\n;]+)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/,/^(?:%%[^\n]*(\r?\n)*)/,/^(?:\s*(\r?\n)+)/,/^(?:\s+)/,/^(?:C4Context\b)/,/^(?:C4Container\b)/,/^(?:C4Component\b)/,/^(?:C4Dynamic\b)/,/^(?:C4Deployment\b)/,/^(?:Person_Ext\b)/,/^(?:Person\b)/,/^(?:SystemQueue_Ext\b)/,/^(?:SystemDb_Ext\b)/,/^(?:System_Ext\b)/,/^(?:SystemQueue\b)/,/^(?:SystemDb\b)/,/^(?:System\b)/,/^(?:Boundary\b)/,/^(?:Enterprise_Boundary\b)/,/^(?:System_Boundary\b)/,/^(?:ContainerQueue_Ext\b)/,/^(?:ContainerDb_Ext\b)/,/^(?:Container_Ext\b)/,/^(?:ContainerQueue\b)/,/^(?:ContainerDb\b)/,/^(?:Container\b)/,/^(?:Container_Boundary\b)/,/^(?:ComponentQueue_Ext\b)/,/^(?:ComponentDb_Ext\b)/,/^(?:Component_Ext\b)/,/^(?:ComponentQueue\b)/,/^(?:ComponentDb\b)/,/^(?:Component\b)/,/^(?:Deployment_Node\b)/,/^(?:Node\b)/,/^(?:Node_L\b)/,/^(?:Node_R\b)/,/^(?:Rel\b)/,/^(?:BiRel\b)/,/^(?:Rel_Up\b)/,/^(?:Rel_U\b)/,/^(?:Rel_Down\b)/,/^(?:Rel_D\b)/,/^(?:Rel_Left\b)/,/^(?:Rel_L\b)/,/^(?:Rel_Right\b)/,/^(?:Rel_R\b)/,/^(?:Rel_Back\b)/,/^(?:RelIndex\b)/,/^(?:UpdateElementStyle\b)/,/^(?:UpdateRelStyle\b)/,/^(?:UpdateLayoutConfig\b)/,/^(?:$)/,/^(?:[(][ ]*[,])/,/^(?:[(])/,/^(?:[)])/,/^(?:,,)/,/^(?:,)/,/^(?:[ ]*["]["])/,/^(?:[ ]*["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:[ ]*[\$])/,/^(?:[^=]*)/,/^(?:[=][ ]*["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:[^,]+)/,/^(?:\{)/,/^(?:\})/,/^(?:[\s]+)/,/^(?:[\n\r]+)/,/^(?:$)/],conditions:{acc_descr_multiline:{rules:[11,12],inclusive:!1},acc_descr:{rules:[9],inclusive:!1},acc_title:{rules:[7],inclusive:!1},string_kv_value:{rules:[78,79],inclusive:!1},string_kv_key:{rules:[77],inclusive:!1},string_kv:{rules:[76],inclusive:!1},string:{rules:[73,74],inclusive:!1},attribute:{rules:[68,69,70,71,72,75,80],inclusive:!1},update_layout_config:{rules:[65,66,67,68],inclusive:!1},update_rel_style:{rules:[65,66,67,68],inclusive:!1},update_el_style:{rules:[65,66,67,68],inclusive:!1},rel_b:{rules:[65,66,67,68],inclusive:!1},rel_r:{rules:[65,66,67,68],inclusive:!1},rel_l:{rules:[65,66,67,68],inclusive:!1},rel_d:{rules:[65,66,67,68],inclusive:!1},rel_u:{rules:[65,66,67,68],inclusive:!1},rel_bi:{rules:[],inclusive:!1},rel:{rules:[65,66,67,68],inclusive:!1},node_r:{rules:[65,66,67,68],inclusive:!1},node_l:{rules:[65,66,67,68],inclusive:!1},node:{rules:[65,66,67,68],inclusive:!1},index:{rules:[],inclusive:!1},rel_index:{rules:[65,66,67,68],inclusive:!1},component_ext_queue:{rules:[],inclusive:!1},component_ext_db:{rules:[65,66,67,68],inclusive:!1},component_ext:{rules:[65,66,67,68],inclusive:!1},component_queue:{rules:[65,66,67,68],inclusive:!1},component_db:{rules:[65,66,67,68],inclusive:!1},component:{rules:[65,66,67,68],inclusive:!1},container_boundary:{rules:[65,66,67,68],inclusive:!1},container_ext_queue:{rules:[65,66,67,68],inclusive:!1},container_ext_db:{rules:[65,66,67,68],inclusive:!1},container_ext:{rules:[65,66,67,68],inclusive:!1},container_queue:{rules:[65,66,67,68],inclusive:!1},container_db:{rules:[65,66,67,68],inclusive:!1},container:{rules:[65,66,67,68],inclusive:!1},birel:{rules:[65,66,67,68],inclusive:!1},system_boundary:{rules:[65,66,67,68],inclusive:!1},enterprise_boundary:{rules:[65,66,67,68],inclusive:!1},boundary:{rules:[65,66,67,68],inclusive:!1},system_ext_queue:{rules:[65,66,67,68],inclusive:!1},system_ext_db:{rules:[65,66,67,68],inclusive:!1},system_ext:{rules:[65,66,67,68],inclusive:!1},system_queue:{rules:[65,66,67,68],inclusive:!1},system_db:{rules:[65,66,67,68],inclusive:!1},system:{rules:[65,66,67,68],inclusive:!1},person_ext:{rules:[65,66,67,68],inclusive:!1},person:{rules:[65,66,67,68],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,8,10,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,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,81,82,83,84,85],inclusive:!0}}};return _t}();Ht.lexer=Me;function Mt(){this.yy={}}return b(Mt,"Parser"),Mt.prototype=Ht,Ht.Parser=Mt,new Mt}();Ut.parser=Ut;var Ve=Ut,V=[],xt=[""],I="global",F="",X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],Bt=[],ne="",se=!1,Ft=4,Vt=2,we,ze=b(function(){return we},"getC4Type"),Xe=b(function(e){we=te(e,Ot())},"setC4Type"),We=b(function(e,t,s,o,l,a,n,r,i){if(e==null||t===void 0||t===null||s===void 0||s===null||o===void 0||o===null)return;let u={},d=Bt.find(y=>y.from===t&&y.to===s);if(d?u=d:Bt.push(u),u.type=e,u.from=t,u.to=s,u.label={text:o},l==null)u.techn={text:""};else if(typeof l=="object"){let[y,p]=Object.entries(l)[0];u[y]={text:p}}else u.techn={text:l};if(a==null)u.descr={text:""};else if(typeof a=="object"){let[y,p]=Object.entries(a)[0];u[y]={text:p}}else u.descr={text:a};if(typeof n=="object"){let[y,p]=Object.entries(n)[0];u[y]=p}else u.sprite=n;if(typeof r=="object"){let[y,p]=Object.entries(r)[0];u[y]=p}else u.tags=r;if(typeof i=="object"){let[y,p]=Object.entries(i)[0];u[y]=p}else u.link=i;u.wrap=mt()},"addRel"),Qe=b(function(e,t,s,o,l,a,n){if(t===null||s===null)return;let r={},i=V.find(u=>u.alias===t);if(i&&t===i.alias?r=i:(r.alias=t,V.push(r)),s==null?r.label={text:""}:r.label={text:s},o==null)r.descr={text:""};else if(typeof o=="object"){let[u,d]=Object.entries(o)[0];r[u]={text:d}}else r.descr={text:o};if(typeof l=="object"){let[u,d]=Object.entries(l)[0];r[u]=d}else r.sprite=l;if(typeof a=="object"){let[u,d]=Object.entries(a)[0];r[u]=d}else r.tags=a;if(typeof n=="object"){let[u,d]=Object.entries(n)[0];r[u]=d}else r.link=n;r.typeC4Shape={text:e},r.parentBoundary=I,r.wrap=mt()},"addPersonOrSystem"),He=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof a=="object"){let[d,y]=Object.entries(a)[0];i[d]=y}else i.sprite=a;if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=I},"addContainer"),qe=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=V.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,V.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.techn={text:""};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.techn={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof a=="object"){let[d,y]=Object.entries(a)[0];i[d]=y}else i.sprite=a;if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.wrap=mt(),i.typeC4Shape={text:e},i.parentBoundary=I},"addComponent"),Ge=b(function(e,t,s,o,l){if(e===null||t===null)return;let a={},n=X.find(r=>r.alias===e);if(n&&e===n.alias?a=n:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"system"};else if(typeof s=="object"){let[r,i]=Object.entries(s)[0];a[r]={text:i}}else a.type={text:s};if(typeof o=="object"){let[r,i]=Object.entries(o)[0];a[r]=i}else a.tags=o;if(typeof l=="object"){let[r,i]=Object.entries(l)[0];a[r]=i}else a.link=l;a.parentBoundary=I,a.wrap=mt(),F=I,I=e,xt.push(F)},"addPersonOrSystemBoundary"),Ke=b(function(e,t,s,o,l){if(e===null||t===null)return;let a={},n=X.find(r=>r.alias===e);if(n&&e===n.alias?a=n:(a.alias=e,X.push(a)),t==null?a.label={text:""}:a.label={text:t},s==null)a.type={text:"container"};else if(typeof s=="object"){let[r,i]=Object.entries(s)[0];a[r]={text:i}}else a.type={text:s};if(typeof o=="object"){let[r,i]=Object.entries(o)[0];a[r]=i}else a.tags=o;if(typeof l=="object"){let[r,i]=Object.entries(l)[0];a[r]=i}else a.link=l;a.parentBoundary=I,a.wrap=mt(),F=I,I=e,xt.push(F)},"addContainerBoundary"),Je=b(function(e,t,s,o,l,a,n,r){if(t===null||s===null)return;let i={},u=X.find(d=>d.alias===t);if(u&&t===u.alias?i=u:(i.alias=t,X.push(i)),s==null?i.label={text:""}:i.label={text:s},o==null)i.type={text:"node"};else if(typeof o=="object"){let[d,y]=Object.entries(o)[0];i[d]={text:y}}else i.type={text:o};if(l==null)i.descr={text:""};else if(typeof l=="object"){let[d,y]=Object.entries(l)[0];i[d]={text:y}}else i.descr={text:l};if(typeof n=="object"){let[d,y]=Object.entries(n)[0];i[d]=y}else i.tags=n;if(typeof r=="object"){let[d,y]=Object.entries(r)[0];i[d]=y}else i.link=r;i.nodeType=e,i.parentBoundary=I,i.wrap=mt(),F=I,I=t,xt.push(F)},"addDeploymentNode"),Ze=b(function(){I=F,xt.pop(),F=xt.pop(),xt.push(F)},"popBoundaryParseStack"),$e=b(function(e,t,s,o,l,a,n,r,i,u,d){let y=V.find(p=>p.alias===t);if(!(y===void 0&&(y=X.find(p=>p.alias===t),y===void 0))){if(s!=null)if(typeof s=="object"){let[p,k]=Object.entries(s)[0];y[p]=k}else y.bgColor=s;if(o!=null)if(typeof o=="object"){let[p,k]=Object.entries(o)[0];y[p]=k}else y.fontColor=o;if(l!=null)if(typeof l=="object"){let[p,k]=Object.entries(l)[0];y[p]=k}else y.borderColor=l;if(a!=null)if(typeof a=="object"){let[p,k]=Object.entries(a)[0];y[p]=k}else y.shadowing=a;if(n!=null)if(typeof n=="object"){let[p,k]=Object.entries(n)[0];y[p]=k}else y.shape=n;if(r!=null)if(typeof r=="object"){let[p,k]=Object.entries(r)[0];y[p]=k}else y.sprite=r;if(i!=null)if(typeof i=="object"){let[p,k]=Object.entries(i)[0];y[p]=k}else y.techn=i;if(u!=null)if(typeof u=="object"){let[p,k]=Object.entries(u)[0];y[p]=k}else y.legendText=u;if(d!=null)if(typeof d=="object"){let[p,k]=Object.entries(d)[0];y[p]=k}else y.legendSprite=d}},"updateElStyle"),t0=b(function(e,t,s,o,l,a,n){let r=Bt.find(i=>i.from===t&&i.to===s);if(r!==void 0){if(o!=null)if(typeof o=="object"){let[i,u]=Object.entries(o)[0];r[i]=u}else r.textColor=o;if(l!=null)if(typeof l=="object"){let[i,u]=Object.entries(l)[0];r[i]=u}else r.lineColor=l;if(a!=null)if(typeof a=="object"){let[i,u]=Object.entries(a)[0];r[i]=parseInt(u)}else r.offsetX=parseInt(a);if(n!=null)if(typeof n=="object"){let[i,u]=Object.entries(n)[0];r[i]=parseInt(u)}else r.offsetY=parseInt(n)}},"updateRelStyle"),e0=b(function(e,t,s){let o=Ft,l=Vt;if(typeof t=="object"){let a=Object.values(t)[0];o=parseInt(a)}else o=parseInt(t);if(typeof s=="object"){let a=Object.values(s)[0];l=parseInt(a)}else l=parseInt(s);o>=1&&(Ft=o),l>=1&&(Vt=l)},"updateLayoutConfig"),a0=b(function(){return Ft},"getC4ShapeInRow"),i0=b(function(){return Vt},"getC4BoundaryInRow"),r0=b(function(){return I},"getCurrentBoundaryParse"),n0=b(function(){return F},"getParentBoundaryParse"),Te=b(function(e){return e==null?V:V.filter(t=>t.parentBoundary===e)},"getC4ShapeArray"),s0=b(function(e){return V.find(t=>t.alias===e)},"getC4Shape"),l0=b(function(e){return Object.keys(Te(e))},"getC4ShapeKeys"),Oe=b(function(e){return e==null?X:X.filter(t=>t.parentBoundary===e)},"getBoundaries"),o0=Oe,c0=b(function(){return Bt},"getRels"),h0=b(function(){return ne},"getTitle"),u0=b(function(e){se=e},"setWrap"),mt=b(function(){return se},"autoWrap"),d0=b(function(){V=[],X=[{alias:"global",label:{text:"global"},type:{text:"global"},tags:null,link:null,parentBoundary:""}],F="",I="global",xt=[""],Bt=[],xt=[""],ne="",se=!1,Ft=4,Vt=2},"clear"),f0={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18,PAR_START:19,PAR_AND:20,PAR_END:21,RECT_START:22,RECT_END:23,SOLID_POINT:24,DOTTED_POINT:25},p0={FILLED:0,OPEN:1},y0={LEFTOF:0,RIGHTOF:1,OVER:2},b0=b(function(e){ne=te(e,Ot())},"setTitle"),ae={addPersonOrSystem:Qe,addPersonOrSystemBoundary:Ge,addContainer:He,addContainerBoundary:Ke,addComponent:qe,addDeploymentNode:Je,popBoundaryParseStack:Ze,addRel:We,updateElStyle:$e,updateRelStyle:t0,updateLayoutConfig:e0,autoWrap:mt,setWrap:u0,getC4ShapeArray:Te,getC4Shape:s0,getC4ShapeKeys:l0,getBoundaries:Oe,getBoundarys:o0,getCurrentBoundaryParse:r0,getParentBoundaryParse:n0,getRels:c0,getTitle:h0,getC4Type:ze,getC4ShapeInRow:a0,getC4BoundaryInRow:i0,setAccTitle:ge,getAccTitle:_e,getAccDescription:me,setAccDescription:xe,getConfig:b(()=>Ot().c4,"getConfig"),clear:d0,LINETYPE:f0,ARROWTYPE:p0,PLACEMENT:y0,setTitle:b0,setC4Type:Xe},le=b(function(e,t){return ke(e,t)},"drawRect"),Se=b(function(e,t,s,o,l,a){let n=e.append("image");n.attr("width",t),n.attr("height",s),n.attr("x",o),n.attr("y",l);let r=a.startsWith("data:image/png;base64")?a:(0,Re.sanitizeUrl)(a);n.attr("xlink:href",r)},"drawImage"),g0=b((e,t,s)=>{let o=e.append("g"),l=0;for(let a of t){let n=a.textColor?a.textColor:"#444444",r=a.lineColor?a.lineColor:"#444444",i=a.offsetX?parseInt(a.offsetX):0,u=a.offsetY?parseInt(a.offsetY):0,d="";if(l===0){let p=o.append("line");p.attr("x1",a.startPoint.x),p.attr("y1",a.startPoint.y),p.attr("x2",a.endPoint.x),p.attr("y2",a.endPoint.y),p.attr("stroke-width","1"),p.attr("stroke",r),p.style("fill","none"),a.type!=="rel_b"&&p.attr("marker-end","url("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+d+"#arrowend)"),l=-1}else{let p=o.append("path");p.attr("fill","none").attr("stroke-width","1").attr("stroke",r).attr("d","Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx",a.startPoint.x).replaceAll("starty",a.startPoint.y).replaceAll("controlx",a.startPoint.x+(a.endPoint.x-a.startPoint.x)/2-(a.endPoint.x-a.startPoint.x)/4).replaceAll("controly",a.startPoint.y+(a.endPoint.y-a.startPoint.y)/2).replaceAll("stopx",a.endPoint.x).replaceAll("stopy",a.endPoint.y)),a.type!=="rel_b"&&p.attr("marker-end","url("+d+"#arrowhead)"),(a.type==="birel"||a.type==="rel_b")&&p.attr("marker-start","url("+d+"#arrowend)")}let y=s.messageFont();Q(s)(a.label.text,o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+u,a.label.width,a.label.height,{fill:n},y),a.techn&&a.techn.text!==""&&(y=s.messageFont(),Q(s)("["+a.techn.text+"]",o,Math.min(a.startPoint.x,a.endPoint.x)+Math.abs(a.endPoint.x-a.startPoint.x)/2+i,Math.min(a.startPoint.y,a.endPoint.y)+Math.abs(a.endPoint.y-a.startPoint.y)/2+s.messageFontSize+5+u,Math.max(a.label.width,a.techn.width),a.techn.height,{fill:n,"font-style":"italic"},y))}},"drawRels"),_0=b(function(e,t,s){let o=e.append("g"),l=t.bgColor?t.bgColor:"none",a=t.borderColor?t.borderColor:"#444444",n=t.fontColor?t.fontColor:"black",r={"stroke-width":1,"stroke-dasharray":"7.0,7.0"};t.nodeType&&(r={"stroke-width":1});let i={x:t.x,y:t.y,fill:l,stroke:a,width:t.width,height:t.height,rx:2.5,ry:2.5,attrs:r};le(o,i);let u=s.boundaryFont();u.fontWeight="bold",u.fontSize=u.fontSize+2,u.fontColor=n,Q(s)(t.label.text,o,t.x,t.y+t.label.Y,t.width,t.height,{fill:"#444444"},u),t.type&&t.type.text!==""&&(u=s.boundaryFont(),u.fontColor=n,Q(s)(t.type.text,o,t.x,t.y+t.type.Y,t.width,t.height,{fill:"#444444"},u)),t.descr&&t.descr.text!==""&&(u=s.boundaryFont(),u.fontSize=u.fontSize-2,u.fontColor=n,Q(s)(t.descr.text,o,t.x,t.y+t.descr.Y,t.width,t.height,{fill:"#444444"},u))},"drawBoundary"),x0=b(function(e,t,s){let o=t.bgColor?t.bgColor:s[t.typeC4Shape.text+"_bg_color"],l=t.borderColor?t.borderColor:s[t.typeC4Shape.text+"_border_color"],a=t.fontColor?t.fontColor:"#FFFFFF",n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";switch(t.typeC4Shape.text){case"person":n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";break;case"external_person":n="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";break}let r=e.append("g");r.attr("class","person-man");let i=Ee();switch(t.typeC4Shape.text){case"person":case"external_person":case"system":case"external_system":case"container":case"external_container":case"component":case"external_component":i.x=t.x,i.y=t.y,i.fill=o,i.width=t.width,i.height=t.height,i.stroke=l,i.rx=2.5,i.ry=2.5,i.attrs={"stroke-width":.5},le(r,i);break;case"system_db":case"external_system_db":case"container_db":case"external_container_db":case"component_db":case"external_component_db":r.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2).replaceAll("height",t.height)),r.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("half",t.width/2));break;case"system_queue":case"external_system_queue":case"container_queue":case"external_container_queue":case"component_queue":case"external_component_queue":r.append("path").attr("fill",o).attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx",t.x).replaceAll("starty",t.y).replaceAll("width",t.width).replaceAll("half",t.height/2)),r.append("path").attr("fill","none").attr("stroke-width","0.5").attr("stroke",l).attr("d","Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx",t.x+t.width).replaceAll("starty",t.y).replaceAll("half",t.height/2));break}let u=O0(s,t.typeC4Shape.text);switch(r.append("text").attr("fill",a).attr("font-family",u.fontFamily).attr("font-size",u.fontSize-2).attr("font-style","italic").attr("lengthAdjust","spacing").attr("textLength",t.typeC4Shape.width).attr("x",t.x+t.width/2-t.typeC4Shape.width/2).attr("y",t.y+t.typeC4Shape.Y).text("<<"+t.typeC4Shape.text+">>"),t.typeC4Shape.text){case"person":case"external_person":Se(r,48,48,t.x+t.width/2-24,t.y+t.image.Y,n);break}let d=s[t.typeC4Shape.text+"Font"]();return d.fontWeight="bold",d.fontSize=d.fontSize+2,d.fontColor=a,Q(s)(t.label.text,r,t.x,t.y+t.label.Y,t.width,t.height,{fill:a},d),d=s[t.typeC4Shape.text+"Font"](),d.fontColor=a,t.techn&&t.techn?.text!==""?Q(s)(t.techn.text,r,t.x,t.y+t.techn.Y,t.width,t.height,{fill:a,"font-style":"italic"},d):t.type&&t.type.text!==""&&Q(s)(t.type.text,r,t.x,t.y+t.type.Y,t.width,t.height,{fill:a,"font-style":"italic"},d),t.descr&&t.descr.text!==""&&(d=s.personFont(),d.fontColor=a,Q(s)(t.descr.text,r,t.x,t.y+t.descr.Y,t.width,t.height,{fill:a},d)),t.height},"drawC4Shape"),m0=b(function(e){e.append("defs").append("symbol").attr("id","database").attr("fill-rule","evenodd").attr("clip-rule","evenodd").append("path").attr("transform","scale(.5)").attr("d","M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z")},"insertDatabaseIcon"),v0=b(function(e){e.append("defs").append("symbol").attr("id","computer").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z")},"insertComputerIcon"),k0=b(function(e){e.append("defs").append("symbol").attr("id","clock").attr("width","24").attr("height","24").append("path").attr("transform","scale(.5)").attr("d","M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z")},"insertClockIcon"),E0=b(function(e){e.append("defs").append("marker").attr("id","arrowhead").attr("refX",9).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")},"insertArrowHead"),A0=b(function(e){e.append("defs").append("marker").attr("id","arrowend").attr("refX",1).attr("refY",5).attr("markerUnits","userSpaceOnUse").attr("markerWidth",12).attr("markerHeight",12).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 z")},"insertArrowEnd"),C0=b(function(e){e.append("defs").append("marker").attr("id","filled-head").attr("refX",18).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")},"insertArrowFilledHead"),w0=b(function(e){e.append("defs").append("marker").attr("id","sequencenumber").attr("refX",15).attr("refY",15).attr("markerWidth",60).attr("markerHeight",40).attr("orient","auto").append("circle").attr("cx",15).attr("cy",15).attr("r",6)},"insertDynamicNumber"),T0=b(function(e){let s=e.append("defs").append("marker").attr("id","crosshead").attr("markerWidth",15).attr("markerHeight",8).attr("orient","auto").attr("refX",16).attr("refY",4);s.append("path").attr("fill","black").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 9,2 V 6 L16,4 Z"),s.append("path").attr("fill","none").attr("stroke","#000000").style("stroke-dasharray","0, 0").attr("stroke-width","1px").attr("d","M 0,1 L 6,7 M 6,1 L 0,7")},"insertArrowCrossHead"),O0=b((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"getC4ShapeFont"),Q=function(){function e(l,a,n,r,i,u,d){let y=a.append("text").attr("x",n+i/2).attr("y",r+u/2+5).style("text-anchor","middle").text(l);o(y,d)}b(e,"byText");function t(l,a,n,r,i,u,d,y){let{fontSize:p,fontFamily:k,fontWeight:O}=y,S=l.split(Yt.lineBreakRegex);for(let P=0;P=this.data.widthLimit||s>=this.data.widthLimit||this.nextData.cnt>De)&&(t=this.nextData.startx+e.margin+_.nextLinePaddingX,o=this.nextData.stopy+e.margin*2,this.nextData.stopx=s=t+e.width,this.nextData.starty=this.nextData.stopy,this.nextData.stopy=l=o+e.height,this.nextData.cnt=1),e.x=t,e.y=o,this.updateVal(this.data,"startx",t,Math.min),this.updateVal(this.data,"starty",o,Math.min),this.updateVal(this.data,"stopx",s,Math.max),this.updateVal(this.data,"stopy",l,Math.max),this.updateVal(this.nextData,"startx",t,Math.min),this.updateVal(this.nextData,"starty",o,Math.min),this.updateVal(this.nextData,"stopx",s,Math.max),this.updateVal(this.nextData,"stopy",l,Math.max)}init(e){this.name="",this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,widthLimit:void 0},this.nextData={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0,cnt:0},re(e.db.getConfig())}bumpLastMargin(e){this.data.stopx+=e,this.data.stopy+=e}},re=b(function(e){ye(_,e),e.fontFamily&&(_.personFontFamily=_.systemFontFamily=_.messageFontFamily=e.fontFamily),e.fontSize&&(_.personFontSize=_.systemFontSize=_.messageFontSize=e.fontSize),e.fontWeight&&(_.personFontWeight=_.systemFontWeight=_.messageFontWeight=e.fontWeight)},"setConf"),Pt=b((e,t)=>({fontFamily:e[t+"FontFamily"],fontSize:e[t+"FontSize"],fontWeight:e[t+"FontWeight"]}),"c4ShapeFont"),jt=b(e=>({fontFamily:e.boundaryFontFamily,fontSize:e.boundaryFontSize,fontWeight:e.boundaryFontWeight}),"boundaryFont"),R0=b(e=>({fontFamily:e.messageFontFamily,fontSize:e.messageFontSize,fontWeight:e.messageFontWeight}),"messageFont");function j(e,t,s,o,l){if(!t[e].width)if(s)t[e].text=ve(t[e].text,l,o),t[e].textLines=t[e].text.split(Yt.lineBreakRegex).length,t[e].width=l,t[e].height=ee(t[e].text,o);else{let a=t[e].text.split(Yt.lineBreakRegex);t[e].textLines=a.length;let n=0;t[e].height=0,t[e].width=0;for(let r of a)t[e].width=Math.max(Ct(r,o),t[e].width),n=ee(r,o),t[e].height=t[e].height+n}}b(j,"calcC4ShapeTextWH");var Be=b(function(e,t,s){t.x=s.data.startx,t.y=s.data.starty,t.width=s.data.stopx-s.data.startx,t.height=s.data.stopy-s.data.starty,t.label.y=_.c4ShapeMargin-35;let o=t.wrap&&_.wrap,l=jt(_);l.fontSize=l.fontSize+2,l.fontWeight="bold";let a=Ct(t.label.text,l);j("label",t,o,l,a),z.drawBoundary(e,t,_)},"drawBoundary"),Ie=b(function(e,t,s,o){let l=0;for(let a of o){l=0;let n=s[a],r=Pt(_,n.typeC4Shape.text);switch(r.fontSize=r.fontSize-2,n.typeC4Shape.width=Ct("\xAB"+n.typeC4Shape.text+"\xBB",r),n.typeC4Shape.height=r.fontSize+2,n.typeC4Shape.Y=_.c4ShapePadding,l=n.typeC4Shape.Y+n.typeC4Shape.height-4,n.image={width:0,height:0,Y:0},n.typeC4Shape.text){case"person":case"external_person":n.image.width=48,n.image.height=48,n.image.Y=l,l=n.image.Y+n.image.height;break}n.sprite&&(n.image.width=48,n.image.height=48,n.image.Y=l,l=n.image.Y+n.image.height);let i=n.wrap&&_.wrap,u=_.width-_.c4ShapePadding*2,d=Pt(_,n.typeC4Shape.text);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",n,i,d,u),n.label.Y=l+8,l=n.label.Y+n.label.height,n.type&&n.type.text!==""){n.type.text="["+n.type.text+"]";let k=Pt(_,n.typeC4Shape.text);j("type",n,i,k,u),n.type.Y=l+5,l=n.type.Y+n.type.height}else if(n.techn&&n.techn.text!==""){n.techn.text="["+n.techn.text+"]";let k=Pt(_,n.techn.text);j("techn",n,i,k,u),n.techn.Y=l+5,l=n.techn.Y+n.techn.height}let y=l,p=n.label.width;if(n.descr&&n.descr.text!==""){let k=Pt(_,n.typeC4Shape.text);j("descr",n,i,k,u),n.descr.Y=l+20,l=n.descr.Y+n.descr.height,p=Math.max(n.label.width,n.descr.width),y=l-n.descr.textLines*5}p=p+_.c4ShapePadding,n.width=Math.max(n.width||_.width,p,_.width),n.height=Math.max(n.height||_.height,y,_.height),n.margin=n.margin||_.c4ShapeMargin,e.insert(n),z.drawC4Shape(t,n,_)}e.bumpLastMargin(_.c4ShapeMargin)},"drawC4ShapeArray"),Y=class{static{b(this,"Point")}constructor(e,t){this.x=e,this.y=t}},Ae=b(function(e,t){let s=e.x,o=e.y,l=t.x,a=t.y,n=s+e.width/2,r=o+e.height/2,i=Math.abs(s-l),u=Math.abs(o-a),d=u/i,y=e.height/e.width,p=null;return o==a&&sl?p=new Y(s,r):s==l&&oa&&(p=new Y(n,o)),s>l&&o=d?p=new Y(s,r+d*e.width/2):p=new Y(n-i/u*e.height/2,o+e.height):s=d?p=new Y(s+e.width,r+d*e.width/2):p=new Y(n+i/u*e.height/2,o+e.height):sa?y>=d?p=new Y(s+e.width,r-d*e.width/2):p=new Y(n+e.height/2*i/u,o):s>l&&o>a&&(y>=d?p=new Y(s,r-e.width/2*d):p=new Y(n-e.height/2*i/u,o)),p},"getIntersectPoint"),S0=b(function(e,t){let s={x:0,y:0};s.x=t.x+t.width/2,s.y=t.y+t.height/2;let o=Ae(e,s);s.x=e.x+e.width/2,s.y=e.y+e.height/2;let l=Ae(t,s);return{startPoint:o,endPoint:l}},"getIntersectPoints"),D0=b(function(e,t,s,o){let l=0;for(let a of t){l=l+1;let n=a.wrap&&_.wrap,r=R0(_);o.db.getC4Type()==="C4Dynamic"&&(a.label.text=l+": "+a.label.text);let u=Ct(a.label.text,r);j("label",a,n,r,u),a.techn&&a.techn.text!==""&&(u=Ct(a.techn.text,r),j("techn",a,n,r,u)),a.descr&&a.descr.text!==""&&(u=Ct(a.descr.text,r),j("descr",a,n,r,u));let d=s(a.from),y=s(a.to),p=S0(d,y);a.startPoint=p.startPoint,a.endPoint=p.endPoint}z.drawRels(e,t,_)},"drawRels");function oe(e,t,s,o,l){let a=new Pe(l);a.data.widthLimit=s.data.widthLimit/Math.min(ie,o.length);for(let[n,r]of o.entries()){let i=0;r.image={width:0,height:0,Y:0},r.sprite&&(r.image.width=48,r.image.height=48,r.image.Y=i,i=r.image.Y+r.image.height);let u=r.wrap&&_.wrap,d=jt(_);if(d.fontSize=d.fontSize+2,d.fontWeight="bold",j("label",r,u,d,a.data.widthLimit),r.label.Y=i+8,i=r.label.Y+r.label.height,r.type&&r.type.text!==""){r.type.text="["+r.type.text+"]";let O=jt(_);j("type",r,u,O,a.data.widthLimit),r.type.Y=i+5,i=r.type.Y+r.type.height}if(r.descr&&r.descr.text!==""){let O=jt(_);O.fontSize=O.fontSize-2,j("descr",r,u,O,a.data.widthLimit),r.descr.Y=i+20,i=r.descr.Y+r.descr.height}if(n==0||n%ie===0){let O=s.data.startx+_.diagramMarginX,S=s.data.stopy+_.diagramMarginY+i;a.setData(O,O,S,S)}else{let O=a.data.stopx!==a.data.startx?a.data.stopx+_.diagramMarginX:a.data.startx,S=a.data.starty;a.setData(O,O,S,S)}a.name=r.alias;let y=l.db.getC4ShapeArray(r.alias),p=l.db.getC4ShapeKeys(r.alias);p.length>0&&Ie(a,e,y,p),t=r.alias;let k=l.db.getBoundaries(t);k.length>0&&oe(e,t,a,k,l),r.alias!=="global"&&Be(e,r,a),s.data.stopy=Math.max(a.data.stopy+_.c4ShapeMargin,s.data.stopy),s.data.stopx=Math.max(a.data.stopx+_.c4ShapeMargin,s.data.stopx),zt=Math.max(zt,s.data.stopx),Xt=Math.max(Xt,s.data.stopy)}}b(oe,"drawInsideBoundary");var P0=b(function(e,t,s,o){_=Ot().c4;let l=Ot().securityLevel,a;l==="sandbox"&&(a=Dt("#i"+t));let n=l==="sandbox"?Dt(a.nodes()[0].contentDocument.body):Dt("body"),r=o.db;o.db.setWrap(_.wrap),De=r.getC4ShapeInRow(),ie=r.getC4BoundaryInRow(),$t.debug(`C:${JSON.stringify(_,null,2)}`);let i=l==="sandbox"?n.select(`[id="${t}"]`):Dt(`[id="${t}"]`);z.insertComputerIcon(i),z.insertDatabaseIcon(i),z.insertClockIcon(i);let u=new Pe(o);u.setData(_.diagramMarginX,_.diagramMarginX,_.diagramMarginY,_.diagramMarginY),u.data.widthLimit=screen.availWidth,zt=_.diagramMarginX,Xt=_.diagramMarginY;let d=o.db.getTitle(),y=o.db.getBoundaries("");oe(i,"",u,y,o),z.insertArrowHead(i),z.insertArrowEnd(i),z.insertArrowCrossHead(i),z.insertArrowFilledHead(i),D0(i,o.db.getRels(),o.db.getC4Shape,o),u.data.stopx=zt,u.data.stopy=Xt;let p=u.data,O=p.stopy-p.starty+2*_.diagramMarginY,P=p.stopx-p.startx+2*_.diagramMarginX;d&&i.append("text").text(d).attr("x",(p.stopx-p.startx)/2-4*_.diagramMarginX).attr("y",p.starty+_.diagramMarginY),be(i,O,P,_.useMaxWidth);let M=d?60:0;i.attr("viewBox",p.startx-_.diagramMarginX+" -"+(_.diagramMarginY+M)+" "+P+" "+(O+M)),$t.debug("models:",p)},"draw"),Ce={drawPersonOrSystemArray:Ie,drawBoundary:Be,setConf:re,draw:P0},B0=b(e=>`.person { + stroke: ${e.personBorder}; + fill: ${e.personBkg}; + } +`,"getStyles"),I0=B0,F0={parser:Ve,db:ae,renderer:Ce,styles:I0,init:b(({c4:e,wrap:t})=>{Ce.setConf(e),ae.setWrap(t)},"init")};export{F0 as diagram}; diff --git a/build/_shared/cal-Y5P7K5Z2.js b/build/_shared/cal-Y5P7K5Z2.js new file mode 100644 index 00000000..f24871bf --- /dev/null +++ b/build/_shared/cal-Y5P7K5Z2.js @@ -0,0 +1 @@ +import{c as T}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var M=T((g,o)=>{function l(e){let n="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",r="false true",c=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],t={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/},i={className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},d={className:"string",begin:'"',end:'"'},a={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[t,s]}].concat(c)},E={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,a]};return{name:"C/AL",case_insensitive:!0,keywords:{keyword:n,literal:r},illegal:/\/\*/,contains:[t,s,i,d,e.NUMBER_MODE,E,a]}}o.exports=l});export default M(); diff --git a/build/_shared/capnproto-LTSEHCOQ.js b/build/_shared/capnproto-LTSEHCOQ.js new file mode 100644 index 00000000..d50f43de --- /dev/null +++ b/build/_shared/capnproto-LTSEHCOQ.js @@ -0,0 +1 @@ +import{c as e}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=e((r,t)=>{function a(n){return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[n.QUOTE_STRING_MODE,n.NUMBER_MODE,n.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[n.inherit(n.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[n.inherit(n.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}t.exports=a});export default i(); diff --git a/build/_shared/ceylon-HS6RX4UJ.js b/build/_shared/ceylon-HS6RX4UJ.js new file mode 100644 index 00000000..24eadf09 --- /dev/null +++ b/build/_shared/ceylon-HS6RX4UJ.js @@ -0,0 +1 @@ +import{c as l}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=l((d,t)=>{function r(e){let a="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",c="shared abstract formal default actual variable late native deprecated final sealed annotation suppressWarnings small",i="doc by license see throws tagged",n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:a,relevance:10},s=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=s,{name:"Ceylon",keywords:{keyword:a+" "+c,meta:i},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(s)}}t.exports=r});export default o(); diff --git a/build/_shared/cfscript-RNPHXZHO.js b/build/_shared/cfscript-RNPHXZHO.js new file mode 100644 index 00000000..5897bad2 --- /dev/null +++ b/build/_shared/cfscript-RNPHXZHO.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-XVFFZD2L.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/chaiscript-ORNCM3VX.js b/build/_shared/chaiscript-ORNCM3VX.js new file mode 100644 index 00000000..b248db17 --- /dev/null +++ b/build/_shared/chaiscript-ORNCM3VX.js @@ -0,0 +1 @@ +import{a}from"/numpy-tutorials/build/_shared/chunk-5UUBGF2R.js";import"/numpy-tutorials/build/_shared/chunk-YB2OJRYJ.js";import"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";export default a(); diff --git a/build/_shared/chunk-265RPIE7.js b/build/_shared/chunk-265RPIE7.js new file mode 100644 index 00000000..74c913f7 --- /dev/null +++ b/build/_shared/chunk-265RPIE7.js @@ -0,0 +1 @@ +import{b as de}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function fr(x){var pr=x.statementIndent,ur=x.jsonld,br=x.json||ur,k=x.typescript,U=x.wordCharacters||/[\w$\xa1-\uffff]/,wr=function(){function r(y){return{type:y,style:"keyword"}}var e=r("keyword a"),t=r("keyword b"),f=r("keyword c"),u=r("keyword d"),c=r("operator"),m={type:"atom",style:"atom"};return{if:r("if"),while:e,with:e,else:t,do:t,try:t,finally:t,return:u,break:u,continue:u,new:r("new"),delete:f,void:f,throw:f,debugger:r("debugger"),var:r("var"),const:r("var"),let:r("var"),function:r("function"),catch:r("catch"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:c,typeof:c,instanceof:c,true:m,false:m,null:m,undefined:m,NaN:m,Infinity:m,this:r("this"),class:r("class"),super:r("atom"),yield:f,export:r("export"),import:r("import"),extends:f,await:f}}(),hr=/[+\-*&%=<>!?|~^@]/,Or=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function qr(r){for(var e=!1,t,f=!1;(t=r.next())!=null;){if(!e){if(t=="/"&&!f)return;t=="["?f=!0:f&&t=="]"&&(f=!1)}e=!e&&t=="\\"}}var D,G;function b(r,e,t){return D=r,G=t,e}function S(r,e){var t=r.next();if(t=='"'||t=="'")return e.tokenize=Nr(t),e.tokenize(r,e);if(t=="."&&r.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return b("number","number");if(t=="."&&r.match(".."))return b("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(t))return b(t);if(t=="="&&r.eat(">"))return b("=>","operator");if(t=="0"&&r.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return b("number","number");if(/\d/.test(t))return r.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),b("number","number");if(t=="/")return r.eat("*")?(e.tokenize=H,H(r,e)):r.eat("/")?(r.skipToEnd(),b("comment","comment")):ce(r,e,1)?(qr(r),r.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),b("regexp","string.special")):(r.eat("="),b("operator","operator",r.current()));if(t=="`")return e.tokenize=L,L(r,e);if(t=="#"&&r.peek()=="!")return r.skipToEnd(),b("meta","meta");if(t=="#"&&r.eatWhile(U))return b("variable","property");if(t=="<"&&r.match("!--")||t=="-"&&r.match("->")&&!/\S/.test(r.string.slice(0,r.start)))return r.skipToEnd(),b("comment","comment");if(hr.test(t))return(t!=">"||!e.lexical||e.lexical.type!=">")&&(r.eat("=")?(t=="!"||t=="=")&&r.eat("="):/[<>*+\-|&?]/.test(t)&&(r.eat(t),t==">"&&r.eat(t))),t=="?"&&r.eat(".")?b("."):b("operator","operator",r.current());if(U.test(t)){r.eatWhile(U);var f=r.current();if(e.lastType!="."){if(wr.propertyIsEnumerable(f)){var u=wr[f];return b(u.type,u.style,f)}if(f=="async"&&r.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return b("async","keyword",f)}return b("variable","variable",f)}}function Nr(r){return function(e,t){var f=!1,u;if(ur&&e.peek()=="@"&&e.match(Or))return t.tokenize=S,b("jsonld-keyword","meta");for(;(u=e.next())!=null&&!(u==r&&!f);)f=!f&&u=="\\";return f||(t.tokenize=S),b("string","string")}}function H(r,e){for(var t=!1,f;f=r.next();){if(f=="/"&&t){e.tokenize=S;break}t=f=="*"}return b("comment","comment")}function L(r,e){for(var t=!1,f;(f=r.next())!=null;){if(!t&&(f=="`"||f=="$"&&r.eat("{"))){e.tokenize=S;break}t=!t&&f=="\\"}return b("quasi","string.special",r.current())}var Br="([{}])";function ar(r,e){e.fatArrowAt&&(e.fatArrowAt=null);var t=r.string.indexOf("=>",r.start);if(!(t<0)){if(k){var f=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(r.string.slice(r.start,t));f&&(t=f.index)}for(var u=0,c=!1,m=t-1;m>=0;--m){var y=r.string.charAt(m),v=Br.indexOf(y);if(v>=0&&v<3){if(!u){++m;break}if(--u==0){y=="("&&(c=!0);break}}else if(v>=3&&v<6)++u;else if(U.test(y))c=!0;else if(/["'\/`]/.test(y))for(;;--m){if(m==0)return;var K=r.string.charAt(m-1);if(K==y&&r.string.charAt(m-2)!="\\"){m--;break}}else if(c&&!u){++m;break}}c&&!u&&(e.fatArrowAt=m)}}var Fr={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function xr(r,e,t,f,u,c){this.indented=r,this.column=e,this.type=t,this.prev=u,this.info=c,f!=null&&(this.align=f)}function Jr(r,e){for(var t=r.localVars;t;t=t.next)if(t.name==e)return!0;for(var f=r.context;f;f=f.prev)for(var t=f.vars;t;t=t.next)if(t.name==e)return!0}function Mr(r,e,t,f,u){var c=r.cc;for(i.state=r,i.stream=u,i.marked=null,i.cc=c,i.style=e,r.lexical.hasOwnProperty("align")||(r.lexical.align=!0);;){var m=c.length?c.pop():br?p:w;if(m(t,f)){for(;c.length&&c[c.length-1].lex;)c.pop()();return i.marked?i.marked:t=="variable"&&Jr(r,f)?"variableName.local":e}}}var i={state:null,column:null,marked:null,cc:null};function o(){for(var r=arguments.length-1;r>=0;r--)i.cc.push(arguments[r])}function n(){return o.apply(null,arguments),!0}function or(r,e){for(var t=e;t;t=t.next)if(t.name==r)return!0;return!1}function q(r){var e=i.state;if(i.marked="def",e.context){if(e.lexical.info=="var"&&e.context&&e.context.block){var t=gr(r,e.context);if(t!=null){e.context=t;return}}else if(!or(r,e.localVars)){e.localVars=new Q(r,e.localVars);return}}x.globalVars&&!or(r,e.globalVars)&&(e.globalVars=new Q(r,e.globalVars))}function gr(r,e){if(e)if(e.block){var t=gr(r,e.prev);return t?t==e.prev?e:new P(t,e.vars,!0):null}else return or(r,e.vars)?e:new P(e.prev,new Q(r,e.vars),!1);else return null}function X(r){return r=="public"||r=="private"||r=="protected"||r=="abstract"||r=="readonly"}function P(r,e,t){this.prev=r,this.vars=e,this.block=t}function Q(r,e){this.name=r,this.next=e}var Dr=new Q("this",new Q("arguments",null));function E(){i.state.context=new P(i.state.context,i.state.localVars,!1),i.state.localVars=Dr}function Y(){i.state.context=new P(i.state.context,i.state.localVars,!0),i.state.localVars=null}E.lex=Y.lex=!0;function T(){i.state.localVars=i.state.context.vars,i.state.context=i.state.context.prev}T.lex=!0;function s(r,e){var t=function(){var f=i.state,u=f.indented;if(f.lexical.type=="stat")u=f.lexical.indented;else for(var c=f.lexical;c&&c.type==")"&&c.align;c=c.prev)u=c.indented;f.lexical=new xr(u,i.stream.column(),r,null,f.lexical,e)};return t.lex=!0,t}function a(){var r=i.state;r.lexical.prev&&(r.lexical.type==")"&&(r.indented=r.lexical.indented),r.lexical=r.lexical.prev)}a.lex=!0;function l(r){function e(t){return t==r?n():r==";"||t=="}"||t==")"||t=="]"?o():n(e)}return e}function w(r,e){return r=="var"?n(s("vardef",e),mr,l(";"),a):r=="keyword a"?n(s("form"),sr,w,a):r=="keyword b"?n(s("form"),w,a):r=="keyword d"?i.stream.match(/^\s*$/,!1)?n():n(s("stat"),N,l(";"),a):r=="debugger"?n(l(";")):r=="{"?n(s("}"),Y,rr,a,T):r==";"?n():r=="if"?(i.state.lexical.info=="else"&&i.state.cc[i.state.cc.length-1]==a&&i.state.cc.pop()(),n(s("form"),sr,w,a,jr)):r=="function"?n(_):r=="for"?n(s("form"),Y,zr,w,T,a):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form",r=="class"?r:e),Sr,a)):r=="variable"?k&&e=="declare"?(i.marked="keyword",n(w)):k&&(e=="module"||e=="enum"||e=="type")&&i.stream.match(/^\s*\w/,!1)?(i.marked="keyword",e=="enum"?n($r):e=="type"?n(_r,l("operator"),d,l(";")):n(s("form"),V,l("{"),s("}"),rr,a,a)):k&&e=="namespace"?(i.marked="keyword",n(s("form"),p,w,a)):k&&e=="abstract"?(i.marked="keyword",n(w)):n(s("stat"),Kr):r=="switch"?n(s("form"),sr,l("{"),s("}","switch"),Y,rr,a,a,T):r=="case"?n(p,l(":")):r=="default"?n(l(":")):r=="catch"?n(s("form"),E,Lr,w,a,T):r=="export"?n(s("stat"),fe,a):r=="import"?n(s("stat"),ue,a):r=="async"?n(w):e=="@"?n(p,w):o(s("stat"),p,l(";"),a)}function Lr(r){if(r=="(")return n(O,l(")"))}function p(r,e){return yr(r,e,!1)}function g(r,e){return yr(r,e,!0)}function sr(r){return r!="("?o():n(s(")"),N,l(")"),a)}function yr(r,e,t){if(i.state.fatArrowAt==i.stream.start){var f=t?Tr:vr;if(r=="(")return n(E,s(")"),h(O,")"),a,l("=>"),f,T);if(r=="variable")return o(E,V,l("=>"),f,T)}var u=t?B:I;return Fr.hasOwnProperty(r)?n(u):r=="function"?n(_,u):r=="class"||k&&e=="interface"?(i.marked="keyword",n(s("form"),ie,a)):r=="keyword c"||r=="async"?n(t?g:p):r=="("?n(s(")"),N,l(")"),a,u):r=="operator"||r=="spread"?n(t?g:p):r=="["?n(s("]"),oe,a,u):r=="{"?R(C,"}",null,u):r=="quasi"?o(Z,u):r=="new"?n(Qr(t)):n()}function N(r){return r.match(/[;\}\)\],]/)?o():o(p)}function I(r,e){return r==","?n(N):B(r,e,!1)}function B(r,e,t){var f=t==!1?I:B,u=t==!1?p:g;if(r=="=>")return n(E,t?Tr:vr,T);if(r=="operator")return/\+\+|--/.test(e)||k&&e=="!"?n(f):k&&e=="<"&&i.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?n(s(">"),h(d,">"),a,f):e=="?"?n(p,l(":"),u):n(u);if(r=="quasi")return o(Z,f);if(r!=";"){if(r=="(")return R(g,")","call",f);if(r==".")return n(Ur,f);if(r=="[")return n(s("]"),N,l("]"),a,f);if(k&&e=="as")return i.marked="keyword",n(d,f);if(r=="regexp")return i.state.lastType=i.marked="operator",i.stream.backUp(i.stream.pos-i.stream.start-1),n(u)}}function Z(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(Z):n(N,Pr)}function Pr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(Z)}function vr(r){return ar(i.stream,i.state),o(r=="{"?w:p)}function Tr(r){return ar(i.stream,i.state),o(r=="{"?w:g)}function Qr(r){return function(e){return e=="."?n(r?Wr:Rr):e=="variable"&&k?n(Cr,r?B:I):o(r?g:p)}}function Rr(r,e){if(e=="target")return i.marked="keyword",n(I)}function Wr(r,e){if(e=="target")return i.marked="keyword",n(B)}function Kr(r){return r==":"?n(a,w):o(I,l(";"),a)}function Ur(r){if(r=="variable")return i.marked="property",n()}function C(r,e){if(r=="async")return i.marked="property",n(C);if(r=="variable"||i.style=="keyword"){if(i.marked="property",e=="get"||e=="set")return n(Gr);var t;return k&&i.state.fatArrowAt==i.stream.start&&(t=i.stream.match(/^\s*:\s*/,!1))&&(i.state.fatArrowAt=i.stream.pos+t[0].length),n($)}else{if(r=="number"||r=="string")return i.marked=ur?"property":i.style+" property",n($);if(r=="jsonld-keyword")return n($);if(k&&X(e))return i.marked="keyword",n(C);if(r=="[")return n(p,F,l("]"),$);if(r=="spread")return n(g,$);if(e=="*")return i.marked="keyword",n(C);if(r==":")return o($)}}function Gr(r){return r!="variable"?o($):(i.marked="property",n(_))}function $(r){if(r==":")return n(g);if(r=="(")return o(_)}function h(r,e,t){function f(u,c){if(t?t.indexOf(u)>-1:u==","){var m=i.state.lexical;return m.info=="call"&&(m.pos=(m.pos||0)+1),n(function(y,v){return y==e||v==e?o():o(r)},f)}return u==e||c==e?n():t&&t.indexOf(";")>-1?o(r):n(l(e))}return function(u,c){return u==e||c==e?n():o(r,f)}}function R(r,e,t){for(var f=3;f"),d);if(r=="quasi")return o(cr,A)}function Yr(r){if(r=="=>")return n(d)}function lr(r){return r.match(/[\}\)\]]/)?n():r==","||r==";"?n(lr):o(W,lr)}function W(r,e){if(r=="variable"||i.style=="keyword")return i.marked="property",n(W);if(e=="?"||r=="number"||r=="string")return n(W);if(r==":")return n(d);if(r=="[")return n(l("variable"),Hr,l("]"),W);if(r=="(")return o(M,W);if(!r.match(/[;\}\)\],]/))return n()}function cr(r,e){return r!="quasi"?o():e.slice(e.length-2)!="${"?n(cr):n(d,Zr)}function Zr(r){if(r=="}")return i.marked="string.special",i.state.tokenize=L,n(cr)}function dr(r,e){return r=="variable"&&i.stream.match(/^\s*[?:]/,!1)||e=="?"?n(dr):r==":"?n(d):r=="spread"?n(dr):o(d)}function A(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A);if(e=="|"||r=="."||e=="&")return n(d);if(r=="[")return n(d,l("]"),A);if(e=="extends"||e=="implements")return i.marked="keyword",n(d);if(e=="?")return n(d,l(":"),d)}function Cr(r,e){if(e=="<")return n(s(">"),h(d,">"),a,A)}function er(){return o(d,re)}function re(r,e){if(e=="=")return n(d)}function mr(r,e){return e=="enum"?(i.marked="keyword",n($r)):o(V,F,z,ne)}function V(r,e){if(k&&X(e))return i.marked="keyword",n(V);if(r=="variable")return q(e),n();if(r=="spread")return n(V);if(r=="[")return R(ee,"]");if(r=="{")return R(Ar,"}")}function Ar(r,e){return r=="variable"&&!i.stream.match(/^\s*:/,!1)?(q(e),n(z)):(r=="variable"&&(i.marked="property"),r=="spread"?n(V):r=="}"?o():r=="["?n(p,l("]"),l(":"),Ar):n(l(":"),V,z))}function ee(){return o(V,z)}function z(r,e){if(e=="=")return n(g)}function ne(r){if(r==",")return n(mr)}function jr(r,e){if(r=="keyword b"&&e=="else")return n(s("form","else"),w,a)}function zr(r,e){if(e=="await")return n(zr);if(r=="(")return n(s(")"),te,a)}function te(r){return r=="var"?n(mr,J):r=="variable"?n(J):o(J)}function J(r,e){return r==")"?n():r==";"?n(J):e=="in"||e=="of"?(i.marked="keyword",n(p,J)):o(p,J)}function _(r,e){if(e=="*")return i.marked="keyword",n(_);if(r=="variable")return q(e),n(_);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,w,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,_)}function M(r,e){if(e=="*")return i.marked="keyword",n(M);if(r=="variable")return q(e),n(M);if(r=="(")return n(E,s(")"),h(O,")"),a,Vr,T);if(k&&e=="<")return n(s(">"),h(er,">"),a,M)}function _r(r,e){if(r=="keyword"||r=="variable")return i.marked="type",n(_r);if(e=="<")return n(s(">"),h(er,">"),a)}function O(r,e){return e=="@"&&n(p,O),r=="spread"?n(O):k&&X(e)?(i.marked="keyword",n(O)):k&&r=="this"?n(F,z):o(V,F,z)}function ie(r,e){return r=="variable"?Sr(r,e):nr(r,e)}function Sr(r,e){if(r=="variable")return q(e),n(nr)}function nr(r,e){if(e=="<")return n(s(">"),h(er,">"),a,nr);if(e=="extends"||e=="implements"||k&&r==",")return e=="implements"&&(i.marked="keyword"),n(k?d:p,nr);if(r=="{")return n(s("}"),j,a)}function j(r,e){if(r=="async"||r=="variable"&&(e=="static"||e=="get"||e=="set"||k&&X(e))&&i.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1))return i.marked="keyword",n(j);if(r=="variable"||i.style=="keyword")return i.marked="property",n(tr,j);if(r=="number"||r=="string")return n(tr,j);if(r=="[")return n(p,F,l("]"),tr,j);if(e=="*")return i.marked="keyword",n(j);if(k&&r=="(")return o(M,j);if(r==";"||r==",")return n(j);if(r=="}")return n();if(e=="@")return n(p,j)}function tr(r,e){if(e=="!"||e=="?")return n(tr);if(r==":")return n(d,z);if(e=="=")return n(g);var t=i.state.lexical.prev,f=t&&t.info=="interface";return o(f?M:_)}function fe(r,e){return e=="*"?(i.marked="keyword",n(kr,l(";"))):e=="default"?(i.marked="keyword",n(p,l(";"))):r=="{"?n(h(Er,"}"),kr,l(";")):o(w)}function Er(r,e){if(e=="as")return i.marked="keyword",n(l("variable"));if(r=="variable")return o(g,Er)}function ue(r){return r=="string"?n():r=="("?o(p):r=="."?o(I):o(ir,Ir,kr)}function ir(r,e){return r=="{"?R(ir,"}"):(r=="variable"&&q(e),e=="*"&&(i.marked="keyword"),n(ae))}function Ir(r){if(r==",")return n(ir,Ir)}function ae(r,e){if(e=="as")return i.marked="keyword",n(ir)}function kr(r,e){if(e=="from")return i.marked="keyword",n(p)}function oe(r){return r=="]"?n():o(h(g,"]"))}function $r(){return o(s("form"),V,l("{"),s("}"),h(se,"}"),a,a)}function se(){return o(V,z)}function le(r,e){return r.lastType=="operator"||r.lastType==","||hr.test(e.charAt(0))||/[,.]/.test(e.charAt(0))}function ce(r,e,t){return e.tokenize==S&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(e.lastType)||e.lastType=="quasi"&&/\{\s*$/.test(r.string.slice(0,r.pos-(t||0)))}return{name:x.name,startState:function(r){var e={tokenize:S,lastType:"sof",cc:[],lexical:new xr(-r,0,"block",!1),localVars:x.localVars,context:x.localVars&&new P(null,null,!1),indented:0};return x.globalVars&&typeof x.globalVars=="object"&&(e.globalVars=x.globalVars),e},token:function(r,e){if(r.sol()&&(e.lexical.hasOwnProperty("align")||(e.lexical.align=!1),e.indented=r.indentation(),ar(r,e)),e.tokenize!=H&&r.eatSpace())return null;var t=e.tokenize(r,e);return D=="comment"?t:(e.lastType=D=="operator"&&(G=="++"||G=="--")?"incdec":D,Mr(e,t,D,G,r))},indent:function(r,e,t){if(r.tokenize==H||r.tokenize==L)return null;if(r.tokenize!=S)return 0;var f=e&&e.charAt(0),u=r.lexical,c;if(!/^\s*else\b/.test(e))for(var m=r.cc.length-1;m>=0;--m){var y=r.cc[m];if(y==a)u=u.prev;else if(y!=jr&&y!=T)break}for(;(u.type=="stat"||u.type=="form")&&(f=="}"||(c=r.cc[r.cc.length-1])&&(c==I||c==B)&&!/^[,\.=+\-*:?[\(]/.test(e));)u=u.prev;pr&&u.type==")"&&u.prev.type=="stat"&&(u=u.prev);var v=u.type,K=f==v;return v=="vardef"?u.indented+(r.lastType=="operator"||r.lastType==","?u.info.length+1:0):v=="form"&&f=="{"?u.indented:v=="form"?u.indented+t.unit:v=="stat"?u.indented+(le(r,e)?pr||t.unit:0):u.info=="switch"&&!K&&x.doubleIndentSwitch!=!1?u.indented+(/^(?:case|default)\b/.test(e)?t.unit:2*t.unit):u.align?u.column+(K?0:1):u.indented+(K?0:t.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:br?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}var ke,pe,be,we,me=de(()=>{ke=fr({name:"javascript"}),pe=fr({name:"json",json:!0}),be=fr({name:"json",jsonld:!0}),we=fr({name:"typescript",typescript:!0})});export{ke as a,pe as b,be as c,we as d,me as e}; diff --git a/build/_shared/chunk-26VD3W55.js b/build/_shared/chunk-26VD3W55.js new file mode 100644 index 00000000..d323d12e --- /dev/null +++ b/build/_shared/chunk-26VD3W55.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=t((s,r)=>{r.exports=i;i.displayName="uri";i.aliases=["url"];function i(e){e.languages.uri={scheme:{pattern:/^[a-z][a-z0-9+.-]*:/im,greedy:!0,inside:{"scheme-delimiter":/:$/}},fragment:{pattern:/#[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"fragment-delimiter":/^#/}},query:{pattern:/\?[\w\-.~!$&'()*+,;=%:@/?]*/,inside:{"query-delimiter":{pattern:/^\?/,greedy:!0},"pair-delimiter":/[&;]/,pair:{pattern:/^[^=][\s\S]*/,inside:{key:/^[^=]+/,value:{pattern:/(^=)[\s\S]+/,lookbehind:!0}}}}},authority:{pattern:RegExp(/^\/\//.source+/(?:[\w\-.~!$&'()*+,;=%:]*@)?/.source+("(?:"+/\[(?:[0-9a-fA-F:.]{2,48}|v[0-9a-fA-F]+\.[\w\-.~!$&'()*+,;=]+)\]/.source+"|"+/[\w\-.~!$&'()*+,;=%]*/.source+")")+/(?::\d*)?/.source,"m"),inside:{"authority-delimiter":/^\/\//,"user-info-segment":{pattern:/^[\w\-.~!$&'()*+,;=%:]*@/,inside:{"user-info-delimiter":/@$/,"user-info":/^[\w\-.~!$&'()*+,;=%:]+/}},"port-segment":{pattern:/:\d*$/,inside:{"port-delimiter":/^:/,port:/^\d+/}},host:{pattern:/[\s\S]+/,inside:{"ip-literal":{pattern:/^\[[\s\S]+\]$/,inside:{"ip-literal-delimiter":/^\[|\]$/,"ipv-future":/^v[\s\S]+/,"ipv6-address":/^[\s\S]+/}},"ipv4-address":/^(?:(?:[03-9]\d?|[12]\d{0,2})\.){3}(?:[03-9]\d?|[12]\d{0,2})$/}}}},path:{pattern:/^[\w\-.~!$&'()*+,;=%:@/]+/m,inside:{"path-separator":/\//}}},e.languages.url=e.languages.uri}});export{a}; diff --git a/build/_shared/chunk-26VS2IBC.js b/build/_shared/chunk-26VS2IBC.js new file mode 100644 index 00000000..39cecb28 --- /dev/null +++ b/build/_shared/chunk-26VS2IBC.js @@ -0,0 +1 @@ +import{a as o}from"/numpy-tutorials/build/_shared/chunk-J3PKFMLQ.js";import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=i((d,n)=>{var s=o();n.exports=a;a.displayName="twig";a.aliases=[];function a(e){e.register(s),e.languages.twig={comment:/^\{#[\s\S]*?#\}$/,"tag-name":{pattern:/(^\{%-?\s*)\w+/,lookbehind:!0,alias:"keyword"},delimiter:{pattern:/^\{[{%]-?|-?[%}]\}$/,alias:"punctuation"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:false|null|true)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-or|b-xor|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],punctuation:/[()\[\]{}:.,]/},e.hooks.add("before-tokenize",function(t){if(t.language==="twig"){var r=/\{(?:#[\s\S]*?#|%[\s\S]*?%|\{[\s\S]*?\})\}/g;e.languages["markup-templating"].buildPlaceholders(t,"twig",r)}}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"twig")})}});export{u as a}; diff --git a/build/_shared/chunk-2HQFXNVZ.js b/build/_shared/chunk-2HQFXNVZ.js new file mode 100644 index 00000000..267aef60 --- /dev/null +++ b/build/_shared/chunk-2HQFXNVZ.js @@ -0,0 +1 @@ +import{a as s}from"/numpy-tutorials/build/_shared/chunk-5XNNEDOD.js";import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=t((n,a)=>{var p=s();a.exports=e;e.displayName="phpExtras";e.aliases=[];function e(r){r.register(p),r.languages.insertBefore("php","variable",{this:{pattern:/\$this\b/,alias:"keyword"},global:/\$(?:GLOBALS|HTTP_RAW_POST_DATA|_(?:COOKIE|ENV|FILES|GET|POST|REQUEST|SERVER|SESSION)|argc|argv|http_response_header|php_errormsg)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/\b(?:parent|self|static)\b/,punctuation:/::|\\/}}})}});export{i as a}; diff --git a/build/_shared/chunk-2HVDTW4E.js b/build/_shared/chunk-2HVDTW4E.js new file mode 100644 index 00000000..12b9a294 --- /dev/null +++ b/build/_shared/chunk-2HVDTW4E.js @@ -0,0 +1 @@ +import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=i((d,r)=>{r.exports=n;n.displayName="java";n.aliases=[];function n(o){(function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,s=/(^|[^\w.])(?:[a-z]\w*\s*\.\s*)*(?:[A-Z]\w*\s*\.\s*)*/.source,a={pattern:RegExp(s+/[A-Z](?:[\d_A-Z]*[a-z]\w*)?\b/.source),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[a,{pattern:RegExp(s+/[A-Z]\w*(?=\s+\w+\s*[;,=()])/.source),lookbehind:!0,inside:a.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore("java","class-name",{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:"punctuation"},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":a,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},namespace:{pattern:RegExp(/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)(?!)[a-z]\w*(?:\.[a-z]\w*)*\.?/.source.replace(//g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(o)}});export{u as a}; diff --git a/build/_shared/chunk-2RBRI2QO.js b/build/_shared/chunk-2RBRI2QO.js new file mode 100644 index 00000000..d99c944d --- /dev/null +++ b/build/_shared/chunk-2RBRI2QO.js @@ -0,0 +1 @@ +import{c as C,d as ae,e as We}from"/numpy-tutorials/build/_shared/chunk-EMLRI2JG.js";import{f as X,g as le,h as re,i as ne,j as se,m as Ne}from"/numpy-tutorials/build/_shared/chunk-ZX4ESQPU.js";import{Da as K,G as I,Ka as J,Na as ze,Pa as y,Qa as ee,Ra as te,Sa as De,W as Ee,ca as j,da as Ze,fa as U,ha as g,i as G,ia as Be,na as L,oa as q,qa as F,x as Re,xa as H}from"/numpy-tutorials/build/_shared/chunk-6FEZWRIS.js";import{b as N}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function mt(e){return e==45||e==46||e==58||e>=65&&e<=90||e==95||e>=97&&e<=122||e>=161}function Y(e,a){let r=e.pos+a;if(pe==r&&de==e)return Oe;let l=e.peek(a),t="";for(;mt(l);)t+=String.fromCharCode(l),l=e.peek(++a);return de=e,pe=r,Oe=t?t.toLowerCase():l==ft||l==gt?void 0:null}function ce(e,a){this.name=e,this.parent=a}function xt(e){for(;e;e=e.parent)if(e.name=="svg"||e.name=="math")return!0;return!1}function E(e,a,r){let l=2+e.length;return new y(t=>{for(let s=0,o=0,i=0;;i++){if(t.next<0){i&&t.acceptToken(a);break}if(s==0&&t.next==xe||s==1&&t.next==R||s>=2&&so?t.acceptToken(a,-o):t.acceptToken(r,-(o-2));break}else if((t.next==10||t.next==13)&&i){t.acceptToken(a,1);break}else s=o=0;t.advance()}})}function ye(e,a){let r=Object.create(null);for(let l of e.getChildren(Te)){let t=l.getChild(rt),s=l.getChild(A)||l.getChild(Pe);t&&(r[a.read(t.from,t.to)]=s?s.type.id==A?a.read(s.from+1,s.to-1):a.read(s.from,s.to):"")}return r}function me(e,a){let r=e.getChild(lt);return r?a.read(r.from,r.to):" "}function Q(e,a,r){let l;for(let t of r)if(!t.attrs||t.attrs(l||(l=ye(e.node.parent.firstChild,a))))return{parser:t.parser};return null}function Z(e=[],a=[]){let r=[],l=[],t=[],s=[];for(let i of e)(i.tag=="script"?r:i.tag=="style"?l:i.tag=="textarea"?t:s).push(i);let o=a.length?Object.create(null):null;for(let i of a)(o[i.name]||(o[i.name]=[])).push(i);return j((i,u)=>{let f=i.type.id;if(f==nt)return Q(i,u,r);if(f==st)return Q(i,u,l);if(f==ot)return Q(i,u,t);if(f==he&&s.length){let c=i.node,d=c.firstChild,m=d&&me(d,u),O;if(m){for(let p of s)if(p.tag==m&&(!p.attrs||p.attrs(O||(O=ye(d,u))))){let b=c.lastChild,h=b.type.id==ut?b.from:c.to;if(h>d.to)return{parser:p.parser,overlay:[{from:d.to,to:h}]}}}}if(o&&f==Te){let c=i.node,d;if(d=c.firstChild){let m=o[u.read(d.from,d.to)];if(m)for(let O of m){if(O.tagName&&O.tagName!=me(c.parent,u))continue;let p=c.lastChild;if(p.type.id==A){let b=p.from+1,h=p.lastChild,P=p.to-(h&&h.isError?0:1);if(P>b)return{parser:O.parser,overlay:[{from:b,to:P}]}}else if(p.type.id==Pe)return{parser:O.parser,overlay:[{from:p.from,to:p.to}]}}}}return null})}var Ge,Ie,je,Ue,Le,Fe,oe,He,M,fe,ge,Se,be,Ke,Je,et,k,tt,at,ie,he,lt,Te,rt,A,Pe,nt,st,ot,it,ut,Ot,dt,pt,ct,ue,Oe,de,pe,xe,$,R,ft,gt,St,bt,ht,Tt,Pt,Vt,yt,wt,vt,Xt,Ve,we=N(()=>{De();Be();Ze();Ge=55,Ie=1,je=56,Ue=2,Le=57,Fe=3,oe=4,He=5,M=6,fe=7,ge=8,Se=9,be=10,Ke=11,Je=12,et=13,k=58,tt=14,at=15,ie=59,he=21,lt=23,Te=24,rt=25,A=27,Pe=28,nt=29,st=32,ot=35,it=37,ut=38,Ot=0,dt=1,pt={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},ct={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},ue={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};Oe=null,de=null,pe=0;xe=60,$=62,R=47,ft=63,gt=33,St=45;bt=[M,be,fe,ge,Se],ht=new ee({start:null,shift(e,a,r,l){return bt.indexOf(a)>-1?new ce(Y(l,1)||"",e):e},reduce(e,a){return a==he&&e?e.parent:e},reuse(e,a,r,l){let t=a.type.id;return t==M||t==it?new ce(Y(l,1)||"",e):e},strict:!1}),Tt=new y((e,a)=>{if(e.next!=xe){e.next<0&&a.context&&e.acceptToken(k);return}e.advance();let r=e.next==R;r&&e.advance();let l=Y(e,0);if(l===void 0)return;if(!l)return e.acceptToken(r?at:tt);let t=a.context?a.context.name:null;if(r){if(l==t)return e.acceptToken(Ke);if(t&&ct[t])return e.acceptToken(k,-2);if(a.dialectEnabled(Ot))return e.acceptToken(Je);for(let s=a.context;s;s=s.parent)if(s.name==l)return;e.acceptToken(et)}else{if(l=="script")return e.acceptToken(fe);if(l=="style")return e.acceptToken(ge);if(l=="textarea")return e.acceptToken(Se);if(pt.hasOwnProperty(l))return e.acceptToken(be);t&&ue[t]&&ue[t][l]?e.acceptToken(k,-1):e.acceptToken(M)}},{contextual:!0}),Pt=new y(e=>{for(let a=0,r=0;;r++){if(e.next<0){r&&e.acceptToken(ie);break}if(e.next==St)a++;else if(e.next==$&&a>=2){r>=3&&e.acceptToken(ie,-2);break}else a=0;e.advance()}});Vt=new y((e,a)=>{if(e.next==R&&e.peek(1)==$){let r=a.dialectEnabled(dt)||xt(a.context);e.acceptToken(r?He:oe,2)}else e.next==$&&e.acceptToken(oe,1)});yt=E("script",Ge,Ie),wt=E("style",je,Ue),vt=E("textarea",Le,Fe),Xt=U({"Text RawText IncompleteTag IncompleteCloseTag":g.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":g.angleBracket,TagName:g.tagName,"MismatchedCloseTag/TagName":[g.tagName,g.invalid],AttributeName:g.attributeName,"AttributeValue UnquotedAttributeValue":g.attributeValue,Is:g.definitionOperator,"EntityReference CharacterReference":g.character,Comment:g.blockComment,ProcessingInst:g.processingInstruction,DoctypeDecl:g.documentMeta}),Ve=te.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"\u26A0 StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:ht,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[Xt],skippedNodes:[0],repeatNodeCount:9,tokenData:"!]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VP<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!=l.firstChild.to)&&r.push(t)}return r}function ve(e,a,r,l,t){let s=/\s*>/.test(e.sliceDoc(t,t+5))?"":">",o=V(r,r.name=="StartTag"||r.name=="TagName");return{from:l,to:t,options:Ce(e.doc,o,a).map(i=>({label:i,type:"type"})).concat(W(e.doc,r).map((i,u)=>({label:"/"+i,apply:"/"+i+s,type:"type",boost:99-u}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Xe(e,a,r,l){let t=/\s*>/.test(e.sliceDoc(l,l+5))?"":">";return{from:r,to:l,options:W(e.doc,a).map((s,o)=>({label:s,apply:s+t,type:"type",boost:99-o})),validFor:ke}}function _t(e,a,r,l){let t=[],s=0;for(let o of Ce(e.doc,r,a))t.push({label:"<"+o,type:"type"});for(let o of W(e.doc,r))t.push({label:"",type:"type",boost:99-s++});return{from:l,to:l,options:t,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function qt(e,a,r,l,t){let s=V(r),o=s?a.tags[x(e.doc,s)]:null,i=o&&o.attrs?Object.keys(o.attrs):[],u=o&&o.globalAttrs===!1?i:i.length?i.concat(a.globalAttrNames):a.globalAttrNames;return{from:l,to:t,options:u.map(f=>({label:f,type:"property"})),validFor:ke}}function Ct(e,a,r,l,t){var s;let o=(s=r.parent)===null||s===void 0?void 0:s.getChild("AttributeName"),i=[],u;if(o){let f=e.sliceDoc(o.from,o.to),c=a.globalAttrs[f];if(!c){let d=V(r),m=d?a.tags[x(e.doc,d)]:null;c=m?.attrs&&m.attrs[f]}if(c){let d=e.sliceDoc(l,t).toLowerCase(),m='"',O='"';/^['"]/.test(d)?(u=d[0]=='"'?/^[^"]*$/:/^[^']*$/,m="",O=e.sliceDoc(t,t+1)==d[0]?"":d[0],d=d.slice(1),l++):u=/^[^\s<>='"]*$/;for(let p of c)i.push({label:p,apply:m+p+O,type:"constant"})}}return{from:l,to:t,options:i,validFor:u}}function Qe(e,a){let{state:r,pos:l}=a,t=q(r).resolveInner(l,-1),s=t.resolve(l);for(let o=l,i;s==t&&(i=t.childBefore(o));){let u=i.lastChild;if(!u||!u.type.isError||u.fromQe(l,t)}function jt(e={}){let a="",r;e.matchClosingTags===!1&&(a="noMatch"),e.selfClosingTags===!0&&(a=(a?a+" ":"")+"selfClosing"),(e.nestedLanguages&&e.nestedLanguages.length||e.nestedAttributes&&e.nestedAttributes.length)&&(r=Z((e.nestedLanguages||[]).concat(Ae),(e.nestedAttributes||[]).concat(Ye)));let l=r?Me.configure({wrap:r,dialect:a}):a?_.configure({dialect:a}):_;return new F(l,[_.data.of({autocomplete:kt(e)}),e.autoCloseTags!==!1?At:[],se().support,ae().support])}var w,B,z,D,S,n,$t,_e,qe,T,ke,Qt,Ae,Ye,Me,_,$e,At,Yt=N(()=>{we();We();Ne();Ee();Re();ze();w=["_blank","_self","_top","_parent"],B=["ascii","utf-8","utf-16","latin1","latin1"],z=["get","post","put","delete"],D=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],S=["true","false"],n={},$t={a:{attrs:{href:null,ping:null,type:null,media:null,target:w,hreflang:null}},abbr:n,address:n,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:n,aside:n,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:n,base:{attrs:{href:null,target:w}},bdi:n,bdo:n,blockquote:{attrs:{cite:null}},body:n,br:n,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:D,formmethod:z,formnovalidate:["novalidate"],formtarget:w,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:n,center:n,cite:n,code:n,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:n,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:n,div:n,dl:n,dt:n,em:n,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:n,figure:n,footer:n,form:{attrs:{action:null,name:null,"accept-charset":B,autocomplete:["on","off"],enctype:D,method:z,novalidate:["novalidate"],target:w}},h1:n,h2:n,h3:n,h4:n,h5:n,h6:n,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:n,hgroup:n,hr:n,html:{attrs:{manifest:null}},i:n,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:D,formmethod:z,formnovalidate:["novalidate"],formtarget:w,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:n,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:n,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:n,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:B,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:n,noscript:n,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:n,param:{attrs:{name:null,value:null}},pre:n,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:n,rt:n,ruby:n,samp:n,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:B}},section:n,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:n,source:{attrs:{src:null,type:null,media:null}},span:n,strong:n,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:n,summary:n,sup:n,table:n,tbody:n,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:n,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:n,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:n,time:{attrs:{datetime:null}},title:n,tr:n,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:n,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:n},_e={accesskey:null,class:null,contenteditable:S,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:S,autocorrect:S,autocapitalize:S,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":S,"aria-autocomplete":["inline","list","both","none"],"aria-busy":S,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":S,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":S,"aria-hidden":S,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":S,"aria-multiselectable":S,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":S,"aria-relevant":null,"aria-required":S,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},qe="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(e=>"on"+e);for(let e of qe)_e[e]=null;T=class{constructor(a,r){this.tags={...$t,...a},this.globalAttrs={..._e,...r},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}};T.default=new T;ke=/^[:\-\.\w\u00b7-\uffff]*$/;Qt=X.parser.configure({top:"SingleExpression"}),Ae=[{tag:"script",attrs:e=>e.type=="text/typescript"||e.lang=="ts",parser:le.parser},{tag:"script",attrs:e=>e.type=="text/babel"||e.type=="text/jsx",parser:re.parser},{tag:"script",attrs:e=>e.type=="text/typescript-jsx",parser:ne.parser},{tag:"script",attrs(e){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type)},parser:Qt},{tag:"script",attrs(e){return!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type)},parser:X.parser},{tag:"style",attrs(e){return(!e.lang||e.lang=="css")&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type))},parser:C.parser}],Ye=[{name:"style",parser:C.parser.configure({top:"Styles"})}].concat(qe.map(e=>({name:e,parser:X.parser}))),Me=L.define({name:"html",parser:Ve.configure({props:[H.add({Element(e){let a=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+a[0].length?e.continue():e.lineIndent(e.node.from)+(a[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag"(e){return e.column(e.node.from)+e.unit},Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),_=Me.configure({wrap:Z(Ae,Ye)});$e=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),At=I.inputHandler.of((e,a,r,l,t)=>{if(e.composing||e.state.readOnly||a!=r||l!=">"&&l!="/"||!_.isActiveAt(e.state,a,-1))return!1;let s=t(),{state:o}=s,i=o.changeByRange(u=>{var f,c,d;let m=o.doc.sliceString(u.from-1,u.to)==l,{head:O}=u,p=q(o).resolveInner(O,-1),b;if(m&&l==">"&&p.name=="EndTag"){let h=p.parent;if(((c=(f=h.parent)===null||f===void 0?void 0:f.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(b=x(o.doc,h.parent,O))&&!$e.has(b)){let P=O+(o.doc.sliceString(O,O+1)===">"?1:0),v=``;return{range:u,changes:{from:O,to:P,insert:v}}}}else if(m&&l=="/"&&p.name=="IncompleteCloseTag"){let h=p.parent;if(p.from==O-2&&((d=h.lastChild)===null||d===void 0?void 0:d.name)!="CloseTag"&&(b=x(o.doc,h,O))&&!$e.has(b)){let P=O+(o.doc.sliceString(O,O+1)===">"?1:0),v=`${b}>`;return{range:G.cursor(O+v.length,-1),changes:{from:O,to:P,insert:v}}}}return{range:u}});return i.changes.empty?!1:(e.dispatch([s,o.update(i,{userEvent:"input.complete",scrollIntoView:!0})]),!0)})});export{It as a,kt as b,_ as c,jt as d,At as e,Yt as f}; diff --git a/build/_shared/chunk-2RRX75WA.js b/build/_shared/chunk-2RRX75WA.js new file mode 100644 index 00000000..b0aa8279 --- /dev/null +++ b/build/_shared/chunk-2RRX75WA.js @@ -0,0 +1 @@ +import{b as i}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";function t(c,e){c.accDescr&&e.setAccDescription?.(c.accDescr),c.accTitle&&e.setAccTitle?.(c.accTitle),c.title&&e.setDiagramTitle?.(c.title)}i(t,"populateCommonDb");export{t as a}; diff --git a/build/_shared/chunk-2UPXXXVZ.js b/build/_shared/chunk-2UPXXXVZ.js new file mode 100644 index 00000000..a8f5f3ec --- /dev/null +++ b/build/_shared/chunk-2UPXXXVZ.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=a((s,t)=>{t.exports=r;r.displayName="elixir";r.aliases=[];function r(e){e.languages.elixir={doc:{pattern:/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,inside:{attribute:/^@\w+/,string:/['"][\s\S]+/}},comment:{pattern:/#.*/,greedy:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},module:{pattern:/\b[A-Z]\w*\b/,alias:"class-name"},"attr-name":/\b\w+\??:(?!:)/,argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},function:/\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,boolean:/\b(?:false|nil|true)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},e.languages.elixir.string.forEach(function(n){n.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.elixir}}}})}});export{i as a}; diff --git a/build/_shared/chunk-33C7HVGB.js b/build/_shared/chunk-33C7HVGB.js new file mode 100644 index 00000000..b74caf55 --- /dev/null +++ b/build/_shared/chunk-33C7HVGB.js @@ -0,0 +1 @@ +import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=i((a,m)=>{m.exports=t;t.displayName="git";t.aliases=[];function t(e){e.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m}}});export{s as a}; diff --git a/build/_shared/chunk-34XIY2DH.js b/build/_shared/chunk-34XIY2DH.js new file mode 100644 index 00000000..a64e89da --- /dev/null +++ b/build/_shared/chunk-34XIY2DH.js @@ -0,0 +1 @@ +import{b as o}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var yo,W,lt=o(()=>{yo=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,W=yo});var bo,xo,d,T=o(()=>{lt();bo=typeof self=="object"&&self&&self.Object===Object&&self,xo=W||bo||Function("return this")(),d=xo});var vo,j,ct=o(()=>{T();vo=d.Symbol,j=vo});function To(t){var r=_o.call(t,G),e=t[G];try{t[G]=void 0;var a=!0}catch{}var n=Oo.call(t);return a&&(r?t[G]=e:delete t[G]),n}var Gt,_o,Oo,G,Nt,zt=o(()=>{ct();Gt=Object.prototype,_o=Gt.hasOwnProperty,Oo=Gt.toString,G=j?j.toStringTag:void 0;Nt=To});function Co(t){return Ao.call(t)}var jo,Ao,Ut,Rt=o(()=>{jo=Object.prototype,Ao=jo.toString;Ut=Co});function So(t){return t==null?t===void 0?Po:wo:Ht&&Ht in Object(t)?Nt(t):Ut(t)}var wo,Po,Ht,y,N=o(()=>{ct();zt();Rt();wo="[object Null]",Po="[object Undefined]",Ht=j?j.toStringTag:void 0;y=So});function Io(t){var r=typeof t;return t!=null&&(r=="object"||r=="function")}var m,b=o(()=>{m=Io});function Do(t){if(!m(t))return!1;var r=y(t);return r==Eo||r==Fo||r==Mo||r==Lo}var Mo,Eo,Fo,Lo,A,Y=o(()=>{N();b();Mo="[object AsyncFunction]",Eo="[object Function]",Fo="[object GeneratorFunction]",Lo="[object Proxy]";A=Do});var Go,Z,Bt=o(()=>{T();Go=d["__core-js_shared__"],Z=Go});function No(t){return!!Vt&&Vt in t}var Vt,Kt,qt=o(()=>{Bt();Vt=function(){var t=/[^.]+$/.exec(Z&&Z.keys&&Z.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();Kt=No});function Ro(t){if(t!=null){try{return Uo.call(t)}catch{}try{return t+""}catch{}}return""}var zo,Uo,$t,Xt=o(()=>{zo=Function.prototype,Uo=zo.toString;$t=Ro});function Jo(t){if(!m(t)||Kt(t))return!1;var r=A(t)?Xo:Bo;return r.test($t(t))}var Ho,Bo,Vo,Ko,qo,$o,Xo,Jt,Wt=o(()=>{Y();qt();b();Xt();Ho=/[\\^$.*+?()[\]{}|]/g,Bo=/^\[object .+?Constructor\]$/,Vo=Function.prototype,Ko=Object.prototype,qo=Vo.toString,$o=Ko.hasOwnProperty,Xo=RegExp("^"+qo.call($o).replace(Ho,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");Jt=Jo});function Wo(t,r){return t?.[r]}var Yt,Zt=o(()=>{Yt=Wo});function Yo(t,r){var e=Yt(t,r);return Jt(e)?e:void 0}var C,Q=o(()=>{Wt();Zt();C=Yo});var Zo,g,z=o(()=>{Q();Zo=C(Object,"create"),g=Zo});function Qo(){this.__data__=g?g(null):{},this.size=0}var Qt,kt=o(()=>{z();Qt=Qo});function ko(t){var r=this.has(t)&&delete this.__data__[t];return this.size-=r?1:0,r}var tr,rr=o(()=>{tr=ko});function oa(t){var r=this.__data__;if(g){var e=r[t];return e===ta?void 0:e}return ea.call(r,t)?r[t]:void 0}var ta,ra,ea,er,or=o(()=>{z();ta="__lodash_hash_undefined__",ra=Object.prototype,ea=ra.hasOwnProperty;er=oa});function ia(t){var r=this.__data__;return g?r[t]!==void 0:na.call(r,t)}var aa,na,ar,nr=o(()=>{z();aa=Object.prototype,na=aa.hasOwnProperty;ar=ia});function pa(t,r){var e=this.__data__;return this.size+=this.has(t)?0:1,e[t]=g&&r===void 0?fa:r,this}var fa,ir,fr=o(()=>{z();fa="__lodash_hash_undefined__";ir=pa});function w(t){var r=-1,e=t==null?0:t.length;for(this.clear();++r{kt();rr();or();nr();fr();w.prototype.clear=Qt;w.prototype.delete=tr;w.prototype.get=er;w.prototype.has=ar;w.prototype.set=ir;dt=w});function ua(){this.__data__=[],this.size=0}var ur,sr=o(()=>{ur=ua});function sa(t,r){return t===r||t!==t&&r!==r}var x,U=o(()=>{x=sa});function ma(t,r){for(var e=t.length;e--;)if(x(t[e][0],r))return e;return-1}var v,R=o(()=>{U();v=ma});function da(t){var r=this.__data__,e=v(r,t);if(e<0)return!1;var a=r.length-1;return e==a?r.pop():ca.call(r,e,1),--this.size,!0}var la,ca,mr,lr=o(()=>{R();la=Array.prototype,ca=la.splice;mr=da});function ha(t){var r=this.__data__,e=v(r,t);return e<0?void 0:r[e][1]}var cr,dr=o(()=>{R();cr=ha});function ga(t){return v(this.__data__,t)>-1}var hr,gr=o(()=>{R();hr=ga});function ya(t,r){var e=this.__data__,a=v(e,t);return a<0?(++this.size,e.push([t,r])):e[a][1]=r,this}var yr,br=o(()=>{R();yr=ya});function P(t){var r=-1,e=t==null?0:t.length;for(this.clear();++r{sr();lr();dr();gr();br();P.prototype.clear=ur;P.prototype.delete=mr;P.prototype.get=cr;P.prototype.has=hr;P.prototype.set=yr;_=P});var ba,k,ht=o(()=>{Q();T();ba=C(d,"Map"),k=ba});function xa(){this.size=0,this.__data__={hash:new dt,map:new(k||_),string:new dt}}var xr,vr=o(()=>{pr();H();ht();xr=xa});function va(t){var r=typeof t;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?t!=="__proto__":t===null}var _r,Or=o(()=>{_r=va});function _a(t,r){var e=t.__data__;return _r(r)?e[typeof r=="string"?"string":"hash"]:e.map}var O,B=o(()=>{Or();O=_a});function Oa(t){var r=O(this,t).delete(t);return this.size-=r?1:0,r}var Tr,jr=o(()=>{B();Tr=Oa});function Ta(t){return O(this,t).get(t)}var Ar,Cr=o(()=>{B();Ar=Ta});function ja(t){return O(this,t).has(t)}var wr,Pr=o(()=>{B();wr=ja});function Aa(t,r){var e=O(this,t),a=e.size;return e.set(t,r),this.size+=e.size==a?0:1,this}var Sr,Ir=o(()=>{B();Sr=Aa});function S(t){var r=-1,e=t==null?0:t.length;for(this.clear();++r{vr();jr();Cr();Pr();Ir();S.prototype.clear=xr;S.prototype.delete=Tr;S.prototype.get=Ar;S.prototype.has=wr;S.prototype.set=Sr;V=S});function yt(t,r){if(typeof t!="function"||r!=null&&typeof r!="function")throw new TypeError(Ca);var e=function(){var a=arguments,n=r?r.apply(this,a):a[0],f=e.cache;if(f.has(n))return f.get(n);var p=t.apply(this,a);return e.cache=f.set(n,p)||f,p};return e.cache=new(yt.Cache||V),e}var Ca,mp,wa=o(()=>{gt();Ca="Expected a function";yt.Cache=V;mp=yt});function Sa(t){var r=t&&t.constructor,e=typeof r=="function"&&r.prototype||Pa;return t===e}var Pa,tt,bt=o(()=>{Pa=Object.prototype;tt=Sa});function Ia(t){return t!=null&&typeof t=="object"}var h,I=o(()=>{h=Ia});function Ea(t){return h(t)&&y(t)==Ma}var Ma,xt,Mr=o(()=>{N();I();Ma="[object Arguments]";xt=Ea});var Er,Fa,La,Da,K,vt=o(()=>{Mr();I();Er=Object.prototype,Fa=Er.hasOwnProperty,La=Er.propertyIsEnumerable,Da=xt(function(){return arguments}())?xt:function(t){return h(t)&&Fa.call(t,"callee")&&!La.call(t,"callee")},K=Da});var Ga,q,_t=o(()=>{Ga=Array.isArray,q=Ga});function za(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=Na}var Na,rt,Ot=o(()=>{Na=9007199254740991;rt=za});function Ua(t){return t!=null&&rt(t.length)&&!A(t)}var M,et=o(()=>{Y();Ot();M=Ua});function Ra(){return!1}var Fr,Lr=o(()=>{Fr=Ra});var Nr,Dr,Ha,Gr,Ba,Va,ot,Tt=o(()=>{T();Lr();Nr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Dr=Nr&&typeof module=="object"&&module&&!module.nodeType&&module,Ha=Dr&&Dr.exports===Nr,Gr=Ha?d.Buffer:void 0,Ba=Gr?Gr.isBuffer:void 0,Va=Ba||Fr,ot=Va});function hn(t){return h(t)&&rt(t.length)&&!!u[y(t)]}var Ka,qa,$a,Xa,Ja,Wa,Ya,Za,Qa,ka,tn,rn,en,on,an,nn,fn,pn,un,sn,mn,ln,cn,dn,u,zr,Ur=o(()=>{N();Ot();I();Ka="[object Arguments]",qa="[object Array]",$a="[object Boolean]",Xa="[object Date]",Ja="[object Error]",Wa="[object Function]",Ya="[object Map]",Za="[object Number]",Qa="[object Object]",ka="[object RegExp]",tn="[object Set]",rn="[object String]",en="[object WeakMap]",on="[object ArrayBuffer]",an="[object DataView]",nn="[object Float32Array]",fn="[object Float64Array]",pn="[object Int8Array]",un="[object Int16Array]",sn="[object Int32Array]",mn="[object Uint8Array]",ln="[object Uint8ClampedArray]",cn="[object Uint16Array]",dn="[object Uint32Array]",u={};u[nn]=u[fn]=u[pn]=u[un]=u[sn]=u[mn]=u[ln]=u[cn]=u[dn]=!0;u[Ka]=u[qa]=u[on]=u[$a]=u[an]=u[Xa]=u[Ja]=u[Wa]=u[Ya]=u[Za]=u[Qa]=u[ka]=u[tn]=u[rn]=u[en]=!1;zr=hn});function gn(t){return function(r){return t(r)}}var Rr,Hr=o(()=>{Rr=gn});var Br,$,yn,jt,bn,At,Vr=o(()=>{lt();Br=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$=Br&&typeof module=="object"&&module&&!module.nodeType&&module,yn=$&&$.exports===Br,jt=yn&&W.process,bn=function(){try{var t=$&&$.require&&$.require("util").types;return t||jt&&jt.binding&&jt.binding("util")}catch{}}(),At=bn});var Kr,xn,at,Ct=o(()=>{Ur();Hr();Vr();Kr=At&&At.isTypedArray,xn=Kr?Rr(Kr):zr,at=xn});function vn(t){return function(){return t}}var qr,$r=o(()=>{qr=vn});function _n(){this.__data__=new _,this.size=0}var Xr,Jr=o(()=>{H();Xr=_n});function On(t){var r=this.__data__,e=r.delete(t);return this.size=r.size,e}var Wr,Yr=o(()=>{Wr=On});function Tn(t){return this.__data__.get(t)}var Zr,Qr=o(()=>{Zr=Tn});function jn(t){return this.__data__.has(t)}var kr,te=o(()=>{kr=jn});function Cn(t,r){var e=this.__data__;if(e instanceof _){var a=e.__data__;if(!k||a.length{H();ht();gt();An=200;re=Cn});function E(t){var r=this.__data__=new _(t);this.size=r.size}var oe,ae=o(()=>{H();Jr();Yr();Qr();te();ee();E.prototype.clear=Xr;E.prototype.delete=Wr;E.prototype.get=Zr;E.prototype.has=kr;E.prototype.set=re;oe=E});var wn,F,wt=o(()=>{Q();wn=function(){try{var t=C(Object,"defineProperty");return t({},"",{}),t}catch{}}(),F=wn});function Pn(t,r,e){r=="__proto__"&&F?F(t,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):t[r]=e}var L,nt=o(()=>{wt();L=Pn});function Sn(t,r,e){(e!==void 0&&!x(t[r],e)||e===void 0&&!(r in t))&&L(t,r,e)}var X,Pt=o(()=>{nt();U();X=Sn});function In(t){return function(r,e,a){for(var n=-1,f=Object(r),p=a(r),i=p.length;i--;){var s=p[t?i:++n];if(e(f[s],s,f)===!1)break}return r}}var ne,ie=o(()=>{ne=In});var Mn,fe,pe=o(()=>{ie();Mn=ne(),fe=Mn});function Fn(t,r){if(r)return t.slice();var e=t.length,a=me?me(e):new t.constructor(e);return t.copy(a),a}var le,ue,En,se,me,ce,de=o(()=>{T();le=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ue=le&&typeof module=="object"&&module&&!module.nodeType&&module,En=ue&&ue.exports===le,se=En?d.Buffer:void 0,me=se?se.allocUnsafe:void 0;ce=Fn});var Ln,St,he=o(()=>{T();Ln=d.Uint8Array,St=Ln});function Dn(t){var r=new t.constructor(t.byteLength);return new St(r).set(new St(t)),r}var ge,ye=o(()=>{he();ge=Dn});function Gn(t,r){var e=r?ge(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)}var be,xe=o(()=>{ye();be=Gn});function Nn(t,r){var e=-1,a=t.length;for(r||(r=Array(a));++e{ve=Nn});var Oe,zn,Te,je=o(()=>{b();Oe=Object.create,zn=function(){function t(){}return function(r){if(!m(r))return{};if(Oe)return Oe(r);t.prototype=r;var e=new t;return t.prototype=void 0,e}}(),Te=zn});function Un(t,r){return function(e){return t(r(e))}}var Ae,Ce=o(()=>{Ae=Un});var Rn,it,It=o(()=>{Ce();Rn=Ae(Object.getPrototypeOf,Object),it=Rn});function Hn(t){return typeof t.constructor=="function"&&!tt(t)?Te(it(t)):{}}var we,Pe=o(()=>{je();It();bt();we=Hn});function Bn(t){return h(t)&&M(t)}var Se,Ie=o(()=>{et();I();Se=Bn});function Jn(t){if(!h(t)||y(t)!=Vn)return!1;var r=it(t);if(r===null)return!0;var e=$n.call(r,"constructor")&&r.constructor;return typeof e=="function"&&e instanceof e&&Me.call(e)==Xn}var Vn,Kn,qn,Me,$n,Xn,Ee,Fe=o(()=>{N();It();I();Vn="[object Object]",Kn=Function.prototype,qn=Object.prototype,Me=Kn.toString,$n=qn.hasOwnProperty,Xn=Me.call(Object);Ee=Jn});function Wn(t,r){if(!(r==="constructor"&&typeof t[r]=="function")&&r!="__proto__")return t[r]}var J,Mt=o(()=>{J=Wn});function Qn(t,r,e){var a=t[r];(!(Zn.call(t,r)&&x(a,e))||e===void 0&&!(r in t))&&L(t,r,e)}var Yn,Zn,Le,De=o(()=>{nt();U();Yn=Object.prototype,Zn=Yn.hasOwnProperty;Le=Qn});function kn(t,r,e,a){var n=!e;e||(e={});for(var f=-1,p=r.length;++f{De();nt();Ge=kn});function ti(t,r){for(var e=-1,a=Array(t);++e{ze=ti});function oi(t,r){var e=typeof t;return r=r??ri,!!r&&(e=="number"||e!="symbol"&&ei.test(t))&&t>-1&&t%1==0&&t{ri=9007199254740991,ei=/^(?:0|[1-9]\d*)$/;ft=oi});function ii(t,r){var e=q(t),a=!e&&K(t),n=!e&&!a&&ot(t),f=!e&&!a&&!n&&at(t),p=e||a||n||f,i=p?ze(t.length,String):[],s=i.length;for(var c in t)(r||ni.call(t,c))&&!(p&&(c=="length"||n&&(c=="offset"||c=="parent")||f&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||ft(c,s)))&&i.push(c);return i}var ai,ni,Re,He=o(()=>{Ue();vt();_t();Tt();Et();Ct();ai=Object.prototype,ni=ai.hasOwnProperty;Re=ii});function fi(t){var r=[];if(t!=null)for(var e in Object(t))r.push(e);return r}var Be,Ve=o(()=>{Be=fi});function si(t){if(!m(t))return Be(t);var r=tt(t),e=[];for(var a in t)a=="constructor"&&(r||!ui.call(t,a))||e.push(a);return e}var pi,ui,Ke,qe=o(()=>{b();bt();Ve();pi=Object.prototype,ui=pi.hasOwnProperty;Ke=si});function mi(t){return M(t)?Re(t,!0):Ke(t)}var pt,Ft=o(()=>{He();qe();et();pt=mi});function li(t){return Ge(t,pt(t))}var $e,Xe=o(()=>{Ne();Ft();$e=li});function ci(t,r,e,a,n,f,p){var i=J(t,e),s=J(r,e),c=p.get(s);if(c){X(t,e,c);return}var l=f?f(i,s,e+"",t,r,p):void 0,D=l===void 0;if(D){var st=q(s),mt=!st&&ot(s),Dt=!st&&!mt&&at(s);l=s,st||mt||Dt?q(i)?l=i:Se(i)?l=ve(i):mt?(D=!1,l=ce(s,!0)):Dt?(D=!1,l=be(s,!0)):l=[]:Ee(s)||K(s)?(l=i,K(i)?l=$e(i):(!m(i)||A(i))&&(l=we(s))):D=!1}D&&(p.set(s,l),n(l,s,a,f,p),p.delete(s)),X(t,e,l)}var Je,We=o(()=>{Pt();de();xe();_e();Pe();vt();_t();Ie();Tt();Y();b();Fe();Ct();Mt();Xe();Je=ci});function Ye(t,r,e,a,n){t!==r&&fe(r,function(f,p){if(n||(n=new oe),m(f))Je(t,r,p,e,Ye,a,n);else{var i=a?a(J(t,p),f,p+"",t,r,n):void 0;i===void 0&&(i=f),X(t,p,i)}},pt)}var Ze,Qe=o(()=>{ae();Pt();pe();We();b();Ft();Mt();Ze=Ye});function di(t){return t}var ut,Lt=o(()=>{ut=di});function hi(t,r,e){switch(e.length){case 0:return t.call(r);case 1:return t.call(r,e[0]);case 2:return t.call(r,e[0],e[1]);case 3:return t.call(r,e[0],e[1],e[2])}return t.apply(r,e)}var ke,to=o(()=>{ke=hi});function gi(t,r,e){return r=ro(r===void 0?t.length-1:r,0),function(){for(var a=arguments,n=-1,f=ro(a.length-r,0),p=Array(f);++n{to();ro=Math.max;eo=gi});var yi,ao,no=o(()=>{$r();wt();Lt();yi=F?function(t,r){return F(t,"toString",{configurable:!0,enumerable:!1,value:qr(r),writable:!0})}:ut,ao=yi});function _i(t){var r=0,e=0;return function(){var a=vi(),n=xi-(a-e);if(e=a,n>0){if(++r>=bi)return arguments[0]}else r=0;return t.apply(void 0,arguments)}}var bi,xi,vi,io,fo=o(()=>{bi=800,xi=16,vi=Date.now;io=_i});var Oi,po,uo=o(()=>{no();fo();Oi=io(ao),po=Oi});function Ti(t,r){return po(eo(t,r,ut),t+"")}var so,mo=o(()=>{Lt();oo();uo();so=Ti});function ji(t,r,e){if(!m(e))return!1;var a=typeof r;return(a=="number"?M(e)&&ft(r,e.length):a=="string"&&r in e)?x(e[r],t):!1}var lo,co=o(()=>{U();et();Et();b();lo=ji});function Ai(t){return so(function(r,e){var a=-1,n=e.length,f=n>1?e[n-1]:void 0,p=n>2?e[2]:void 0;for(f=t.length>3&&typeof f=="function"?(n--,f):void 0,p&&lo(e[0],e[1],p)&&(f=n<3?void 0:f,n=1),r=Object(r);++a{mo();co();ho=Ai});var Ci,um,wi=o(()=>{Qe();go();Ci=ho(function(t,r,e){Ze(t,r,e)}),um=Ci});export{d as a,T as b,j as c,ct as d,y as e,N as f,m as g,b as h,A as i,Y as j,$t as k,Xt as l,C as m,Q as n,x as o,U as p,k as q,ht as r,V as s,gt as t,mp as u,wa as v,oe as w,ae as x,L as y,nt as z,fe as A,pe as B,ce as C,de as D,St as E,he as F,ge as G,ye as H,be as I,xe as J,ve as K,_e as L,Ae as M,Ce as N,it as O,It as P,tt as Q,bt as R,we as S,Pe as T,h as U,I as V,K as W,vt as X,q as Y,_t as Z,rt as _,Ot as $,M as aa,et as ba,Se as ca,Ie as da,ot as ea,Tt as fa,Rr as ga,Hr as ha,At as ia,Vr as ja,at as ka,Ct as la,Le as ma,De as na,Ge as oa,Ne as pa,ft as qa,Et as ra,Re as sa,He as ta,pt as ua,Ft as va,ut as wa,Lt as xa,eo as ya,oo as za,qr as Aa,$r as Ba,po as Ca,uo as Da,so as Ea,mo as Fa,lo as Ga,co as Ha,ho as Ia,go as Ja,um as Ka,wi as La}; diff --git a/build/_shared/chunk-36BZLZAA.js b/build/_shared/chunk-36BZLZAA.js new file mode 100644 index 00000000..e3aaa29d --- /dev/null +++ b/build/_shared/chunk-36BZLZAA.js @@ -0,0 +1 @@ +import{C as V,D as b,G as x,H as q,Na as se,W as oe,a as B,c as g,d as $,e as O,f as E,i as u,j as W,k as P,l as F,n as N,o as y,oa as w,p as j,q as A,sa as K,t as U,u as H,x as ne}from"/numpy-tutorials/build/_shared/chunk-6FEZWRIS.js";import{b as ie}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function Q(i){let e=Object.keys(i).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function le(i){let e=Object.create(null),t=Object.create(null);for(let{label:o}of i){e[o[0]]=!0;for(let s=1;stypeof o=="string"?{label:o}:o),[t,n]=e.every(o=>/^\w+$/.test(o.label))?[/\w*$/,/\w+$/]:le(e);return o=>{let s=o.matchBefore(n);return s||o.explicit?{from:s?s.from:o.pos,options:e,validFor:t}:null}}function je(i,e){return t=>{for(let n=w(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(i.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}function re(i,e){var t;let{source:n}=i,o=e&&n[0]!="^",s=n[n.length-1]!="$";return!o&&!s?i:new RegExp(`${o?"^":""}(?:${n})${s?"$":""}`,(t=i.flags)!==null&&t!==void 0?t:i.ignoreCase?"i":"")}function R(i,e){return u.create(i.filter(t=>t.field==e).map(t=>u.range(t.from,t.to)))}function pe(i){let e=C.parse(i);return(t,n,o,s)=>{let{text:r,ranges:a}=e.instantiate(t.state,o),{main:l}=t.state.selection,h={changes:{from:o,to:s==l.from?l.to:s,insert:B.of(r)},scrollIntoView:!0,annotations:n?[ae.of(n),j.userEvent.of("input.complete")]:void 0};if(a.length&&(h.selection=R(a,0)),a.some(c=>c.field>0)){let c=new d(a,0),f=h.effects=[T.of(c)];t.state.field(S,!1)===void 0&&f.push(y.appendConfig.of([S,be,xe,ce]))}t.dispatch(t.state.update(h))}}function J(i){return({state:e,dispatch:t})=>{let n=e.field(S,!1);if(!n||i<0&&n.active==0)return!1;let o=n.active+i,s=i>0&&!n.ranges.some(r=>r.field==o+i);return t(e.update({selection:R(n.ranges,o),effects:T.of(s?null:new d(n.ranges,o)),scrollIntoView:!0})),!0}}function He(i,e){return{...e,apply:pe(i)}}function Ve(){return[ve,Z]}function _(i){for(let e=0;e-1,t):Te(i,o,s,t.before||I.before);if(e==s&&te(i,i.selection.main.from))return Oe(i,o,s)}return null}function te(i,e){let t=!1;return i.field(Z).between(0,i.doc.length,n=>{n==e&&(t=!0)}),t}function D(i,e){let t=i.sliceString(e,e+2);return t.slice(0,O(g(t,0)))}function Ie(i,e){let t=i.sliceString(e-2,e);return O(g(t,0))==t.length?t:t.slice(1)}function Te(i,e,t,n){let o=null,s=i.changeByRange(r=>{if(!r.empty)return{changes:[{insert:e,from:r.from},{insert:t,from:r.to}],effects:m.of(r.to+e.length),range:u.range(r.anchor+e.length,r.head+e.length)};let a=D(i.doc,r.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:r.head},effects:m.of(r.head+e.length),range:u.cursor(r.head+e.length)}:{range:o=r}});return o?null:i.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function Oe(i,e,t){let n=null,o=i.changeByRange(s=>s.empty&&D(i.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:u.cursor(s.head+t.length)}:n={range:s});return n?null:i.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Ee(i,e,t,n){let o=n.stringPrefixes||I.stringPrefixes,s=null,r=i.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:m.of(a.to+e.length),range:u.range(a.anchor+e.length,a.head+e.length)};let l=a.head,h=D(i.doc,l),c;if(h==e){if(Y(i,l))return{changes:{insert:e+e,from:l},effects:m.of(l+e.length),range:u.cursor(l+e.length)};if(te(i,l)){let p=t&&i.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+p.length,insert:p},range:u.cursor(l+p.length)}}}else{if(t&&i.sliceDoc(l-2*e.length,l)==e+e&&(c=G(i,l-2*e.length,o))>-1&&Y(i,c))return{changes:{insert:e+e+e+e,from:l},effects:m.of(l+e.length),range:u.cursor(l+e.length)};if(i.charCategorizer(l)(h)!=A.Word&&G(i,l,o)>-1&&!Ae(i,l,e,o))return{changes:{insert:e+e,from:l},effects:m.of(l+e.length),range:u.cursor(l+e.length)}}return{range:s=a}});return s?null:i.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function Y(i,e){let t=w(i).resolveInner(e+1);return t.parent&&t.from==e}function Ae(i,e,t,n){let o=w(i).resolveInner(e,-1),s=n.reduce((r,a)=>Math.max(r,a.length),0);for(let r=0;r<5;r++){let a=i.sliceDoc(o.from,Math.min(o.to,o.from+t.length+s)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let c=o.firstChild;for(;c&&c.from==o.from&&c.to-c.from>t.length+l;){if(i.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let h=o.to==e&&o.parent;if(!h)break;o=h}return!1}function G(i,e,t){let n=i.charCategorizer(e);if(n(i.sliceDoc(e-1,e))!=A.Word)return e;for(let o of t){let s=e-o.length;if(i.sliceDoc(s,e)==o&&n(i.sliceDoc(s-1,s))!=A.Word)return s}return-1}var z,ae,Ue,ce,L,v,C,fe,he,d,T,ue,S,de,me,ge,ye,X,be,xe,I,m,M,Z,k,we,ve,Ce,qe,De=ie(()=>{ne();oe();se();z=class{constructor(e,t,n,o){this.state=e,this.pos=t,this.explicit=n,this.view=o,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=w(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),o=t.text.slice(n-t.from,this.pos-t.from),s=o.search(re(e,!1));return s<0?null:{from:n+s,to:this.pos,text:o.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}};ae=N.define(),Ue=typeof navigator=="object"&&/Win/.test(navigator.platform),ce=x.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xB7\xB7\xB7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25CB'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25CC'"}},".cm-completionIcon-variable":{"&:after":{content:"'\u{1D465}'"}},".cm-completionIcon-constant":{"&:after":{content:"'\u{1D436}'"}},".cm-completionIcon-type":{"&:after":{content:"'\u{1D461}'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222A'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25A1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\u{1F511}\uFE0E'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25A2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),L=class{constructor(e,t,n,o){this.field=e,this.line=t,this.from=n,this.to=o}},v=class{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,E.TrackDel),n=e.mapPos(this.to,1,E.TrackDel);return t==null||n==null?null:new v(this.field,t,n)}},C=class{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],o=[t],s=e.doc.lineAt(t),r=/^\s*/.exec(s.text)[0];for(let l of this.lines){if(n.length){let h=r,c=/^\t*/.exec(l)[0].length;for(let f=0;fnew v(l.field,o[l.line]+l.from,o[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],o=[],s;for(let r of e.split(/\r\n?|\n/)){for(;s=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(r);){let a=s[1]?+s[1]:null,l=s[2]||s[3]||"",h=-1,c=l.replace(/\\[{}]/g,f=>f[1]);for(let f=0;f=h&&p.field++}for(let f of o)if(f.line==n.length&&f.from>s.index){let p=s[2]?3+(s[1]||"").length:2;f.from-=p,f.to-=p}o.push(new L(h,n.length,s.index,s.index+c.length)),r=r.slice(0,s.index)+l+r.slice(s.index+s[0].length)}r=r.replace(/\\([{}])/g,(a,l,h)=>{for(let c of o)c.line==n.length&&c.from>h&&(c.from--,c.to--);return l}),n.push(r)}return new C(n,o)}},fe=b.widget({widget:new class extends V{toDOM(){let i=document.createElement("span");return i.className="cm-snippetFieldPosition",i}ignoreEvent(){return!1}}}),he=b.mark({class:"cm-snippetField"}),d=class{constructor(e,t){this.ranges=e,this.active=t,this.deco=b.set(e.map(n=>(n.from==n.to?fe:he).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let o=n.map(e);if(!o)return null;t.push(o)}return new d(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}},T=y.define({map(i,e){return i&&i.map(e)}}),ue=y.define(),S=P.define({create(){return null},update(i,e){for(let t of e.effects){if(t.is(T))return t.value;if(t.is(ue)&&i)return new d(i.ranges,t.value)}return i&&e.docChanged&&(i=i.map(e.changes)),i&&e.selection&&!i.selectionInsideField(e.selection)&&(i=null),i},provide:i=>x.decorations.from(i,e=>e?e.deco:b.none)});de=({state:i,dispatch:e})=>i.field(S,!1)?(e(i.update({effects:T.of(null)})),!0):!1,me=J(1),ge=J(-1),ye=[{key:"Tab",run:me,shift:ge},{key:"Escape",run:de}],X=W.define({combine(i){return i.length?i[0]:ye}}),be=F.highest(q.compute([X],i=>i.facet(X)));xe=x.domEventHandlers({mousedown(i,e){let t=e.state.field(S,!1),n;if(!t||(n=e.posAtCoords({x:i.clientX,y:i.clientY}))==null)return!1;let o=t.ranges.find(s=>s.from<=n&&s.to>=n);return!o||o.field==t.active?!1:(e.dispatch({selection:R(t.ranges,o.field),effects:T.of(t.ranges.some(s=>s.field>o.field)?new d(t.ranges,o.field):null),scrollIntoView:!0}),!0)}}),I={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},m=y.define({map(i,e){let t=e.mapPos(i,-1,E.TrackAfter);return t??void 0}}),M=new class extends U{};M.startSide=1;M.endSide=-1;Z=P.define({create(){return H.empty},update(i,e){if(i=i.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);i=i.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(m)&&(i=i.update({add:[M.range(t.value,t.value+1)]}));return i}});k="()[]{}<>\xAB\xBB\xBB\xAB\uFF3B\uFF3D\uFF5B\uFF5D";we=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),ve=x.inputHandler.of((i,e,t,n)=>{if((we?i.composing:i.compositionStarted)||i.state.readOnly)return!1;let o=i.state.selection.main;if(n.length>2||n.length==2&&O(g(n,0))==1||e!=o.from||t!=o.to)return!1;let s=Se(i.state,n);return s?(i.dispatch(s),!0):!1}),Ce=({state:i,dispatch:e})=>{if(i.readOnly)return!1;let n=ee(i,i.selection.main.head).brackets||I.brackets,o=null,s=i.changeByRange(r=>{if(r.empty){let a=Ie(i.doc,r.head);for(let l of n)if(l==a&&D(i.doc,r.head)==_(g(l,0)))return{changes:{from:r.head-l.length,to:r.head+l.length},range:u.cursor(r.head-l.length)}}return{range:o=r}});return o||e(i.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!o},qe=[{key:"Backspace",run:Ce}]});export{z as a,Ne as b,je as c,He as d,Ve as e,qe as f,De as g}; diff --git a/build/_shared/chunk-37MEAX4M.js b/build/_shared/chunk-37MEAX4M.js new file mode 100644 index 00000000..5db225c7 --- /dev/null +++ b/build/_shared/chunk-37MEAX4M.js @@ -0,0 +1 @@ +import{c as Z}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var q=Z((G,K)=>{K.exports=k;k.displayName="csharp";k.aliases=["dotnet","cs"];function k(T){(function(t){function r(s,u){return s.replace(/<<(\d+)>>/g,function(d,W){return"(?:"+u[+W]+")"})}function e(s,u,d){return RegExp(r(s,u),d||"")}function l(s,u){for(var d=0;d>/g,function(){return"(?:"+s+")"});return s.replace(/<>/g,"[^\\s\\S]")}var n={type:"bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void",typeDeclaration:"class enum interface record struct",contextual:"add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)",other:"abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield"};function p(s){return"\\b(?:"+s.trim().replace(/ /g,"|")+")\\b"}var m=p(n.typeDeclaration),g=RegExp(p(n.type+" "+n.typeDeclaration+" "+n.contextual+" "+n.other)),z=p(n.typeDeclaration+" "+n.contextual+" "+n.other),j=p(n.type+" "+n.typeDeclaration+" "+n.other),h=l(/<(?:[^<>;=+\-*/%&|^]|<>)*>/.source,2),b=l(/\((?:[^()]|<>)*\)/.source,2),o=/@?\b[A-Za-z_]\w*\b/.source,f=r(/<<0>>(?:\s*<<1>>)?/.source,[o,h]),i=r(/(?!<<0>>)<<1>>(?:\s*\.\s*<<1>>)*/.source,[z,f]),y=/\[\s*(?:,\s*)*\]/.source,A=r(/<<0>>(?:\s*(?:\?\s*)?<<1>>)*(?:\s*\?)?/.source,[i,y]),N=r(/[^,()<>[\];=+\-*/%&|^]|<<0>>|<<1>>|<<2>>/.source,[h,b,y]),O=r(/\(<<0>>+(?:,<<0>>+)+\)/.source,[N]),c=r(/(?:<<0>>|<<1>>)(?:\s*(?:\?\s*)?<<2>>)*(?:\s*\?)?/.source,[O,i,y]),a={keyword:g,punctuation:/[<>()?,.:[\]]/},w=/'(?:[^\r\n'\\]|\\.|\\[Uux][\da-fA-F]{1,8})'/.source,x=/"(?:\\.|[^\\"\r\n])*"/.source,F=/@"(?:""|\\[\s\S]|[^\\"])*"(?!")/.source;t.languages.csharp=t.languages.extend("clike",{string:[{pattern:e(/(^|[^$\\])<<0>>/.source,[F]),lookbehind:!0,greedy:!0},{pattern:e(/(^|[^@$\\])<<0>>/.source,[x]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:e(/(\busing\s+static\s+)<<0>>(?=\s*;)/.source,[i]),lookbehind:!0,inside:a},{pattern:e(/(\busing\s+<<0>>\s*=\s*)<<1>>(?=\s*;)/.source,[o,c]),lookbehind:!0,inside:a},{pattern:e(/(\busing\s+)<<0>>(?=\s*=)/.source,[o]),lookbehind:!0},{pattern:e(/(\b<<0>>\s+)<<1>>/.source,[m,f]),lookbehind:!0,inside:a},{pattern:e(/(\bcatch\s*\(\s*)<<0>>/.source,[i]),lookbehind:!0,inside:a},{pattern:e(/(\bwhere\s+)<<0>>/.source,[o]),lookbehind:!0},{pattern:e(/(\b(?:is(?:\s+not)?|as)\s+)<<0>>/.source,[A]),lookbehind:!0,inside:a},{pattern:e(/\b<<0>>(?=\s+(?!<<1>>|with\s*\{)<<2>>(?:\s*[=,;:{)\]]|\s+(?:in|when)\b))/.source,[c,j,o]),inside:a}],keyword:g,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),t.languages.insertBefore("csharp","number",{range:{pattern:/\.\./,alias:"operator"}}),t.languages.insertBefore("csharp","punctuation",{"named-parameter":{pattern:e(/([(,]\s*)<<0>>(?=\s*:)/.source,[o]),lookbehind:!0,alias:"punctuation"}}),t.languages.insertBefore("csharp","class-name",{namespace:{pattern:e(/(\b(?:namespace|using)\s+)<<0>>(?:\s*\.\s*<<0>>)*(?=\s*[;{])/.source,[o]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:e(/(\b(?:default|sizeof|typeof)\s*\(\s*(?!\s))(?:[^()\s]|\s(?!\s)|<<0>>)*(?=\s*\))/.source,[b]),lookbehind:!0,alias:"class-name",inside:a},"return-type":{pattern:e(/<<0>>(?=\s+(?:<<1>>\s*(?:=>|[({]|\.\s*this\s*\[)|this\s*\[))/.source,[c,i]),inside:a,alias:"class-name"},"constructor-invocation":{pattern:e(/(\bnew\s+)<<0>>(?=\s*[[({])/.source,[c]),lookbehind:!0,inside:a,alias:"class-name"},"generic-method":{pattern:e(/<<0>>\s*<<1>>(?=\s*\()/.source,[o,h]),inside:{function:e(/^<<0>>/.source,[o]),generic:{pattern:RegExp(h),alias:"class-name",inside:a}}},"type-list":{pattern:e(/\b((?:<<0>>\s+<<1>>|record\s+<<1>>\s*<<5>>|where\s+<<2>>)\s*:\s*)(?:<<3>>|<<4>>|<<1>>\s*<<5>>|<<6>>)(?:\s*,\s*(?:<<3>>|<<4>>|<<6>>))*(?=\s*(?:where|[{;]|=>|$))/.source,[m,f,o,c,g.source,b,/\bnew\s*\(\s*\)/.source]),lookbehind:!0,inside:{"record-arguments":{pattern:e(/(^(?!new\s*\()<<0>>\s*)<<1>>/.source,[f,b]),lookbehind:!0,greedy:!0,inside:t.languages.csharp},keyword:g,"class-name":{pattern:RegExp(c),greedy:!0,inside:a},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});var E=x+"|"+w,S=r(/\/(?![*/])|\/\/[^\r\n]*[\r\n]|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>/.source,[E]),R=l(r(/[^"'/()]|<<0>>|\(<>*\)/.source,[S]),2),$=/\b(?:assembly|event|field|method|module|param|property|return|type)\b/.source,U=r(/<<0>>(?:\s*\(<<1>>*\))?/.source,[i,R]);t.languages.insertBefore("csharp","class-name",{attribute:{pattern:e(/((?:^|[^\s\w>)?])\s*\[\s*)(?:<<0>>\s*:\s*)?<<1>>(?:\s*,\s*<<1>>)*(?=\s*\])/.source,[$,U]),lookbehind:!0,greedy:!0,inside:{target:{pattern:e(/^<<0>>(?=\s*:)/.source,[$]),alias:"keyword"},"attribute-arguments":{pattern:e(/\(<<0>>*\)/.source,[R]),inside:t.languages.csharp},"class-name":{pattern:RegExp(i),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var v=/:[^}\r\n]+/.source,I=l(r(/[^"'/()]|<<0>>|\(<>*\)/.source,[S]),2),_=r(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[I,v]),B=l(r(/[^"'/()]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|<<0>>|\(<>*\)/.source,[E]),2),D=r(/\{(?!\{)(?:(?![}:])<<0>>)*<<1>>?\}/.source,[B,v]);function C(s,u){return{interpolation:{pattern:e(/((?:^|[^{])(?:\{\{)*)<<0>>/.source,[s]),lookbehind:!0,inside:{"format-string":{pattern:e(/(^\{(?:(?![}:])<<0>>)*)<<1>>(?=\}$)/.source,[u,v]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:"language-csharp",inside:t.languages.csharp}}},string:/[\s\S]+/}}t.languages.insertBefore("csharp","string",{"interpolation-string":[{pattern:e(/(^|[^\\])(?:\$@|@\$)"(?:""|\\[\s\S]|\{\{|<<0>>|[^\\{"])*"/.source,[_]),lookbehind:!0,greedy:!0,inside:C(_,I)},{pattern:e(/(^|[^@\\])\$"(?:\\.|\{\{|<<0>>|[^\\"{])*"/.source,[D]),lookbehind:!0,greedy:!0,inside:C(D,B)}],char:{pattern:RegExp(w),greedy:!0}}),t.languages.dotnet=t.languages.cs=t.languages.csharp})(T)}});export{q as a}; diff --git a/build/_shared/chunk-3DKGVXBF.js b/build/_shared/chunk-3DKGVXBF.js new file mode 100644 index 00000000..c841e0ee --- /dev/null +++ b/build/_shared/chunk-3DKGVXBF.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=s((p,i)=>{i.exports=t;t.displayName="jq";t.aliases=[];function t(a){(function(o){var n=/\\\((?:[^()]|\([^()]*\))*\)/.source,r=RegExp(/(^|[^\\])"(?:[^"\r\n\\]|\\[^\r\n(]|__)*"/.source.replace(/__/g,function(){return n})),e={interpolation:{pattern:RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+n),lookbehind:!0,inside:{content:{pattern:/^(\\\()[\s\S]+(?=\)$)/,lookbehind:!0,inside:null},punctuation:/^\\\(|\)$/}}},l=o.languages.jq={comment:/#.*/,property:{pattern:RegExp(r.source+/(?=\s*:(?!:))/.source),lookbehind:!0,greedy:!0,inside:e},string:{pattern:r,lookbehind:!0,greedy:!0,inside:e},function:{pattern:/(\bdef\s+)[a-z_]\w+/i,lookbehind:!0},variable:/\B\$\w+/,"property-literal":{pattern:/\b[a-z_]\w*(?=\s*:(?!:))/i,alias:"property"},keyword:/\b(?:as|break|catch|def|elif|else|end|foreach|if|import|include|label|module|modulemeta|null|reduce|then|try|while)\b/,boolean:/\b(?:false|true)\b/,number:/(?:\b\d+\.|\B\.)?\b\d+(?:[eE][+-]?\d+)?\b/,operator:[{pattern:/\|=?/,alias:"pipe"},/\.\.|[!=<>]?=|\?\/\/|\/\/=?|[-+*/%]=?|[<>?]|\b(?:and|not|or)\b/],"c-style-function":{pattern:/\b[a-z_]\w*(?=\s*\()/i,alias:"function"},punctuation:/::|[()\[\]{},:;]|\.(?=\s*[\[\w$])/,dot:{pattern:/\./,alias:"important"}};e.interpolation.inside.content.inside=l})(a)}});export{u as a}; diff --git a/build/_shared/chunk-3EBOCCHJ.js b/build/_shared/chunk-3EBOCCHJ.js new file mode 100644 index 00000000..b8be1317 --- /dev/null +++ b/build/_shared/chunk-3EBOCCHJ.js @@ -0,0 +1,10 @@ +import{c as u}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var c=u((p,i)=>{(function(){"use strict";var o={}.hasOwnProperty;function n(){for(var t="",e=0;e{a.exports=t;t.displayName="javascript";t.aliases=["js"];function t(e){e.languages.javascript=e.languages.extend("clike",{"class-name":[e.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),e.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),e.languages.markup&&(e.languages.markup.tag.addInlined("script","javascript"),e.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),e.languages.js=e.languages.javascript}});export{n as a}; diff --git a/build/_shared/chunk-3ID7V6VT.js b/build/_shared/chunk-3ID7V6VT.js new file mode 100644 index 00000000..4735fc44 --- /dev/null +++ b/build/_shared/chunk-3ID7V6VT.js @@ -0,0 +1 @@ +import{c as u}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var b=u((l,a)=>{a.exports=t;t.displayName="promql";t.aliases=[];function t(n){(function(r){var o=["sum","min","max","avg","group","stddev","stdvar","count","count_values","bottomk","topk","quantile"],e=["on","ignoring","group_right","group_left","by","without"],i=["offset"],s=o.concat(e,i);r.languages.promql={comment:{pattern:/(^[ \t]*)#.*/m,lookbehind:!0},"vector-match":{pattern:new RegExp("((?:"+e.join("|")+")\\s*)\\([^)]*\\)"),lookbehind:!0,inside:{"label-key":{pattern:/\b[^,]+\b/,alias:"attr-name"},punctuation:/[(),]/}},"context-labels":{pattern:/\{[^{}]*\}/,inside:{"label-key":{pattern:/\b[a-z_]\w*(?=\s*(?:=|![=~]))/,alias:"attr-name"},"label-value":{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,alias:"attr-value"},punctuation:/\{|\}|=~?|![=~]|,/}},"context-range":[{pattern:/\[[\w\s:]+\]/,inside:{punctuation:/\[|\]|:/,"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}},{pattern:/(\boffset\s+)\w+/,lookbehind:!0,inside:{"range-duration":{pattern:/\b(?:\d+(?:[smhdwy]|ms))+\b/i,alias:"number"}}}],keyword:new RegExp("\\b(?:"+s.join("|")+")\\b","i"),function:/\b[a-z_]\w*(?=\s*\()/i,number:/[-+]?(?:(?:\b\d+(?:\.\d+)?|\B\.\d+)(?:e[-+]?\d+)?\b|\b(?:0x[0-9a-f]+|nan|inf)\b)/i,operator:/[\^*/%+-]|==|!=|<=|<|>=|>|\b(?:and|or|unless)\b/i,punctuation:/[{};()`,.[\]]/}})(n)}});export{b as a}; diff --git a/build/_shared/chunk-3JSSQIXP.js b/build/_shared/chunk-3JSSQIXP.js new file mode 100644 index 00000000..3dcef0fc --- /dev/null +++ b/build/_shared/chunk-3JSSQIXP.js @@ -0,0 +1 @@ +import{c as e}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=e((r,a)=>{a.exports=s;s.displayName="hsts";s.aliases=[];function s(t){t.languages.hsts={directive:{pattern:/\b(?:includeSubDomains|max-age|preload)(?=[\s;=]|$)/i,alias:"property"},operator:/=/,punctuation:/;/}}});export{i as a}; diff --git a/build/_shared/chunk-3LVLBA5H.js b/build/_shared/chunk-3LVLBA5H.js new file mode 100644 index 00000000..8ebb7093 --- /dev/null +++ b/build/_shared/chunk-3LVLBA5H.js @@ -0,0 +1 @@ +import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=i((a,e)=>{e.exports=t;t.displayName="autoit";t.aliases=[];function t(n){n.languages.autoit={comment:[/;.*/,{pattern:/(^[\t ]*)#(?:comments-start|cs)[\s\S]*?^[ \t]*#(?:ce|comments-end)/m,lookbehind:!0}],url:{pattern:/(^[\t ]*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^[\t ]*)#[\w-]+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:False|True)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Not|Or)\b/i,punctuation:/[\[\]().,:]/}}});export{o as a}; diff --git a/build/_shared/chunk-3NSVY56Z.js b/build/_shared/chunk-3NSVY56Z.js new file mode 100644 index 00000000..7073b287 --- /dev/null +++ b/build/_shared/chunk-3NSVY56Z.js @@ -0,0 +1 @@ +import{c as g}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var l=g((P,i)=>{i.exports=n;n.displayName="docker";n.aliases=["dockerfile"];function n(s){(function(r){var c=/\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source,S=/(?:[ \t]+(?![ \t])(?:)?|)/.source.replace(//g,function(){return c}),o=/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source,p=/--[\w-]+=(?:|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(//g,function(){return o}),u={pattern:RegExp(o),greedy:!0},a={pattern:/(^[ \t]*)#.*/m,lookbehind:!0,greedy:!0};function e(t,d){return t=t.replace(//g,function(){return p}).replace(//g,function(){return S}),RegExp(t,d)}r.languages.docker={instruction:{pattern:/(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,lookbehind:!0,greedy:!0,inside:{options:{pattern:e(/(^(?:ONBUILD)?\w+)(?:)*/.source,"i"),lookbehind:!0,greedy:!0,inside:{property:{pattern:/(^|\s)--[\w-]+/,lookbehind:!0},string:[u,{pattern:/(=)(?!["'])(?:[^\s\\]|\\.)+/,lookbehind:!0}],operator:/\\$/m,punctuation:/=/}},keyword:[{pattern:e(/(^(?:ONBUILD)?HEALTHCHECK(?:)*)(?:CMD|NONE)\b/.source,"i"),lookbehind:!0,greedy:!0},{pattern:e(/(^(?:ONBUILD)?FROM(?:)*(?!--)[^ \t\\]+)AS/.source,"i"),lookbehind:!0,greedy:!0},{pattern:e(/(^ONBUILD)\w+/.source,"i"),lookbehind:!0,greedy:!0},{pattern:/^\w+/,greedy:!0}],comment:a,string:u,variable:/\$(?:\w+|\{[^{}"'\\]*\})/,operator:/\\$/m}},comment:a},r.languages.dockerfile=r.languages.docker})(s)}});export{l as a}; diff --git a/build/_shared/chunk-3RILWZVK.js b/build/_shared/chunk-3RILWZVK.js new file mode 100644 index 00000000..21b65a21 --- /dev/null +++ b/build/_shared/chunk-3RILWZVK.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=r((o,t)=>{t.exports=e;e.displayName="wasm";e.aliases=[];function e(a){a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/}}});export{s as a}; diff --git a/build/_shared/chunk-3SI3YFTA.js b/build/_shared/chunk-3SI3YFTA.js new file mode 100644 index 00000000..1c940344 --- /dev/null +++ b/build/_shared/chunk-3SI3YFTA.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=a((r,n)=>{n.exports=t;t.displayName="vala";t.aliases=[];function t(e){e.languages.vala=e.languages.extend("clike",{"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=(?:\?\s+|\*?\s+\*?)\w)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|enum|interface|new|struct)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],keyword:/\b(?:abstract|as|assert|async|base|bool|break|case|catch|char|class|const|construct|continue|default|delegate|delete|do|double|dynamic|else|ensures|enum|errordomain|extern|finally|float|for|foreach|get|if|in|inline|int|int16|int32|int64|int8|interface|internal|is|lock|long|namespace|new|null|out|override|owned|params|private|protected|public|ref|requires|return|set|short|signal|sizeof|size_t|ssize_t|static|string|struct|switch|this|throw|throws|try|typeof|uchar|uint|uint16|uint32|uint64|uint8|ulong|unichar|unowned|ushort|using|value|var|virtual|void|volatile|weak|while|yield)\b/i,function:/\b\w+(?=\s*\()/,number:/(?:\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)(?:f|u?l?)?/i,operator:/\+\+|--|&&|\|\||<<=?|>>=?|=>|->|~|[+\-*\/%&^|=!<>]=?|\?\??|\.\.\./,punctuation:/[{}[\];(),.:]/,constant:/\b[A-Z0-9_]+\b/}),e.languages.insertBefore("vala","string",{"raw-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},"template-string":{pattern:/@"[\s\S]*?"/,greedy:!0,inside:{interpolation:{pattern:/\$(?:\([^)]*\)|[a-zA-Z]\w*)/,inside:{delimiter:{pattern:/^\$\(?|\)$/,alias:"punctuation"},rest:e.languages.vala}},string:/[\s\S]+/}}}),e.languages.insertBefore("vala","keyword",{regex:{pattern:/\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[imsx]{0,4}(?=\s*(?:$|[\r\n,.;})\]]))/,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:e.languages.regex},"regex-delimiter":/^\//,"regex-flags":/^[a-z]+$/}}})}});export{i as a}; diff --git a/build/_shared/chunk-3TGUKLBR.js b/build/_shared/chunk-3TGUKLBR.js new file mode 100644 index 00000000..02263fbe --- /dev/null +++ b/build/_shared/chunk-3TGUKLBR.js @@ -0,0 +1 @@ +import{a as n}from"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var c=a((i,o)=>{var r=n();o.exports=t;t.displayName="objectivec";t.aliases=["objc"];function t(e){e.register(r),e.languages.objectivec=e.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec["class-name"],e.languages.objc=e.languages.objectivec}});export{c as a}; diff --git a/build/_shared/chunk-3U2VKP36.js b/build/_shared/chunk-3U2VKP36.js new file mode 100644 index 00000000..fa190508 --- /dev/null +++ b/build/_shared/chunk-3U2VKP36.js @@ -0,0 +1 @@ +import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=i((o,e)=>{e.exports=n;n.displayName="gn";n.aliases=["gni"];function n(t){t.languages.gn={comment:{pattern:/#.*/,greedy:!0},"string-literal":{pattern:/(^|[^\\"])"(?:[^\r\n"\\]|\\.)*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:\{[\s\S]*?\}|[a-zA-Z_]\w*|0x[a-fA-F0-9]{2})/,lookbehind:!0,inside:{number:/^\$0x[\s\S]{2}$/,variable:/^\$\w+$/,"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:null}}},string:/[\s\S]+/}},keyword:/\b(?:else|if)\b/,boolean:/\b(?:false|true)\b/,"builtin-function":{pattern:/\b(?:assert|defined|foreach|import|pool|print|template|tool|toolchain)(?=\s*\()/i,alias:"keyword"},function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:current_cpu|current_os|current_toolchain|default_toolchain|host_cpu|host_os|root_build_dir|root_gen_dir|root_out_dir|target_cpu|target_gen_dir|target_os|target_out_dir)\b/,number:/-?\b\d+\b/,operator:/[-+!=<>]=?|&&|\|\|/,punctuation:/[(){}[\],.]/},t.languages.gn["string-literal"].inside.interpolation.inside.expression.inside=t.languages.gn,t.languages.gni=t.languages.gn}});export{a}; diff --git a/build/_shared/chunk-3WHWG3R4.js b/build/_shared/chunk-3WHWG3R4.js new file mode 100644 index 00000000..291df6a1 --- /dev/null +++ b/build/_shared/chunk-3WHWG3R4.js @@ -0,0 +1 @@ +import{c as l}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var p=l((b,o)=>{o.exports=t;t.displayName="pascaligo";t.aliases=[];function t(a){(function(s){var u=/\((?:[^()]|\((?:[^()]|\([^()]*\))*\))*\)/.source,n=/(?:\b\w+(?:)?|)/.source.replace(//g,function(){return u}),r=s.languages.pascaligo={comment:/\(\*[\s\S]+?\*\)|\/\/.*/,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1|\^[a-z]/i,greedy:!0},"class-name":[{pattern:RegExp(/(\btype\s+\w+\s+is\s+)/.source.replace(//g,function(){return n}),"i"),lookbehind:!0,inside:null},{pattern:RegExp(/(?=\s+is\b)/.source.replace(//g,function(){return n}),"i"),inside:null},{pattern:RegExp(/(:\s*)/.source.replace(//g,function(){return n})),lookbehind:!0,inside:null}],keyword:{pattern:/(^|[^&])\b(?:begin|block|case|const|else|end|fail|for|from|function|if|is|nil|of|remove|return|skip|then|type|var|while|with)\b/i,lookbehind:!0},boolean:{pattern:/(^|[^&])\b(?:False|True)\b/i,lookbehind:!0},builtin:{pattern:/(^|[^&])\b(?:bool|int|list|map|nat|record|string|unit)\b/i,lookbehind:!0},function:/\b\w+(?=\s*\()/,number:[/%[01]+|&[0-7]+|\$[a-f\d]+/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?(?:mtz|n)?/i],operator:/->|=\/=|\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=|]|\b(?:and|mod|or)\b/,punctuation:/\(\.|\.\)|[()\[\]:;,.{}]/},c=["comment","keyword","builtin","operator","punctuation"].reduce(function(e,i){return e[i]=r[i],e},{});r["class-name"].forEach(function(e){e.inside=c})})(a)}});export{p as a}; diff --git a/build/_shared/chunk-3ZNQ4RJV.js b/build/_shared/chunk-3ZNQ4RJV.js new file mode 100644 index 00000000..72330460 --- /dev/null +++ b/build/_shared/chunk-3ZNQ4RJV.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=n((r,t)=>{t.exports=e;e.displayName="javastacktrace";e.aliases=[];function e(a){a.languages.javastacktrace={summary:{pattern:/^([\t ]*)(?:(?:Caused by:|Suppressed:|Exception in thread "[^"]*")[\t ]+)?[\w$.]+(?::.*)?$/m,lookbehind:!0,inside:{keyword:{pattern:/^([\t ]*)(?:(?:Caused by|Suppressed)(?=:)|Exception in thread)/m,lookbehind:!0},string:{pattern:/^(\s*)"[^"]*"/,lookbehind:!0},exceptions:{pattern:/^(:?\s*)[\w$.]+(?=:|$)/,lookbehind:!0,inside:{"class-name":/[\w$]+$/,namespace:/\b[a-z]\w*\b/,punctuation:/\./}},message:{pattern:/(:\s*)\S.*/,lookbehind:!0,alias:"string"},punctuation:/:/}},"stack-frame":{pattern:/^([\t ]*)at (?:[\w$./]|@[\w$.+-]*\/)+(?:)?\([^()]*\)/m,lookbehind:!0,inside:{keyword:{pattern:/^(\s*)at(?= )/,lookbehind:!0},source:[{pattern:/(\()\w+\.\w+:\d+(?=\))/,lookbehind:!0,inside:{file:/^\w+\.\w+/,punctuation:/:/,"line-number":{pattern:/\b\d+\b/,alias:"number"}}},{pattern:/(\()[^()]*(?=\))/,lookbehind:!0,inside:{keyword:/^(?:Native Method|Unknown Source)$/}}],"class-name":/[\w$]+(?=\.(?:|[\w$]+)\()/,function:/(?:|[\w$]+)(?=\()/,"class-loader":{pattern:/(\s)[a-z]\w*(?:\.[a-z]\w*)*(?=\/[\w@$.]*\/)/,lookbehind:!0,alias:"namespace",inside:{punctuation:/\./}},module:{pattern:/([\s/])[a-z]\w*(?:\.[a-z]\w*)*(?:@[\w$.+-]*)?(?=\/)/,lookbehind:!0,inside:{version:{pattern:/(@)[\s\S]+/,lookbehind:!0,alias:"number"},punctuation:/[@.]/}},namespace:{pattern:/(?:\b[a-z]\w*\.)+/,inside:{punctuation:/\./}},punctuation:/[()/.]/}},more:{pattern:/^([\t ]*)\.{3} \d+ [a-z]+(?: [a-z]+)*/m,lookbehind:!0,inside:{punctuation:/\.{3}/,number:/\d+/,keyword:/\b[a-z]+(?: [a-z]+)*\b/}}}}});export{i as a}; diff --git a/build/_shared/chunk-44Y5F2RG.js b/build/_shared/chunk-44Y5F2RG.js new file mode 100644 index 00000000..c1f36bfd --- /dev/null +++ b/build/_shared/chunk-44Y5F2RG.js @@ -0,0 +1 @@ +import{W as c}from"/numpy-tutorials/build/_shared/chunk-JU57NILB.js";import{b as l}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";var m=l(t=>{let{handDrawnSeed:e}=c();return{fill:t,hachureAngle:120,hachureGap:4,fillWeight:2,roughness:.7,stroke:t,seed:e}},"solidStateFill"),h=l(t=>{let e=p([...t.cssCompiledStyles||[],...t.cssStyles||[],...t.labelStyle||[]]);return{stylesMap:e,stylesArray:[...e]}},"compileStyles"),p=l(t=>{let e=new Map;return t.forEach(o=>{let[a,r]=o.split(":");e.set(a.trim(),r?.trim())}),e},"styles2Map"),d=l(t=>t==="color"||t==="font-size"||t==="font-family"||t==="font-weight"||t==="font-style"||t==="text-decoration"||t==="text-align"||t==="text-transform"||t==="line-height"||t==="letter-spacing"||t==="word-spacing"||t==="text-shadow"||t==="text-overflow"||t==="white-space"||t==="word-wrap"||t==="word-break"||t==="overflow-wrap"||t==="hyphens","isLabelStyle"),S=l(t=>{let{stylesArray:e}=h(t),o=[],a=[],r=[],n=[];return e.forEach(s=>{let i=s[0];d(i)?o.push(s.join(":")+" !important"):(a.push(s.join(":")+" !important"),i.includes("stroke")&&r.push(s.join(":")+" !important"),i==="fill"&&n.push(s.join(":")+" !important"))}),{labelStyles:o.join(";"),nodeStyles:a.join(";"),stylesArray:e,borderStyles:r,backgroundStyles:n}},"styles2String"),w=l((t,e)=>{let{themeVariables:o,handDrawnSeed:a}=c(),{nodeBorder:r,mainBkg:n}=o,{stylesMap:s}=h(t);return Object.assign({roughness:.7,fill:s.get("fill")||n,fillStyle:"hachure",fillWeight:4,hachureGap:5.2,stroke:s.get("stroke")||r,seed:a,strokeWidth:s.get("stroke-width")?.replace("px","")||1.3,fillLineDash:[0,0],strokeLineDash:f(s.get("stroke-dasharray"))},e)},"userNodeOverrides"),f=l(t=>{if(!t)return[0,0];let e=t.trim().split(/\s+/).map(Number);if(e.length===1){let r=isNaN(e[0])?0:e[0];return[r,r]}let o=isNaN(e[0])?0:e[0],a=isNaN(e[1])?0:e[1];return[o,a]},"getStrokeDashArray");export{m as a,h as b,d as c,S as d,w as e}; diff --git a/build/_shared/chunk-45W5NISM.js b/build/_shared/chunk-45W5NISM.js new file mode 100644 index 00000000..5555ea70 --- /dev/null +++ b/build/_shared/chunk-45W5NISM.js @@ -0,0 +1 @@ +import{c as e}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var n=e((r,a)=>{a.exports=t;t.displayName="roboconf";t.aliases=[];function t(o){o.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:external|import)\b|(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{))/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*(?![ \t]))[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/}}});export{n as a}; diff --git a/build/_shared/chunk-4KY6QU65.js b/build/_shared/chunk-4KY6QU65.js new file mode 100644 index 00000000..0c9bd4ee --- /dev/null +++ b/build/_shared/chunk-4KY6QU65.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=n((o,t)=>{t.exports=e;e.displayName="rego";e.aliases=[];function e(r){r.languages.rego={comment:/#.*/,property:{pattern:/(^|[^\\.])(?:"(?:\\.|[^\\"\r\n])*"|`[^`]*`|\b[a-z_]\w*\b)(?=\s*:(?!=))/i,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:as|default|else|import|not|null|package|set(?=\s*\()|some|with)\b/,boolean:/\b(?:false|true)\b/,function:{pattern:/\b[a-z_]\w*\b(?:\s*\.\s*\b[a-z_]\w*\b)*(?=\s*\()/i,inside:{namespace:/\b\w+\b(?=\s*\.)/,punctuation:/\./}},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,operator:/[-+*/%|&]|[<>:=]=?|!=|\b_\b/,punctuation:/[,;.\[\]{}()]/}}});export{a}; diff --git a/build/_shared/chunk-4MQHJYPT.js b/build/_shared/chunk-4MQHJYPT.js new file mode 100644 index 00000000..fdcfd6a8 --- /dev/null +++ b/build/_shared/chunk-4MQHJYPT.js @@ -0,0 +1 @@ +import{c as o}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=o((t,g)=>{g.exports=e;e.displayName="ignore";e.aliases=["gitignore","hgignore","npmignore"];function e(a){(function(n){n.languages.ignore={comment:/^#.*/m,entry:{pattern:/\S(?:.*(?:(?:\\ )|\S))?/,alias:"string",inside:{operator:/^!|\*\*?|\?/,regex:{pattern:/(^|[^\\])\[[^\[\]]*\]/,lookbehind:!0},punctuation:/\//}}},n.languages.gitignore=n.languages.ignore,n.languages.hgignore=n.languages.ignore,n.languages.npmignore=n.languages.ignore})(a)}});export{i as a}; diff --git a/build/_shared/chunk-4OEDG4JQ.js b/build/_shared/chunk-4OEDG4JQ.js new file mode 100644 index 00000000..ecdfceb8 --- /dev/null +++ b/build/_shared/chunk-4OEDG4JQ.js @@ -0,0 +1,7 @@ +import{a as de,c as U,d as Q,f as W}from"/numpy-tutorials/build/_shared/chunk-GUCIBHGO.js";import{c as F,f as ue}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var ke=F((sr,Ee)=>{Ee.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}});var ee=F(y=>{"use strict";Object.defineProperty(y,"__esModule",{value:!0});function Ot(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="-"||e==="_"}y.isIdentStart=Ot;function Pt(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||e==="-"||e==="_"}y.isIdent=Pt;function Ft(e){return e>="a"&&e<="f"||e>="A"&&e<="F"||e>="0"&&e<="9"}y.isHex=Ft;function Mt(e){for(var t=e.length,r="",i=0;i="A"&&n<="Z"||n>="a"&&n<="z"||i!==0&&n>="0"&&n<="9")r+=n;else{var s=n.charCodeAt(0);if((s&63488)===55296){var l=e.charCodeAt(i++);if((s&64512)!==55296||(l&64512)!==56320)throw Error("UCS-2(decode): illegal sequence");s=((s&1023)<<10)+(l&1023)+65536}r+="\\"+s.toString(16)+" "}i++}return r}y.escapeIdentifier=Mt;function jt(e){for(var t=e.length,r="",i=0,n;i":!0,"?":!0,"@":!0,"[":!0,"\\":!0,"]":!0,"^":!0,"`":!0,"{":!0,"|":!0,"}":!0,"~":!0};y.strReplacementsRev={"\n":"\\n","\r":"\\r"," ":"\\t","\f":"\\f","\v":"\\v"};y.singleQuoteEscapeChars={n:` +`,r:"\r",t:" ",f:"\f","\\":"\\","'":"'"};y.doubleQuotesEscapeChars={n:` +`,r:"\r",t:" ",f:"\f","\\":"\\",'"':'"'}});var Oe=F(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});var b=ee();function Dt(e,t,r,i,n,s){var l=e.length,o="";function d(f,h){var g="";for(t++,o=e.charAt(t);t=l)throw Error("Expected symbol but end of file reached.");if(o=e.charAt(t),b.identSpecialChars[o])f+=o;else if(b.isHex(o)){var h=o;for(t++,o=e.charAt(t);b.isHex(o);)h+=o,t++,o=e.charAt(t);o===" "&&(t++,o=e.charAt(t)),f+=String.fromCharCode(parseInt(h,16));continue}else f+=o}else return f;t++,o=e.charAt(t)}return f}function u(){o=e.charAt(t);for(var f=!1;o===" "||o===" "||o===` +`||o==="\r"||o==="\f";)f=!0,t++,o=e.charAt(t);return f}function p(){var f=m();if(t=l||o===","||o===")"));)if(n[o]){var v=o;if(t++,u(),h=O(),!h)throw Error('Rule expected after "'+v+'".');h.nestingOperator=v}else h=O(),h&&(h.nestingOperator=null);return f}function O(){for(var f=null;t=l)throw Error('Expected "=" but end of file reached.');if(o!=="=")throw Error('Expected "=" but "'+o+'" found.');h.operator=g+"=",t++,u();var v="";if(h.valueType="string",o==='"')v=d('"',b.doubleQuotesEscapeChars);else if(o==="'")v=d("'",b.singleQuoteEscapeChars);else if(s&&o==="$")t++,v=c(),h.valueType="substitute";else{for(;t=l)throw Error('Expected "]" but end of file reached.');if(o!=="]")throw Error('Expected "]" but "'+o+'" found.');t++,h.value=v}f=f||{},(f.attrs=f.attrs||[]).push(h)}else if(o===":"){t++;var _=c(),P={name:_};if(o==="("){t++;var S="";if(u(),r[_]==="selector")P.valueType="selector",S=m();else{if(P.valueType=r[_]||"string",o==='"')S=d('"',b.doubleQuotesEscapeChars);else if(o==="'")S=d("'",b.singleQuoteEscapeChars);else if(s&&o==="$")t++,S=c(),P.valueType="substitute";else{for(;t=l)throw Error('Expected ")" but end of file reached.');if(o!==")")throw Error('Expected ")" but "'+o+'" found.');t++,P.value=S}f=f||{},(f.pseudos=f.pseudos||[]).push(P)}else break;return f}return p()}te.parseCssSelector=Dt});var Pe=F(re=>{"use strict";Object.defineProperty(re,"__esModule",{value:!0});var x=ee();function H(e){var t="";switch(e.type){case"ruleSet":for(var r=e.rule,i=[];r;)r.nestingOperator&&i.push(r.nestingOperator),i.push(H(r)),r=r.rule;t=i.join(" ");break;case"selectors":t=e.selectors.map(H).join(", ");break;case"rule":e.tagName&&(e.tagName==="*"?t="*":t=x.escapeIdentifier(e.tagName)),e.id&&(t+="#"+x.escapeIdentifier(e.id)),e.classNames&&(t+=e.classNames.map(function(n){return"."+x.escapeIdentifier(n)}).join("")),e.attrs&&(t+=e.attrs.map(function(n){return"operator"in n?n.valueType==="substitute"?"["+x.escapeIdentifier(n.name)+n.operator+"$"+n.value+"]":"["+x.escapeIdentifier(n.name)+n.operator+x.escapeStr(n.value)+"]":"["+x.escapeIdentifier(n.name)+"]"}).join("")),e.pseudos&&(t+=e.pseudos.map(function(n){return n.valueType?n.valueType==="selector"?":"+x.escapeIdentifier(n.name)+"("+H(n.value)+")":n.valueType==="substitute"?":"+x.escapeIdentifier(n.name)+"($"+n.value+")":n.valueType==="numeric"?":"+x.escapeIdentifier(n.name)+"("+n.value+")":":"+x.escapeIdentifier(n.name)+"("+x.escapeIdentifier(n.value)+")":":"+x.escapeIdentifier(n.name)}).join(""));break;default:throw Error('Unknown entity type: "'+e.type+'".')}return t}re.renderEntity=H});var Fe=F(ne=>{"use strict";Object.defineProperty(ne,"__esModule",{value:!0});var $t=Oe(),Ut=Pe(),It=function(){function e(){this.pseudos={},this.attrEqualityMods={},this.ruleNestingOperators={},this.substitutesEnabled=!1}return e.prototype.registerSelectorPseudos=function(){for(var t=[],r=0;rcrypto.getRandomValues(new Uint8Array(e)),Ve=(e,t,r)=>{let i=(2<{let l="";for(;;){let o=r(n),d=n|0;for(;d--;)if(l+=e[o[d]&i]||"",l.length>=s)return l}}},X=(e,t=21)=>Ve(e,t|0,Ne);function pe(e,t){return t?.note&&(e.note=t.note),t?.url&&(e.url=t.url),t?.ruleId&&(e.ruleId=t.ruleId),t?.key&&(e.key=t.key),t?.fatal&&(e.fatal=!0),e}function k(e,t,r){return pe(e.message(t,r?.node,r?.source),{...r,fatal:!0})}function Z(e,t,r){return pe(e.message(t,r?.node,r?.source),r)}var fe="abcdefghijklmnopqrstuvwxyz",he=fe+fe.toUpperCase(),ze="0123456789",He=X(he,1),Je=X(he+ze,9);function qe(){return He()+Je()}function Qe(e){if(!e)return;let t=e.replace(/[\t\n\r ]+/g," ").replace(/['‘’"“”]+/g,"").trim().toLowerCase(),r=me(t);return{identifier:t,label:e,html_id:r}}function me(e){if(e)return e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/^([0-9-])/,"id-$1").replace(/-[-]+/g,"-").replace(/(?:^[-]+)|(?:[-]+$)/g,"")}function We(e,t,r){e.label&&(t.label&&r&&t.label!==e.label&&Z(r,`label "${t.label}" replaced with "${e.label}"`,{node:t}),t.label&&r&&t.label===e.label&&Z(r,`duplicate label "${t.label}" replacement`,{node:t}),t.label=e.label,delete e.label),e.identifier&&(t.identifier=e.identifier,delete e.identifier),e.html_id&&(t.html_id=e.html_id,delete e.html_id),e.indexEntries&&(t.indexEntries||(t.indexEntries=[]),t.indexEntries.push(...e.indexEntries),delete e.indexEntries)}function ge(e,t){if(!e.children)return[e];let r=e.children.map(i=>ge(i,t)).flat();return e.type===t?(e&&e.children==null&&delete e.children,r):(e.children=r,[e])}function Xe(e,t){e.children&&(e.children=e.children.map(r=>ge(r,t)).flat())}function Ze(e,t){e.children=[{type:"text",value:t}]}function M(e){return e?Array.isArray(e)?e.map(t=>!t||typeof t=="string"?t||"":"value"in t?t.value:"children"in t&&t.children?M(t.children):"").join(""):M([e]):""}function I(e){return structuredClone(e)}function Ye(e){return{attention:"Attention",caution:"Caution",danger:"Danger",error:"Error",important:"Important",hint:"Hint",note:"Note",seealso:"See Also",tip:"Tip",warning:"Warning"}[e]||`Unknown Admonition "${e}"`}function Ge(e,t,r){if(!t||t?.length===0)return"";let i=(r-e.length-4)/2,n="".padEnd(Math.ceil(i),"%"),s="".padEnd(Math.floor(i),"%");return`${`${n} ${e} ${s} +`}${t.join(` +`)} +`}function Ke(e){var t;if(!e.data)return[];let r=(t=e.data.tags)!==null&&t!==void 0?t:[];return Object.entries(e.data).forEach(([i,n])=>{(n===!0||typeof n=="string"&&n.toLowerCase()==="true")&&r.push(i)}),r.map(i=>i.toLowerCase())}function Re(e){if(e!=null)return e.replace(/\.index$/,"").replace(/\./g,"/")}var ve={}.hasOwnProperty;function B(e,t){let r=t||{};function i(n,...s){let l=i.invalid,o=i.handlers;if(n&&ve.call(n,e)){let d=String(n[e]);l=ve.call(o,d)?o[d]:i.unknown}if(l)return l.call(this,n,...s)}return i.handlers=r.handlers||{},i.invalid=r.invalid,i.unknown=r.unknown,i}var et=B("operator",{unknown:st,invalid:xe,handlers:{"=":tt,"^=":nt,"$=":it,"*=":ot,"~=":rt}});function ye(e,t){let r=-1;for(;++r=we&&e.charCodeAt(t)<=lt;)c=c*10+(e.charCodeAt(t)-we),t++;return t===d?null:c}function o(){for(;ts<=r;if(t===0)return s=>s===r;if(t===1)return r<0?Y.default.trueFunc:s=>s>=r;let i=Math.abs(t),n=(r%i+i)%i;return t>1?s=>s>=r&&s%i===n:s=>s<=r&&s%i===n}function N(e){return Se(Ce(e))}function A(e){return Array.isArray(e.children)}var ct=N.default||N,ut=B("name",{unknown:At,invalid:St,handlers:{any:G,blank:Ae,empty:Ae,"first-child":dt,"first-of-type":ft,has:pt,"last-child":ht,"last-of-type":mt,matches:G,not:gt,"nth-child":vt,"nth-last-child":yt,"nth-of-type":bt,"nth-last-of-type":xt,"only-child":wt,"only-of-type":Ct,root:Et,scope:kt}});K.needsIndex=["any","first-child","first-of-type","last-child","last-of-type","matches","not","nth-child","nth-last-child","nth-of-type","nth-last-of-type","only-child","only-of-type"];function K(e,t,r,i,n){let s=e.pseudos,l=-1;for(;++l0}function ht(e,t,r,i,n){return w(n,e),typeof n.nodeCount=="number"&&n.nodeIndex===n.nodeCount-1}function mt(e,t,r,i,n){return w(n,e),typeof n.typeCount=="number"&&n.typeIndex===n.typeCount-1}function G(e,t,r,i,n){let s={...n,found:!1,shallow:!1,one:!0,scopeNodes:[t],results:[],rootQuery:j(e.value)};return T(s,t),s.results[0]===t}function gt(e,t,r,i,n){return!G(e,t,r,i,n)}function vt(e,t,r,i,n){let s=V(e);return w(n,e),typeof n.nodeIndex=="number"&&s(n.nodeIndex)}function yt(e,t,r,i,n){let s=V(e);return w(n,e),typeof n.nodeCount=="number"&&typeof n.nodeIndex=="number"&&s(n.nodeCount-n.nodeIndex-1)}function xt(e,t,r,i,n){let s=V(e);return w(n,e),typeof n.typeIndex=="number"&&typeof n.typeCount=="number"&&s(n.typeCount-1-n.typeIndex)}function bt(e,t,r,i,n){let s=V(e);return w(n,e),typeof n.typeIndex=="number"&&s(n.typeIndex)}function wt(e,t,r,i,n){return w(n,e),n.nodeCount===1}function Ct(e,t,r,i,n){return w(n,e),n.typeCount===1}function Et(e,t,r,i){return t&&!i}function kt(e,t,r,i,n){return t&&n.scopeNodes.includes(t)}function St(){throw new Error("Invalid pseudo-selector")}function At(e){throw e.name?new Error("Unknown pseudo-selector `"+e.name+"`"):new Error("Unexpected pseudo-element or empty pseudo-class")}function w(e,t){if(e.shallow)throw new Error("Cannot use `:"+t.name+"` without parent")}function V(e){let t=e._cachedFn;return t||(t=ct(e.value),e._cachedFn=t),t}function Te(e,t,r,i,n){if(e.id)throw new Error("Invalid selector: id");if(e.classNames)throw new Error("Invalid selector: class");return Boolean(t&&(!e.tagName||be(e,t))&&(!e.attrs||ye(e,t))&&(!e.pseudos||K(e,t,r,i,n)))}var Tt=[];function j(e){return e===null?{type:"selectors",selectors:[]}:e.type==="ruleSet"?{type:"selectors",selectors:[e]}:e}function T(e,t){t&&Le(e,[],t,void 0,void 0)}function Le(e,t,r,i,n){let s={directChild:void 0,descendant:void 0,adjacentSibling:void 0,generalSibling:void 0};return s=Lt(e,z(t,e.rootQuery.selectors),r,i,n),A(r)&&!e.shallow&&!(e.one&&e.found)&&_t(e,s,r),s}function _t(e,t,r){let i=z(t.descendant,t.directChild),n,s=-1,l={count:0,types:new Map},o={count:0,types:new Map};for(;++s"?"directChild":"descendant";R(s,u,c)}else e.found=!0,e.results.includes(r)||e.results.push(r)}o.rule.nestingOperator===null?R(s,"descendant",o):o.rule.nestingOperator==="~"&&R(s,"generalSibling",o)}return s}function z(e,t){return e&&t&&e.length>0&&t.length>0?[...e,...t]:e&&e.length>0?e:t&&t.length>0?t:Tt}function R(e,t,r){let i=e[t];i?i.push(r):e[t]=[r]}function _e(e,t){let r=t.type.toUpperCase(),i=(e.types.get(r)||0)+1;e.count++,e.types.set(r,i)}var Me=ue(Fe(),1),J=new Me.CssSelectorParser;J.registerAttrEqualityMods("~","^","$","*");J.registerSelectorPseudos("any","matches","not","has");J.registerNestingOperators(">","+","~");function je(e){if(typeof e!="string")throw new TypeError("Expected `string` as selector, not `"+e+"`");return J.parse(e)}function Mr(e,t){let r=ie(e,t);return r.one=!0,r.shallow=!0,T(r,t||void 0),r.results.length>0}function jr(e,t){let r=ie(e,t);return r.one=!0,T(r,t||void 0),r.results[0]||null}function L(e,t){let r=ie(e,t);return T(r,t||void 0),r.results}function ie(e,t){return{rootQuery:j(je(e)),results:[],scopeNodes:t?A(t)&&(t.type==="RootNode"||t.type==="root")?t.children:[t]:[],one:!1,shallow:!1,found:!1,typeIndex:void 0,nodeIndex:void 0,typeCount:void 0,nodeCount:void 0}}var Bt=[],q=function(e,t,r){let i=de(r||t),n=!t||t.cascade===void 0||t.cascade===null?!0:t.cascade;return s(e);function s(l,o,d){let c=l.children||Bt,u=-1,p=0;if(i(l,o,d))return null;if(c.length>0){for(;++ur.toLowerCase()).forEach(r=>{t.push(r),Object.entries(De).forEach(([i,n])=>{(r===i||r===n)&&(t.includes(n)||t.unshift(n),t.includes(i)||t.push(i))})}),t}function $e(e,t){let r=D(t);return r.length===0?[]:L("block",e).filter(n=>{var s,l,o;let d=(!((s=n.data)===null||s===void 0)&&s.tags&&Array.isArray(n.data.tags)?n.data.tags:[]).map(u=>u?.toLowerCase()),c=(o=(l=n.data)===null||l===void 0?void 0:l.part)===null||o===void 0?void 0:o.toLowerCase();return r.map(u=>c===u||d.includes(u)).reduce((u,p)=>u||p,!1)})}function Vt(e,t){if(!e)return[];let r=D(t);if(r.length===0)return[];let i=[];return r.forEach(n=>{Object.entries(e).forEach(([s,l])=>{n===s.toLowerCase()&&i.push(...l.mdast.children)})}),i}function zt(e,t,r){var i;let n={type:"block",children:e};return r?.removePartData||((i=n.data)!==null&&i!==void 0||(n.data={}),n.data.part=t),n}function Ue(e,t){let r=q(e,t);return r||(r=q(e,{cascade:!1},t)),r}function Ie(e,t,r){var i;let n=D(t);if(n.length===0)return;let s=!1,l=[],o=[];if((i=e.children)===null||i===void 0||i.forEach((c,u)=>{var p;if(s&&c.type==="paragraph"&&(o.push(I(c)),c.type="__part_delete__"),(c.type!=="__part_delete__"||u===e.children.length-1)&&(s=!1,o.length>0&&(l.push(zt(o,n[0],r)),o=[],L("__part_heading__",e).forEach(m=>{m.type="__part_delete__"}))),c.type==="block"){if(!((p=c.data)===null||p===void 0)&&p.part||e.type!=="root")return;let m=Ie(c,n);m&&l.push(...m.children)}else c.type==="heading"&&n.includes(M(c).toLowerCase())&&(s=!0,c.type="__part_heading__")}),L("__part_heading__",e).forEach(c=>{c.type="heading"}),l.length===0)return;let d={type:"root",children:l};return Ue(e,"__part_delete__"),d}function Ht(e,t,r){let i=D(t);if(i.length===0)return;let n=Vt(r?.frontmatterParts,t),s=$e(e,t);if(n.length===0&&s.length===0)return r?.requireExplicitPart?void 0:Ie(e,i);let o={type:"root",children:I(n.length>0?n:s).map(d=>{var c;return(c=d.data)!==null&&c!==void 0||(d.data={}),d.data.part=i[0],d.data.tags&&Array.isArray(d.data.tags)&&d.data.tags.reduce((u,p)=>u||i.includes(p.toLowerCase()),!1)&&(d.data.tags=d.data.tags.filter(u=>!i.includes(u.toLowerCase())),d.data.tags.length===0&&delete d.data.tags),r?.removePartData&&delete d.data.part,r?.keepVisibility||delete d.visibility,d})};return s.forEach(d=>{d.type="__delete__"}),Ue(e,"__delete__"),o}var a;(function(e){e.validConfigStructure="valid-config-structure",e.siteConfigExists="site-config-exists",e.projectConfigExists="project-config-exists",e.validSiteConfig="valid-site-config",e.validProjectConfig="valid-project-config",e.configHasNoDeprecatedFields="config-has-no-deprecated-fields",e.frontmatterIsYaml="frontmatter-is-yaml",e.validPageFrontmatter="valid-page-frontmatter",e.validFrontmatterExportList="valid-frontmatter-export-list",e.docxRenders="docx-renders",e.jatsRenders="jats-renders",e.mdRenders="md-renders",e.mecaIncludesJats="meca-includes-jats",e.mecaExportsBuilt="meca-exports-built",e.mecaFilesCopied="meca-files-copied",e.pdfBuildCommandsAvailable="pdf-build-commands-available",e.pdfBuildsWithoutErrors="pdf-builds-without-errors",e.pdfBuilds="pdf-builds",e.texRenders="tex-renders",e.exportExtensionCorrect="export-extension-correct",e.exportArticleExists="export-article-exists",e.texParses="tex-parses",e.jatsParses="jats-parses",e.mystFileLoads="myst-file-loads",e.selectedFileIsProcessed="selected-file-is-processed",e.directiveRegistered="directive-registered",e.directiveKnown="directive-known",e.directiveArgumentCorrect="directive-argument-correct",e.directiveOptionsCorrect="directive-options-correct",e.directiveBodyCorrect="directive-body-correct",e.roleRegistered="role-registered",e.roleKnown="role-known",e.roleBodyCorrect="role-body-correct",e.tocContentsExist="toc-contents-exist",e.encounteredLegacyTOC="encountered-legacy-toc",e.validTOCStructure="valid-toc-structure",e.validTOC="valid-toc",e.imageDownloads="image-downloads",e.imageExists="image-exists",e.imageFormatConverts="image-format-converts",e.imageCopied="image-copied",e.imageFormatOptimizes="image-format-optimizes",e.mathLabelLifted="math-label-lifted",e.mathEquationEnvRemoved="math-equation-env-removed",e.mathEqnarrayReplaced="math-eqnarray-replaced",e.mathAlignmentAdjusted="math-alignment-adjusted",e.mathRenders="math-renders",e.referenceTemplateFills="reference-template-fills",e.identifierIsUnique="identifier-is-unique",e.referenceTargetResolves="reference-target-resolves",e.referenceSyntaxValid="reference-syntax-valid",e.referenceTargetExplicit="reference-target-explicit",e.footnoteReferencesDefinition="footnote-references-definition",e.intersphinxReferencesResolve="intersphinx-references-resolve",e.mystLinkValid="myst-link-valid",e.sphinxLinkValid="sphinx-link-valid",e.rridLinkValid="rrid-link-valid",e.rorLinkValid="ror-link-valid",e.wikipediaLinkValid="wikipedia-link-valid",e.doiLinkValid="doi-link-valid",e.linkResolves="link-resolves",e.linkTextExists="link-text-exists",e.notebookAttachmentsResolve="notebook-attachments-resolve",e.notebookOutputCopied="notebook-output-copied",e.mdastSnippetImports="mdast-snippet-imports",e.includeContentFilters="include-content-filters",e.includeContentLoads="include-content-loads",e.gatedNodesJoin="gated-nodes-join",e.glossaryUsesDefinitionList="glossary-uses-definition-list",e.blockMetadataLoads="block-metadata-loads",e.indexEntriesResolve="index-entries-resolve",e.citationIsUnique="citation-is-unique",e.bibFileExists="bib-file-exists",e.citationRenders="citation-renders",e.codeMetadataLifted="code-metadata-lifted",e.codeMetatagsValid="code-metatags-valid",e.codeLangDefined="code-lang-defined",e.codeMetadataLoads="code-metadata-loads",e.inlineCodeMalformed="inline-code-malformed",e.inlineExpressionRenders="inline-expression-renders",e.staticFileCopied="static-file-copied",e.exportFileCopied="export-file-copied",e.sourceFileCopied="source-file-copied",e.templateFileCopied="template-file-copied",e.staticActionFileCopied="static-action-file-copied",e.pluginLoads="plugin-loads",e.containerChildrenValid="container-children-valid",e.mystJsonValid="myst-json-valid",e.codeCellExecutes="code-cell-executes",e.inlineExpressionExecutes="inline-expression-executes"})(a||(a={}));var Jt={[a.validConfigStructure]:"Configuration file structure is valid and can be parsed",[a.siteConfigExists]:"Site configuration is found in project",[a.projectConfigExists]:"Project configuration file exists in the directory",[a.validSiteConfig]:"Site configuration passes validation",[a.validProjectConfig]:"Project configuration passes validation",[a.configHasNoDeprecatedFields]:"Configuration uses current field names without deprecated options",[a.frontmatterIsYaml]:"Frontmatter can be parsed as valid YAML",[a.validPageFrontmatter]:"Page frontmatter passes validation",[a.validFrontmatterExportList]:"Export list in frontmatter is valid for the specified format",[a.docxRenders]:"DOCX document renders without errors",[a.jatsRenders]:"JATS XML renders without errors",[a.mdRenders]:"Markdown output renders without errors",[a.mecaIncludesJats]:"MECA bundle contains required JATS file",[a.mecaExportsBuilt]:"MECA archive builds without errors",[a.mecaFilesCopied]:"MECA files copy to output successfully",[a.pdfBuildCommandsAvailable]:"Required PDF build tools (LaTeX/Typst) are installed",[a.pdfBuildsWithoutErrors]:"PDF compilation completes without LaTeX/Typst errors",[a.pdfBuilds]:"PDF file generates successfully",[a.texRenders]:"LaTeX/Typst document renders without errors",[a.exportExtensionCorrect]:"Export file has the correct extension for its format",[a.exportArticleExists]:"Article file specified in export configuration exists",[a.texParses]:"LaTeX content parses without syntax errors",[a.jatsParses]:"JATS XML parses without syntax errors",[a.mystFileLoads]:"MyST markdown file loads and parses successfully",[a.selectedFileIsProcessed]:"File specified for processing is found and processed",[a.directiveRegistered]:"Directive is registered without name conflicts",[a.directiveKnown]:"Directive name is recognized",[a.directiveArgumentCorrect]:"Directive argument matches specification",[a.directiveOptionsCorrect]:"Directive options are valid and properly formatted",[a.directiveBodyCorrect]:"Directive body content meets requirements",[a.roleRegistered]:"Role is registered without name conflicts",[a.roleKnown]:"Role name is recognized",[a.roleBodyCorrect]:"Role content meets requirements",[a.tocContentsExist]:"Files referenced in table of contents exist",[a.encounteredLegacyTOC]:"Table of contents uses deprecated format",[a.validTOCStructure]:"Table of contents structure passes schema validation",[a.validTOC]:"Table of contents is valid",[a.imageDownloads]:"Remote image downloads successfully",[a.imageExists]:"Image file exists at specified path",[a.imageFormatConverts]:"Image format converts successfully using available tools",[a.imageCopied]:"Image copies to output directory successfully",[a.imageFormatOptimizes]:"Image format optimizes successfully",[a.mathLabelLifted]:"Math equation label extracts successfully",[a.mathEquationEnvRemoved]:"Nested equation environment removes successfully",[a.mathEqnarrayReplaced]:"Deprecated eqnarray environment replaces with align",[a.mathAlignmentAdjusted]:"Math alignment adjusts successfully",[a.mathRenders]:"Math expression renders with KaTeX without errors",[a.referenceTemplateFills]:"Reference template populates with values successfully",[a.identifierIsUnique]:"Identifier is unique across the project",[a.referenceTargetResolves]:"Cross-reference target is found",[a.referenceSyntaxValid]:"Reference syntax is valid",[a.referenceTargetExplicit]:"Reference target is explicitly specified",[a.footnoteReferencesDefinition]:"Footnote reference links to an existing definition",[a.intersphinxReferencesResolve]:"Intersphinx cross-reference resolves to external documentation",[a.mystLinkValid]:"MyST-formatted link is valid",[a.sphinxLinkValid]:"Sphinx-style link is valid",[a.rridLinkValid]:"RRID (Research Resource Identifier) link is valid",[a.rorLinkValid]:"ROR (Research Organization Registry) link is valid",[a.wikipediaLinkValid]:"Wikipedia link is valid",[a.doiLinkValid]:"DOI (Digital Object Identifier) link is valid",[a.linkResolves]:"Link URL resolves successfully",[a.linkTextExists]:"Link has non-empty text content",[a.notebookAttachmentsResolve]:"Jupyter notebook attachments resolve and decode successfully",[a.notebookOutputCopied]:"Notebook cell output copies to disk successfully",[a.mdastSnippetImports]:"MDAST snippet imports successfully",[a.includeContentFilters]:"Include directive filters apply correctly",[a.includeContentLoads]:"Include directive loads target file successfully without circular dependencies",[a.gatedNodesJoin]:"Conditional content nodes merge correctly",[a.glossaryUsesDefinitionList]:"Glossary directive contains a definition list",[a.blockMetadataLoads]:"Block-level metadata loads and parses successfully",[a.indexEntriesResolve]:"Index entries resolve successfully",[a.citationIsUnique]:"Citation identifier is unique across bibliography files",[a.bibFileExists]:"Bibliography file specified in configuration exists",[a.citationRenders]:"Citation processes with citation-js successfully",[a.codeMetadataLifted]:"Code cell metadata extracts without conflicts",[a.codeMetatagsValid]:"Code cell tags are valid",[a.codeLangDefined]:"Code block has a language specified",[a.codeMetadataLoads]:"Code metadata loads successfully",[a.inlineCodeMalformed]:"Inline code has either value or children but not both",[a.inlineExpressionRenders]:"Inline expression evaluates successfully",[a.staticFileCopied]:"Static file copies to output successfully",[a.exportFileCopied]:"Export output file copies to public directory successfully",[a.sourceFileCopied]:"Source file copies to output successfully",[a.templateFileCopied]:"Template file copies successfully",[a.staticActionFileCopied]:"Static action file copies successfully",[a.pluginLoads]:"Plugin loads and executes without errors",[a.containerChildrenValid]:"Container has valid child elements",[a.mystJsonValid]:"MyST JSON file is valid",[a.codeCellExecutes]:"Code cell executes without errors",[a.inlineExpressionExecutes]:"Inline expression evaluates without errors"};function qt(e,t){var r;let i=(r=typeof t=="number"?t:Array.isArray(t)?t?.length:Object.keys(t??{}).length)!==null&&r!==void 0?r:0;return e.replace("%s",String(i)).replace(/\((?:([a-z0-9A-Z-]*)\|)?([a-z0-9A-Z-]*)\)/g,i===1?"$1":"$2")}function Qt(e,{single:t,pair:r,triple:i,see:n,seealso:s},l,o){if(e.trim().length===0)return;let d=e.split(/(?c.trim().replace("\\:",":"));if(d.length>2)k(l,`Too many colons encountered in index line "${e}"`,{node:o,note:'Index entry must follow pattern "type: entry; sub entry"'});else if(d.length===2){let[c,u]=d;c==="single"?t.push(u):c==="pair"?r.push(u):c==="triple"?i.push(u):c==="see"?n.push(u):c==="seealso"?s.push(u):k(l,`Unknown index entry type "${c}"`,{node:o,note:"Allowed types include: single, pair, triple, see, and seealso"})}else t.push(...d[0].split(/(?c.trim().replace("\\,",",")))}function $(e){let t=e.startsWith("!"),r=e.replace(/^!/,"").replace(/^\\!/,"!").split(/(?i.trim().replace("\\;",";")).filter(i=>i!=="");return{emphasis:t,splitEntry:r}}function C(e,t,r,i){return{entry:e,subEntry:t?{value:t,kind:i??"entry"}:void 0,emphasis:r}}function Wt({single:e,pair:t,triple:r,see:i,seealso:n},s,l){let o=[];e.forEach(c=>{let{emphasis:u,splitEntry:p}=$(c);if(p.length!==1&&p.length!==2)k(s,`Unable to parse index "single" entry "${c}"`,{node:l,note:'Single index entry must follow pattern "entry" or "entry; sub entry"'});else{let[m,E]=p;o.push(C(m,E,u))}}),t.forEach(c=>{let{emphasis:u,splitEntry:p}=$(c);if(p.length!==2)k(s,`Unable to parse index "pair" entry "${c}"`,{node:l,note:'Pair index entry must follow pattern "entry; sub entry"'});else{let[m,E]=p;o.push(C(m,E,u)),o.push(C(E,m,u))}}),r.forEach(c=>{let{emphasis:u,splitEntry:p}=$(c);p.length!==3?k(s,`Unable to parse index "triple" entry "${c}"`,{node:l,note:'Triple index entry must follow pattern "entry one; entry two; entry three"'}):(o.push(C(p[0],p[1],u)),o.push(C(p[1],p[0],u)),o.push(C(p[1],p[2],u)),o.push(C(p[2],p[1],u)),o.push(C(p[0],p[2],u)),o.push(C(p[2],p[0],u)))});let d=(c,u)=>{let{emphasis:p,splitEntry:m}=$(c);if(m.length!==2)k(s,`Unable to parse index "${u}" entry "${c}"`,{node:l,note:'See index entry must follow pattern "entry; sub entry"'});else{let[E,O]=m;o.push(C(E,O,p,u))}};return i.forEach(c=>{d(c,"see")}),n.forEach(c=>{d(c,"seealso")}),o.length===0&&k(s,"No entries parsed from index directive",{node:l}),o}function Be(e){return!["crossReference","cite","footnoteDefinition","footnoteReference","captionNumber","link"].includes(e.type)}var Xt=new Set(["comment","mystComment"]);function Zt(e,t,r){let i=!1,n,s=[];return W(e,l=>{if(i&&l.type==="heading"||r&&s.length>=r)return U;if(l.identifier===t&&l.type==="heading"&&(i=!0,n=l.html_id||l.identifier),i)return Xt.has(l.type)||s.push(l),Q}),{htmlId:n,nodes:s}}function Yt(e,t,r){var i,n;let s=!1,l=[];return W(e,o=>{if(s&&o.type==="definitionTerm"){if(l.length>1)return U}else if(s&&o.type!=="definitionDescription")return U;if(o.identifier===t&&o.type==="definitionTerm"&&(l.push(o),s=!0),s)return o.type==="definitionDescription"&&l.push(o),Q}),{htmlId:((i=l?.[0])===null||i===void 0?void 0:i.html_id)||((n=l?.[0])===null||n===void 0?void 0:n.identifier),nodes:[{type:"definitionList",key:"dl",children:l.slice(0,r)}]}}function Gt(e,t,r){if(r===0)return{nodes:[]};let i=L(`[identifier=${t}],[key=${t}]`,e).find(n=>Be(n));if(!i)return{nodes:[]};switch(i.type){case"heading":return Zt(e,t,r);case"definitionTerm":return Yt(e,t,r);default:return{htmlId:i.html_id||i.identifier,nodes:[i]}}}var oe;(function(e){e.content="notebook-content",e.code="notebook-code"})(oe||(oe={}));var se;(function(e){e.removeStderr="remove-stderr",e.removeStdout="remove-stdout",e.hideCell="hide-cell",e.hideInput="hide-input",e.hideOutput="hide-output",e.removeCell="remove-cell",e.removeInput="remove-input",e.removeOutput="remove-output",e.scrollOutput="scroll-output",e.skipExecution="skip-execution",e.raisesException="raises-exception"})(se||(se={}));var ae;(function(e){e.string="string",e.number="number",e.boolean="boolean",e.parsed="parsed"})(ae||(ae={}));var le;(function(e){e.heading="heading",e.equation="equation",e.subequation="subequation",e.figure="figure",e.table="table",e.code="code"})(le||(le={}));var ce;(function(e){e.admonition="admonition",e.attention="attention",e.caution="caution",e.danger="danger",e.error="error",e.important="important",e.hint="hint",e.note="note",e.seealso="seealso",e.tip="tip",e.warning="warning"})(ce||(ce={}));export{k as a,Z as b,qe as c,Qe as d,me as e,We as f,Xe as g,Ze as h,M as i,I as j,Ye as k,Ge as l,Ke as m,Re as n,qt as o,q as p,B as q,Mr as r,jr as s,L as t,Nt as u,Nr as v,De as w,$e as x,Ht as y,Qt as z,Wt as A,a as B,Be as C,Gt as D,oe as E,ae as F,le as G,ce as H}; diff --git a/build/_shared/chunk-4RJFF6WU.js b/build/_shared/chunk-4RJFF6WU.js new file mode 100644 index 00000000..bb444406 --- /dev/null +++ b/build/_shared/chunk-4RJFF6WU.js @@ -0,0 +1 @@ +import{c as e}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=e((i,t)=>{t.exports=a;a.displayName="apl";a.aliases=[];function a(n){n.languages.apl={comment:/(?:⍝|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/¯?(?:\d*\.?\b\d+(?:e[+¯]?\d+)?|¯|∞)(?:j¯?(?:(?:\d+(?:\.\d+)?|\.\d+)(?:e[+¯]?\d+)?|¯|∞))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/⎕[A-Z]+/i,alias:"function"},constant:/[⍬⌾#⎕⍞]/,function:/[-+×÷⌈⌊∣|⍳⍸?*⍟○!⌹<≤=>≥≠≡≢∊⍷∪∩~∨∧⍱⍲⍴,⍪⌽⊖⍉↑↓⊂⊃⊆⊇⌷⍋⍒⊤⊥⍕⍎⊣⊢⍁⍂≈⍯↗¤→]/,"monadic-operator":{pattern:/[\\\/⌿⍀¨⍨⌶&∥]/,alias:"operator"},"dyadic-operator":{pattern:/[.⍣⍠⍤∘⌸@⌺⍥]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}⍺⍵⍶⍹∇⍫:]/,alias:"builtin"}}}});export{r as a}; diff --git a/build/_shared/chunk-4RQBFYA6.js b/build/_shared/chunk-4RQBFYA6.js new file mode 100644 index 00000000..f294b8f5 --- /dev/null +++ b/build/_shared/chunk-4RQBFYA6.js @@ -0,0 +1,2 @@ +import{c as o}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=o((i,n)=>{n.exports=t;t.displayName="systemd";t.aliases=[];function t(s){(function(a){var r={pattern:/^[;#].*/m,greedy:!0},e=/"(?:[^\r\n"\\]|\\(?:[^\r]|\r\n?))*"(?!\S)/.source;a.languages.systemd={comment:r,section:{pattern:/^\[[^\n\r\[\]]*\](?=[ \t]*$)/m,greedy:!0,inside:{punctuation:/^\[|\]$/,"section-name":{pattern:/[\s\S]+/,alias:"selector"}}},key:{pattern:/^[^\s=]+(?=[ \t]*=)/m,greedy:!0,alias:"attr-name"},value:{pattern:RegExp(/(=[ \t]*(?!\s))/.source+"(?:"+e+`|(?=[^"\r +]))(?:`+(/[^\s\\]/.source+'|[ ]+(?:(?![ "])|'+e+")|"+/\\[\r\n]+(?:[#;].*[\r\n]+)*(?![#;])/.source)+")*"),lookbehind:!0,greedy:!0,alias:"attr-value",inside:{comment:r,quoted:{pattern:RegExp(/(^|\s)/.source+e),lookbehind:!0,greedy:!0},punctuation:/\\$/m,boolean:{pattern:/^(?:false|no|off|on|true|yes)$/,greedy:!0}}},punctuation:/=/}})(s)}});export{u as a}; diff --git a/build/_shared/chunk-4SDGMJE2.js b/build/_shared/chunk-4SDGMJE2.js new file mode 100644 index 00000000..f0e028ff --- /dev/null +++ b/build/_shared/chunk-4SDGMJE2.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=s((d,o)=>{o.exports=a;a.displayName="cssExtras";a.aliases=[];function a(l){(function(e){var r=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:n={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp(`\\[(?:[^[\\]"']|`+r.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[r,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=n,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var t={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},i={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:i,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:i})})(l)}});export{u as a}; diff --git a/build/_shared/chunk-4UW3WPNX.js b/build/_shared/chunk-4UW3WPNX.js new file mode 100644 index 00000000..1a6cfc11 --- /dev/null +++ b/build/_shared/chunk-4UW3WPNX.js @@ -0,0 +1 @@ +import{a as i}from"/numpy-tutorials/build/_shared/chunk-2HVDTW4E.js";import{a as d}from"/numpy-tutorials/build/_shared/chunk-MRS6DOXX.js";import{c as u}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var g=u((p,s)=>{var l=i(),c=d();s.exports=n;n.displayName="javadoc";n.aliases=[];function n(a){a.register(l),a.register(c),function(e){var t=/(^(?:[\t ]*(?:\*\s*)*))[^*\s].*$/m,o=/#\s*\w+(?:\s*\([^()]*\))?/.source,r=/(?:\b[a-zA-Z]\w+\s*\.\s*)*\b[A-Z]\w*(?:\s*)?|/.source.replace(//g,function(){return o});e.languages.javadoc=e.languages.extend("javadoclike",{}),e.languages.insertBefore("javadoc","keyword",{reference:{pattern:RegExp(/(@(?:exception|link|linkplain|see|throws|value)\s+(?:\*\s*)?)/.source+"(?:"+r+")"),lookbehind:!0,inside:{function:{pattern:/(#\s*)\w+(?=\s*\()/,lookbehind:!0},field:{pattern:/(#\s*)\w+/,lookbehind:!0},namespace:{pattern:/\b(?:[a-z]\w*\s*\.\s*)+/,inside:{punctuation:/\./}},"class-name":/\b[A-Z]\w*/,keyword:e.languages.java.keyword,punctuation:/[#()[\],.]/}},"class-name":{pattern:/(@param\s+)<[A-Z]\w*>/,lookbehind:!0,inside:{punctuation:/[.<>]/}},"code-section":[{pattern:/(\{@code\s+(?!\s))(?:[^\s{}]|\s+(?![\s}])|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})+(?=\s*\})/,lookbehind:!0,inside:{code:{pattern:t,lookbehind:!0,inside:e.languages.java,alias:"language-java"}}},{pattern:/(<(code|pre|tt)>(?!)\s*)\S(?:\S|\s+\S)*?(?=\s*<\/\2>)/,lookbehind:!0,inside:{line:{pattern:t,lookbehind:!0,inside:{tag:e.languages.markup.tag,entity:e.languages.markup.entity,code:{pattern:/.+/,inside:e.languages.java,alias:"language-java"}}}}}],tag:e.languages.markup.tag,entity:e.languages.markup.entity}),e.languages.javadoclike.addSupport("java",e.languages.javadoc)}(a)}});export{g as a}; diff --git a/build/_shared/chunk-4VF2MTNC.js b/build/_shared/chunk-4VF2MTNC.js new file mode 100644 index 00000000..bb67aace --- /dev/null +++ b/build/_shared/chunk-4VF2MTNC.js @@ -0,0 +1 @@ +import{c}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var m=c((h,o)=>{o.exports=i;i.displayName="factor";i.aliases=[];function i(l){(function(u){var r={function:/\b(?:BUGS?|FIX(?:MES?)?|NOTES?|TODOS?|XX+|HACKS?|WARN(?:ING)?|\?{2,}|!{2,})\b/},t={number:/\\[^\s']|%\w/},s={comment:[{pattern:/(^|\s)(?:! .*|!$)/,lookbehind:!0,inside:r},{pattern:/(^|\s)\/\*\s[\s\S]*?\*\/(?=\s|$)/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|\s)!\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,inside:r}],number:[{pattern:/(^|\s)[+-]?\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b[01]+|o[0-7]+|d\d+|x[\dA-F]+)(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)[+-]?\d+\/\d+\.?(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)\+?\d+\+\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)-\d+-\d+\/\d+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?(?:\d*\.\d+|\d+\.\d*|\d+)(?:e[+-]?\d+)?(?=\s|$)/i,lookbehind:!0},{pattern:/(^|\s)NAN:\s+[\da-fA-F]+(?=\s|$)/,lookbehind:!0},{pattern:/(^|\s)[+-]?0(?:b1\.[01]*|o1\.[0-7]*|d1\.\d*|x1\.[\dA-F]*)p\d+(?=\s|$)/i,lookbehind:!0}],regexp:{pattern:/(^|\s)R\/\s(?:\\\S|[^\\/])*\/(?:[idmsr]*|[idmsr]+-[idmsr]+)(?=\s|$)/,lookbehind:!0,alias:"number",inside:{variable:/\\\S/,keyword:/[+?*\[\]^$(){}.|]/,operator:{pattern:/(\/)[idmsr]+(?:-[idmsr]+)?/,lookbehind:!0}}},boolean:{pattern:/(^|\s)[tf](?=\s|$)/,lookbehind:!0},"custom-string":{pattern:/(^|\s)[A-Z0-9\-]+"\s(?:\\\S|[^"\\])*"/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:/\\\S|%\w|\//}},"multiline-string":[{pattern:/(^|\s)STRING:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*;(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:{number:t.number,"semicolon-or-setlocal":{pattern:/([\r\n][ \t]*);(?=\s|$)/,lookbehind:!0,alias:"function"}}},{pattern:/(^|\s)HEREDOC:\s+\S+(?:\n|\r\n).*(?:\n|\r\n)\s*\S+(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:t},{pattern:/(^|\s)\[(={0,6})\[\s[\s\S]*?\]\2\](?=\s|$)/,lookbehind:!0,greedy:!0,alias:"string",inside:t}],"special-using":{pattern:/(^|\s)USING:(?:\s\S+)*(?=\s+;(?:\s|$))/,lookbehind:!0,alias:"function",inside:{string:{pattern:/(\s)[^:\s]+/,lookbehind:!0}}},"stack-effect-delimiter":[{pattern:/(^|\s)(?:call|eval|execute)?\((?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)--(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\)(?=\s|$)/,lookbehind:!0,alias:"operator"}],combinators:{pattern:null,lookbehind:!0,alias:"keyword"},"kernel-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"sequences-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"math-builtin":{pattern:null,lookbehind:!0,alias:"variable"},"constructor-word":{pattern:/(^|\s)<(?!=+>|-+>)\S+>(?=\s|$)/,lookbehind:!0,alias:"keyword"},"other-builtin-syntax":{pattern:null,lookbehind:!0,alias:"operator"},"conventionally-named-word":{pattern:/(^|\s)(?!")(?:(?:change|new|set|with)-\S+|\$\S+|>[^>\s]+|[^:>\s]+>|[^>\s]+>[^>\s]+|\+[^+\s]+\+|[^?\s]+\?|\?[^?\s]+|[^>\s]+>>|>>[^>\s]+|[^<\s]+<<|\([^()\s]+\)|[^!\s]+!|[^*\s]\S*\*|[^.\s]\S*\.)(?=\s|$)/,lookbehind:!0,alias:"keyword"},"colon-syntax":{pattern:/(^|\s)(?:[A-Z0-9\-]+#?)?:{1,2}\s+(?:;\S+|(?!;)\S+)(?=\s|$)/,lookbehind:!0,greedy:!0,alias:"function"},"semicolon-or-setlocal":{pattern:/(\s)(?:;|:>)(?=\s|$)/,lookbehind:!0,alias:"function"},"curly-brace-literal-delimiter":[{pattern:/(^|\s)[a-z]*\{(?=\s)/i,lookbehind:!0,alias:"operator"},{pattern:/(\s)\}(?=\s|$)/,lookbehind:!0,alias:"operator"}],"quotation-delimiter":[{pattern:/(^|\s)\[(?=\s)/,lookbehind:!0,alias:"operator"},{pattern:/(\s)\](?=\s|$)/,lookbehind:!0,alias:"operator"}],"normal-word":{pattern:/(^|\s)[^"\s]\S*(?=\s|$)/,lookbehind:!0},string:{pattern:/"(?:\\\S|[^"\\])*"/,greedy:!0,inside:t}},p=function(e){return(e+"").replace(/([.?*+\^$\[\]\\(){}|\-])/g,"\\$1")},n=function(e){return new RegExp("(^|\\s)(?:"+e.map(p).join("|")+")(?=\\s|$)")},a={"kernel-builtin":["or","2nipd","4drop","tuck","wrapper","nip","wrapper?","callstack>array","die","dupd","callstack","callstack?","3dup","hashcode","pick","4nip","build",">boolean","nipd","clone","5nip","eq?","?","=","swapd","2over","clear","2dup","get-retainstack","not","tuple?","dup","3nipd","call","-rotd","object","drop","assert=","assert?","-rot","execute","boa","get-callstack","curried?","3drop","pickd","overd","over","roll","3nip","swap","and","2nip","rotd","throw","(clone)","hashcode*","spin","reach","4dup","equal?","get-datastack","assert","2drop","","boolean?","identity-hashcode","identity-tuple?","null","composed?","new","5drop","rot","-roll","xor","identity-tuple","boolean"],"other-builtin-syntax":["=======","recursive","flushable",">>","<<<<<<","M\\","B","PRIVATE>","\\","======","final","inline","delimiter","deprecated",">>>>>","<<<<<<<","parse-complex","malformed-complex","read-only",">>>>>>>","call-next-method","<<","foldable","$","$[","${"],"sequences-builtin":["member-eq?","mismatch","append","assert-sequence=","longer","repetition","clone-like","3sequence","assert-sequence?","last-index-from","reversed","index-from","cut*","pad-tail","join-as","remove-eq!","concat-as","but-last","snip","nths","nth","sequence","longest","slice?","","remove-nth","tail-slice","empty?","tail*","member?","virtual-sequence?","set-length","drop-prefix","iota","unclip","bounds-error?","unclip-last-slice","non-negative-integer-expected","non-negative-integer-expected?","midpoint@","longer?","?set-nth","?first","rest-slice","prepend-as","prepend","fourth","sift","subseq-start","new-sequence","?last","like","first4","1sequence","reverse","slice","virtual@","repetition?","set-last","index","4sequence","max-length","set-second","immutable-sequence","first2","first3","supremum","unclip-slice","suffix!","insert-nth","tail","3append","short","suffix","concat","flip","immutable?","reverse!","2sequence","sum","delete-all","indices","snip-slice","","check-slice","sequence?","head","append-as","halves","sequence=","collapse-slice","?second","slice-error?","product","bounds-check?","bounds-check","immutable","virtual-exemplar","harvest","remove","pad-head","last","set-fourth","cartesian-product","remove-eq","shorten","shorter","reversed?","shorter?","shortest","head-slice","pop*","tail-slice*","but-last-slice","iota?","append!","cut-slice","new-resizable","head-slice*","sequence-hashcode","pop","set-nth","?nth","second","join","immutable-sequence?","","3append-as","virtual-sequence","subseq?","remove-nth!","length","last-index","lengthen","assert-sequence","copy","move","third","first","tail?","set-first","prefix","bounds-error","","exchange","surround","cut","min-length","set-third","push-all","head?","subseq-start-from","delete-slice","rest","sum-lengths","head*","infimum","remove!","glue","slice-error","subseq","push","replace-slice","subseq-as","unclip-last"],"math-builtin":["number=","next-power-of-2","?1+","fp-special?","imaginary-part","float>bits","number?","fp-infinity?","bignum?","fp-snan?","denominator","gcd","*","+","fp-bitwise=","-","u>=","/",">=","bitand","power-of-2?","log2-expects-positive","neg?","<","log2",">","integer?","number","bits>double","2/","zero?","bits>float","float?","shift","ratio?","rect>","even?","ratio","fp-sign","bitnot",">fixnum","complex?","/i","integer>fixnum","/f","sgn",">bignum","next-float","u<","u>","mod","recip","rational",">float","2^","integer","fixnum?","neg","fixnum","sq","bignum",">rect","bit?","fp-qnan?","simple-gcd","complex","","real",">fraction","double>bits","bitor","rem","fp-nan-payload","real-part","log2-expects-positive?","prev-float","align","unordered?","float","fp-nan?","abs","bitxor","integer>fixnum-strict","u<=","odd?","<=","/mod",">integer","real?","rational?","numerator"]};Object.keys(a).forEach(function(e){s[e].pattern=n(a[e])});var d=["2bi","while","2tri","bi*","4dip","both?","same?","tri@","curry","prepose","3bi","?if","tri*","2keep","3keep","curried","2keepd","when","2bi*","2tri*","4keep","bi@","keepdd","do","unless*","tri-curry","if*","loop","bi-curry*","when*","2bi@","2tri@","with","2with","either?","bi","until","3dip","3curry","tri-curry*","tri-curry@","bi-curry","keepd","compose","2dip","if","3tri","unless","tuple","keep","2curry","tri","most","while*","dip","composed","bi-curry@","find-last-from","trim-head-slice","map-as","each-from","none?","trim-tail","partition","if-empty","accumulate*","reject!","find-from","accumulate-as","collector-for-as","reject","map","map-sum","accumulate!","2each-from","follow","supremum-by","map!","unless-empty","collector","padding","reduce-index","replicate-as","infimum-by","trim-tail-slice","count","find-index","filter","accumulate*!","reject-as","map-integers","map-find","reduce","selector","interleave","2map","filter-as","binary-reduce","map-index-as","find","produce","filter!","replicate","cartesian-map","cartesian-each","find-index-from","map-find-last","3map-as","3map","find-last","selector-as","2map-as","2map-reduce","accumulate","each","each-index","accumulate*-as","when-empty","all?","collector-as","push-either","new-like","collector-for","2selector","push-if","2all?","map-reduce","3each","any?","trim-slice","2reduce","change-nth","produce-as","2each","trim","trim-head","cartesian-find","map-index","if-zero","each-integer","unless-zero","(find-integer)","when-zero","find-last-integer","(all-integers?)","times","(each-integer)","find-integer","all-integers?","unless-negative","if-positive","when-positive","when-negative","unless-positive","if-negative","case","2cleave","cond>quot","case>quot","3cleave","wrong-values","to-fixed-point","alist>quot","cond","cleave","call-effect","recursive-hashcode","spread","deep-spread>quot","2||","0||","n||","0&&","2&&","3||","1||","1&&","n&&","3&&","smart-unless*","keep-inputs","reduce-outputs","smart-when*","cleave>array","smart-with","smart-apply","smart-if","inputs/outputs","output>sequence-n","map-outputs","map-reduce-outputs","dropping","output>array","smart-map-reduce","smart-2map-reduce","output>array-n","nullary","inputsequence"];s.combinators.pattern=n(d),u.languages.factor=s})(l)}});export{m as a}; diff --git a/build/_shared/chunk-536FPRQA.js b/build/_shared/chunk-536FPRQA.js new file mode 100644 index 00000000..78908d87 --- /dev/null +++ b/build/_shared/chunk-536FPRQA.js @@ -0,0 +1 @@ +import{a as i,b as o,c as t,d as n,e as c,f as e,g as u,l as d,p as l,q as s}from"/numpy-tutorials/build/_shared/chunk-ILONG3JM.js";var p=class extends s{static{e(this,"GitGraphTokenBuilder")}constructor(){super(["gitGraph"])}},h={parser:{TokenBuilder:e(()=>new p,"TokenBuilder"),ValueConverter:e(()=>new l,"ValueConverter")}};function m(G=n){let r=t(o(G),u),a=t(i({shared:r}),d,h);return r.ServiceRegistry.register(a),{shared:r,GitGraph:a}}e(m,"createGitGraphServices");export{h as a,m as b}; diff --git a/build/_shared/chunk-55J7FZH4.js b/build/_shared/chunk-55J7FZH4.js new file mode 100644 index 00000000..710f2042 --- /dev/null +++ b/build/_shared/chunk-55J7FZH4.js @@ -0,0 +1,220 @@ +import{a as Vt}from"/numpy-tutorials/build/_shared/chunk-VATJ2Z6W.js";import{a as Mt}from"/numpy-tutorials/build/_shared/chunk-M2VKTTEG.js";import{b as Bt}from"/numpy-tutorials/build/_shared/chunk-RWEAGCI6.js";import{e as Yt,m as Gt}from"/numpy-tutorials/build/_shared/chunk-H5UGLSR3.js";import{K as G,P as Ot,Q as Rt,R as Nt,S as wt,T as $t,U as Pt,V as Ft,W as w}from"/numpy-tutorials/build/_shared/chunk-JU57NILB.js";import{b as d,d as b}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";var vt=function(){var t=d(function(Y,a,c,r){for(c=c||{},r=Y.length;r--;c[Y[r]]=a);return c},"o"),e=[1,2],o=[1,3],s=[1,4],h=[2,4],u=[1,9],S=[1,11],g=[1,16],n=[1,17],T=[1,18],k=[1,19],A=[1,33],x=[1,20],D=[1,21],f=[1,22],m=[1,23],R=[1,24],L=[1,26],$=[1,27],I=[1,28],P=[1,29],et=[1,30],st=[1,31],it=[1,32],rt=[1,35],at=[1,36],nt=[1,37],ot=[1,38],j=[1,34],p=[1,4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],lt=[1,4,5,14,15,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,39,40,41,45,48,51,52,53,54,57],xt=[4,5,16,17,19,21,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],gt={trace:d(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,classDefStatement:10,styleStatement:11,cssClassStatement:12,idStatement:13,DESCR:14,"-->":15,HIDE_EMPTY:16,scale:17,WIDTH:18,COMPOSIT_STATE:19,STRUCT_START:20,STRUCT_STOP:21,STATE_DESCR:22,AS:23,ID:24,FORK:25,JOIN:26,CHOICE:27,CONCURRENT:28,note:29,notePosition:30,NOTE_TEXT:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,CLICK:38,STRING:39,HREF:40,classDef:41,CLASSDEF_ID:42,CLASSDEF_STYLEOPTS:43,DEFAULT:44,style:45,STYLE_IDS:46,STYLEDEF_STYLEOPTS:47,class:48,CLASSENTITY_IDS:49,STYLECLASS:50,direction_tb:51,direction_bt:52,direction_rl:53,direction_lr:54,eol:55,";":56,EDGE_STATE:57,STYLE_SEPARATOR:58,left_of:59,right_of:60,$accept:0,$end:1},terminals_:{2:"error",4:"SPACE",5:"NL",6:"SD",14:"DESCR",15:"-->",16:"HIDE_EMPTY",17:"scale",18:"WIDTH",19:"COMPOSIT_STATE",20:"STRUCT_START",21:"STRUCT_STOP",22:"STATE_DESCR",23:"AS",24:"ID",25:"FORK",26:"JOIN",27:"CHOICE",28:"CONCURRENT",29:"note",31:"NOTE_TEXT",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",38:"CLICK",39:"STRING",40:"HREF",41:"classDef",42:"CLASSDEF_ID",43:"CLASSDEF_STYLEOPTS",44:"DEFAULT",45:"style",46:"STYLE_IDS",47:"STYLEDEF_STYLEOPTS",48:"class",49:"CLASSENTITY_IDS",50:"STYLECLASS",51:"direction_tb",52:"direction_bt",53:"direction_rl",54:"direction_lr",56:";",57:"EDGE_STATE",58:"STYLE_SEPARATOR",59:"left_of",60:"right_of"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,1],[9,1],[9,1],[9,1],[9,2],[9,3],[9,4],[9,1],[9,2],[9,1],[9,4],[9,3],[9,6],[9,1],[9,1],[9,1],[9,1],[9,4],[9,4],[9,1],[9,2],[9,2],[9,1],[9,5],[9,5],[10,3],[10,3],[11,3],[12,3],[32,1],[32,1],[32,1],[32,1],[55,1],[55,1],[13,1],[13,1],[13,3],[13,3],[30,1],[30,1]],performAction:d(function(a,c,r,y,E,i,X){var l=i.length-1;switch(E){case 3:return y.setRootDoc(i[l]),i[l];break;case 4:this.$=[];break;case 5:i[l]!="nl"&&(i[l-1].push(i[l]),this.$=i[l-1]);break;case 6:case 7:this.$=i[l];break;case 8:this.$="nl";break;case 12:this.$=i[l];break;case 13:let ht=i[l-1];ht.description=y.trimColon(i[l]),this.$=ht;break;case 14:this.$={stmt:"relation",state1:i[l-2],state2:i[l]};break;case 15:let ut=y.trimColon(i[l]);this.$={stmt:"relation",state1:i[l-3],state2:i[l-1],description:ut};break;case 19:this.$={stmt:"state",id:i[l-3],type:"default",description:"",doc:i[l-1]};break;case 20:var V=i[l],H=i[l-2].trim();if(i[l].match(":")){var J=i[l].split(":");V=J[0],H=[H,J[1]]}this.$={stmt:"state",id:V,type:"default",description:H};break;case 21:this.$={stmt:"state",id:i[l-3],type:"default",description:i[l-5],doc:i[l-1]};break;case 22:this.$={stmt:"state",id:i[l],type:"fork"};break;case 23:this.$={stmt:"state",id:i[l],type:"join"};break;case 24:this.$={stmt:"state",id:i[l],type:"choice"};break;case 25:this.$={stmt:"state",id:y.getDividerId(),type:"divider"};break;case 26:this.$={stmt:"state",id:i[l-1].trim(),note:{position:i[l-2].trim(),text:i[l].trim()}};break;case 29:this.$=i[l].trim(),y.setAccTitle(this.$);break;case 30:case 31:this.$=i[l].trim(),y.setAccDescription(this.$);break;case 32:this.$={stmt:"click",id:i[l-3],url:i[l-2],tooltip:i[l-1]};break;case 33:this.$={stmt:"click",id:i[l-3],url:i[l-1],tooltip:""};break;case 34:case 35:this.$={stmt:"classDef",id:i[l-1].trim(),classes:i[l].trim()};break;case 36:this.$={stmt:"style",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 37:this.$={stmt:"applyClass",id:i[l-1].trim(),styleClass:i[l].trim()};break;case 38:y.setDirection("TB"),this.$={stmt:"dir",value:"TB"};break;case 39:y.setDirection("BT"),this.$={stmt:"dir",value:"BT"};break;case 40:y.setDirection("RL"),this.$={stmt:"dir",value:"RL"};break;case 41:y.setDirection("LR"),this.$={stmt:"dir",value:"LR"};break;case 44:case 45:this.$={stmt:"state",id:i[l].trim(),type:"default",description:""};break;case 46:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break;case 47:this.$={stmt:"state",id:i[l-2].trim(),classes:[i[l].trim()],type:"default",description:""};break}},"anonymous"),table:[{3:1,4:e,5:o,6:s},{1:[3]},{3:5,4:e,5:o,6:s},{3:6,4:e,5:o,6:s},t([1,4,5,16,17,19,22,24,25,26,27,28,29,33,35,37,38,41,45,48,51,52,53,54,57],h,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:u,5:S,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:n,19:T,22:k,24:A,25:x,26:D,27:f,28:m,29:R,32:25,33:L,35:$,37:I,38:P,41:et,45:st,48:it,51:rt,52:at,53:nt,54:ot,57:j},t(p,[2,5]),{9:39,10:12,11:13,12:14,13:15,16:g,17:n,19:T,22:k,24:A,25:x,26:D,27:f,28:m,29:R,32:25,33:L,35:$,37:I,38:P,41:et,45:st,48:it,51:rt,52:at,53:nt,54:ot,57:j},t(p,[2,7]),t(p,[2,8]),t(p,[2,9]),t(p,[2,10]),t(p,[2,11]),t(p,[2,12],{14:[1,40],15:[1,41]}),t(p,[2,16]),{18:[1,42]},t(p,[2,18],{20:[1,43]}),{23:[1,44]},t(p,[2,22]),t(p,[2,23]),t(p,[2,24]),t(p,[2,25]),{30:45,31:[1,46],59:[1,47],60:[1,48]},t(p,[2,28]),{34:[1,49]},{36:[1,50]},t(p,[2,31]),{13:51,24:A,57:j},{42:[1,52],44:[1,53]},{46:[1,54]},{49:[1,55]},t(lt,[2,44],{58:[1,56]}),t(lt,[2,45],{58:[1,57]}),t(p,[2,38]),t(p,[2,39]),t(p,[2,40]),t(p,[2,41]),t(p,[2,6]),t(p,[2,13]),{13:58,24:A,57:j},t(p,[2,17]),t(xt,h,{7:59}),{24:[1,60]},{24:[1,61]},{23:[1,62]},{24:[2,48]},{24:[2,49]},t(p,[2,29]),t(p,[2,30]),{39:[1,63],40:[1,64]},{43:[1,65]},{43:[1,66]},{47:[1,67]},{50:[1,68]},{24:[1,69]},{24:[1,70]},t(p,[2,14],{14:[1,71]}),{4:u,5:S,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:n,19:T,21:[1,72],22:k,24:A,25:x,26:D,27:f,28:m,29:R,32:25,33:L,35:$,37:I,38:P,41:et,45:st,48:it,51:rt,52:at,53:nt,54:ot,57:j},t(p,[2,20],{20:[1,73]}),{31:[1,74]},{24:[1,75]},{39:[1,76]},{39:[1,77]},t(p,[2,34]),t(p,[2,35]),t(p,[2,36]),t(p,[2,37]),t(lt,[2,46]),t(lt,[2,47]),t(p,[2,15]),t(p,[2,19]),t(xt,h,{7:78}),t(p,[2,26]),t(p,[2,27]),{5:[1,79]},{5:[1,80]},{4:u,5:S,8:8,9:10,10:12,11:13,12:14,13:15,16:g,17:n,19:T,21:[1,81],22:k,24:A,25:x,26:D,27:f,28:m,29:R,32:25,33:L,35:$,37:I,38:P,41:et,45:st,48:it,51:rt,52:at,53:nt,54:ot,57:j},t(p,[2,32]),t(p,[2,33]),t(p,[2,21])],defaultActions:{5:[2,1],6:[2,2],47:[2,48],48:[2,49]},parseError:d(function(a,c){if(c.recoverable)this.trace(a);else{var r=new Error(a);throw r.hash=c,r}},"parseError"),parse:d(function(a){var c=this,r=[0],y=[],E=[null],i=[],X=this.table,l="",V=0,H=0,J=0,ht=2,ut=1,he=i.slice.call(arguments,1),_=Object.create(this.lexer),M={yy:{}};for(var Tt in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Tt)&&(M.yy[Tt]=this.yy[Tt]);_.setInput(a,M.yy),M.yy.lexer=_,M.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Et=_.yylloc;i.push(Et);var ue=_.options&&_.options.ranges;typeof M.yy.parseError=="function"?this.parseError=M.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function de(O){r.length=r.length-2*O,E.length=E.length-O,i.length=i.length-O}d(de,"popStack");function Lt(){var O;return O=y.pop()||_.lex()||ut,typeof O!="number"&&(O instanceof Array&&(y=O,O=y.pop()),O=c.symbols_[O]||O),O}d(Lt,"lex");for(var v,bt,U,N,Ye,_t,W={},dt,F,It,ft;;){if(U=r[r.length-1],this.defaultActions[U]?N=this.defaultActions[U]:((v===null||typeof v>"u")&&(v=Lt()),N=X[U]&&X[U][v]),typeof N>"u"||!N.length||!N[0]){var kt="";ft=[];for(dt in X[U])this.terminals_[dt]&&dt>ht&&ft.push("'"+this.terminals_[dt]+"'");_.showPosition?kt="Parse error on line "+(V+1)+`: +`+_.showPosition()+` +Expecting `+ft.join(", ")+", got '"+(this.terminals_[v]||v)+"'":kt="Parse error on line "+(V+1)+": Unexpected "+(v==ut?"end of input":"'"+(this.terminals_[v]||v)+"'"),this.parseError(kt,{text:_.match,token:this.terminals_[v]||v,line:_.yylineno,loc:Et,expected:ft})}if(N[0]instanceof Array&&N.length>1)throw new Error("Parse Error: multiple actions possible at state: "+U+", token: "+v);switch(N[0]){case 1:r.push(v),E.push(_.yytext),i.push(_.yylloc),r.push(N[1]),v=null,bt?(v=bt,bt=null):(H=_.yyleng,l=_.yytext,V=_.yylineno,Et=_.yylloc,J>0&&J--);break;case 2:if(F=this.productions_[N[1]][1],W.$=E[E.length-F],W._$={first_line:i[i.length-(F||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(F||1)].first_column,last_column:i[i.length-1].last_column},ue&&(W._$.range=[i[i.length-(F||1)].range[0],i[i.length-1].range[1]]),_t=this.performAction.apply(W,[l,H,V,M.yy,N[1],E,i].concat(he)),typeof _t<"u")return _t;F&&(r=r.slice(0,-1*F*2),E=E.slice(0,-1*F),i=i.slice(0,-1*F)),r.push(this.productions_[N[1]][0]),E.push(W.$),i.push(W._$),It=X[r[r.length-2]][r[r.length-1]],r.push(It);break;case 3:return!0}}return!0},"parse")},ce=function(){var Y={EOF:1,parseError:d(function(c,r){if(this.yy.parser)this.yy.parser.parseError(c,r);else throw new Error(c)},"parseError"),setInput:d(function(a,c){return this.yy=c||this.yy||{},this._input=a,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:d(function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var c=a.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},"input"),unput:d(function(a){var c=a.length,r=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var y=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 E=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===y.length?this.yylloc.first_column:0)+y[y.length-r.length].length-r[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[E[0],E[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:d(function(){return this._more=!0,this},"more"),reject:d(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return 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). +`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:d(function(a){this.unput(this.match.slice(a))},"less"),pastInput:d(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:d(function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:d(function(){var a=this.pastInput(),c=new Array(a.length+1).join("-");return a+this.upcomingInput()+` +`+c+"^"},"showPosition"),test_match:d(function(a,c){var r,y,E;if(this.options.backtrack_lexer&&(E={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&&(E.yylloc.range=this.yylloc.range.slice(0))),y=a[0].match(/(?:\r\n?|\n).*/g),y&&(this.yylineno+=y.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:y?y[y.length-1].length-y[y.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,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(a[0].length),this.matched+=a[0],r=this.performAction.call(this,this.yy,this,c,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),r)return r;if(this._backtrack){for(var i in E)this[i]=E[i];return!1}return!1},"test_match"),next:d(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,c,r,y;this._more||(this.yytext="",this.match="");for(var E=this._currentRules(),i=0;ic[0].length)){if(c=r,y=i,this.options.backtrack_lexer){if(a=this.test_match(r,E[i]),a!==!1)return a;if(this._backtrack){c=!1;continue}else return!1}else if(!this.options.flex)break}return c?(a=this.test_match(c,E[y]),a!==!1?a:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text. +`+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:d(function(){var c=this.next();return c||this.lex()},"lex"),begin:d(function(c){this.conditionStack.push(c)},"begin"),popState:d(function(){var c=this.conditionStack.length-1;return c>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:d(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:d(function(c){return c=this.conditionStack.length-1-Math.abs(c||0),c>=0?this.conditionStack[c]:"INITIAL"},"topState"),pushState:d(function(c){this.begin(c)},"pushState"),stateStackSize:d(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:d(function(c,r,y,E){var i=E;switch(y){case 0:return 38;case 1:return 40;case 2:return 39;case 3:return 44;case 4:return 51;case 5:return 52;case 6:return 53;case 7:return 54;case 8:break;case 9:break;case 10:return 5;case 11:break;case 12:break;case 13:break;case 14:break;case 15:return this.pushState("SCALE"),17;break;case 16:return 18;case 17:this.popState();break;case 18:return this.begin("acc_title"),33;break;case 19:return this.popState(),"acc_title_value";break;case 20:return this.begin("acc_descr"),35;break;case 21:return this.popState(),"acc_descr_value";break;case 22:this.begin("acc_descr_multiline");break;case 23:this.popState();break;case 24:return"acc_descr_multiline_value";case 25:return this.pushState("CLASSDEF"),41;break;case 26:return this.popState(),this.pushState("CLASSDEFID"),"DEFAULT_CLASSDEF_ID";break;case 27:return this.popState(),this.pushState("CLASSDEFID"),42;break;case 28:return this.popState(),43;break;case 29:return this.pushState("CLASS"),48;break;case 30:return this.popState(),this.pushState("CLASS_STYLE"),49;break;case 31:return this.popState(),50;break;case 32:return this.pushState("STYLE"),45;break;case 33:return this.popState(),this.pushState("STYLEDEF_STYLES"),46;break;case 34:return this.popState(),47;break;case 35:return this.pushState("SCALE"),17;break;case 36:return 18;case 37:this.popState();break;case 38:this.pushState("STATE");break;case 39:return this.popState(),r.yytext=r.yytext.slice(0,-8).trim(),25;break;case 40:return this.popState(),r.yytext=r.yytext.slice(0,-8).trim(),26;break;case 41:return this.popState(),r.yytext=r.yytext.slice(0,-10).trim(),27;break;case 42:return this.popState(),r.yytext=r.yytext.slice(0,-8).trim(),25;break;case 43:return this.popState(),r.yytext=r.yytext.slice(0,-8).trim(),26;break;case 44:return this.popState(),r.yytext=r.yytext.slice(0,-10).trim(),27;break;case 45:return 51;case 46:return 52;case 47:return 53;case 48:return 54;case 49:this.pushState("STATE_STRING");break;case 50:return this.pushState("STATE_ID"),"AS";break;case 51:return this.popState(),"ID";break;case 52:this.popState();break;case 53:return"STATE_DESCR";case 54:return 19;case 55:this.popState();break;case 56:return this.popState(),this.pushState("struct"),20;break;case 57:break;case 58:return this.popState(),21;break;case 59:break;case 60:return this.begin("NOTE"),29;break;case 61:return this.popState(),this.pushState("NOTE_ID"),59;break;case 62:return this.popState(),this.pushState("NOTE_ID"),60;break;case 63:this.popState(),this.pushState("FLOATING_NOTE");break;case 64:return this.popState(),this.pushState("FLOATING_NOTE_ID"),"AS";break;case 65:break;case 66:return"NOTE_TEXT";case 67:return this.popState(),"ID";break;case 68:return this.popState(),this.pushState("NOTE_TEXT"),24;break;case 69:return this.popState(),r.yytext=r.yytext.substr(2).trim(),31;break;case 70:return this.popState(),r.yytext=r.yytext.slice(0,-8).trim(),31;break;case 71:return 6;case 72:return 6;case 73:return 16;case 74:return 57;case 75:return 24;case 76:return r.yytext=r.yytext.trim(),14;break;case 77:return 15;case 78:return 28;case 79:return 58;case 80:return 5;case 81:return"INVALID"}},"anonymous"),rules:[/^(?:click\b)/i,/^(?:href\b)/i,/^(?:"[^"]*")/i,/^(?:default\b)/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:((?!\n)\s)+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:accTitle\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*:\s*)/i,/^(?:(?!\n||)*[^\n]*)/i,/^(?:accDescr\s*\{\s*)/i,/^(?:[\}])/i,/^(?:[^\}]*)/i,/^(?:classDef\s+)/i,/^(?:DEFAULT\s+)/i,/^(?:\w+\s+)/i,/^(?:[^\n]*)/i,/^(?:class\s+)/i,/^(?:(\w+)+((,\s*\w+)*))/i,/^(?:[^\n]*)/i,/^(?:style\s+)/i,/^(?:[\w,]+\s+)/i,/^(?:[^\n]*)/i,/^(?:scale\s+)/i,/^(?:\d+)/i,/^(?:\s+width\b)/i,/^(?:state\s+)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*<>)/i,/^(?:.*\[\[fork\]\])/i,/^(?:.*\[\[join\]\])/i,/^(?:.*\[\[choice\]\])/i,/^(?:.*direction\s+TB[^\n]*)/i,/^(?:.*direction\s+BT[^\n]*)/i,/^(?:.*direction\s+RL[^\n]*)/i,/^(?:.*direction\s+LR[^\n]*)/i,/^(?:["])/i,/^(?:\s*as\s+)/i,/^(?:[^\n\{]*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n\s\{]+)/i,/^(?:\n)/i,/^(?:\{)/i,/^(?:%%(?!\{)[^\n]*)/i,/^(?:\})/i,/^(?:[\n])/i,/^(?:note\s+)/i,/^(?:left of\b)/i,/^(?:right of\b)/i,/^(?:")/i,/^(?:\s*as\s*)/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:[^\n]*)/i,/^(?:\s*[^:\n\s\-]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:[\s\S]*?end note\b)/i,/^(?:stateDiagram\s+)/i,/^(?:stateDiagram-v2\s+)/i,/^(?:hide empty description\b)/i,/^(?:\[\*\])/i,/^(?:[^:\n\s\-\{]+)/i,/^(?:\s*:[^:\n;]+)/i,/^(?:-->)/i,/^(?:--)/i,/^(?::::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[12,13],inclusive:!1},struct:{rules:[12,13,25,29,32,38,45,46,47,48,57,58,59,60,74,75,76,77,78],inclusive:!1},FLOATING_NOTE_ID:{rules:[67],inclusive:!1},FLOATING_NOTE:{rules:[64,65,66],inclusive:!1},NOTE_TEXT:{rules:[69,70],inclusive:!1},NOTE_ID:{rules:[68],inclusive:!1},NOTE:{rules:[61,62,63],inclusive:!1},STYLEDEF_STYLEOPTS:{rules:[],inclusive:!1},STYLEDEF_STYLES:{rules:[34],inclusive:!1},STYLE_IDS:{rules:[],inclusive:!1},STYLE:{rules:[33],inclusive:!1},CLASS_STYLE:{rules:[31],inclusive:!1},CLASS:{rules:[30],inclusive:!1},CLASSDEFID:{rules:[28],inclusive:!1},CLASSDEF:{rules:[26,27],inclusive:!1},acc_descr_multiline:{rules:[23,24],inclusive:!1},acc_descr:{rules:[21],inclusive:!1},acc_title:{rules:[19],inclusive:!1},SCALE:{rules:[16,17,36,37],inclusive:!1},ALIAS:{rules:[],inclusive:!1},STATE_ID:{rules:[51],inclusive:!1},STATE_STRING:{rules:[52,53],inclusive:!1},FORK_STATE:{rules:[],inclusive:!1},STATE:{rules:[12,13,39,40,41,42,43,44,49,50,54,55,56],inclusive:!1},ID:{rules:[12,13],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,13,14,15,18,20,22,25,29,32,35,38,56,60,71,72,73,74,75,76,77,79,80,81],inclusive:!0}}};return Y}();gt.lexer=ce;function ct(){this.yy={}}return d(ct,"Parser"),ct.prototype=gt,gt.Parser=ct,new ct}();vt.parser=vt;var He=vt,fe="TB",Jt="TB",Ut="dir",K="state",z="root",Ct="relation",pe="classDef",Se="style",ye="applyClass",Z="default",qt="divider",Qt="fill:none",Zt="fill: #333",te="c",ee="text",se="normal",mt="rect",Dt="rectWithTitle",ge="stateStart",Te="stateEnd",jt="divider",Ht="roundedWithTitle",Ee="note",be="noteGroup",tt="statediagram",_e="state",ke=`${tt}-${_e}`,ie="transition",me="note",De="note-edge",ve=`${ie} ${De}`,Ce=`${tt}-${me}`,Ae="cluster",xe=`${tt}-${Ae}`,Le="cluster-alt",Ie=`${tt}-${Le}`,re="parent",ae="note",Oe="state",At="----",Re=`${At}${ae}`,Wt=`${At}${re}`,ne=d((t,e=Jt)=>{if(!t.doc)return e;let o=e;for(let s of t.doc)s.stmt==="dir"&&(o=s.value);return o},"getDir"),Ne=d(function(t,e){return e.db.getClasses()},"getClasses"),we=d(async function(t,e,o,s){b.info("REF0:"),b.info("Drawing state diagram (v2)",e);let{securityLevel:h,state:u,layout:S}=w();s.db.extract(s.db.getRootDocV2());let g=s.db.getData(),n=Vt(e,h);g.type=s.type,g.layoutAlgorithm=S,g.nodeSpacing=u?.nodeSpacing||50,g.rankSpacing=u?.rankSpacing||50,g.markers=["barb"],g.diagramId=e,await Bt(g,n);let T=8;try{(typeof s.db.getLinks=="function"?s.db.getLinks():new Map).forEach((A,x)=>{let D=typeof x=="string"?x:typeof x?.id=="string"?x.id:"";if(!D){b.warn("\u26A0\uFE0F Invalid or missing stateId from key:",JSON.stringify(x));return}let f=n.node()?.querySelectorAll("g"),m;if(f?.forEach(I=>{I.textContent?.trim()===D&&(m=I)}),!m){b.warn("\u26A0\uFE0F Could not find node matching text:",D);return}let R=m.parentNode;if(!R){b.warn("\u26A0\uFE0F Node has no parent, cannot wrap:",D);return}let L=document.createElementNS("http://www.w3.org/2000/svg","a"),$=A.url.replace(/^"+|"+$/g,"");if(L.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",$),L.setAttribute("target","_blank"),A.tooltip){let I=A.tooltip.replace(/^"+|"+$/g,"");L.setAttribute("title",I)}R.replaceChild(L,m),L.appendChild(m),b.info("\u{1F517} Wrapped node in tag for:",D,A.url)})}catch(k){b.error("\u274C Error injecting clickable links:",k)}Gt.insertTitle(n,"statediagramTitleText",u?.titleTopMargin??25,s.db.getDiagramTitle()),Mt(n,T,tt,u?.useMaxWidth??!0)},"draw"),We={getClasses:Ne,draw:we,getDir:ne},St=new Map,B=0;function yt(t="",e=0,o="",s=At){let h=o!==null&&o.length>0?`${s}${o}`:"";return`${Oe}-${t}${h}-${e}`}d(yt,"stateDomId");var $e=d((t,e,o,s,h,u,S,g)=>{b.trace("items",e),e.forEach(n=>{switch(n.stmt){case K:Q(t,n,o,s,h,u,S,g);break;case Z:Q(t,n,o,s,h,u,S,g);break;case Ct:{Q(t,n.state1,o,s,h,u,S,g),Q(t,n.state2,o,s,h,u,S,g);let T={id:"edge"+B,start:n.state1.id,end:n.state2.id,arrowhead:"normal",arrowTypeEnd:"arrow_barb",style:Qt,labelStyle:"",label:G.sanitizeText(n.description??"",w()),arrowheadStyle:Zt,labelpos:te,labelType:ee,thickness:se,classes:ie,look:S};h.push(T),B++}break}})},"setupDoc"),zt=d((t,e=Jt)=>{let o=e;if(t.doc)for(let s of t.doc)s.stmt==="dir"&&(o=s.value);return o},"getDir");function q(t,e,o){if(!e.id||e.id===""||e.id==="")return;e.cssClasses&&(Array.isArray(e.cssCompiledStyles)||(e.cssCompiledStyles=[]),e.cssClasses.split(" ").forEach(h=>{let u=o.get(h);u&&(e.cssCompiledStyles=[...e.cssCompiledStyles??[],...u.styles])}));let s=t.find(h=>h.id===e.id);s?Object.assign(s,e):t.push(e)}d(q,"insertOrUpdateNode");function oe(t){return t?.classes?.join(" ")??""}d(oe,"getClassesFromDbInfo");function le(t){return t?.styles??[]}d(le,"getStylesFromDbInfo");var Q=d((t,e,o,s,h,u,S,g)=>{let n=e.id,T=o.get(n),k=oe(T),A=le(T),x=w();if(b.info("dataFetcher parsedItem",e,T,A),n!=="root"){let D=mt;e.start===!0?D=ge:e.start===!1&&(D=Te),e.type!==Z&&(D=e.type),St.get(n)||St.set(n,{id:n,shape:D,description:G.sanitizeText(n,x),cssClasses:`${k} ${ke}`,cssStyles:A});let f=St.get(n);e.description&&(Array.isArray(f.description)?(f.shape=Dt,f.description.push(e.description)):f.description?.length&&f.description.length>0?(f.shape=Dt,f.description===n?f.description=[e.description]:f.description=[f.description,e.description]):(f.shape=mt,f.description=e.description),f.description=G.sanitizeTextOrArray(f.description,x)),f.description?.length===1&&f.shape===Dt&&(f.type==="group"?f.shape=Ht:f.shape=mt),!f.type&&e.doc&&(b.info("Setting cluster for XCX",n,zt(e)),f.type="group",f.isGroup=!0,f.dir=zt(e),f.shape=e.type===qt?jt:Ht,f.cssClasses=`${f.cssClasses} ${xe} ${u?Ie:""}`);let m={labelStyle:"",shape:f.shape,label:f.description,cssClasses:f.cssClasses,cssCompiledStyles:[],cssStyles:f.cssStyles,id:n,dir:f.dir,domId:yt(n,B),type:f.type,isGroup:f.type==="group",padding:8,rx:10,ry:10,look:S};if(m.shape===jt&&(m.label=""),t&&t.id!=="root"&&(b.trace("Setting node ",n," to be child of its parent ",t.id),m.parentId=t.id),m.centerLabel=!0,e.note){let R={labelStyle:"",shape:Ee,label:e.note.text,cssClasses:Ce,cssStyles:[],cssCompiledStyles:[],id:n+Re+"-"+B,domId:yt(n,B,ae),type:f.type,isGroup:f.type==="group",padding:x.flowchart?.padding,look:S,position:e.note.position},L=n+Wt,$={labelStyle:"",shape:be,label:e.note.text,cssClasses:f.cssClasses,cssStyles:[],id:n+Wt,domId:yt(n,B,re),type:"group",isGroup:!0,padding:16,look:S,position:e.note.position};B++,$.id=L,R.parentId=L,q(s,$,g),q(s,R,g),q(s,m,g);let I=n,P=R.id;e.note.position==="left of"&&(I=R.id,P=n),h.push({id:I+"-"+P,start:I,end:P,arrowhead:"none",arrowTypeEnd:"",style:Qt,labelStyle:"",classes:ve,arrowheadStyle:Zt,labelpos:te,labelType:ee,thickness:se,look:S})}else q(s,m,g)}e.doc&&(b.trace("Adding nodes children "),$e(e,e.doc,o,s,h,!u,S,g))},"dataFetcher"),Pe=d(()=>{St.clear(),B=0},"reset"),C={START_NODE:"[*]",START_TYPE:"start",END_NODE:"[*]",END_TYPE:"end",COLOR_KEYWORD:"color",FILL_KEYWORD:"fill",BG_FILL:"bgFill",STYLECLASS_SEP:","},Kt=d(()=>new Map,"newClassesList"),Xt=d(()=>({relations:[],states:new Map,documents:{}}),"newDoc"),pt=d(t=>JSON.parse(JSON.stringify(t)),"clone"),ze=class{constructor(t){this.version=t,this.nodes=[],this.edges=[],this.rootDoc=[],this.classes=Kt(),this.documents={root:Xt()},this.currentDocument=this.documents.root,this.startEndCount=0,this.dividerCnt=0,this.links=new Map,this.getAccTitle=Nt,this.setAccTitle=Rt,this.getAccDescription=$t,this.setAccDescription=wt,this.setDiagramTitle=Pt,this.getDiagramTitle=Ft,this.clear(),this.setRootDoc=this.setRootDoc.bind(this),this.getDividerId=this.getDividerId.bind(this),this.setDirection=this.setDirection.bind(this),this.trimColon=this.trimColon.bind(this)}static{d(this,"StateDB")}static{this.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}}extract(t){this.clear(!0);for(let s of Array.isArray(t)?t:t.doc)switch(s.stmt){case K:this.addState(s.id.trim(),s.type,s.doc,s.description,s.note);break;case Ct:this.addRelation(s.state1,s.state2,s.description);break;case pe:this.addStyleClass(s.id.trim(),s.classes);break;case Se:this.handleStyleDef(s);break;case ye:this.setCssClass(s.id.trim(),s.styleClass);break;case"click":this.addLink(s.id,s.url,s.tooltip);break}let e=this.getStates(),o=w();Pe(),Q(void 0,this.getRootDocV2(),e,this.nodes,this.edges,!0,o.look,this.classes);for(let s of this.nodes)if(Array.isArray(s.label)){if(s.description=s.label.slice(1),s.isGroup&&s.description.length>0)throw new Error(`Group nodes can only have label. Remove the additional description for node [${s.id}]`);s.label=s.label[0]}}handleStyleDef(t){let e=t.id.trim().split(","),o=t.styleClass.split(",");for(let s of e){let h=this.getState(s);if(!h){let u=s.trim();this.addState(u),h=this.getState(u)}h&&(h.styles=o.map(u=>u.replace(/;/g,"")?.trim()))}}setRootDoc(t){b.info("Setting root doc",t),this.rootDoc=t,this.version===1?this.extract(t):this.extract(this.getRootDocV2())}docTranslator(t,e,o){if(e.stmt===Ct){this.docTranslator(t,e.state1,!0),this.docTranslator(t,e.state2,!1);return}if(e.stmt===K&&(e.id===C.START_NODE?(e.id=t.id+(o?"_start":"_end"),e.start=o):e.id=e.id.trim()),e.stmt!==z&&e.stmt!==K||!e.doc)return;let s=[],h=[];for(let u of e.doc)if(u.type===qt){let S=pt(u);S.doc=pt(h),s.push(S),h=[]}else h.push(u);if(s.length>0&&h.length>0){let u={stmt:K,id:Yt(),type:"divider",doc:pt(h)};s.push(pt(u)),e.doc=s}e.doc.forEach(u=>this.docTranslator(e,u,!0))}getRootDocV2(){return this.docTranslator({id:z,stmt:z},{id:z,stmt:z,doc:this.rootDoc},!0),{id:z,doc:this.rootDoc}}addState(t,e=Z,o=void 0,s=void 0,h=void 0,u=void 0,S=void 0,g=void 0){let n=t?.trim();if(!this.currentDocument.states.has(n))b.info("Adding state ",n,s),this.currentDocument.states.set(n,{stmt:K,id:n,descriptions:[],type:e,doc:o,note:h,classes:[],styles:[],textStyles:[]});else{let T=this.currentDocument.states.get(n);if(!T)throw new Error(`State not found: ${n}`);T.doc||(T.doc=o),T.type||(T.type=e)}if(s&&(b.info("Setting state description",n,s),(Array.isArray(s)?s:[s]).forEach(k=>this.addDescription(n,k.trim()))),h){let T=this.currentDocument.states.get(n);if(!T)throw new Error(`State not found: ${n}`);T.note=h,T.note.text=G.sanitizeText(T.note.text,w())}u&&(b.info("Setting state classes",n,u),(Array.isArray(u)?u:[u]).forEach(k=>this.setCssClass(n,k.trim()))),S&&(b.info("Setting state styles",n,S),(Array.isArray(S)?S:[S]).forEach(k=>this.setStyle(n,k.trim()))),g&&(b.info("Setting state styles",n,S),(Array.isArray(g)?g:[g]).forEach(k=>this.setTextStyle(n,k.trim())))}clear(t){this.nodes=[],this.edges=[],this.documents={root:Xt()},this.currentDocument=this.documents.root,this.startEndCount=0,this.classes=Kt(),t||(this.links=new Map,Ot())}getState(t){return this.currentDocument.states.get(t)}getStates(){return this.currentDocument.states}logDocuments(){b.info("Documents = ",this.documents)}getRelations(){return this.currentDocument.relations}addLink(t,e,o){this.links.set(t,{url:e,tooltip:o}),b.warn("Adding link",t,e,o)}getLinks(){return this.links}startIdIfNeeded(t=""){return t===C.START_NODE?(this.startEndCount++,`${C.START_TYPE}${this.startEndCount}`):t}startTypeIfNeeded(t="",e=Z){return t===C.START_NODE?C.START_TYPE:e}endIdIfNeeded(t=""){return t===C.END_NODE?(this.startEndCount++,`${C.END_TYPE}${this.startEndCount}`):t}endTypeIfNeeded(t="",e=Z){return t===C.END_NODE?C.END_TYPE:e}addRelationObjs(t,e,o=""){let s=this.startIdIfNeeded(t.id.trim()),h=this.startTypeIfNeeded(t.id.trim(),t.type),u=this.startIdIfNeeded(e.id.trim()),S=this.startTypeIfNeeded(e.id.trim(),e.type);this.addState(s,h,t.doc,t.description,t.note,t.classes,t.styles,t.textStyles),this.addState(u,S,e.doc,e.description,e.note,e.classes,e.styles,e.textStyles),this.currentDocument.relations.push({id1:s,id2:u,relationTitle:G.sanitizeText(o,w())})}addRelation(t,e,o){if(typeof t=="object"&&typeof e=="object")this.addRelationObjs(t,e,o);else if(typeof t=="string"&&typeof e=="string"){let s=this.startIdIfNeeded(t.trim()),h=this.startTypeIfNeeded(t),u=this.endIdIfNeeded(e.trim()),S=this.endTypeIfNeeded(e);this.addState(s,h),this.addState(u,S),this.currentDocument.relations.push({id1:s,id2:u,relationTitle:o?G.sanitizeText(o,w()):void 0})}}addDescription(t,e){let o=this.currentDocument.states.get(t),s=e.startsWith(":")?e.replace(":","").trim():e;o?.descriptions?.push(G.sanitizeText(s,w()))}cleanupLabel(t){return t.startsWith(":")?t.slice(2).trim():t.trim()}getDividerId(){return this.dividerCnt++,`divider-id-${this.dividerCnt}`}addStyleClass(t,e=""){this.classes.has(t)||this.classes.set(t,{id:t,styles:[],textStyles:[]});let o=this.classes.get(t);e&&o&&e.split(C.STYLECLASS_SEP).forEach(s=>{let h=s.replace(/([^;]*);/,"$1").trim();if(RegExp(C.COLOR_KEYWORD).exec(s)){let S=h.replace(C.FILL_KEYWORD,C.BG_FILL).replace(C.COLOR_KEYWORD,C.FILL_KEYWORD);o.textStyles.push(S)}o.styles.push(h)})}getClasses(){return this.classes}setCssClass(t,e){t.split(",").forEach(o=>{let s=this.getState(o);if(!s){let h=o.trim();this.addState(h),s=this.getState(h)}s?.classes?.push(e)})}setStyle(t,e){this.getState(t)?.styles?.push(e)}setTextStyle(t,e){this.getState(t)?.textStyles?.push(e)}getDirectionStatement(){return this.rootDoc.find(t=>t.stmt===Ut)}getDirection(){return this.getDirectionStatement()?.value??fe}setDirection(t){let e=this.getDirectionStatement();e?e.value=t:this.rootDoc.unshift({stmt:Ut,value:t})}trimColon(t){return t.startsWith(":")?t.slice(1).trim():t.trim()}getData(){let t=w();return{nodes:this.nodes,edges:this.edges,other:{},config:t,direction:ne(this.getRootDocV2())}}getConfig(){return w().state}},Fe=d(t=>` +defs #statediagram-barbEnd { + fill: ${t.transitionColor}; + stroke: ${t.transitionColor}; + } +g.stateGroup text { + fill: ${t.nodeBorder}; + stroke: none; + font-size: 10px; +} +g.stateGroup text { + fill: ${t.textColor}; + stroke: none; + font-size: 10px; + +} +g.stateGroup .state-title { + font-weight: bolder; + fill: ${t.stateLabelColor}; +} + +g.stateGroup rect { + fill: ${t.mainBkg}; + stroke: ${t.nodeBorder}; +} + +g.stateGroup line { + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.transition { + stroke: ${t.transitionColor}; + stroke-width: 1; + fill: none; +} + +.stateGroup .composit { + fill: ${t.background}; + border-bottom: 1px +} + +.stateGroup .alt-composit { + fill: #e0e0e0; + border-bottom: 1px +} + +.state-note { + stroke: ${t.noteBorderColor}; + fill: ${t.noteBkgColor}; + + text { + fill: ${t.noteTextColor}; + stroke: none; + font-size: 10px; + } +} + +.stateLabel .box { + stroke: none; + stroke-width: 0; + fill: ${t.mainBkg}; + opacity: 0.5; +} + +.edgeLabel .label rect { + fill: ${t.labelBackgroundColor}; + opacity: 0.5; +} +.edgeLabel { + background-color: ${t.edgeLabelBackground}; + p { + background-color: ${t.edgeLabelBackground}; + } + rect { + opacity: 0.5; + background-color: ${t.edgeLabelBackground}; + fill: ${t.edgeLabelBackground}; + } + text-align: center; +} +.edgeLabel .label text { + fill: ${t.transitionLabelColor||t.tertiaryTextColor}; +} +.label div .edgeLabel { + color: ${t.transitionLabelColor||t.tertiaryTextColor}; +} + +.stateLabel text { + fill: ${t.stateLabelColor}; + font-size: 10px; + font-weight: bold; +} + +.node circle.state-start { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node .fork-join { + fill: ${t.specialStateColor}; + stroke: ${t.specialStateColor}; +} + +.node circle.state-end { + fill: ${t.innerEndBackground}; + stroke: ${t.background}; + stroke-width: 1.5 +} +.end-state-inner { + fill: ${t.compositeBackground||t.background}; + // stroke: ${t.background}; + stroke-width: 1.5 +} + +.node rect { + fill: ${t.stateBkg||t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} +.node polygon { + fill: ${t.mainBkg}; + stroke: ${t.stateBorder||t.nodeBorder};; + stroke-width: 1px; +} +#statediagram-barbEnd { + fill: ${t.lineColor}; +} + +.statediagram-cluster rect { + fill: ${t.compositeTitleBackground}; + stroke: ${t.stateBorder||t.nodeBorder}; + stroke-width: 1px; +} + +.cluster-label, .nodeLabel { + color: ${t.stateLabelColor}; + // line-height: 1; +} + +.statediagram-cluster rect.outer { + rx: 5px; + ry: 5px; +} +.statediagram-state .divider { + stroke: ${t.stateBorder||t.nodeBorder}; +} + +.statediagram-state .title-state { + rx: 5px; + ry: 5px; +} +.statediagram-cluster.statediagram-cluster .inner { + fill: ${t.compositeBackground||t.background}; +} +.statediagram-cluster.statediagram-cluster-alt .inner { + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.statediagram-cluster .inner { + rx:0; + ry:0; +} + +.statediagram-state rect.basic { + rx: 5px; + ry: 5px; +} +.statediagram-state rect.divider { + stroke-dasharray: 10,10; + fill: ${t.altBackground?t.altBackground:"#efefef"}; +} + +.note-edge { + stroke-dasharray: 5; +} + +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} +.statediagram-note rect { + fill: ${t.noteBkgColor}; + stroke: ${t.noteBorderColor}; + stroke-width: 1px; + rx: 0; + ry: 0; +} + +.statediagram-note text { + fill: ${t.noteTextColor}; +} + +.statediagram-note .nodeLabel { + color: ${t.noteTextColor}; +} +.statediagram .edgeLabel { + color: red; // ${t.noteTextColor}; +} + +#dependencyStart, #dependencyEnd { + fill: ${t.lineColor}; + stroke: ${t.lineColor}; + stroke-width: 1; +} + +.statediagramTitleText { + text-anchor: middle; + font-size: 18px; + fill: ${t.textColor}; +} +`,"getStyles"),Ke=Fe;export{He as a,We as b,ze as c,Ke as d}; diff --git a/build/_shared/chunk-5736WJYA.js b/build/_shared/chunk-5736WJYA.js new file mode 100644 index 00000000..8e912c86 --- /dev/null +++ b/build/_shared/chunk-5736WJYA.js @@ -0,0 +1 @@ +import{a as g}from"/numpy-tutorials/build/_shared/chunk-I232HDZP.js";import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var l=t((s,r)=>{var n=g();r.exports=a;a.displayName="racket";a.aliases=["rkt"];function a(e){e.register(n),e.languages.racket=e.languages.extend("scheme",{"lambda-parameter":{pattern:/([(\[]lambda\s+[(\[])[^()\[\]'\s]+/,lookbehind:!0}}),e.languages.insertBefore("racket","string",{lang:{pattern:/^#lang.+/m,greedy:!0,alias:"keyword"}}),e.languages.rkt=e.languages.racket}});export{l as a}; diff --git a/build/_shared/chunk-5BDQQ53J.js b/build/_shared/chunk-5BDQQ53J.js new file mode 100644 index 00000000..2138c762 --- /dev/null +++ b/build/_shared/chunk-5BDQQ53J.js @@ -0,0 +1 @@ +import{a as n}from"/numpy-tutorials/build/_shared/chunk-C2LAERNE.js";import{a as g}from"/numpy-tutorials/build/_shared/chunk-SWM73M5L.js";import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var l=a((u,r)=>{var i=g(),s=n();r.exports=t;t.displayName="t4Vb";t.aliases=[];function t(e){e.register(i),e.register(s),e.languages["t4-vb"]=e.languages["t4-templating"].createT4("vbnet")}});export{l as a}; diff --git a/build/_shared/chunk-5E4MRVCJ.js b/build/_shared/chunk-5E4MRVCJ.js new file mode 100644 index 00000000..c6571ff0 --- /dev/null +++ b/build/_shared/chunk-5E4MRVCJ.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=a((r,n)=>{n.exports=t;t.displayName="moonscript";t.aliases=["moon"];function t(e){e.languages.moonscript={comment:/--.*/,string:[{pattern:/'[^']*'|\[(=*)\[[\s\S]*?\]\1\]/,greedy:!0},{pattern:/"[^"]*"/,greedy:!0,inside:{interpolation:{pattern:/#\{[^{}]*\}/,inside:{moonscript:{pattern:/(^#\{)[\s\S]+(?=\})/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/#\{|\}/,alias:"punctuation"}}}}}],"class-name":[{pattern:/(\b(?:class|extends)[ \t]+)\w+/,lookbehind:!0},/\b[A-Z]\w*/],keyword:/\b(?:class|continue|do|else|elseif|export|extends|for|from|if|import|in|local|nil|return|self|super|switch|then|unless|using|when|while|with)\b/,variable:/@@?\w*/,property:{pattern:/\b(?!\d)\w+(?=:)|(:)(?!\d)\w+/,lookbehind:!0},function:{pattern:/\b(?:_G|_VERSION|assert|collectgarbage|coroutine\.(?:create|resume|running|status|wrap|yield)|debug\.(?:debug|getfenv|gethook|getinfo|getlocal|getmetatable|getregistry|getupvalue|setfenv|sethook|setlocal|setmetatable|setupvalue|traceback)|dofile|error|getfenv|getmetatable|io\.(?:close|flush|input|lines|open|output|popen|read|stderr|stdin|stdout|tmpfile|type|write)|ipairs|load|loadfile|loadstring|math\.(?:abs|acos|asin|atan|atan2|ceil|cos|cosh|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pi|pow|rad|random|randomseed|sin|sinh|sqrt|tan|tanh)|module|next|os\.(?:clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\.(?:cpath|loaded|loadlib|path|preload|seeall)|pairs|pcall|print|rawequal|rawget|rawset|require|select|setfenv|setmetatable|string\.(?:byte|char|dump|find|format|gmatch|gsub|len|lower|match|rep|reverse|sub|upper)|table\.(?:concat|insert|maxn|remove|sort)|tonumber|tostring|type|unpack|xpcall)\b/,inside:{punctuation:/\./}},boolean:/\b(?:false|true)\b/,number:/(?:\B\.\d+|\b\d+\.\d+|\b\d+(?=[eE]))(?:[eE][-+]?\d+)?\b|\b(?:0x[a-fA-F\d]+|\d+)(?:U?LL)?\b/,operator:/\.{3}|[-=]>|~=|(?:[-+*/%<>!=]|\.\.)=?|[:#^]|\b(?:and|or)\b=?|\b(?:not)\b/,punctuation:/[.,()[\]{}\\]/},e.languages.moonscript.string[1].inside.interpolation.inside.moonscript.inside=e.languages.moonscript,e.languages.moon=e.languages.moonscript}});export{o as a}; diff --git a/build/_shared/chunk-5GONE7L7.js b/build/_shared/chunk-5GONE7L7.js new file mode 100644 index 00000000..73ece535 --- /dev/null +++ b/build/_shared/chunk-5GONE7L7.js @@ -0,0 +1 @@ +import{a as n,b as s,c as i,d as l,e as f,f as o,g as d,n as m,o as c,q as p}from"/numpy-tutorials/build/_shared/chunk-ILONG3JM.js";var u=class extends p{static{o(this,"TreemapTokenBuilder")}constructor(){super(["treemap"])}},v=/classDef\s+([A-Z_a-z]\w+)(?:\s+([^\n\r;]*))?;?/,g=class extends c{static{o(this,"TreemapValueConverter")}runCustomConverter(r,e,t){if(r.name==="NUMBER2")return parseFloat(e.replace(/,/g,""));if(r.name==="SEPARATOR")return e.substring(1,e.length-1);if(r.name==="STRING2")return e.substring(1,e.length-1);if(r.name==="INDENTATION")return e.length;if(r.name==="ClassDef"){if(typeof e!="string")return e;let a=v.exec(e);if(a)return{$type:"ClassDefStatement",className:a[1],styleText:a[2]||void 0}}}};function T(r){let e=r.validation.TreemapValidator,t=r.validation.ValidationRegistry;if(t){let a={Treemap:e.checkSingleRoot.bind(e)};t.register(a,e)}}o(T,"registerValidationChecks");var h=class{static{o(this,"TreemapValidator")}checkSingleRoot(r,e){let t;for(let a of r.TreemapRows)a.item&&(t===void 0&&a.indent===void 0?t=0:a.indent===void 0?e("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}):t!==void 0&&t>=parseInt(a.indent,10)&&e("error","Multiple root nodes are not allowed in a treemap.",{node:a,property:"item"}))}},C={parser:{TokenBuilder:o(()=>new u,"TokenBuilder"),ValueConverter:o(()=>new g,"ValueConverter")},validation:{TreemapValidator:o(()=>new h,"TreemapValidator")}};function V(r=l){let e=i(s(r),d),t=i(n({shared:e}),m,C);return e.ServiceRegistry.register(t),T(t),{shared:e,Treemap:t}}o(V,"createTreemapServices");export{C as a,V as b}; diff --git a/build/_shared/chunk-5LDMESXP.js b/build/_shared/chunk-5LDMESXP.js new file mode 100644 index 00000000..b18135c9 --- /dev/null +++ b/build/_shared/chunk-5LDMESXP.js @@ -0,0 +1 @@ +import{a as i}from"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=t((o,a)=>{var s=i();a.exports=n;n.displayName="bison";n.aliases=[];function n(e){e.register(s),e.languages.bison=e.languages.extend("c",{}),e.languages.insertBefore("bison","comment",{bison:{pattern:/^(?:[^%]|%(?!%))*%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:e.languages.c}},comment:e.languages.c.comment,string:e.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}})}});export{r as a}; diff --git a/build/_shared/chunk-5MJ7SY2U.js b/build/_shared/chunk-5MJ7SY2U.js new file mode 100644 index 00000000..abd88317 --- /dev/null +++ b/build/_shared/chunk-5MJ7SY2U.js @@ -0,0 +1 @@ +import{c as b}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var k=b((g,l)=>{l.exports=s;s.displayName="robotframework";s.aliases=[];function s(p){(function(n){var u={pattern:/(^[ \t]*| {2}|\t)#.*/m,lookbehind:!0,greedy:!0},r={pattern:/((?:^|[^\\])(?:\\{2})*)[$@&%]\{(?:[^{}\r\n]|\{[^{}\r\n]*\})*\}/,lookbehind:!0,inside:{punctuation:/^[$@&%]\{|\}$/}};function e(m,c){var t={};t["section-header"]={pattern:/^ ?\*{3}.+?\*{3}/,alias:"keyword"};for(var d in c)t[d]=c[d];return t.tag={pattern:/([\r\n](?: {2}|\t)[ \t]*)\[[-\w]+\]/,lookbehind:!0,inside:{punctuation:/\[|\]/}},t.variable=r,t.comment=u,{pattern:RegExp(/^ ?\*{3}[ \t]*[ \t]*\*{3}(?:.|[\r\n](?!\*{3}))*/.source.replace(//g,function(){return m}),"im"),alias:"section",inside:t}}var a={pattern:/(\[Documentation\](?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},o={pattern:/([\r\n] ?)(?!#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,alias:"function",inside:{variable:r}},i={pattern:/([\r\n](?: {2}|\t)[ \t]*)(?!\[|\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0,inside:{variable:r}};n.languages.robotframework={settings:e("Settings",{documentation:{pattern:/([\r\n] ?Documentation(?: {2}|\t)[ \t]*)(?![ \t]|#)(?:.|(?:\r\n?|\n)[ \t]*\.{3})+/,lookbehind:!0,alias:"string"},property:{pattern:/([\r\n] ?)(?!\.{3}|#)(?:\S(?:[ \t]\S)*)+/,lookbehind:!0}}),variables:e("Variables"),"test-cases":e("Test Cases",{"test-name":o,documentation:a,property:i}),keywords:e("Keywords",{"keyword-name":o,documentation:a,property:i}),tasks:e("Tasks",{"task-name":o,documentation:a,property:i}),comment:u},n.languages.robot=n.languages.robotframework})(p)}});export{k as a}; diff --git a/build/_shared/chunk-5OGUL7JL.js b/build/_shared/chunk-5OGUL7JL.js new file mode 100644 index 00000000..92e8ccdf --- /dev/null +++ b/build/_shared/chunk-5OGUL7JL.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=s((i,r)=>{r.exports=t;t.displayName="firestoreSecurityRules";t.aliases=[];function t(e){e.languages["firestore-security-rules"]=e.languages.extend("clike",{comment:/\/\/.*/,keyword:/\b(?:allow|function|if|match|null|return|rules_version|service)\b/,operator:/&&|\|\||[<>!=]=?|[-+*/%]|\b(?:in|is)\b/}),delete e.languages["firestore-security-rules"]["class-name"],e.languages.insertBefore("firestore-security-rules","keyword",{path:{pattern:/(^|[\s(),])(?:\/(?:[\w\xA0-\uFFFF]+|\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)))+/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/\{[\w\xA0-\uFFFF]+(?:=\*\*)?\}|\$\([\w\xA0-\uFFFF.]+\)/,inside:{operator:/=/,keyword:/\*\*/,punctuation:/[.$(){}]/}},punctuation:/\//}},method:{pattern:/(\ballow\s+)[a-z]+(?:\s*,\s*[a-z]+)*(?=\s*[:;])/,lookbehind:!0,alias:"builtin",inside:{punctuation:/,/}}})}});export{u as a}; diff --git a/build/_shared/chunk-5RAPCLNV.js b/build/_shared/chunk-5RAPCLNV.js new file mode 100644 index 00000000..e7b2e5e3 --- /dev/null +++ b/build/_shared/chunk-5RAPCLNV.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=n((o,t)=>{t.exports=e;e.displayName="erlang";e.aliases=[];function e(a){a.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:false|true)\b/,keyword:/\b(?:after|case|catch|end|fun|if|of|receive|try|when)\b/,number:[/\$\\?./,/\b\d+#[a-z0-9]+/i,/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/}}});export{r as a}; diff --git a/build/_shared/chunk-5S6BNNID.js b/build/_shared/chunk-5S6BNNID.js new file mode 100644 index 00000000..f8c60e12 --- /dev/null +++ b/build/_shared/chunk-5S6BNNID.js @@ -0,0 +1 @@ +import{a as u}from"/numpy-tutorials/build/_shared/chunk-J3PKFMLQ.js";import{c}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var p=c((m,o)=>{var d=u();o.exports=n;n.displayName="liquid";n.aliases=[];function n(e){e.register(d),e.languages.liquid={comment:{pattern:/(^\{%\s*comment\s*%\})[\s\S]+(?=\{%\s*endcomment\s*%\}$)/,lookbehind:!0},delimiter:{pattern:/^\{(?:\{\{|[%\{])-?|-?(?:\}\}|[%\}])\}$/,alias:"punctuation"},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},keyword:/\b(?:as|assign|break|(?:end)?(?:capture|case|comment|for|form|if|paginate|raw|style|tablerow|unless)|continue|cycle|decrement|echo|else|elsif|in|include|increment|limit|liquid|offset|range|render|reversed|section|when|with)\b/,object:/\b(?:address|all_country_option_tags|article|block|blog|cart|checkout|collection|color|country|country_option_tags|currency|current_page|current_tags|customer|customer_address|date|discount_allocation|discount_application|external_video|filter|filter_value|font|forloop|fulfillment|generic_file|gift_card|group|handle|image|line_item|link|linklist|localization|location|measurement|media|metafield|model|model_source|order|page|page_description|page_image|page_title|part|policy|product|product_option|recommendations|request|robots|routes|rule|script|search|selling_plan|selling_plan_allocation|selling_plan_group|shipping_method|shop|shop_locale|sitemap|store_availability|tax_line|template|theme|transaction|unit_price_measurement|user_agent|variant|video|video_source)\b/,function:[{pattern:/(\|\s*)\w+/,lookbehind:!0,alias:"filter"},{pattern:/(\.\s*)(?:first|last|size)/,lookbehind:!0}],boolean:/\b(?:false|nil|true)\b/,range:{pattern:/\.\./,alias:"operator"},number:/\b\d+(?:\.\d+)?\b/,operator:/[!=]=|<>|[<>]=?|[|?:=-]|\b(?:and|contains(?=\s)|or)\b/,punctuation:/[.,\[\]()]/,empty:{pattern:/\bempty\b/,alias:"keyword"}},e.hooks.add("before-tokenize",function(a){var l=/\{%\s*comment\s*%\}[\s\S]*?\{%\s*endcomment\s*%\}|\{(?:%[\s\S]*?%|\{\{[\s\S]*?\}\}|\{[\s\S]*?\})\}/g,t=!1;e.languages["markup-templating"].buildPlaceholders(a,"liquid",l,function(s){var r=/^\{%-?\s*(\w+)/.exec(s);if(r){var i=r[1];if(i==="raw"&&!t)return t=!0,!0;if(i==="endraw")return t=!1,!0}return!t})}),e.hooks.add("after-tokenize",function(a){e.languages["markup-templating"].tokenizePlaceholders(a,"liquid")})}});export{p as a}; diff --git a/build/_shared/chunk-5UUBGF2R.js b/build/_shared/chunk-5UUBGF2R.js new file mode 100644 index 00000000..2e852e98 --- /dev/null +++ b/build/_shared/chunk-5UUBGF2R.js @@ -0,0 +1 @@ +import{a as n}from"/numpy-tutorials/build/_shared/chunk-YB2OJRYJ.js";import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=r((o,a)=>{var i=n();a.exports=t;t.displayName="chaiscript";t.aliases=[];function t(e){e.register(i),e.languages.chaiscript=e.languages.extend("clike",{string:{pattern:/(^|[^\\])'(?:[^'\\]|\\[\s\S])*'/,lookbehind:!0,greedy:!0},"class-name":[{pattern:/(\bclass\s+)\w+/,lookbehind:!0},{pattern:/(\b(?:attr|def)\s+)\w+(?=\s*::)/,lookbehind:!0}],keyword:/\b(?:attr|auto|break|case|catch|class|continue|def|default|else|finally|for|fun|global|if|return|switch|this|try|var|while)\b/,number:[e.languages.cpp.number,/\b(?:Infinity|NaN)\b/],operator:/>>=?|<<=?|\|\||&&|:[:=]?|--|\+\+|[=!<>+\-*/%|&^]=?|[?~]|`[^`\r\n]{1,4}`/}),e.languages.insertBefore("chaiscript","operator",{"parameter-type":{pattern:/([,(]\s*)\w+(?=\s+\w)/,lookbehind:!0,alias:"class-name"}}),e.languages.insertBefore("chaiscript","string",{"string-interpolation":{pattern:/(^|[^\\])"(?:[^"$\\]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*"/,lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\}/,lookbehind:!0,inside:{"interpolation-expression":{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.chaiscript},"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"}}},string:/[\s\S]+/}}})}});export{s as a}; diff --git a/build/_shared/chunk-5WQWRSDK.js b/build/_shared/chunk-5WQWRSDK.js new file mode 100644 index 00000000..1c601edd --- /dev/null +++ b/build/_shared/chunk-5WQWRSDK.js @@ -0,0 +1 @@ +import{a as n}from"/numpy-tutorials/build/_shared/chunk-2HVDTW4E.js";import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=r((l,t)=>{var i=n();t.exports=a;a.displayName="scala";a.aliases=[];function a(e){e.register(i),e.languages.scala=e.languages.extend("java",{"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,number:/\b0x(?:[\da-f]*\.)?[\da-f]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e\d+)?[dfl]?/i,builtin:/\b(?:Any|AnyRef|AnyVal|Boolean|Byte|Char|Double|Float|Int|Long|Nothing|Short|String|Unit)\b/,symbol:/'[^\d\s\\]\w*/}),e.languages.insertBefore("scala","triple-quoted-string",{"string-interpolation":{pattern:/\b[a-z]\w*(?:"""(?:[^$]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*?"""|"(?:[^$"\r\n]|\$(?:[^{]|\{(?:[^{}]|\{[^{}]*\})*\}))*")/i,greedy:!0,inside:{id:{pattern:/^\w+/,greedy:!0,alias:"function"},escape:{pattern:/\\\$"|\$[$"]/,greedy:!0,alias:"symbol"},interpolation:{pattern:/\$(?:\w+|\{(?:[^{}]|\{[^{}]*\})*\})/,greedy:!0,inside:{punctuation:/^\$\{?|\}$/,expression:{pattern:/[\s\S]+/,inside:e.languages.scala}}},string:/[\s\S]+/}}}),delete e.languages.scala["class-name"],delete e.languages.scala.function}});export{s as a}; diff --git a/build/_shared/chunk-5XNNEDOD.js b/build/_shared/chunk-5XNNEDOD.js new file mode 100644 index 00000000..56d4d3dd --- /dev/null +++ b/build/_shared/chunk-5XNNEDOD.js @@ -0,0 +1 @@ +import{a as f}from"/numpy-tutorials/build/_shared/chunk-J3PKFMLQ.js";import{c}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var y=c((h,b)=>{var g=f();b.exports=a;a.displayName="php";a.aliases=[];function a(n){n.register(g),function(e){var i=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,r=[{pattern:/\b(?:false|true)\b/i,alias:"boolean"},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],s=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,l=/|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,o=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"},comment:i,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:"class-name"},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:"function"},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:"type-casting",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string|void)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:"type-declaration",greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:"type-declaration",greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|new|or|parent|print|private|protected|public|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s+)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:"class-name-fully-qualified",greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:"class-name-fully-qualified",greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:"type-declaration",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-declaration"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:"static-context",greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:["class-name-fully-qualified","static-context"],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:"type-hint",greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:["class-name-fully-qualified","type-hint"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:"return-type",greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:["class-name-fully-qualified","return-type"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:s,operator:l,punctuation:o};var u={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},d=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:"nowdoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:"heredoc-string",greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:u}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:"backtick-quoted-string",greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:"single-quoted-string",greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:"double-quoted-string",greedy:!0,inside:{interpolation:u}}];e.languages.insertBefore("php","variable",{string:d,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:i,string:d,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:"class-name",greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:["class-name","class-name-fully-qualified"],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:r,number:s,operator:l,punctuation:o}},delimiter:{pattern:/^#\[|\]$/,alias:"punctuation"}}}}),e.hooks.add("before-tokenize",function(t){if(/<\?/.test(t.code)){var p=/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g;e.languages["markup-templating"].buildPlaceholders(t,"php",p)}}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")})}(n)}});export{y as a}; diff --git a/build/_shared/chunk-5YSLY5JM.js b/build/_shared/chunk-5YSLY5JM.js new file mode 100644 index 00000000..1c5d11b1 --- /dev/null +++ b/build/_shared/chunk-5YSLY5JM.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=n((i,a)=>{a.exports=e;e.displayName="ebnf";e.aliases=[];function e(t){t.languages.ebnf={comment:/\(\*[\s\S]*?\*\)/,string:{pattern:/"[^"\r\n]*"|'[^'\r\n]*'/,greedy:!0},special:{pattern:/\?[^?\r\n]*\?/,greedy:!0,alias:"class-name"},definition:{pattern:/^([\t ]*)[a-z]\w*(?:[ \t]+[a-z]\w*)*(?=\s*=)/im,lookbehind:!0,alias:["rule","keyword"]},rule:/\b[a-z]\w*(?:[ \t]+[a-z]\w*)*\b/i,punctuation:/\([:/]|[:/]\)|[.,;()[\]{}]/,operator:/[-=|*/!]/}}});export{r as a}; diff --git a/build/_shared/chunk-6AYDFMWY.js b/build/_shared/chunk-6AYDFMWY.js new file mode 100644 index 00000000..b6077271 --- /dev/null +++ b/build/_shared/chunk-6AYDFMWY.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=r((s,n)=>{n.exports=t;t.displayName="squirrel";t.aliases=[];function t(e){e.languages.squirrel=e.languages.extend("clike",{comment:[e.languages.clike.comment[0],{pattern:/(^|[^\\:])(?:\/\/|#).*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^\\"'@])(?:@"(?:[^"]|"")*"(?!")|"(?:[^\\\r\n"]|\\.)*")/,lookbehind:!0,greedy:!0},"class-name":{pattern:/(\b(?:class|enum|extends|instanceof)\s+)\w+(?:\.\w+)*/,lookbehind:!0,inside:{punctuation:/\./}},keyword:/\b(?:__FILE__|__LINE__|base|break|case|catch|class|clone|const|constructor|continue|default|delete|else|enum|extends|for|foreach|function|if|in|instanceof|local|null|resume|return|static|switch|this|throw|try|typeof|while|yield)\b/,number:/\b(?:0x[0-9a-fA-F]+|\d+(?:\.(?:\d+|[eE][+-]?\d+))?)\b/,operator:/\+\+|--|<=>|<[-<]|>>>?|&&?|\|\|?|[-+*/%!=<>]=?|[~^]|::?/,punctuation:/[(){}\[\],;.]/}),e.languages.insertBefore("squirrel","string",{char:{pattern:/(^|[^\\"'])'(?:[^\\']|\\(?:[xuU][0-9a-fA-F]{0,8}|[\s\S]))'/,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("squirrel","operator",{"attribute-punctuation":{pattern:/<\/|\/>/,alias:"important"},lambda:{pattern:/@(?=\()/,alias:"operator"}})}});export{a}; diff --git a/build/_shared/chunk-6BVT5IQV.js b/build/_shared/chunk-6BVT5IQV.js new file mode 100644 index 00000000..da7d2e6d --- /dev/null +++ b/build/_shared/chunk-6BVT5IQV.js @@ -0,0 +1,15 @@ +import{c as te}from"/numpy-tutorials/build/_shared/chunk-CUKUDK3R.js";import{a as It}from"/numpy-tutorials/build/_shared/chunk-3EBOCCHJ.js";import{A as ve,B as R,E as we,a as F,b as J,d as ee,i as ye,s as U,z as ue}from"/numpy-tutorials/build/_shared/chunk-4OEDG4JQ.js";import{f as St}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function Dt(i="node"){return{class:{type:String,doc:`Annotate the ${i} with a set of space-delimited class names.`}}}function Et(i="node"){return{label:{type:String,alias:["name"],doc:`Label the ${i} to be cross-referenced or explicitly linked to.`}}}function Ot(i="node"){return{enumerated:{type:Boolean,alias:["numbered"],doc:`Turn on/off the numbering for the specific ${i}`},enumerator:{type:String,alias:["number"],doc:`Explicitly set the ${i} number`}}}function m(i="node"){return{...Dt(i),...Et(i),...Ot(i)}}function Ct(i,e){var t;return typeof((t=i.options)===null||t===void 0?void 0:t.class)=="string"&&(e.class=i.options.class),e}function Tt(i,e){var t;let{label:n,identifier:r}=ee((t=i.options)===null||t===void 0?void 0:t.label)||{};return n&&(e.label=n),r&&(e.identifier=r),e}function At(i,e){var t,n;return typeof((t=i.options)===null||t===void 0?void 0:t.enumerated)=="boolean"&&(e.enumerated=i.options.enumerated),!((n=i.options)===null||n===void 0)&&n.enumerator&&(e.enumerator=i.options.enumerator),e}function h(i,e){return Ct(i,e),Tt(i,e),At(i,e),e}var be={name:"admonition",doc:'Callouts, or "admonitions", highlight a particular block of text that exists slightly apart from the narrative of your page, such as a note or a warning. \n\n The admonition kind can be determined by the directive name used (e.g. `:::{tip}` or `:::{note}`).',alias:["attention","caution","danger","error","important","hint","note","seealso","tip","warning"],arg:{type:"myst",doc:`The optional title of the admonition, if not supplied the admonition kind will be used. + +Note that the argument parsing is different from Sphinx, which does not allow named admonitions to have custom titles.`},options:{...m("admonition"),class:{type:String,doc:'CSS classes to add to your admonition. Special classes include:\n\n- `dropdown`: turns the admonition into a `
` html element\n- `simple`: an admonition with "simple" styles\n- the name of an admonition, the first valid admonition name encountered will be used (e.g. `tip`). Note that if you provide conflicting class names, the first valid admonition name will be used.'},icon:{type:Boolean,doc:"Setting icon to false will hide the icon."},open:{type:Boolean,doc:"Turn the admonition into a dropdown, if it isn't already, and set the open state."}},body:{type:"myst",doc:"The body of the admonition. If there is no title and the body starts with bold text or a heading, that content will be used as the admonition title."},run(i){var e,t,n,r,s;let o=[];i.arg&&o.push({type:i.body?"admonitionTitle":"paragraph",children:i.arg}),i.body&&o.push(...i.body);let l={type:"admonition",kind:i.name!=="admonition"?i.name:void 0,children:o};return((e=i.options)===null||e===void 0?void 0:e.icon)===!1&&(l.icon=!1),h(i,l),typeof((t=i.options)===null||t===void 0?void 0:t.open)=="boolean"&&(!((n=l.class)===null||n===void 0)&&n.split(" ").includes("dropdown")||(l.class=`${(r=l.class)!==null&&r!==void 0?r:""} dropdown`.trim()),!((s=i.options)===null||s===void 0)&&s.open&&(l.open=!0)),[l]}};var xe={name:"bibliography",options:{...m("bibliography"),filter:{type:String}},run(i){var e;let t={type:"bibliography",filter:(e=i.options)===null||e===void 0?void 0:e.filter};return h(i,t),[t]}};var Se="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";var Ie=(i=21)=>{let e="",t=crypto.getRandomValues(new Uint8Array(i|=0));for(;i--;)e+=Se[t[i]&63];return e};function Rt(i,e,t){let{node:n}=i;if(!t)return;let r=new Set;for(let s of t.split(",")){let o=s.trim(),l=o.match(/^(\d+)\s*-\s*(\d+)$/);if(l){let c=Number(l[1]),u=Number(l[2]);if(c<=u){for(let f=c;f<=u;f++)r.add(f);continue}else{J(e,`Invalid emphasize-lines range "${o}" (start > end)`,{node:n,source:"code-block:options",ruleId:R.directiveOptionsCorrect});continue}}/^\d+$/.test(o)?r.add(Number(o)):o!==""&&J(e,`Invalid emphasize-lines value "${o}"`,{node:n,source:"code-block:options",ruleId:R.directiveOptionsCorrect})}if(r.size!==0)return Array.from(r).sort((s,o)=>s-o)}function fe(i,e,t){var n;let{options:r,node:s}=i;r?.["lineno-start"]!=null&&r?.["number-lines"]!=null&&J(e,'Cannot use both "lineno-start" and "number-lines"',{node:(n=U('mystOption[name="number-lines"]',s))!==null&&n!==void 0?n:s,source:"code-block:options",ruleId:R.directiveOptionsCorrect});let o=Rt(i,e,r?.["emphasize-lines"]),l=r?.["number-lines"],c=r?.linenos||r?.["lineno-start"]||r?.["lineno-match"]||l?!0:void 0,u=l!=null&&l>1?l:r?.["lineno-start"];r?.["lineno-match"]?u="match":(u==null||u<=1)&&(u=void 0);let f=r?.filename;return f?.toLowerCase()==="false"?f=void 0:!f&&t&&(f=t),{emphasizeLines:o,showLineNumbers:c,startingLineNumber:u,filename:f}}var de={caption:{type:"myst",doc:"A parsed caption for the code block."},linenos:{type:Boolean,doc:"Show line numbers"},"lineno-start":{type:Number,doc:"Start line numbering from a particular value, default is 1. If present, line numbering is activated."},"number-lines":{type:Number,doc:'Alternative for "lineno-start", turns on line numbering and can be an integer that is the start of the line numbering.'},"emphasize-lines":{type:String,doc:'Emphasize particular lines (comma-separated numbers which can include ranges), e.g. "3,5,7-9"'},filename:{type:String,doc:"Show the filename in addition to the rendered code. The `include` directive will use the filename by default, to turn off this default set the filename to `false`."}};function De(i,e,t){var n,r;if(!i)return;if(typeof i=="string"&&i.startsWith("[")&&i.endsWith("]"))try{return De(te.load(i),e,t)}catch{F(e,"Could not load tags for code-cell directive",{node:(n=U('mystOption[name="tags"]',t))!==null&&n!==void 0?n:t,source:"code-cell:tags",ruleId:R.directiveOptionsCorrect});return}if(typeof i=="string"){let o=i.split(/[,\s]/).map(l=>l.trim()).filter(l=>!!l);return o.length>0?o:void 0}if(!Array.isArray(i))return;let s=i;if(s&&Array.isArray(s)&&s.every(o=>typeof o=="string")){if(s.length>0)return s.map(o=>o.trim()).filter(o=>!!o)}else if(s){J(e,"tags in code-cell directive must be a list of strings",{node:(r=U('mystOption[name="tags"]',t))!==null&&r!==void 0?r:t,source:"code-cell:tags",ruleId:R.directiveOptionsCorrect});return}}var Ee={name:"code",doc:"A code-block environment with a language as the argument, and options for highlighting, showing line numbers, and an optional filename.",alias:["code-block","sourcecode"],arg:{type:String,doc:"Code language, for example `python` or `typescript`"},options:{...m("code"),...de},body:{type:String,doc:"The raw code to display for the code block."},run(i,e){var t;let n=fe(i,e),r={type:"code",lang:i.arg,...n,value:i.body};if(!(!((t=i.options)===null||t===void 0)&&t.caption))return h(i,r),[r];let s={type:"caption",children:[{type:"paragraph",children:i.options.caption}]},o={type:"container",kind:"code",children:[r,s]};return h(i,o),[o]}},Oe={name:"code-cell",doc:"An executable code cell",arg:{type:String,doc:"Language for execution and display, for example `python`. It will default to the language of the notebook or containing markdown file."},options:{...m("code-cell"),caption:{type:"myst",doc:"A parsed caption for the code output."},tags:{type:String,alias:["tag"],doc:"A comma-separated list of tags to add to the cell, for example, `remove-input` or `hide-cell`."}},body:{type:String,doc:"The code to be executed and displayed."},run(i,e){var t,n,r;let s={type:"code",lang:i.arg,executable:!0,value:(t=i.body)!==null&&t!==void 0?t:""},o={type:"output",id:Ie(),data:[]},l={type:"block",kind:we.code,children:[s,o],data:{}};h(i,l),!((n=i.options)===null||n===void 0)&&n.caption&&(l.data.caption=[{type:"paragraph",children:i.options.caption}]);let c=De((r=i.options)===null||r===void 0?void 0:r.tags,e,i.node);return c&&(l.data.tags=c),[l]}};var Ce={name:"dropdown",arg:{type:"myst"},options:{...m("dropdown"),open:{type:Boolean,doc:"When true, the dropdown starts open."}},body:{type:"myst",required:!0},run(i){var e;let t=[];i.arg&&t.push({type:"summary",children:i.arg}),t.push(...i.body);let n={type:"details",open:(e=i.options)===null||e===void 0?void 0:e.open,children:t};return h(i,n),[n]}};var Te={name:"embed",doc:"The embed directive allows you to duplicate content from another part of your project. This can also be done through the figure directive.",arg:{type:String,doc:"The label of the node that you are embedding.",required:!0},options:{...m("embed"),"remove-input":{type:Boolean,doc:"If embedding a Jupyter Notebook cell, remove the input of the cell."},"remove-output":{type:Boolean,doc:"If embedding a Jupyter Notebook cell, remove the output of the cell."}},run(i){var e,t;if(!i.arg)return[];let n=i.arg,r=n.startsWith("#")?n.substring(1):n,{label:s}=ee(r)||{};if(!s)return[];let o={type:"embed",source:{label:s},"remove-input":(e=i.options)===null||e===void 0?void 0:e["remove-input"],"remove-output":(t=i.options)===null||t===void 0?void 0:t["remove-output"]};return h(i,o),[o]}};var Ae={name:"figure",arg:{type:String,doc:"The filename of an image (e.g. `my-fig.png`), or an ID of a Jupyter Notebook cell (e.g. `#my-cell`)."},options:{...m("figure"),class:{type:String,alias:["figclass"],doc:"CSS classes to add to your figure. Special classes include:\n\n- `full-width`: changes the figure environment to cover two columns in LaTeX"},height:{type:String,doc:"The figure height, in CSS units, for example `4em` or `300px`.",alias:["h"]},width:{type:String,alias:["w","figwidth"],doc:"The figure width, in CSS units, for example `50%` or `300px`."},alt:{type:String,doc:"Alternative text for the image"},align:{type:String,doc:"The alignment of the image in the figure. Choose one of `left`, `center` or `right`"},"remove-input":{type:Boolean,doc:"If the argument is a notebook cell, use this flag to remove the input code from the cell."},"remove-output":{type:Boolean,doc:"If the argument is a notebook cell, use this flag to remove the output from the cell."},placeholder:{type:String,doc:"A placeholder image when using a notebook cell as the figure contents. This will be shown in place of the Jupyter output until an execution environment is attached. It will also be used in static outputs, such as a PDF output."},"no-subfigures":{type:Boolean,doc:"Disallow implicit subfigure creation from child nodes",alias:["no-subfig","no-subfigure"]},kind:{type:String,doc:'Override the figures "kind", which changes the enumeration to start counting independently for that kind. For example, `kind: "example"`. The default enumeration and referencing will be the capitalized `kind` followed by a number (e.g. "Example 1").'}},body:{type:"myst",doc:"If an argument is provided to the figure directive, the body will be the figure caption. You may also omit the figure directive argument and provide images in the body of the figure, these will be parsed into sub figures."},run(i){var e,t,n,r,s,o,l,c,u,f,d,_,y;let x=[];i.arg&&x.push({type:"image",url:i.arg,alt:(e=i.options)===null||e===void 0?void 0:e.alt,width:(t=i.options)===null||t===void 0?void 0:t.width,height:(n=i.options)===null||n===void 0?void 0:n.height,align:(r=i.options)===null||r===void 0?void 0:r.align,"remove-input":(s=i.options)===null||s===void 0?void 0:s["remove-input"],"remove-output":(o=i.options)===null||o===void 0?void 0:o["remove-output"]}),!((l=i.options)===null||l===void 0)&&l.placeholder&&x.push({type:"image",placeholder:!0,url:i.options.placeholder,alt:(c=i.options)===null||c===void 0?void 0:c.alt,width:(u=i.options)===null||u===void 0?void 0:u.width,height:(f=i.options)===null||f===void 0?void 0:f.height,align:(d=i.options)===null||d===void 0?void 0:d.align}),i.body&&x.push(...i.body);let g={type:"container",kind:((_=i.options)===null||_===void 0?void 0:_.kind)||"figure",children:x};return h(i,g),!((y=i.options)===null||y===void 0)&&y["no-subfigures"]&&(g.noSubcontainers=!0),[g]}};var Re={name:"iframe",arg:{type:String,doc:"The URL source (`src`) of the HTML iframe element.",required:!0},options:{...m("iframe"),width:{type:String,doc:"The iframe width, in CSS units, for example `50%` or `300px`."},align:{type:String,doc:"The alignment of the iframe in the page. Choose one of `left`, `center` or `right`"},title:{type:String,doc:"The title attribute for the iframe element, describing its content for accessibility."},placeholder:{type:String,doc:"A placeholder image for the iframe in static exports."}},body:{type:"myst",doc:"If provided, this will be the iframe caption."},run(i){var e,t,n,r,s,o,l,c;let u={type:"iframe",src:i.arg,width:(e=i.options)===null||e===void 0?void 0:e.width,align:(t=i.options)===null||t===void 0?void 0:t.align,title:(n=i.options)===null||n===void 0?void 0:n.title};if(!((r=i.options)===null||r===void 0)&&r.placeholder&&(u.children=[{type:"image",placeholder:!0,url:i.options.placeholder,alt:(s=i.options)===null||s===void 0?void 0:s.alt,width:(o=i.options)===null||o===void 0?void 0:o.width,height:(l=i.options)===null||l===void 0?void 0:l.height,align:(c=i.options)===null||c===void 0?void 0:c.align}]),!i.body)return h(i,u),[u];let f={type:"container",kind:"figure",children:[u,{type:"caption",children:i.body}]};return h(i,f),[f]}};var Ne={name:"image",arg:{type:String,doc:"The filename of an image (e.g. `my-fig.png`).",required:!0},options:{...m("image"),height:{type:String,doc:"The image height, in CSS units, for example `4em` or `300px`.",alias:["h"]},width:{type:String,alias:["w"],doc:"The image width, in CSS units, for example `50%` or `300px`."},alt:{type:String,doc:"Alternative text for the image"},align:{type:String,doc:"The alignment of the image. Choose one of `left`, `center` or `right`"},title:{type:String,doc:"Title text for the image"}},run(i){let{alt:e,height:t,width:n,align:r,title:s}=i.options||{},o={type:"image",url:i.arg,alt:e??(i.body?ye(i.body):void 0),title:s,height:t,width:n,align:r??"center"};return h(i,o),[o]}};var ke={name:"include",alias:["literalinclude"],doc:"Allows you to include the source or parsed version of a separate file into your document tree.",arg:{type:String,doc:"The file path, which is relative to the file from which it was referenced.",required:!0},options:{...m("include"),literal:{type:Boolean,doc:"Flag the include block as literal, and show the contents as a code block. This can also be set automatically by setting the `language` or using the `literalinclude` directive."},lang:{type:String,doc:"The language of the code to be highlighted as. If set, this automatically changes an `include` into a `literalinclude`.",alias:["language","code"]},...de,"start-line":{type:Number,doc:"Only the content starting from this line will be included. The first line has index 0 and negative values count from the end."},"start-at":{type:String,doc:"Only the content after and including the first occurrence of the specified text in the external data file will be included."},"start-after":{type:String,doc:"Only the content after the first occurrence of the specified text in the external data file will be included."},"end-line":{type:Number,doc:"Only the content up to (but excluding) this line will be included."},"end-at":{type:String,doc:"Only the content up to and including the first occurrence of the specified text in the external data file (but after any start-after text) will be included."},"end-before":{type:String,doc:"Only the content before the first occurrence of the specified text in the external data file (but after any start-after text) will be included."},lines:{type:String,doc:"Specify exactly which lines to include from the original file, starting at 1. For example, `1,3,5-10,20-` includes the lines 1, 3, 5 to 10 and lines 20 to the last line of the original file."},"lineno-match":{type:Boolean,doc:"Display the original line numbers, correct only when the selection consists of contiguous lines."}},run(i,e){var t,n,r,s,o,l,c,u,f,d,_,y,x,g;let D=i.name==="literalinclude"||!!(!((t=i.options)===null||t===void 0)&&t.literal)||!!(!((n=i.options)===null||n===void 0)&&n.lang),S=i.arg,I=(s=(r=i.options)===null||r===void 0?void 0:r.lang)!==null&&s!==void 0?s:Ft(S.split(".").pop()),b=D?fe(i,e,S.split(/\/|\\/).pop()):{},T=D?(o=i.options)===null||o===void 0?void 0:o.caption:void 0,E={};if(Fe(i,e,["start-at","start-line","start-after","lines"]),Fe(i,e,["end-at","end-line","end-before","lines"]),E.startAt=(l=i.options)===null||l===void 0?void 0:l["start-at"],E.startAfter=(c=i.options)===null||c===void 0?void 0:c["start-after"],E.endAt=(u=i.options)===null||u===void 0?void 0:u["end-at"],E.endBefore=(f=i.options)===null||f===void 0?void 0:f["end-before"],!((d=i.options)===null||d===void 0)&&d.lines)E.lines=Nt(e,(_=U('mystOption[name="lines"]',i.node))!==null&&_!==void 0?_:void 0,(y=i.options)===null||y===void 0?void 0:y.lines);else{let B=(x=i.options)===null||x===void 0?void 0:x["start-line"],G=(g=i.options)===null||g===void 0?void 0:g["end-line"],Y=[];B!=null&&Y.push(B),B==null&&G!=null&&Y.push(0),G!=null&&Y.push(G),Y.length>0&&(E.lines=[Y.map(v=>v>=0?v+1:v)])}let W=Object.values(E).some(B=>B!==void 0),Z={type:"include",file:S,literal:D,lang:I,caption:T,filter:W?E:void 0,...b};return h(i,Z),[Z]}};function Nt(i,e,t){if(t)return t.split(",").map(n=>{let r=n.trim(),s=r.match(/^([0-9]+)(?:\s*(-)\s*([0-9]+)?)?$/);if(!s){J(i,`Unknown lines match "${r}"`,{node:e,ruleId:R.directiveOptionsCorrect});return}let[,o,l,c]=s;return!l&&!c?Number.parseInt(o):l&&!c?[Number.parseInt(o)]:[Number.parseInt(o),Number.parseInt(c)]}).filter(n=>!!n)}function Fe(i,e,t){let{options:n,node:r}=i;if(!n)return;let s=new Set(t),o=new Set(Object.keys(n)),l=new Set([...s].filter(c=>o.has(c)));l.size>1&&J(e,`Conflicting options for directive: ["${[...l].join('", "')}"]`,{node:r,note:`Choose a single option out of ["${[...t].join('", "')}"]`,ruleId:R.directiveOptionsCorrect})}function Ft(i){var e;return(e={ts:"typescript",js:"javascript",mjs:"javascript",tex:"latex",py:"python",md:"markdown",yml:"yaml"}[i??""])!==null&&e!==void 0?e:i}function X(i,e,t,n){F(t,"Index entry definitions should not use :option: syntax",{node:n,note:`Replace ":${i}: ${e}" with "${i}: ${e}"`})}var Le={name:"index",arg:{type:String},options:{single:{type:String},pair:{type:String},triple:{type:String},see:{type:String},seealso:{type:String,alias:["seeAlso","see-also"]},label:{type:String,alias:["name"]}},body:{type:String},run(i,e){var t,n,r,s,o,l;let c={single:[],pair:[],triple:[],see:[],seealso:[]};i.arg&&ue(i.arg,c,e,i.node),!((t=i.options)===null||t===void 0)&&t.single&&(X("single",i.options.single,e,i.node),c.single.push(i.options.single)),!((n=i.options)===null||n===void 0)&&n.pair&&(X("pair",i.options.pair,e,i.node),c.pair.push(i.options.pair)),!((r=i.options)===null||r===void 0)&&r.triple&&(X("triple",i.options.triple,e,i.node),c.triple.push(i.options.triple)),!((s=i.options)===null||s===void 0)&&s.see&&(X("see",i.options.see,e,i.node),c.see.push(i.options.see)),!((o=i.options)===null||o===void 0)&&o.seealso&&(X("seealso",i.options.seealso,e,i.node),c.seealso.push(i.options.seealso)),i.body&&i.body.split(` +`).forEach(d=>{ue(d,c,e,i.node)});let u=ve(c,e,i.node);return[{type:"mystTarget",label:(l=i.options)===null||l===void 0?void 0:l.label,indexEntries:u}]}},Be={name:"show-index",alias:["genindex"],arg:{type:"myst",doc:"Heading to be included in index block"},run(i){var e;let t=[];if(i.arg){let n=i.arg;((e=n[0])===null||e===void 0?void 0:e.type)==="heading"?t.push(...n):t.push({type:"heading",depth:2,enumerated:!1,children:n})}return[{type:"genindex",children:t}]}};var Ue=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:{},$=[],k=[],kt=typeof Uint8Array<"u"?Uint8Array:Array,pe=!1;function Je(){pe=!0;for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0,t=i.length;e0)throw new Error("Invalid string. Length must be a multiple of 4");s=i[l-2]==="="?2:i[l-1]==="="?1:0,o=new kt(l*3/4-s),n=s>0?l-4:l;var c=0;for(e=0,t=0;e>16&255,o[c++]=r>>8&255,o[c++]=r&255;return s===2?(r=k[i.charCodeAt(e)]<<2|k[i.charCodeAt(e+1)]>>4,o[c++]=r&255):s===1&&(r=k[i.charCodeAt(e)]<<10|k[i.charCodeAt(e+1)]<<4|k[i.charCodeAt(e+2)]>>2,o[c++]=r>>8&255,o[c++]=r&255),o}function Bt(i){return $[i>>18&63]+$[i>>12&63]+$[i>>6&63]+$[i&63]}function Ut(i,e,t){for(var n,r=[],s=e;sc?c:l+o));return n===1?(e=i[t-1],r+=$[e>>2],r+=$[e<<4&63],r+="=="):n===2&&(e=(i[t-2]<<8)+i[t-1],r+=$[e>>10],r+=$[e>>4&63],r+=$[e<<2&63],r+="="),s.push(r),s.join("")}function oe(i,e,t,n,r){var s,o,l=r*8-n-1,c=(1<>1,f=-7,d=t?r-1:0,_=t?-1:1,y=i[e+d];for(d+=_,s=y&(1<<-f)-1,y>>=-f,f+=l;f>0;s=s*256+i[e+d],d+=_,f-=8);for(o=s&(1<<-f)-1,s>>=-f,f+=n;f>0;o=o*256+i[e+d],d+=_,f-=8);if(s===0)s=1-u;else{if(s===c)return o?NaN:(y?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-u}return(y?-1:1)*o*Math.pow(2,s-n)}function Ye(i,e,t,n,r,s){var o,l,c,u=s*8-r-1,f=(1<>1,_=r===23?Math.pow(2,-24)-Math.pow(2,-77):0,y=n?0:s-1,x=n?1:-1,g=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,o=f):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),o+d>=1?e+=_/c:e+=_*Math.pow(2,1-d),e*c>=2&&(o++,c/=2),o+d>=f?(l=0,o=f):o+d>=1?(l=(e*c-1)*Math.pow(2,r),o=o+d):(l=e*Math.pow(2,d-1)*Math.pow(2,r),o=0));r>=8;i[t+y]=l&255,y+=x,l/=256,r-=8);for(o=o<0;i[t+y]=o&255,y+=x,o/=256,u-=8);i[t+y-x]|=g*128}var $t={}.toString,ze=Array.isArray||function(i){return $t.call(i)=="[object Array]"},qt=50;a.TYPED_ARRAY_SUPPORT=Ue.TYPED_ARRAY_SUPPORT!==void 0?Ue.TYPED_ARRAY_SUPPORT:!0;ie();function ie(){return a.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function P(i,e){if(ie()=ie())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+ie().toString(16)+" bytes");return i|0}a.isBuffer=L;function q(i){return!!(i!=null&&i._isBuffer)}a.compare=function(e,t){if(!q(e)||!q(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,s=0,o=Math.min(n,r);s>>1;case"base64":return tt(i).length;default:if(n)return ne(i).length;e=(""+e).toLowerCase(),n=!0}}a.byteLength=He;function Yt(i,e,t){var n=!1;if((e===void 0||e<0)&&(e=0),e>this.length||((t===void 0||t>this.length)&&(t=this.length),t<=0)||(t>>>=0,e>>>=0,t<=e))return"";for(i||(i="utf8");;)switch(i){case"hex":return ei(this,e,t);case"utf8":case"utf-8":return Xe(this,e,t);case"ascii":return Zt(this,e,t);case"latin1":case"binary":return Kt(this,e,t);case"base64":return Gt(this,e,t);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ti(this,e,t);default:if(n)throw new TypeError("Unknown encoding: "+i);i=(i+"").toLowerCase(),n=!0}}a.prototype._isBuffer=!0;function Q(i,e,t){var n=i[e];i[e]=i[t],i[t]=n}a.prototype.swap16=function(){var e=this.length;if(e%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),""};a.prototype.compare=function(e,t,n,r,s){if(!q(e))throw new TypeError("Argument must be a Buffer");if(t===void 0&&(t=0),n===void 0&&(n=e?e.length:0),r===void 0&&(r=0),s===void 0&&(s=this.length),t<0||n>e.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&t>=n)return 0;if(r>=s)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,s>>>=0,this===e)return 0;for(var o=s-r,l=n-t,c=Math.min(o,l),u=this.slice(r,s),f=e.slice(t,n),d=0;d2147483647?t=2147483647:t<-2147483648&&(t=-2147483648),t=+t,isNaN(t)&&(t=r?0:i.length-1),t<0&&(t=i.length+t),t>=i.length){if(r)return-1;t=i.length-1}else if(t<0)if(r)t=0;else return-1;if(typeof e=="string"&&(e=a.from(e,n)),q(e))return e.length===0?-1:qe(i,e,t,n,r);if(typeof e=="number")return e=e&255,a.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?r?Uint8Array.prototype.indexOf.call(i,e,t):Uint8Array.prototype.lastIndexOf.call(i,e,t):qe(i,[e],t,n,r);throw new TypeError("val must be string, number or Buffer")}function qe(i,e,t,n,r){var s=1,o=i.length,l=e.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(i.length<2||e.length<2)return-1;s=2,o/=2,l/=2,t/=2}function c(y,x){return s===1?y[x]:y.readUInt16BE(x*s)}var u;if(r){var f=-1;for(u=t;uo&&(t=o-l),u=t;u>=0;u--){for(var d=!0,_=0;_r&&(n=r)):n=r;var s=e.length;if(s%2!==0)throw new TypeError("Invalid hex string");n>s/2&&(n=s/2);for(var o=0;os)&&(n=s),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var o=!1;;)switch(r){case"hex":return zt(this,e,t,n);case"utf8":case"utf-8":return jt(this,e,t,n);case"ascii":return Ge(this,e,t,n);case"latin1":case"binary":return Qt(this,e,t,n);case"base64":return Ht(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Wt(this,e,t,n);default:if(o)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),o=!0}};a.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Gt(i,e,t){return e===0&&t===i.length?$e(i):$e(i.slice(e,t))}function Xe(i,e,t){t=Math.min(i.length,t);for(var n=[],r=e;r239?4:s>223?3:s>191?2:1;if(r+l<=t){var c,u,f,d;switch(l){case 1:s<128&&(o=s);break;case 2:c=i[r+1],(c&192)===128&&(d=(s&31)<<6|c&63,d>127&&(o=d));break;case 3:c=i[r+1],u=i[r+2],(c&192)===128&&(u&192)===128&&(d=(s&15)<<12|(c&63)<<6|u&63,d>2047&&(d<55296||d>57343)&&(o=d));break;case 4:c=i[r+1],u=i[r+2],f=i[r+3],(c&192)===128&&(u&192)===128&&(f&192)===128&&(d=(s&15)<<18|(c&63)<<12|(u&63)<<6|f&63,d>65535&&d<1114112&&(o=d))}}o===null?(o=65533,l=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),r+=l}return Xt(n)}var Me=4096;function Xt(i){var e=i.length;if(e<=Me)return String.fromCharCode.apply(String,i);for(var t="",n=0;nn)&&(t=n);for(var r="",s=e;sn&&(e=n),t<0?(t+=n,t<0&&(t=0)):t>n&&(t=n),tt)throw new RangeError("Trying to access beyond buffer length")}a.prototype.readUIntLE=function(e,t,n){e=e|0,t=t|0,n||C(e,t,this.length);for(var r=this[e],s=1,o=0;++o0&&(s*=256);)r+=this[e+--t]*s;return r};a.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]};a.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8};a.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]};a.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};a.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};a.prototype.readIntLE=function(e,t,n){e=e|0,t=t|0,n||C(e,t,this.length);for(var r=this[e],s=1,o=0;++o=s&&(r-=Math.pow(2,8*t)),r};a.prototype.readIntBE=function(e,t,n){e=e|0,t=t|0,n||C(e,t,this.length);for(var r=t,s=1,o=this[e+--r];r>0&&(s*=256);)o+=this[e+--r]*s;return s*=128,o>=s&&(o-=Math.pow(2,8*t)),o};a.prototype.readInt8=function(e,t){return t||C(e,1,this.length),this[e]&128?(255-this[e]+1)*-1:this[e]};a.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};a.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};a.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};a.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};a.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),oe(this,e,!0,23,4)};a.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),oe(this,e,!1,23,4)};a.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),oe(this,e,!0,52,8)};a.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),oe(this,e,!1,52,8)};function N(i,e,t,n,r,s){if(!q(i))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>r||ei.length)throw new RangeError("Index out of range")}a.prototype.writeUIntLE=function(e,t,n,r){if(e=+e,t=t|0,n=n|0,!r){var s=Math.pow(2,8*n)-1;N(this,e,t,n,s,0)}var o=1,l=0;for(this[t]=e&255;++l=0&&(l*=256);)this[t+o]=e/l&255;return t+n};a.prototype.writeUInt8=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,1,255,0),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=e&255,t+1};function se(i,e,t,n){e<0&&(e=65535+e+1);for(var r=0,s=Math.min(i.length-t,2);r>>(n?r:1-r)*8}a.prototype.writeUInt16LE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):se(this,e,t,!0),t+2};a.prototype.writeUInt16BE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,2,65535,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):se(this,e,t,!1),t+2};function le(i,e,t,n){e<0&&(e=4294967295+e+1);for(var r=0,s=Math.min(i.length-t,4);r>>(n?r:3-r)*8&255}a.prototype.writeUInt32LE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=e&255):le(this,e,t,!0),t+4};a.prototype.writeUInt32BE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,4,4294967295,0),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):le(this,e,t,!1),t+4};a.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t=t|0,!r){var s=Math.pow(2,8*n-1);N(this,e,t,n,s-1,-s)}var o=0,l=1,c=0;for(this[t]=e&255;++o>0)-c&255;return t+n};a.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t=t|0,!r){var s=Math.pow(2,8*n-1);N(this,e,t,n,s-1,-s)}var o=n-1,l=1,c=0;for(this[t+o]=e&255;--o>=0&&(l*=256);)e<0&&c===0&&this[t+o+1]!==0&&(c=1),this[t+o]=(e/l>>0)-c&255;return t+n};a.prototype.writeInt8=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,1,127,-128),a.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=e&255,t+1};a.prototype.writeInt16LE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8):se(this,e,t,!0),t+2};a.prototype.writeInt16BE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,2,32767,-32768),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=e&255):se(this,e,t,!1),t+2};a.prototype.writeInt32LE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,4,2147483647,-2147483648),a.TYPED_ARRAY_SUPPORT?(this[t]=e&255,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):le(this,e,t,!0),t+4};a.prototype.writeInt32BE=function(e,t,n){return e=+e,t=t|0,n||N(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),a.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=e&255):le(this,e,t,!1),t+4};function Ze(i,e,t,n,r,s){if(t+n>i.length)throw new RangeError("Index out of range");if(t<0)throw new RangeError("Index out of range")}function Ke(i,e,t,n,r){return r||Ze(i,e,t,4),Ye(i,e,t,n,23,4),t+4}a.prototype.writeFloatLE=function(e,t,n){return Ke(this,e,t,!0,n)};a.prototype.writeFloatBE=function(e,t,n){return Ke(this,e,t,!1,n)};function et(i,e,t,n,r){return r||Ze(i,e,t,8),Ye(i,e,t,n,52,8),t+8}a.prototype.writeDoubleLE=function(e,t,n){return et(this,e,t,!0,n)};a.prototype.writeDoubleBE=function(e,t,n){return et(this,e,t,!1,n)};a.prototype.copy=function(e,t,n,r){if(n||(n=0),!r&&r!==0&&(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(s<1e3||!a.TYPED_ARRAY_SUPPORT)for(o=0;o>>0,n=n===void 0?this.length:n>>>0,e||(e=0);var o;if(typeof e=="number")for(o=t;o55295&&t<57344){if(!r){if(t>56319){(e-=3)>-1&&s.push(239,191,189);continue}else if(o+1===n){(e-=3)>-1&&s.push(239,191,189);continue}r=t;continue}if(t<56320){(e-=3)>-1&&s.push(239,191,189),r=t;continue}t=(r-55296<<10|t-56320)+65536}else r&&(e-=3)>-1&&s.push(239,191,189);if(r=null,t<128){if((e-=1)<0)break;s.push(t)}else if(t<2048){if((e-=2)<0)break;s.push(t>>6|192,t&63|128)}else if(t<65536){if((e-=3)<0)break;s.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((e-=4)<0)break;s.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else throw new Error("Invalid code point")}return s}function si(i){for(var e=[],t=0;t>8,r=t%256,s.push(r),s.push(n);return s}function tt(i){return Lt(ni(i))}function ae(i,e,t,n){for(var r=0;r=e.length||r>=i.length);++r)e[r+t]=i[r];return r}function ai(i){return i!==i}function L(i){return i!=null&&(!!i._isBuffer||it(i)||ci(i))}function it(i){return!!i.constructor&&typeof i.constructor.isBuffer=="function"&&i.constructor.isBuffer(i)}function ci(i){return typeof i.readFloatLE=="function"&&typeof i.slice=="function"&&it(i.slice(0,0))}var w=class extends Error{constructor(e,t,n,...r){Array.isArray(t)&&(t=t.join(" ").trim()),super(t),Error.captureStackTrace!==void 0&&Error.captureStackTrace(this,w),this.code=e;for(let s of r)for(let o in s){let l=s[o];this[o]=L(l)?l.toString(n.encoding):l==null?l:JSON.parse(JSON.stringify(l))}}},ui=function(i){return typeof i=="object"&&i!==null&&!Array.isArray(i)},nt=function(i){let e=[];for(let t=0,n=i.length;t=this.size&&(this.resize(),t>=this.size))throw Error("INVALID_BUFFER_STATE");let n=this.buf;this.buf=a.allocUnsafe(this.size),e.copy(this.buf,0),n.copy(this.buf,e.length),this.length+=e.length}else{let t=this.length++;t===this.size&&this.resize();let n=this.clone();this.buf[0]=e,n.copy(this.buf,1,0,t)}}append(e){let t=this.length++;t===this.size&&this.resize(),this.buf[t]=e}clone(){return a.from(this.buf.slice(0,this.length))}resize(){let e=this.length;this.size=this.size*2;let t=a.allocUnsafe(this.size);this.buf.copy(t,0,0,e),this.buf=t}toString(e){return e?this.buf.slice(0,this.length).toString(e):Uint8Array.prototype.slice.call(this.buf.slice(0,this.length))}toJSON(){return this.toString("utf8")}reset(){this.length=0}},fi=12,di=13,hi=10,pi=32,mi=9,gi=function(i){return{bomSkipped:!1,bufBytesStart:0,castField:i.cast_function,commenting:!1,error:void 0,enabled:i.from_line===1,escaping:!1,escapeIsQuote:L(i.escape)&&L(i.quote)&&a.compare(i.escape,i.quote)===0,expectedRecordLength:Array.isArray(i.columns)?i.columns.length:void 0,field:new re(20),firstLineToHeaders:i.cast_first_line_to_header,needMoreDataSize:Math.max(i.comment!==null?i.comment.length:0,...i.delimiter.map(e=>e.length),i.quote!==null?i.quote.length:0),previousBuf:void 0,quoting:!1,stop:!1,rawBuffer:new re(100),record:[],recordHasError:!1,record_length:0,recordDelimiterMaxLength:i.record_delimiter.length===0?0:Math.max(...i.record_delimiter.map(e=>e.length)),trimChars:[a.from(" ",i.encoding)[0],a.from(" ",i.encoding)[0]],wasQuoting:!1,wasRowDelimiter:!1,timchars:[a.from(a.from([di],"utf8").toString(),i.encoding),a.from(a.from([hi],"utf8").toString(),i.encoding),a.from(a.from([fi],"utf8").toString(),i.encoding),a.from(a.from([pi],"utf8").toString(),i.encoding),a.from(a.from([mi],"utf8").toString(),i.encoding)]}},_i=function(i){return i.replace(/([A-Z])/g,function(e,t){return"_"+t.toLowerCase()})},Pe=function(i){let e={};for(let n in i)e[_i(n)]=i[n];if(e.encoding===void 0||e.encoding===!0)e.encoding="utf8";else if(e.encoding===null||e.encoding===!1)e.encoding=null;else if(typeof e.encoding!="string"&&e.encoding!==null)throw new w("CSV_INVALID_OPTION_ENCODING",["Invalid option encoding:","encoding must be a string or null to return a buffer,",`got ${JSON.stringify(e.encoding)}`],e);if(e.bom===void 0||e.bom===null||e.bom===!1)e.bom=!1;else if(e.bom!==!0)throw new w("CSV_INVALID_OPTION_BOM",["Invalid option bom:","bom must be true,",`got ${JSON.stringify(e.bom)}`],e);if(e.cast_function=null,e.cast===void 0||e.cast===null||e.cast===!1||e.cast==="")e.cast=void 0;else if(typeof e.cast=="function")e.cast_function=e.cast,e.cast=!0;else if(e.cast!==!0)throw new w("CSV_INVALID_OPTION_CAST",["Invalid option cast:","cast must be true or a function,",`got ${JSON.stringify(e.cast)}`],e);if(e.cast_date===void 0||e.cast_date===null||e.cast_date===!1||e.cast_date==="")e.cast_date=!1;else if(e.cast_date===!0)e.cast_date=function(n){let r=Date.parse(n);return isNaN(r)?n:new Date(r)};else if(typeof e.cast_date!="function")throw new w("CSV_INVALID_OPTION_CAST_DATE",["Invalid option cast_date:","cast_date must be true or a function,",`got ${JSON.stringify(e.cast_date)}`],e);if(e.cast_first_line_to_header=null,e.columns===!0)e.cast_first_line_to_header=void 0;else if(typeof e.columns=="function")e.cast_first_line_to_header=e.columns,e.columns=!0;else if(Array.isArray(e.columns))e.columns=nt(e.columns);else if(e.columns===void 0||e.columns===null||e.columns===!1)e.columns=!1;else throw new w("CSV_INVALID_OPTION_COLUMNS",["Invalid option columns:","expect an array, a function or true,",`got ${JSON.stringify(e.columns)}`],e);if(e.group_columns_by_name===void 0||e.group_columns_by_name===null||e.group_columns_by_name===!1)e.group_columns_by_name=!1;else{if(e.group_columns_by_name!==!0)throw new w("CSV_INVALID_OPTION_GROUP_COLUMNS_BY_NAME",["Invalid option group_columns_by_name:","expect an boolean,",`got ${JSON.stringify(e.group_columns_by_name)}`],e);if(e.columns===!1)throw new w("CSV_INVALID_OPTION_GROUP_COLUMNS_BY_NAME",["Invalid option group_columns_by_name:","the `columns` mode must be activated."],e)}if(e.comment===void 0||e.comment===null||e.comment===!1||e.comment==="")e.comment=null;else if(typeof e.comment=="string"&&(e.comment=a.from(e.comment,e.encoding)),!L(e.comment))throw new w("CSV_INVALID_OPTION_COMMENT",["Invalid option comment:","comment must be a buffer or a string,",`got ${JSON.stringify(e.comment)}`],e);if(e.comment_no_infix===void 0||e.comment_no_infix===null||e.comment_no_infix===!1)e.comment_no_infix=!1;else if(e.comment_no_infix!==!0)throw new w("CSV_INVALID_OPTION_COMMENT",["Invalid option comment_no_infix:","value must be a boolean,",`got ${JSON.stringify(e.comment_no_infix)}`],e);let t=JSON.stringify(e.delimiter);if(Array.isArray(e.delimiter)||(e.delimiter=[e.delimiter]),e.delimiter.length===0)throw new w("CSV_INVALID_OPTION_DELIMITER",["Invalid option delimiter:","delimiter must be a non empty string or buffer or array of string|buffer,",`got ${t}`],e);if(e.delimiter=e.delimiter.map(function(n){if(n==null||n===!1)return a.from(",",e.encoding);if(typeof n=="string"&&(n=a.from(n,e.encoding)),!L(n)||n.length===0)throw new w("CSV_INVALID_OPTION_DELIMITER",["Invalid option delimiter:","delimiter must be a non empty string or buffer or array of string|buffer,",`got ${t}`],e);return n}),e.escape===void 0||e.escape===!0?e.escape=a.from('"',e.encoding):typeof e.escape=="string"?e.escape=a.from(e.escape,e.encoding):(e.escape===null||e.escape===!1)&&(e.escape=null),e.escape!==null&&!L(e.escape))throw new Error(`Invalid Option: escape must be a buffer, a string or a boolean, got ${JSON.stringify(e.escape)}`);if(e.from===void 0||e.from===null)e.from=1;else if(typeof e.from=="string"&&/\d+/.test(e.from)&&(e.from=parseInt(e.from)),Number.isInteger(e.from)){if(e.from<0)throw new Error(`Invalid Option: from must be a positive integer, got ${JSON.stringify(i.from)}`)}else throw new Error(`Invalid Option: from must be an integer, got ${JSON.stringify(e.from)}`);if(e.from_line===void 0||e.from_line===null)e.from_line=1;else if(typeof e.from_line=="string"&&/\d+/.test(e.from_line)&&(e.from_line=parseInt(e.from_line)),Number.isInteger(e.from_line)){if(e.from_line<=0)throw new Error(`Invalid Option: from_line must be a positive integer greater than 0, got ${JSON.stringify(i.from_line)}`)}else throw new Error(`Invalid Option: from_line must be an integer, got ${JSON.stringify(i.from_line)}`);if(e.ignore_last_delimiters===void 0||e.ignore_last_delimiters===null)e.ignore_last_delimiters=!1;else if(typeof e.ignore_last_delimiters=="number")e.ignore_last_delimiters=Math.floor(e.ignore_last_delimiters),e.ignore_last_delimiters===0&&(e.ignore_last_delimiters=!1);else if(typeof e.ignore_last_delimiters!="boolean")throw new w("CSV_INVALID_OPTION_IGNORE_LAST_DELIMITERS",["Invalid option `ignore_last_delimiters`:","the value must be a boolean value or an integer,",`got ${JSON.stringify(e.ignore_last_delimiters)}`],e);if(e.ignore_last_delimiters===!0&&e.columns===!1)throw new w("CSV_IGNORE_LAST_DELIMITERS_REQUIRES_COLUMNS",["The option `ignore_last_delimiters`","requires the activation of the `columns` option"],e);if(e.info===void 0||e.info===null||e.info===!1)e.info=!1;else if(e.info!==!0)throw new Error(`Invalid Option: info must be true, got ${JSON.stringify(e.info)}`);if(e.max_record_size===void 0||e.max_record_size===null||e.max_record_size===!1)e.max_record_size=0;else if(!(Number.isInteger(e.max_record_size)&&e.max_record_size>=0))if(typeof e.max_record_size=="string"&&/\d+/.test(e.max_record_size))e.max_record_size=parseInt(e.max_record_size);else throw new Error(`Invalid Option: max_record_size must be a positive integer, got ${JSON.stringify(e.max_record_size)}`);if(e.objname===void 0||e.objname===null||e.objname===!1)e.objname=void 0;else if(L(e.objname)){if(e.objname.length===0)throw new Error("Invalid Option: objname must be a non empty buffer");e.encoding===null||(e.objname=e.objname.toString(e.encoding))}else if(typeof e.objname=="string"){if(e.objname.length===0)throw new Error("Invalid Option: objname must be a non empty string")}else if(typeof e.objname!="number")throw new Error(`Invalid Option: objname must be a string or a buffer, got ${e.objname}`);if(e.objname!==void 0){if(typeof e.objname=="number"){if(e.columns!==!1)throw Error("Invalid Option: objname index cannot be combined with columns or be defined as a field")}else if(e.columns===!1)throw Error("Invalid Option: objname field must be combined with columns or be defined as an index")}if(e.on_record===void 0||e.on_record===null)e.on_record=void 0;else if(typeof e.on_record!="function")throw new w("CSV_INVALID_OPTION_ON_RECORD",["Invalid option `on_record`:","expect a function,",`got ${JSON.stringify(e.on_record)}`],e);if(e.on_skip!==void 0&&e.on_skip!==null&&typeof e.on_skip!="function")throw new Error(`Invalid Option: on_skip must be a function, got ${JSON.stringify(e.on_skip)}`);if(e.quote===null||e.quote===!1||e.quote==="")e.quote=null;else if(e.quote===void 0||e.quote===!0?e.quote=a.from('"',e.encoding):typeof e.quote=="string"&&(e.quote=a.from(e.quote,e.encoding)),!L(e.quote))throw new Error(`Invalid Option: quote must be a buffer or a string, got ${JSON.stringify(e.quote)}`);if(e.raw===void 0||e.raw===null||e.raw===!1)e.raw=!1;else if(e.raw!==!0)throw new Error(`Invalid Option: raw must be true, got ${JSON.stringify(e.raw)}`);if(e.record_delimiter===void 0)e.record_delimiter=[];else if(typeof e.record_delimiter=="string"||L(e.record_delimiter)){if(e.record_delimiter.length===0)throw new w("CSV_INVALID_OPTION_RECORD_DELIMITER",["Invalid option `record_delimiter`:","value must be a non empty string or buffer,",`got ${JSON.stringify(e.record_delimiter)}`],e);e.record_delimiter=[e.record_delimiter]}else if(!Array.isArray(e.record_delimiter))throw new w("CSV_INVALID_OPTION_RECORD_DELIMITER",["Invalid option `record_delimiter`:","value must be a string, a buffer or array of string|buffer,",`got ${JSON.stringify(e.record_delimiter)}`],e);if(e.record_delimiter=e.record_delimiter.map(function(n,r){if(typeof n!="string"&&!L(n))throw new w("CSV_INVALID_OPTION_RECORD_DELIMITER",["Invalid option `record_delimiter`:","value must be a string, a buffer or array of string|buffer",`at index ${r},`,`got ${JSON.stringify(n)}`],e);if(n.length===0)throw new w("CSV_INVALID_OPTION_RECORD_DELIMITER",["Invalid option `record_delimiter`:","value must be a non empty string or buffer",`at index ${r},`,`got ${JSON.stringify(n)}`],e);return typeof n=="string"&&(n=a.from(n,e.encoding)),n}),typeof e.relax_column_count!="boolean")if(e.relax_column_count===void 0||e.relax_column_count===null)e.relax_column_count=!1;else throw new Error(`Invalid Option: relax_column_count must be a boolean, got ${JSON.stringify(e.relax_column_count)}`);if(typeof e.relax_column_count_less!="boolean")if(e.relax_column_count_less===void 0||e.relax_column_count_less===null)e.relax_column_count_less=!1;else throw new Error(`Invalid Option: relax_column_count_less must be a boolean, got ${JSON.stringify(e.relax_column_count_less)}`);if(typeof e.relax_column_count_more!="boolean")if(e.relax_column_count_more===void 0||e.relax_column_count_more===null)e.relax_column_count_more=!1;else throw new Error(`Invalid Option: relax_column_count_more must be a boolean, got ${JSON.stringify(e.relax_column_count_more)}`);if(typeof e.relax_quotes!="boolean")if(e.relax_quotes===void 0||e.relax_quotes===null)e.relax_quotes=!1;else throw new Error(`Invalid Option: relax_quotes must be a boolean, got ${JSON.stringify(e.relax_quotes)}`);if(typeof e.skip_empty_lines!="boolean")if(e.skip_empty_lines===void 0||e.skip_empty_lines===null)e.skip_empty_lines=!1;else throw new Error(`Invalid Option: skip_empty_lines must be a boolean, got ${JSON.stringify(e.skip_empty_lines)}`);if(typeof e.skip_records_with_empty_values!="boolean")if(e.skip_records_with_empty_values===void 0||e.skip_records_with_empty_values===null)e.skip_records_with_empty_values=!1;else throw new Error(`Invalid Option: skip_records_with_empty_values must be a boolean, got ${JSON.stringify(e.skip_records_with_empty_values)}`);if(typeof e.skip_records_with_error!="boolean")if(e.skip_records_with_error===void 0||e.skip_records_with_error===null)e.skip_records_with_error=!1;else throw new Error(`Invalid Option: skip_records_with_error must be a boolean, got ${JSON.stringify(e.skip_records_with_error)}`);if(e.rtrim===void 0||e.rtrim===null||e.rtrim===!1)e.rtrim=!1;else if(e.rtrim!==!0)throw new Error(`Invalid Option: rtrim must be a boolean, got ${JSON.stringify(e.rtrim)}`);if(e.ltrim===void 0||e.ltrim===null||e.ltrim===!1)e.ltrim=!1;else if(e.ltrim!==!0)throw new Error(`Invalid Option: ltrim must be a boolean, got ${JSON.stringify(e.ltrim)}`);if(e.trim===void 0||e.trim===null||e.trim===!1)e.trim=!1;else if(e.trim!==!0)throw new Error(`Invalid Option: trim must be a boolean, got ${JSON.stringify(e.trim)}`);if(e.trim===!0&&i.ltrim!==!1?e.ltrim=!0:e.ltrim!==!0&&(e.ltrim=!1),e.trim===!0&&i.rtrim!==!1?e.rtrim=!0:e.rtrim!==!0&&(e.rtrim=!1),e.to===void 0||e.to===null)e.to=-1;else if(typeof e.to=="string"&&/\d+/.test(e.to)&&(e.to=parseInt(e.to)),Number.isInteger(e.to)){if(e.to<=0)throw new Error(`Invalid Option: to must be a positive integer greater than 0, got ${JSON.stringify(i.to)}`)}else throw new Error(`Invalid Option: to must be an integer, got ${JSON.stringify(i.to)}`);if(e.to_line===void 0||e.to_line===null)e.to_line=-1;else if(typeof e.to_line=="string"&&/\d+/.test(e.to_line)&&(e.to_line=parseInt(e.to_line)),Number.isInteger(e.to_line)){if(e.to_line<=0)throw new Error(`Invalid Option: to_line must be a positive integer greater than 0, got ${JSON.stringify(i.to_line)}`)}else throw new Error(`Invalid Option: to_line must be an integer, got ${JSON.stringify(i.to_line)}`);return e},Ve=function(i){return i.every(e=>e==null||e.toString&&e.toString().trim()==="")},yi=13,vi=10,H={utf8:a.from([239,187,191]),utf16le:a.from([255,254])},wi=function(i={}){let e={bytes:0,comment_lines:0,empty_lines:0,invalid_field_length:0,lines:1,records:0},t=Pe(i);return{info:e,original_options:i,options:t,state:gi(t),__needMoreData:function(n,r,s){if(s)return!1;let{encoding:o,escape:l,quote:c}=this.options,{quoting:u,needMoreDataSize:f,recordDelimiterMaxLength:d}=this.state,_=r-n-1,y=Math.max(f,d===0?a.from(`\r +`,o).length:d,u?(l===null?0:l.length)+c.length:0,u?c.length+d:0);return _I){this.state.stop=!0,o();return}this.state.quoting===!1&&W.length===0&&this.__autoDiscoverRecordDelimiter(v,p)&&(W=this.options.record_delimiter);let O=v[p];if(y===!0&&G.append(O),(O===yi||O===vi)&&this.state.wasRowDelimiter===!1&&(this.state.wasRowDelimiter=!0),this.state.escaping===!0)this.state.escaping=!1;else{if(T!==null&&this.state.quoting===!0&&this.__isEscape(v,p,O)&&p+T.lengthH[j].equals(this.state.field.toString())?j:!1).filter(Boolean)[0],M=this.__error(new w("INVALID_OPENING_QUOTE",["Invalid Opening Quote:",`a quote is found on field ${JSON.stringify(A.column)} at line ${A.lines}, value is ${JSON.stringify(this.state.field.toString(u))}`,z?`(${z} bom)`:void 0],this.options,A,{field:this.state.field}));if(M!==void 0)return M}}else{this.state.quoting=!0,p+=E.length-1;continue}if(this.state.quoting===!1){let A=this.__isRecordDelimiter(O,v,p);if(A!==0){if(this.state.commenting&&this.state.wasQuoting===!1&&this.state.record.length===0&&this.state.field.length===0)this.info.comment_lines++;else{if(this.state.enabled===!1&&this.info.lines+(this.state.wasRowDelimiter===!0?1:0)>=f){this.state.enabled=!0,this.__resetField(),this.__resetRecord(),p+=A-1;continue}if(D===!0&&this.state.wasQuoting===!1&&this.state.record.length===0&&this.state.field.length===0){this.info.empty_lines++,p+=A-1;continue}this.info.bytes=this.state.bufBytesStart+p;let j=this.__onField();if(j!==void 0)return j;this.info.bytes=this.state.bufBytesStart+p+A;let K=this.__onRecord(s);if(K!==void 0)return K;if(S!==-1&&this.info.records>=S){this.state.stop=!0,o();return}}this.state.commenting=!1,p+=A-1;continue}if(this.state.commenting)continue;if(b!==null&&(c===!1||this.state.record.length===0&&this.state.field.length===0)&&this.__compareBytes(b,v,p,O)!==0){this.state.commenting=!0;continue}let z=this.__isDelimiter(v,p,O);if(z!==0){this.info.bytes=this.state.bufBytesStart+p;let M=this.__onField();if(M!==void 0)return M;p+=z-1;continue}}}if(this.state.commenting===!1&&_!==0&&this.state.record_length+this.state.field.length>_)return this.__error(new w("CSV_MAX_RECORD_SIZE",["Max Record Size:","record exceed the maximum number of tolerated bytes",`of ${_}`,`at line ${this.info.lines}`],this.options,this.__infoField()));let V=d===!1||this.state.quoting===!0||this.state.field.length!==0||!this.__isCharTrimable(v,p),xt=g===!1||this.state.wasQuoting===!1;if(V===!0&&xt===!0)this.state.field.append(O);else{if(g===!0&&!this.__isCharTrimable(v,p))return this.__error(new w("CSV_NON_TRIMABLE_CHAR_AFTER_CLOSING_QUOTE",["Invalid Closing Quote:","found non trimable byte after quote",`at line ${this.info.lines}`],this.options,this.__infoField()));V===!1&&(p+=this.__isCharTrimable(v,p)-1);continue}}if(r===!0)if(this.state.quoting===!0){let O=this.__error(new w("CSV_QUOTE_NOT_CLOSED",["Quote Not Closed:",`the parsing is finished with an opening quote at line ${this.info.lines}`],this.options,this.__infoField()));if(O!==void 0)return O}else if(this.state.wasQuoting===!0||this.state.record.length!==0||this.state.field.length!==0){this.info.bytes=this.state.bufBytesStart+p;let O=this.__onField();if(O!==void 0)return O;let V=this.__onRecord(s);if(V!==void 0)return V}else this.state.wasRowDelimiter===!0?this.info.empty_lines++:this.state.commenting===!0&&this.info.comment_lines++;else this.state.bufBytesStart+=p,this.state.previousBuf=v.slice(p);this.state.wasRowDelimiter===!0&&(this.info.lines++,this.state.wasRowDelimiter=!1)},__onRecord:function(n){let{columns:r,group_columns_by_name:s,encoding:o,info:l,from:c,relax_column_count:u,relax_column_count_less:f,relax_column_count_more:d,raw:_,skip_records_with_empty_values:y}=this.options,{enabled:x,record:g}=this.state;if(x===!1)return this.__resetRecord();let D=g.length;if(r===!0){if(y===!0&&Ve(g)){this.__resetRecord();return}return this.__firstLineToColumns(g)}if(r===!1&&this.info.records===0&&(this.state.expectedRecordLength=D),D!==this.state.expectedRecordLength){let S=r===!1?new w("CSV_RECORD_INCONSISTENT_FIELDS_LENGTH",["Invalid Record Length:",`expect ${this.state.expectedRecordLength},`,`got ${D} on line ${this.info.lines}`],this.options,this.__infoField(),{record:g}):new w("CSV_RECORD_INCONSISTENT_COLUMNS",["Invalid Record Length:",`columns length is ${r.length},`,`got ${D} on line ${this.info.lines}`],this.options,this.__infoField(),{record:g});if(u===!0||f===!0&&Dthis.state.expectedRecordLength)this.info.invalid_field_length++,this.state.error=S;else{let I=this.__error(S);if(I)return I}}if(y===!0&&Ve(g)){this.__resetRecord();return}if(this.state.recordHasError===!0){this.__resetRecord(),this.state.recordHasError=!1;return}if(this.info.records++,c===1||this.info.records>=c){let{objname:S}=this.options;if(r!==!1){let I={};for(let b=0,T=g.length;b{let{timchars:c}=this.state;e:for(let u=0;u=0},__compareBytes:function(n,r,s,o){if(n[0]!==o)return 0;let l=n.length;for(let c=1;cthis.state.record.length?n[this.state.record.length].name:null:this.state.record.length,quoting:this.state.wasQuoting}}}},rt=function(i,e={}){typeof i=="string"&&(i=a.from(i));let t=e&&e.objname?{}:[],n=wi(e),r=c=>{n.options.objname===void 0?t.push(c):t[c[0]]=c[1]},s=()=>{},o=n.parse(i,!1,r,s);if(o!==void 0)throw o;let l=n.parse(void 0,!0,r,s);if(l!==void 0)throw l;return t};var st={name:"table",arg:{type:"myst",doc:"An optional table caption"},options:{...m("table"),class:{type:String,doc:"CSS classes to add to your table. Special classes include:\n\n- `full-width`: changes the table environment to cover two columns in LaTeX"},align:{type:String}},body:{type:"myst",required:!0},run(i){let e=[];i.arg&&e.push({type:"caption",children:[{type:"paragraph",children:i.arg}]}),e.push(...i.body);let t={type:"container",kind:"table",children:e};return h(i,t),[t]}},lt={name:"list-table",arg:{type:"myst",doc:"An optional table caption"},options:{...m("list table"),"header-rows":{type:Number},class:{type:String,doc:"CSS classes to add to your table. Special classes include:\n\n- `full-width`: changes the table environment to cover two columns in LaTeX"},align:{type:String}},body:{type:"myst",required:!0},validate(i,e){var t;let n={...i},r=i.body;return r.length!==1||r[0].type!=="list"?(F(e,"list-table directive must have one list as body",{node:i.node,ruleId:R.directiveBodyCorrect}),n.body=[]):(t=r[0].children)===null||t===void 0||t.forEach(s=>{var o,l;n.body.length&&(s.type!=="listItem"||((o=s.children)===null||o===void 0?void 0:o.length)!==1||((l=s.children[0])===null||l===void 0?void 0:l.type)!=="list")&&(F(e,"list-table directive must have a list of lists",{node:i.node,ruleId:R.directiveBodyCorrect}),n.body=[])}),n},run(i){var e,t,n;let r=[];i.arg&&r.push({type:"caption",children:[{type:"paragraph",children:i.arg}]});let s=((e=i.body[0])===null||e===void 0?void 0:e.children)||[],o=((t=i.options)===null||t===void 0?void 0:t["header-rows"])||0,l={type:"table",align:(n=i.options)===null||n===void 0?void 0:n.align,children:s.map(u=>{var f,d;let y={type:"tableRow",children:(((d=(f=u.children)===null||f===void 0?void 0:f[0])===null||d===void 0?void 0:d.children)||[]).map(x=>({type:"tableCell",header:o>0?!0:void 0,children:x.children}))};return o-=1,y})};r.push(l);let c={type:"container",kind:"table",children:r};return h(i,c),[c]}};function ot(i,e,t){var n,r,s;let o=(n=t?.delim)!==null&&n!==void 0?n:",";return rt(i,{delimiter:o==="tab"?" ":o==="space"?" ":o,ltrim:!t?.keepspace,escape:(r=t?.escape)!==null&&r!==void 0?r:'"',quote:(s=t?.quote)!==null&&s!==void 0?s:'"'}).map((c,u)=>c.map(f=>{let d=e.parseMyst(f,u);return U("*:root > paragraph:only-child",d)}))}var at={name:"csv-table",doc:'The "csv-table" directive is used to create a table from CSV (comma-separated values) data.',arg:{type:"myst",doc:"An optional table caption"},options:{...m("CSV table"),header:{type:String,doc:"Supplemental data for the table header, added independently of and before any header-rows from the main CSV data. Must use the same CSV format as the main CSV data."},"header-rows":{type:Number,doc:"The number of rows of CSV data to use in the table header. Defaults to 0."},class:{type:String,doc:"CSS classes to add to your table. Special classes include:\n\n- `full-width`: changes the table environment to cover two columns in LaTeX"},align:{type:String},delim:{type:String,doc:'The character used to separate data fields. The special values "tab" and "space" are converted to the respective whitespace characters. Defaults to "," (comma)'},keepspace:{type:Boolean,doc:"Treat whitespace immediately following the delimiter as significant. The default is to ignore such whitespace."},quote:{type:String,doc:'The character used to quote fields containing special characters, such as the delimiter, quotes, or new-line characters. Must be a single character, defaults to `"` (a double quote)\\\nFor example, `First cell, "These commas, for example, are escaped", Next cell`'},escape:{type:String,doc:'A character used to escape the delimiter or quote characters from the CSV parser. Must be a single character, defaults to `"` (a double quote) default is a double quote\\\nFor example, `First cell, "These quotes"", for example, are escaped", Next cell`'}},body:{type:String,doc:"The CSV content",required:!0},run(i,e,t){var n,r,s,o,l;let c=[];i.arg&&c.push({type:"caption",children:[{type:"paragraph",children:i.arg}]});let u=[];if(((n=i.options)===null||n===void 0?void 0:n.header)!==void 0){let x=[];try{x=ot(i.options.header,t,i.options)}catch{F(e,"csv-table directive header must be valid CSV-formatted MyST",{node:(r=U('mystOption[name="header"]',i.node))!==null&&r!==void 0?r:i.node,ruleId:R.directiveOptionsCorrect})}u.push(...x.map(g=>({type:"tableRow",children:g.map(D=>{var S;return{type:"tableCell",header:!0,children:(S=D?.children)!==null&&S!==void 0?S:[]}})})))}let f=[];try{f=ot(i.body,t,i.options)}catch{F(e,"csv-table directive body must be valid CSV-formatted MyST",{node:(s=U("mystDirectiveBody",i.node))!==null&&s!==void 0?s:i.node,ruleId:R.directiveBodyCorrect})}let d=((o=i.options)===null||o===void 0?void 0:o["header-rows"])||0;u.push(...f.map(x=>{let g={type:"tableRow",children:x.map(D=>{var S;return{type:"tableCell",header:d>0?!0:void 0,children:(S=D?.children)!==null&&S!==void 0?S:[]}})};return d-=1,g}));let _={type:"table",align:(l=i.options)===null||l===void 0?void 0:l.align,children:u},y={type:"container",kind:"table",children:[...c,_]};return h(i,y),[y]}};var ct={name:"aside",alias:["margin","sidebar","topic"],arg:{type:"myst",doc:"An optional title"},options:{...m("aside")},body:{type:"myst",required:!0},run(i){let e=[...i.body];i.arg&&e.unshift({type:"admonitionTitle",children:i.arg});let t={type:"aside",kind:i.name=="aside"||i.name=="margin"?void 0:i.name,children:e};return h(i,t),[t]}};var ut={name:"glossary",body:{type:"myst",required:!0},options:{...m("glossary")},run(i){let e={type:"glossary",children:i.body};return h(i,e),[e]}};var ft={name:"math",options:{...m("math"),typst:{type:String,doc:"Typst-specific math content. If not provided, LaTeX content will be converted to Typst."}},body:{type:String,required:!0},run(i){var e;let t=h(i,{type:"math",value:i.body});return i.node.tight&&(t.tight=i.node.tight),!((e=i.options)===null||e===void 0)&&e.typst&&(t.typst=i.options.typst),[t]}};var dt={name:"mdast",arg:{type:String,required:!0},options:{...m("mdast")},run(i){let e={type:"mdast",id:i.arg};return h(i,e),[e]}};var ht={name:"mermaid",options:{...m("mermaid")},body:{type:String,required:!0},run(i){return[h(i,{type:"mermaid",value:i.body})]}};var pt={name:"myst",doc:"Demonstrate some MyST code in an editable code block that displays its output/result interactively. Limited to built-in functionality, as parsing and rendering is done in the browser without access to plugin code or project configuration.",options:{...m("myst"),numbering:{type:String}},body:{type:String,required:!0},run(i){var e;let t;if(!((e=i.options)===null||e===void 0)&&e.numbering)try{t=te.load(i.options.numbering)}catch{}let n={type:"myst",numbering:t,value:i.body};return h(i,n),[n]}};var mt=St(It(),1);var gt={name:"blockquote",alias:["epigraph","pull-quote"],doc:"Block quotes are used to indicate that the enclosed content forms an extended quotation. They may be followed by an inscription or attribution formed of a paragraph beginning with `--`, `---`, or an em-dash.",options:{...m("blockquote"),class:{type:String,doc:"CSS classes to add to your blockquote. Special classes include:\n\n- `pull-quote`: used for a blockquote node which should attract attention\n- `epigraph`: used for a blockquote node that are usually found at the beginning of a document"}},body:{type:"myst",doc:"The body of the quote, which may contain a special attribution paragraph that is turned into a caption"},run(i){var e;let t=[];i.body&&t.push(...i.body);let n={type:"container",kind:"quote",children:[{type:"blockquote",children:t}]};h(i,n);let r=(e=i.options)===null||e===void 0?void 0:e.class;return n.class=(0,mt.default)({[r]:r,[i.name]:i.name!=="blockquote"}),[n]}};var _t={name:"raw",doc:'Allows you to include non-markdown text in your document. If the argument "latex" is provided, the text will be parsed as latex; otherwise, it will be included as raw text.',arg:{type:String,doc:'Format of directive content - for now, only "latex" is valid'},body:{type:String,doc:"Raw content to be parsed"},run(i){var e,t;let n=(e=i.arg)!==null&&e!==void 0?e:"",r=(t=i.body)!==null&&t!==void 0?t:"",s=["tex","latex"].includes(n)?` +${r} +`:void 0,o=["typst","typ"].includes(n)?` +${r} +`:void 0;return[{type:"raw",lang:n,tex:s,typst:o,value:r}]}},yt={name:"raw:latex",alias:["raw:tex"],doc:"Allows you to include tex in your document that will only be included in tex exports",body:{type:String,doc:"Raw tex content"},run(i){let e="tex",t=i.body,n=t?` +${t} +`:"";return[{type:"raw",lang:e,tex:n}]}},vt={name:"raw:typst",alias:["raw:typ"],doc:"Allows you to include typst in your document that will only be included in typst exports",body:{type:String,doc:"Raw typst content"},run(i){let e="typst",t=i.body,n=t?` +${t} +`:"";return[{type:"raw",lang:e,typst:n}]}};var wt={name:"div",options:{...m("div")},body:{type:"myst"},run(i){let e={type:"div"};return i.body&&(e.children=i.body),h(i,e),[e]}};var bi=["project","page","section"],bt={name:"toc",doc:"Inserts table of contents in the page. This may be for the project (each page has an entry), the current page (each heading has an entry), or the current section (only headings in the section have an entry).",alias:["tableofcontents","table-of-contents","toctree","contents"],arg:{type:"myst",doc:"Heading to be included with table of contents"},options:{context:{type:String,doc:"Table of Contents context; one of project, page, or section",alias:["kind"]},depth:{type:Number,doc:"Number of levels to include in Table of Contents; by default, all levels will be included",alias:["maxdepth"]},...m("toc")},run(i,e){var t,n,r;let s=!((t=i.options)===null||t===void 0)&&t.context?i.options.context:i.name==="contents"?"section":"project";bi.includes(s)||(F(e,`Unknown context for ${i.name} directive: ${s}`),s="project");let o=(n=i.options)===null||n===void 0?void 0:n.depth;o!=null&&o<1&&(F(e,"Table of Contents 'depth' must be a number greater than 0"),o=void 0);let l=[];if(i.arg){let u=i.arg;((r=u[0])===null||r===void 0?void 0:r.type)==="heading"?l.push(...u):l.push({type:"heading",depth:2,enumerated:!1,children:u})}let c={type:"toc",kind:s,depth:o,children:l};return h(i,c),[c]}};var Xn=[be,xe,at,Ee,Oe,Ce,Te,gt,Ae,Re,Ne,ke,Le,Be,st,lt,ct,ut,ft,dt,ht,pt,_t,yt,vt,wt,bt];export{m as a,h as b,Xn as c}; diff --git a/build/_shared/chunk-6C3VSIFQ.js b/build/_shared/chunk-6C3VSIFQ.js new file mode 100644 index 00000000..1a5c3567 --- /dev/null +++ b/build/_shared/chunk-6C3VSIFQ.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var a=n((o,i)=>{i.exports=t;t.displayName="renpy";t.aliases=["rpy"];function t(e){e.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\])*\2|(?:^#?(?:(?:[0-9a-fA-F]){3}|[0-9a-fA-F]{6})$)/m,greedy:!0},function:/\b[a-z_]\w*(?=\()/i,property:/\b(?:Update|UpdateVersion|action|activate_sound|adv_nvl_transition|after_load_transition|align|alpha|alt|anchor|antialias|area|auto|background|bar_invert|bar_resizing|bar_vertical|black_color|bold|bottom_bar|bottom_gutter|bottom_margin|bottom_padding|box_reverse|box_wrap|can_update|caret|child|color|crop|default_afm_enable|default_afm_time|default_fullscreen|default_text_cps|developer|directory_name|drag_handle|drag_joined|drag_name|drag_raise|draggable|dragged|drop_shadow|drop_shadow_color|droppable|dropped|easein|easeout|edgescroll|end_game_transition|end_splash_transition|enter_replay_transition|enter_sound|enter_transition|enter_yesno_transition|executable_name|exit_replay_transition|exit_sound|exit_transition|exit_yesno_transition|fadein|fadeout|first_indent|first_spacing|fit_first|focus|focus_mask|font|foreground|game_main_transition|get_installed_packages|google_play_key|google_play_salt|ground|has_music|has_sound|has_voice|height|help|hinting|hover|hover_background|hover_color|hover_sound|hovered|hyperlink_functions|idle|idle_color|image_style|include_update|insensitive|insensitive_background|insensitive_color|inside|intra_transition|italic|justify|kerning|keyboard_focus|language|layer_clipping|layers|layout|left_bar|left_gutter|left_margin|left_padding|length|line_leading|line_overlap_split|line_spacing|linear|main_game_transition|main_menu_music|maximum|min_width|minimum|minwidth|modal|mouse|mousewheel|name|narrator_menu|newline_indent|nvl_adv_transition|offset|order_reverse|outlines|overlay_functions|pos|position|prefix|radius|range|rest_indent|right_bar|right_gutter|right_margin|right_padding|rotate|rotate_pad|ruby_style|sample_sound|save_directory|say_attribute_transition|screen_height|screen_width|scrollbars|selected_hover|selected_hover_color|selected_idle|selected_idle_color|selected_insensitive|show_side_image|show_two_window|side_spacing|side_xpos|side_ypos|size|size_group|slow_cps|slow_cps_multiplier|spacing|strikethrough|subpixel|text_align|text_style|text_xpos|text_y_fudge|text_ypos|thumb|thumb_offset|thumb_shadow|thumbnail_height|thumbnail_width|time|top_bar|top_gutter|top_margin|top_padding|translations|underline|unscrollable|update|value|version|version_name|version_tuple|vertical|width|window_hide_transition|window_icon|window_left_padding|window_show_transition|window_title|windows_icon|xadjustment|xalign|xanchor|xanchoraround|xaround|xcenter|xfill|xinitial|xmargin|xmaximum|xminimum|xoffset|xofsset|xpadding|xpos|xsize|xzoom|yadjustment|yalign|yanchor|yanchoraround|yaround|ycenter|yfill|yinitial|ymargin|ymaximum|yminimum|yoffset|ypadding|ypos|ysize|ysizexysize|yzoom|zoom|zorder)\b/,tag:/\b(?:bar|block|button|buttoscreenn|drag|draggroup|fixed|frame|grid|[hv]box|hotbar|hotspot|image|imagebutton|imagemap|input|key|label|menu|mm_menu_frame|mousearea|nvl|parallel|screen|self|side|tag|text|textbutton|timer|vbar|viewport|window)\b|\$/,keyword:/\b(?:None|add|adjustment|alignaround|allow|angle|animation|around|as|assert|behind|box_layout|break|build|cache|call|center|changed|child_size|choice|circles|class|clear|clicked|clipping|clockwise|config|contains|continue|corner1|corner2|counterclockwise|def|default|define|del|delay|disabled|disabled_text|dissolve|elif|else|event|except|exclude|exec|expression|fade|finally|for|from|function|global|gm_root|has|hide|id|if|import|in|init|is|jump|knot|lambda|left|less_rounded|mm_root|movie|music|null|on|onlayer|pass|pause|persistent|play|print|python|queue|raise|random|renpy|repeat|return|right|rounded_window|scene|scope|set|show|slow|slow_abortable|slow_done|sound|stop|store|style|style_group|substitute|suffix|theme|transform|transform_anchor|transpose|try|ui|unhovered|updater|use|voice|while|widget|widget_hover|widget_selected|widget_text|yield)\b/,boolean:/\b(?:[Ff]alse|[Tt]rue)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:and|at|not|or|with)\b/,punctuation:/[{}[\];(),.:]/},e.languages.rpy=e.languages.renpy}});export{a}; diff --git a/build/_shared/chunk-6C4I5DOZ.js b/build/_shared/chunk-6C4I5DOZ.js new file mode 100644 index 00000000..d2019dd9 --- /dev/null +++ b/build/_shared/chunk-6C4I5DOZ.js @@ -0,0 +1 @@ +import{c as x}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var $=x((S,h)=>{h.exports=f;f.displayName="markdown";f.aliases=["md"];function f(k){(function(e){var _=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function d(n){return n=n.replace(//g,function(){return _}),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+n+")")}var g=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,p=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,function(){return g}),c=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+p+c+"(?:"+p+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+p+c+")(?:"+p+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(g),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+p+")"+c+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+p+"$"),inside:{"table-header":{pattern:RegExp(g),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:d(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:d(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:d(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:d(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach(function(n){["url","bold","italic","strike","code-snippet"].forEach(function(t){n!==t&&(e.languages.markdown[n].inside.content.inside[t]=e.languages.markdown[t])})}),e.hooks.add("after-tokenize",function(n){if(n.language!=="markdown"&&n.language!=="md")return;function t(i){if(!(!i||typeof i=="string"))for(var a=0,u=i.length;a",quot:'"'},y=String.fromCodePoint||String.fromCharCode;function v(n){var t=n.replace(m,"");return t=t.replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,function(i,a){if(a=a.toLowerCase(),a[0]==="#"){var u;return a[1]==="x"?u=parseInt(a.slice(2),16):u=Number(a.slice(1)),y(u)}else{var o=w[a];return o||i}}),t}e.languages.md=e.languages.markdown})(k)}});export{$ as a}; diff --git a/build/_shared/chunk-6CIIHH5P.js b/build/_shared/chunk-6CIIHH5P.js new file mode 100644 index 00000000..206a8019 --- /dev/null +++ b/build/_shared/chunk-6CIIHH5P.js @@ -0,0 +1 @@ +import{c as N}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var A=N((I,T)=>{T.exports=E;E.displayName="fortran";E.aliases=[];function E(L){L.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\b\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:[ \t]*!.*(?:\r\n?|\n)|(?![ \t]*!))|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:FALSE|TRUE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:CHARACTER|COMPLEX|DOUBLE ?PRECISION|INTEGER|LOGICAL|REAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEIF|ELSEWHERE|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/}}});export{A as a}; diff --git a/build/_shared/chunk-6CW6LJH2.js b/build/_shared/chunk-6CW6LJH2.js new file mode 100644 index 00000000..095d0b5e --- /dev/null +++ b/build/_shared/chunk-6CW6LJH2.js @@ -0,0 +1 @@ +import{c as s}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=s((n,t)=>{t.exports=e;e.displayName="mizar";e.aliases=[];function e(i){i.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|end|environ|equals|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:ies|y)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\b\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/}}});export{r as a}; diff --git a/build/_shared/chunk-6F7QVDWG.js b/build/_shared/chunk-6F7QVDWG.js new file mode 100644 index 00000000..0fa6774b --- /dev/null +++ b/build/_shared/chunk-6F7QVDWG.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=r((o,t)=>{t.exports=e;e.displayName="splunkSpl";e.aliases=[];function e(a){a.languages["splunk-spl"]={comment:/`comment\("(?:\\.|[^\\"])*"\)`/,string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0},keyword:/\b(?:abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|anomalydetection|append|appendcols|appendcsv|appendlookup|appendpipe|arules|associate|audit|autoregress|bin|bucket|bucketdir|chart|cluster|cofilter|collect|concurrency|contingency|convert|correlate|datamodel|dbinspect|dedup|delete|delta|diff|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geom|geomfilter|geostats|head|highlight|history|iconify|input|inputcsv|inputlookup|iplocation|join|kmeans|kv|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|mcollect|metadata|metasearch|meventcollect|mstats|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|timewrap|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|union|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\b/i,"operator-word":{pattern:/\b(?:and|as|by|not|or|xor)\b/i,alias:"operator"},function:/\b\w+(?=\s*\()/,property:/\b\w+(?=\s*=(?!=))/,date:{pattern:/\b\d{1,2}\/\d{1,2}\/\d{1,4}(?:(?::\d{1,2}){3})?\b/,alias:"number"},number:/\b\d+(?:\.\d+)?\b/,boolean:/\b(?:f|false|t|true)\b/i,operator:/[<>=]=?|[-+*/%|]/,punctuation:/[()[\],]/}}});export{s as a}; diff --git a/build/_shared/chunk-6FEZWRIS.js b/build/_shared/chunk-6FEZWRIS.js new file mode 100644 index 00000000..2791c9aa --- /dev/null +++ b/build/_shared/chunk-6FEZWRIS.js @@ -0,0 +1,13 @@ +import{b as Vt}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function va(n){if(n<768)return!1;for(let t=0,e=$s.length;;){let i=t+e>>1;if(n<$s[i])e=i;else if(n>=Zr[i])t=i+1;else return!0;if(t==e)return!1}}function Xr(n){return n>=127462&&n<=127487}function to(n,t,e=!0,i=!0){return(e?eo:Sa)(n,t,i)}function eo(n,t,e){if(t==n.length)return t;t&&io(n.charCodeAt(t))&&so(n.charCodeAt(t-1))&&t--;let i=js(n,t);for(t+=Qr(i);t=0&&Xr(js(n,o));)r++,o-=2;if(r%2==0)break;t+=2}else break}return t}function Sa(n,t,e){for(;t>0;){let i=eo(n,t-2,e);if(i=56320&&n<57344}function so(n){return n>=55296&&n<56320}function Qr(n){return n<65536?1:2}var $s,Zr,Jr,no=Vt(()=>{$s=[],Zr=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(t=>t?parseInt(t,36):1);for(let t=0,e=0;t=e&&(h>i&&(l=l.slice(0,i-s)),s=56320&&n<57344}function Ma(n){return n>=55296&&n<56320}function on(n,t){let e=n.charCodeAt(t);if(!Ma(e)||t+1==n.length)return e;let i=n.charCodeAt(t+1);return Aa(i)?(e-55296<<10)+(i-56320)+65536:e}function Wu(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function fo(n){return n<65536?1:2}function ht(n,t,e,i=!1){if(t==0&&e<=0)return;let s=n.length-2;s>=0&&e<=0&&e==n[s+1]?n[s]+=t:s>=0&&t==0&&n[s]==0?n[s+1]+=e:i?(n[s]+=t,n[s+1]+=e):n.push(t,e)}function oe(n,t,e){if(e.length==0)return;let i=t.length-2>>1;if(i>1])),!(e||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],h=n.sections[o++];t(s,a,r,f,c),s=a,r=f}}}function Xs(n,t,e,i=!1){let s=[],r=i?[]:null,o=new ve(n),l=new ve(t);for(let h=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let a=Math.min(o.len,l.len);ht(s,a,-1),o.forward(a),l.forward(a)}else if(l.ins>=0&&(o.ins<0||h==o.i||o.off==0&&(l.len=0&&h=0){let a=0,f=o.len;for(;f;)if(l.ins==-1){let c=Math.min(f,l.len);a+=c,f-=c,l.forward(c)}else if(l.ins==0&&l.lenh||o.ins>=0&&o.len>h)&&(l||i.length>a),r.forward2(h),o.forward(h)}}}}function uo(n,t){for(let e of n.ranges)if(e.to>t)throw new RangeError("Selection points outside of document")}function hn(n,t){return n==t||n.length==t.length&&n.every((e,i)=>e===t[i])}function oo(n,t,e){if(n.length!=t.length)return!1;for(let i=0;in[h.id]),s=e.map(h=>h.type),r=i.filter(h=>!(h&1)),o=n[t.id]>>1;function l(h){let a=[];for(let f=0;fnew Yi(t,n)}function Da(n,t,e){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let h=s.get(o);if(h!=null){if(h<=l)return;let a=i[h].indexOf(o);a>-1&&i[h].splice(a,1),o instanceof ai&&e.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let a of o)r(a,l);else if(o instanceof ai){if(e.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let a=t.get(o.compartment)||o.inner;e.set(o.compartment,a),r(a,l)}else if(o instanceof Yi)r(o.inner,o.prec);else if(o instanceof pt)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Ve)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,xe.default);else{let a=o.extension;if(!a)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(a,l)}}return r(n,xe.default),i.reduce((o,l)=>o.concat(l))}function hi(n,t){if(t&1)return 2;let e=t>>1,i=n.status[e];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[e]=4;let s=n.computeSlot(n,n.config.dynamicSlots[e]);return n.status[e]=2|s}function Gi(n,t){return t&1?n.config.staticValues[t>>1]:n.values[t>>1]}function Oa(n,t){let e=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof it?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof it?n=r[0]:n=ko(t,We(r),!1)}return n}function Ra(n){let t=n.startState,e=t.facet(yo),i=n;for(let s=e.length-1;s>=0;s--){let r=e[s](n);r&&Object.keys(r).length&&(i=wo(i,en(t,r,n.changes.newLength),!0))}return i==n?n:it.create(t,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}function We(n){return n==null?Ea:Array.isArray(n)?n:[n]}function Na(n){if(sn)return sn.test(n);for(let t=0;t"\x80"&&(e.toUpperCase()!=e.toLowerCase()||Ba.test(e)))return!0}return!1}function La(n){return t=>{if(!/\S/.test(t))return Wt.Space;if(Na(t))return Wt.Word;for(let e=0;e-1)return Wt.Word;return Wt.Other}}function Ae(n,t,e={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],l=i[r];if(l===void 0)i[r]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(e,r))i[r]=e[r](l,o);else throw new Error("Config merge conflict for field "+r)}for(let s in t)i[s]===void 0&&(i[s]=t[s]);return i}function nn(n,t){return n.from-t.from||n.value.startSide-t.value.startSide}function Ia(n){if(n.length>1)for(let t=n[0],e=1;e0)return n.slice().sort(nn);t=i}return n}function lo(n,t,e){let i=new Map;for(let r of n)for(let o=0;o=n.length)break;let s=n[i];if(i+1=0&&(s=n[i+1],i++),e.compare(s)<0)break;n[i]=e,n[t]=s,t=i}}function ho(n,t,e,i,s,r){n.goto(t),e.goto(i);let o=i+s,l=i,h=i-t;for(;;){let a=n.to+h-e.to,f=a||n.endSide-e.endSide,c=f<0?n.to+h:e.to,u=Math.min(c,o);if(n.point||e.point?n.point&&e.point&&(n.point==e.point||n.point.eq(e.point))&&rn(n.activeForPoint(n.to),e.activeForPoint(e.to))||r.comparePoint(l,u,n.point,e.point):u>l&&!rn(n.active,e.active)&&r.compareRange(l,u,n.active,e.active),c>o)break;(a||n.openEnd!=e.openEnd)&&r.boundChange&&r.boundChange(c),l=c,f<=0&&n.next(),f>=0&&e.next()}}function rn(n,t){if(n.length!=t.length)return!1;for(let e=0;e=t;i--)n[i+1]=n[i];n[t]=e}function ao(n,t){let e=-1,i=1e9;for(let s=0;s=t)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?e-r%e:1,s=Rt(n,s)}return i===!0?-1:n.length}var F,G,Ct,ke,Ui,_i,_s,Ys,dt,Pt,Q,ve,te,A,ln,T,Ve,qi,pt,xe,$e,Yi,Ke,ai,je,po,Qs,go,mo,bo,yo,xo,ee,Zs,tn,U,it,Ea,Wt,Ba,sn,I,ie,Se,fi,L,Et,Xi,Ce,we,an=Vt(()=>{no();F=class{lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,i){[t,e]=qe(this,t,e);let s=[];return this.decompose(0,t,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(e,this.length,s,1),Ct.from(s,this.length-(e-t)+i.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){[t,e]=qe(this,t,e);let i=[];return this.decompose(t,e,i,0),Ct.from(i,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),s=new ke(this),r=new ke(t);for(let o=e,l=e;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(t=1){return new ke(this,t)}iterRange(t,e=this.length){return new Ui(this,t,e)}iterLines(t,e){let i;if(t==null)i=this.iter();else{e==null&&(e=this.lines+1);let s=this.line(t).from;i=this.iterRange(s,Math.max(s,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new _i(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}constructor(){}static of(t){if(t.length==0)throw new RangeError("A document must have at least one line");return t.length==1&&!t[0]?F.empty:t.length<=32?new G(t):Ct.from(G.split(t,[]))}},G=class extends F{constructor(t,e=Ca(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((e?i:l)>=t)return new _s(s,l,i,o);s=l+1,i++}}decompose(t,e,i,s){let r=t<=0&&e>=this.length?this:new G(ro(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(s&1){let o=i.pop(),l=$i(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new G(l,o.length+r.length));else{let h=l.length>>1;i.push(new G(l.slice(0,h)),new G(l.slice(h)))}}else i.push(r)}replace(t,e,i){if(!(i instanceof G))return super.replace(t,e,i);[t,e]=qe(this,t,e);let s=$i(this.text,$i(i.text,ro(this.text,0,t)),e),r=this.length+i.length-(e-t);return s.length<=32?new G(s,r):Ct.from(G.split(s,[]),r)}sliceString(t,e=this.length,i=` +`){[t,e]=qe(this,t,e);let s="";for(let r=0,o=0;r<=e&&ot&&o&&(s+=i),tr&&(s+=l.slice(Math.max(0,t-r),e-r)),r=h+1}return s}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,e){let i=[],s=-1;for(let r of t)i.push(r),s+=r.length+1,i.length==32&&(e.push(new G(i,s)),i=[],s=-1);return s>-1&&e.push(new G(i,s)),e}},Ct=class extends F{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let i of t)this.lines+=i.lines}lineInner(t,e,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,h=i+o.lines-1;if((e?h:l)>=t)return o.lineInner(t,e,i,s);s=l+1,i=h+1}}decompose(t,e,i,s){for(let r=0,o=0;o<=e&&r=o){let a=s&((o<=t?1:0)|(h>=e?2:0));o>=t&&h<=e&&!a?i.push(l):l.decompose(t-o,e-o,i,a)}o=h+1}}replace(t,e,i){if([t,e]=qe(this,t,e),i.lines=r&&e<=l){let h=o.replace(t-r,e-r,i),a=this.lines-o.lines+h.lines;if(h.lines>5-1&&h.lines>a>>5+1){let f=this.children.slice();return f[s]=h,new Ct(f,this.length-(e-t)+i.length)}return super.replace(r,l,h)}r=l+1}return super.replace(t,e,i)}sliceString(t,e=this.length,i=` +`){[t,e]=qe(this,t,e);let s="";for(let r=0,o=0;rt&&r&&(s+=i),to&&(s+=l.sliceString(t-o,e-o,i)),o=h+1}return s}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof Ct))return 0;let i=0,[s,r,o,l]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;s+=e,r+=e){if(s==o||r==l)return i;let h=this.children[s],a=t.children[r];if(h!=a)return i+h.scanIdentical(a,e);i+=h.length+1}}static from(t,e=t.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of t)i+=d.lines;if(i<32){let d=[];for(let p of t)p.flatten(d);return new G(d,e)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],h=0,a=-1,f=[];function c(d){let p;if(d.lines>r&&d instanceof Ct)for(let g of d.children)c(g);else d.lines>o&&(h>o||!h)?(u(),l.push(d)):d instanceof G&&h&&(p=f[f.length-1])instanceof G&&d.lines+p.lines<=32?(h+=d.lines,a+=d.length+1,f[f.length-1]=new G(p.text.concat(d.text),p.length+1+d.length)):(h+d.lines>s&&u(),h+=d.lines,a+=d.length+1,f.push(d))}function u(){h!=0&&(l.push(f.length==1?f[0]:Ct.from(f,a)),a=-1,h=f.length=0)}for(let d of t)c(d);return u(),l.length==1?l[0]:new Ct(l,e)}};F.empty=new G([""],0);ke=class{constructor(t,e=1){this.dir=e,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[t],this.offsets=[e>0?1:(t instanceof G?t.text.length:t.children.length)<<1]}nextInner(t,e){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof G?s.text.length:s.children.length;if(o==(e>0?l:0)){if(i==0)return this.done=!0,this.value="",this;e>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(e>0?0:1)){if(this.offsets[i]+=e,t==0)return this.lineBreak=!0,this.value=` +`,this;t--}else if(s instanceof G){let h=s.text[o+(e<0?-1:0)];if(this.offsets[i]+=e,h.length>Math.max(0,t))return this.value=t==0?h:e>0?h.slice(t):h.slice(0,h.length-t),this;t-=h.length}else{let h=s.children[o+(e<0?-1:0)];t>h.length?(t-=h.length,this.offsets[i]+=e):(e<0&&this.offsets[i]--,this.nodes.push(h),this.offsets.push(e>0?1:(h instanceof G?h.text.length:h.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}},Ui=class{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new ke(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:s}=this.cursor.next(t);return this.pos+=(s.length+t)*e,this.value=s.length<=i?s:e<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},_i=class{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:s}=this.inner.next(t);return e&&this.afterBreak?(this.value="",this.afterBreak=!1):e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(F.prototype[Symbol.iterator]=function(){return this.iter()},ke.prototype[Symbol.iterator]=Ui.prototype[Symbol.iterator]=_i.prototype[Symbol.iterator]=function(){return this});_s=class{constructor(t,e,i,s){this.from=t,this.to=e,this.number=i,this.text=s}get length(){return this.to-this.from}};Ys=/\r\n?|\n/,dt=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(dt||(dt={})),Pt=class{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return r+(t-s);r+=l}else{if(i!=dt.Simple&&a>=t&&(i==dt.TrackDel&&st||i==dt.TrackBefore&&st))return null;if(a>t||a==t&&e<0&&!l)return t==s||e<0?r:r+h;r+=h}s=a}if(t>s)throw new RangeError(`Position ${t} is out of range for changeset of length ${s}`);return r}touchesRange(t,e=t){for(let i=0,s=0;i=0&&s<=e&&l>=t)return se?"cover":!0;s=l}return!1}toString(){let t="";for(let e=0;e=0?":"+s:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(e=>typeof e!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Pt(t)}static create(t){return new Pt(t)}},Q=class extends Pt{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return Gs(this,(e,i,s,r,o)=>t=t.replace(s,s+(i-e),o),!1),t}mapDesc(t,e=!1){return Xs(this,t,e,!0)}invert(t){let e=this.sections.slice(),i=[];for(let s=0,r=0;s=0){e[s]=l,e[s+1]=o;let h=s>>1;for(;i.length0&&oe(i,e,r.text),r.forward(f),l+=f}let a=t[o++];for(;l>1].toJSON()))}return t}static of(t,e,i){let s=[],r=[],o=0,l=null;function h(f=!1){if(!f&&!s.length)return;ou||c<0||u>e)throw new RangeError(`Invalid change range ${c} to ${u} (in doc of length ${e})`);let p=d?typeof d=="string"?F.of(d.split(i||Ys)):d:F.empty,g=p.length;if(c==u&&g==0)return;co&&ht(s,c-o,-1),ht(s,u-c,g),oe(r,s,p),o=u}}return a(t),h(!l),l}static empty(t){return new Q(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");let e=[],i=[];for(let s=0;sl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)e.push(r[0],0);else{for(;i.length>1;return e>=t.length?F.empty:t[e]}textBit(t){let{inserted:e}=this.set,i=this.i-2>>1;return i>=e.length&&!t?F.empty:e[i].slice(this.off,t==null?void 0:this.off+t)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){this.ins==-1?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}},te=class{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let t=this.flags&7;return t==7?null:t}get goalColumn(){let t=this.flags>>6;return t==16777215?void 0:t}map(t,e=-1){let i,s;return this.empty?i=s=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),s=t.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new te(i,s,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return A.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return A.range(this.anchor,i)}eq(t,e=!1){return this.anchor==t.anchor&&this.head==t.head&&(!e||!this.empty||this.assoc==t.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||typeof t.anchor!="number"||typeof t.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return A.range(t.anchor,t.head)}static create(t,e,i){return new te(t,e,i)}},A=class{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:A.create(this.ranges.map(i=>i.map(t,e)),this.mainIndex)}eq(t,e=!1){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let i=0;it.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!="number"||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new A(t.ranges.map(e=>te.fromJSON(e)),t.main)}static single(t,e=t){return new A([A.range(t,e)],0)}static create(t,e=0){if(t.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;st?8:0)|r)}static normalized(t,e=0){let i=t[e];t.sort((s,r)=>s.from-r.from),e=t.indexOf(i);for(let s=1;sr.head?A.range(h,l):A.range(l,h))}}return new A(t,e)}};ln=0,T=class{constructor(t,e,i,s,r){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=s,this.id=ln++,this.default=t([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(t={}){return new T(t.combine||(e=>e),t.compareInput||((e,i)=>e===i),t.compare||(t.combine?(e,i)=>e===i:hn),!!t.static,t.enables)}of(t){return new Ve([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ve(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can't compute a static facet");return new Ve(t,this,2,e)}from(t,e){return e||(e=i=>i),this.compute([t],i=>e(i.field(t)))}};Ve=class{constructor(t,e,i,s){this.dependencies=t,this.facet=e,this.type=i,this.value=s,this.id=ln++}dynamicSlot(t){var e;let i=this.value,s=this.facet.compareInput,r=this.id,o=t[r]>>1,l=this.type==2,h=!1,a=!1,f=[];for(let c of this.dependencies)c=="doc"?h=!0:c=="selection"?a=!0:((e=t[c.id])!==null&&e!==void 0?e:1)&1||f.push(t[c.id]);return{create(c){return c.values[o]=i(c),1},update(c,u){if(h&&u.docChanged||a&&(u.docChanged||u.selection)||Js(c,f)){let d=i(c);if(l?!oo(d,c.values[o],s):!s(d,c.values[o]))return c.values[o]=d,1}return 0},reconfigure:(c,u)=>{let d,p=u.config.address[r];if(p!=null){let g=Gi(u,p);if(this.dependencies.every(m=>m instanceof T?u.facet(m)===c.facet(m):m instanceof pt?u.field(m,!1)==c.field(m,!1):!0)||(l?oo(d=i(c),g,s):s(d=i(c),g)))return c.values[o]=g,0}else d=i(c);return c.values[o]=d,1}}}};qi=T.define({static:!0}),pt=class{constructor(t,e,i,s,r){this.id=t,this.createF=e,this.updateF=i,this.compareF=s,this.spec=r,this.provides=void 0}static define(t){let e=new pt(ln++,t.create,t.update,t.compare||((i,s)=>i===s),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(qi).find(i=>i.field==this);return(e?.create||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:i=>(i.values[e]=this.create(i),1),update:(i,s)=>{let r=i.values[e],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[e]=o,1)},reconfigure:(i,s)=>{let r=i.facet(qi),o=s.facet(qi),l;return(l=r.find(h=>h.field==this))&&l!=o.find(h=>h.field==this)?(i.values[e]=l.create(i),1):s.config.address[this.id]!=null?(i.values[e]=s.field(this),0):(i.values[e]=this.create(i),1)}}}init(t){return[this,qi.of({field:this,create:t})]}get extension(){return this}},xe={lowest:4,low:3,default:2,high:1,highest:0};$e={highest:li(xe.highest),high:li(xe.high),default:li(xe.default),low:li(xe.low),lowest:li(xe.lowest)},Yi=class{constructor(t,e){this.inner=t,this.prec=e}},Ke=class{of(t){return new ai(this,t)}reconfigure(t){return Ke.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}},ai=class{constructor(t,e){this.compartment=t,this.inner=e}},je=class{constructor(t,e,i,s,r,o){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let s=[],r=Object.create(null),o=new Map;for(let u of Da(t,e,o))u instanceof pt?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),h=[],a=[];for(let u of s)l[u.id]=a.length<<1,a.push(d=>u.slot(d));let f=i?.config.facets;for(let u in r){let d=r[u],p=d[0].facet,g=f&&f[u]||[];if(d.every(m=>m.type==0))if(l[p.id]=h.length<<1|1,hn(g,d))h.push(i.facet(p));else{let m=p.combine(d.map(b=>b.value));h.push(i&&p.compare(m,i.facet(p))?i.facet(p):m)}else{for(let m of d)m.type==0?(l[m.id]=h.length<<1|1,h.push(m.value)):(l[m.id]=a.length<<1,a.push(b=>m.dynamicSlot(b)));l[p.id]=a.length<<1,a.push(m=>Ta(m,p,d))}}let c=a.map(u=>u(l));return new je(t,o,c,l,h,r)}};po=T.define(),Qs=T.define({combine:n=>n.some(t=>t),static:!0}),go=T.define({combine:n=>n.length?n[0]:void 0,static:!0}),mo=T.define(),bo=T.define(),yo=T.define(),xo=T.define({combine:n=>n.length?n[0]:!1}),ee=class{constructor(t,e){this.type=t,this.value=e}static define(){return new Zs}},Zs=class{of(t){return new ee(this,t)}},tn=class{constructor(t){this.map=t}of(t){return new U(this,t)}},U=class{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return e===void 0?void 0:e==this.value?this:new U(this.type,e)}is(t){return this.type==t}static define(t={}){return new tn(t.map||(e=>e))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let s of t){let r=s.map(e);r&&i.push(r)}return i}};U.reconfigure=U.define();U.appendConfig=U.define();it=class{constructor(t,e,i,s,r,o){this.startState=t,this.changes=e,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&uo(i,e.newLength),r.some(l=>l.type==it.time)||(this.annotations=r.concat(it.time.of(Date.now())))}static create(t,e,i,s,r,o){return new it(t,e,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(it.userEvent);return!!(e&&(e==t||e.length>t.length&&e.slice(0,t.length)==t&&e[t.length]=="."))}};it.time=ee.define();it.userEvent=ee.define();it.addToHistory=ee.define();it.remote=ee.define();Ea=[];Wt=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(Wt||(Wt={})),Ba=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;try{sn=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}I=class{constructor(t,e,i,s,r,o){this.config=t,this.doc=e,this.selection=i,this.values=s,this.status=t.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ls.set(a,h)),e=null),s.set(l.value.compartment,l.value.extension)):l.is(U.reconfigure)?(e=null,i=l.value):l.is(U.appendConfig)&&(e=null,i=We(i).concat(l.value));let r;e?r=t.startState.values.slice():(e=je.resolve(i,s,this),r=new I(e,this.doc,this.selection,e.dynamicSlots.map(()=>null),(h,a)=>a.reconfigure(h,this),null).values);let o=t.startState.facet(Qs)?t.newSelection:t.newSelection.asSingle();new I(e,t.newDoc,o,r,(l,h)=>h.update(l,t),t)}replaceSelection(t){return typeof t=="string"&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:A.cursor(e.from+t.length)}))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),s=this.changes(i.changes),r=[i.range],o=We(i.effects);for(let l=1;lo.spec.fromJSON(l,h)))}}return I.create({doc:t.doc,selection:A.fromJSON(t.selection),extensions:e.extensions?s.concat([e.extensions]):s})}static create(t={}){let e=je.resolve(t.extensions||[],new Map),i=t.doc instanceof F?t.doc:F.of((t.doc||"").split(e.staticFacet(I.lineSeparator)||Ys)),s=t.selection?t.selection instanceof A?t.selection:A.single(t.selection.anchor,t.selection.head):A.single(0);return uo(s,i.length),e.staticFacet(Qs)||(s=s.asSingle()),new I(e,i,s,e.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(I.tabSize)}get lineBreak(){return this.facet(I.lineSeparator)||` +`}get readOnly(){return this.facet(xo)}phrase(t,...e){for(let i of this.facet(I.phrases))if(Object.prototype.hasOwnProperty.call(i,t)){t=i[t];break}return e.length&&(t=t.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>e.length?i:e[r-1]})),t}languageDataAt(t,e,i=-1){let s=[];for(let r of this.facet(po))for(let o of r(this,e,i))Object.prototype.hasOwnProperty.call(o,t)&&s.push(o[t]);return s}charCategorizer(t){return La(this.languageDataAt("wordChars",t).join(""))}wordAt(t){let{text:e,from:i,length:s}=this.doc.lineAt(t),r=this.charCategorizer(t),o=t-i,l=t-i;for(;o>0;){let h=Rt(e,o,!1);if(r(e.slice(h,o))!=Wt.Word)break;o=h}for(;ln.length?n[0]:4});I.lineSeparator=go;I.readOnly=xo;I.phrases=T.define({compare(n,t){let e=Object.keys(n),i=Object.keys(t);return e.length==i.length&&e.every(s=>n[s]==t[s])}});I.languageData=po;I.changeFilter=mo;I.transactionFilter=bo;I.transactionExtender=yo;Ke.reconfigure=U.define();ie=class{eq(t){return this==t}range(t,e=t){return Se.create(t,e,this)}};ie.prototype.startSide=ie.prototype.endSide=0;ie.prototype.point=!1;ie.prototype.mapMode=dt.TrackDel;Se=class{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new Se(t,e,i)}};fi=class{constructor(t,e,i,s){this.from=t,this.to=e,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,s=0){let r=i?this.to:this.from;for(let o=s,l=r.length;;){if(o==l)return o;let h=o+l>>1,a=r[h]-t||(i?this.value[h].endSide:this.value[h].startSide)-e;if(h==o)return a>=0?o:l;a>=0?l=h:o=h+1}}between(t,e,i,s){for(let r=this.findIndex(e,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rd||u==d&&a.startSide>0&&a.endSide<=0)continue;(d-u||a.endSide-a.startSide)<0||(o<0&&(o=u),a.point&&(l=Math.max(l,d-u)),i.push(a),s.push(u-o),r.push(d-o))}return{mapped:i.length?new fi(s,r,i,l):null,pos:o}}},L=class{constructor(t,e,i,s){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=s}static create(t,e,i,s){return new L(t,e,i,s)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=t,o=t.filter;if(e.length==0&&!o)return this;if(i&&(e=e.slice().sort(nn)),this.isEmpty)return e.length?L.of(e):this;let l=new Xi(this,null,-1).goto(0),h=0,a=[],f=new Et;for(;l.value||h=0){let c=e[h++];f.addInner(c.from,c.to,c.value)||a.push(c)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||rl.to||r=r&&t<=r+o.length&&o.between(r,t-r,e-r,i)===!1)return}this.nextLayer.between(t,e,i)}}iter(t=0){return Ce.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Ce.from(t).goto(e)}static compare(t,e,i,s,r=-1){let o=t.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=r),l=e.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=r),h=lo(o,l,i),a=new we(o,h,r),f=new we(l,h,r);i.iterGaps((c,u,d)=>ho(a,c,f,u,d,s)),i.empty&&i.length==0&&ho(a,0,f,0,0,s)}static eq(t,e,i=0,s){s==null&&(s=1e9-1);let r=t.filter(f=>!f.isEmpty&&e.indexOf(f)<0),o=e.filter(f=>!f.isEmpty&&t.indexOf(f)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let l=lo(r,o),h=new we(r,l,0).goto(i),a=new we(o,l,0).goto(i);for(;;){if(h.to!=a.to||!rn(h.active,a.active)||h.point&&(!a.point||!h.point.eq(a.point)))return!1;if(h.to>s)return!0;h.next(),a.next()}}static spans(t,e,i,s,r=-1){let o=new we(t,null,r).goto(e),l=e,h=o.openStart;for(;;){let a=Math.min(o.to,i);if(o.point){let f=o.activeForPoint(o.to),c=o.pointFroml&&(s.span(l,a,o.active,h),h=o.openEnd(a));if(o.to>i)return h+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(t,e=!1){let i=new Et;for(let s of t instanceof Se?[t]:e?Ia(t):t)i.add(s.from,s.to,s.value);return i.finish()}static join(t){if(!t.length)return L.empty;let e=t[t.length-1];for(let i=t.length-2;i>=0;i--)for(let s=t[i];s!=L.empty;s=s.nextLayer)e=new L(s.chunkPos,s.chunk,e,Math.max(s.maxPoint,e.maxPoint));return e}};L.empty=new L([],[],null,-1);L.empty.nextLayer=L.empty;Et=class{finishChunk(t){this.chunks.push(new fi(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new Et)).add(t,e,i)}addInner(t,e,i){let s=t-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(L.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return t;let e=L.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}};Xi=class{constructor(t,e,i,s=0){this.layer=t,this.skip=e,this.minPoint=i,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(t,e=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(t,e,!1),this}gotoInner(t,e,i){for(;this.chunkIndex=this.minPoint)break}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&s.push(new Xi(o,e,i,r));return s.length==1?s[0]:new Ce(s)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let i=this.heap.length>>1;i>=0;i--)Us(this.heap,i);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let i=this.heap.length>>1;i>=0;i--)Us(this.heap,i);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),Us(this.heap,0)}}};we=class{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ce.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){Ki(this.active,t),Ki(this.activeTo,t),Ki(this.activeRank,t),this.minActive=ao(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:s,rank:r}=this.cursor;for(;e0;)e++;ji(this.active,e,i),ji(this.activeTo,e,s),ji(this.activeRank,e,r),t&&ji(t,e,this.cursor.from),this.minActive=ao(this.active,this.activeTo)}next(){let t=this.to,e=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>t){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&Ki(i,s)}else if(this.cursor.value)if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[s]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}}});var fn,vo,cn,So,At,Co,un,dn=Vt(()=>{fn="\u037C",vo=typeof Symbol>"u"?"__"+fn:Symbol.for(fn),cn=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),So=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},At=class{constructor(t,e){this.rules=[];let{finish:i}=e||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,l,h,a){let f=[],c=/^@(\w+)\b/.exec(o[0]),u=c&&c[1]=="keyframes";if(c&&l==null)return h.push(o[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))r(d.split(/,\s*/).map(g=>o.map(m=>g.replace(/&/,m))).reduce((g,m)=>g.concat(m)),p,h);else if(p&&typeof p=="object"){if(!c)throw new RangeError("The value of a property ("+d+") should be a primitive value.");r(s(d),p,f,u)}else p!=null&&f.push(d.replace(/_.*/,"").replace(/[A-Z]/g,g=>"-"+g.toLowerCase())+": "+p+";")}(f.length||u)&&h.push((i&&!c&&!a?o.map(i):o).join(", ")+" {"+f.join(" ")+"}")}for(let o in t)r(s(o),t[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let t=So[vo]||1;return So[vo]=t+1,fn+t.toString(36)}static mount(t,e,i){let s=t[cn],r=i&&i.nonce;s?r&&s.setNonce(r):s=new un(t,r),s.mount(Array.isArray(e)?e:[e],t)}},Co=new Map,un=class{constructor(t,e){let i=t.ownerDocument||t,s=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&s.CSSStyleSheet){let r=Co.get(i);if(r)return t[cn]=r;this.sheet=new s.CSSStyleSheet,Co.set(i,this)}else this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);this.modules=[],t[cn]=this}mount(t,e){let i=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(h,1),r--,h=-1),h==-1){if(this.modules.splice(r++,0,l),i)for(let a=0;a{se={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Ue={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Fa=typeof navigator<"u"&&/Mac/.test(navigator.platform),Ha=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(Z=0;Z<10;Z++)se[48+Z]=se[96+Z]=String(Z);for(Z=1;Z<=24;Z++)se[Z+111]="F"+Z;for(Z=65;Z<=90;Z++)se[Z]=String.fromCharCode(Z+32),Ue[Z]=String.fromCharCode(Z);for(Qi in se)Ue.hasOwnProperty(Qi)||(Ue[Qi]=se[Qi])});function To(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var t=1,e=arguments[1];if(e&&typeof e=="object"&&e.nodeType==null&&!Array.isArray(e)){for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var s=e[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}t++}for(;t{});function vi(n){let t;return n.nodeType==11?t=n.getSelection?n:n.ownerDocument:t=n,t.getSelection()}function An(n,t){return t?n==t||n.contains(t.nodeType!=1?t.parentNode:t):!1}function ls(n,t){if(!t.anchorNode)return!1;try{return An(n,t.anchorNode)}catch{return!1}}function Si(n){return n.nodeType==3?Oe(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function mi(n,t,e,i){return e?Bo(n,t,e,i,-1)||Bo(n,t,e,i,1):!1}function De(n){for(var t=0;;t++)if(n=n.previousSibling,!n)return t}function us(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(n.nodeName)}function Bo(n,t,e,i,s){for(;;){if(n==e&&t==i)return!0;if(t==(s<0?0:$t(n))){if(n.nodeName=="DIV")return!1;let r=n.parentNode;if(!r||r.nodeType!=1)return!1;t=De(n)+(s<0?0:1),n=r}else if(n.nodeType==1){if(n=n.childNodes[t+(s<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;t=s<0?$t(n):0}else return!1}}function $t(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}function Ss(n,t){let e=t?n.left:n.right;return{left:e,right:e,top:n.top,bottom:n.bottom}}function za(n){let t=n.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function xl(n,t){let e=t.width/n.offsetWidth,i=t.height/n.offsetHeight;return(e>.995&&e<1.005||!isFinite(e)||Math.abs(t.width-n.offsetWidth)<1)&&(e=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.height-n.offsetHeight)<1)&&(i=1),{scaleX:e,scaleY:i}}function Va(n,t,e,i,s,r,o,l){let h=n.ownerDocument,a=h.defaultView||window;for(let f=n,c=!1;f&&!c;)if(f.nodeType==1){let u,d=f==h.body,p=1,g=1;if(d)u=za(a);else{if(/^(fixed|sticky)$/.test(getComputedStyle(f).position)&&(c=!0),f.scrollHeight<=f.clientHeight&&f.scrollWidth<=f.clientWidth){f=f.assignedSlot||f.parentNode;continue}let x=f.getBoundingClientRect();({scaleX:p,scaleY:g}=xl(f,x)),u={left:x.left,right:x.left+f.clientWidth*p,top:x.top,bottom:x.top+f.clientHeight*g}}let m=0,b=0;if(s=="nearest")t.top0&&t.bottom>u.bottom+b&&(b=t.bottom-u.bottom+o)):t.bottom>u.bottom&&(b=t.bottom-u.bottom+o,e<0&&t.top-b0&&t.right>u.right+m&&(m=t.right-u.right+r)):t.right>u.right&&(m=t.right-u.right+r,e<0&&t.leftu.bottom||t.leftu.right)&&(t={left:Math.max(t.left,u.left),right:Math.min(t.right,u.right),top:Math.max(t.top,u.top),bottom:Math.min(t.bottom,u.bottom)}),f=f.assignedSlot||f.parentNode}else if(f.nodeType==11)f=f.host;else break}function Wa(n){let t=n.ownerDocument,e,i;for(let s=n.parentNode;s&&!(s==t.body||e&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),!e&&s.scrollWidth>s.clientWidth&&(e=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:e,y:i}}function wl(n){if(n.setActive)return n.setActive();if(Me)return n.focus(Me);let t=[];for(let e=n;e&&(t.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(n.focus(Me==null?{get preventScroll(){return Me={preventScroll:!0},!0}}:void 0),!Me){Me=!1;for(let e=0;eMath.max(1,n.scrollHeight-n.clientHeight-4)}function Sl(n,t){for(let e=n,i=t;;){if(e.nodeType==3&&i>0)return{node:e,offset:i};if(e.nodeType==1&&i>0){if(e.contentEditable=="false")return null;e=e.childNodes[i-1],i=$t(e)}else if(e.parentNode&&!us(e))i=De(e),e=e.parentNode;else return null}}function Cl(n,t){for(let e=n,i=t;;){if(e.nodeType==3&&i0&&(!o&&r.length&&f.merge(e,f.length,r[0],!1,l,0)?f.breakAfter=r.shift().breakAfter:(ei&&(t=i);let s=t,r=t,o=0;t==0&&e<0||t==i&&e>=0?v.chrome||v.gecko||(t?(s--,o=1):r=0)?0:l.length-1];return v.safari&&!o&&h.width==0&&(h=Array.prototype.find.call(l,a=>a.width)||h),o?Ss(h,o<0):h||null}function Tl(n,t){let e=n.dom,{children:i}=n,s=0;for(let r=0;sr&&t0;r--){let o=i[r-1];if(o.dom.parentNode==e)return o.domAtPos(o.length)}for(let r=s;r0&&t instanceof Lt&&s.length&&(i=s[s.length-1])instanceof Lt&&i.mark.eq(t.mark)?Dl(i,t.children[0],e-1):(s.push(t),t.setParent(n)),n.length+=t.length}function Ol(n,t,e){let i=null,s=-1,r=null,o=-1;function l(a,f){for(let c=0,u=0;c=f&&(d.children.length?l(d,f-u):(!r||r.isHidden&&(e>0||_a(r,d)))&&(p>f||u==p&&d.getSide()>0)?(r=d,o=f-u):(u-1?1:0)!=s.length-(e&&s.indexOf(e)>-1?1:0))return!1;for(let r of i)if(r!=e&&(s.indexOf(r)==-1||n[r]!==t[r]))return!1;return!0}function Dn(n,t,e){let i=!1;if(t)for(let s in t)e&&s in e||(i=!0,s=="style"?n.style.cssText="":n.removeAttribute(s));if(e)for(let s in e)t&&t[s]==e[s]||(i=!0,s=="style"?n.style.cssText=e[s]:n.setAttribute(s,e[s]));return i}function Ya(n){let t=Object.create(null);for(let e=0;e=0&&e[s]+i>=n?e[s]=Math.max(e[s],t):e.push(n,t)}function Zi(n,t){for(let e of t)n=new Lt(e,[n],n.length);return n}function Rl(n){let t=[];for(let e=0;e=0;g-=3)if(qt[g+1]==-d){let m=qt[g+2],b=m&2?s:m&4?m&1?r:s:0;b&&(j[c]=j[qt[g]]=b),l=g;break}}else{if(qt.length==189)break;qt[l++]=c,qt[l++]=u,qt[l++]=h}else if((p=j[c])==2||p==1){let g=p==s;h=g?0:1;for(let m=l-3;m>=0;m-=3){let b=qt[m+2];if(b&2)break;if(g)qt[m+2]|=2;else{if(b&4)break;qt[m+2]|=4}}}}}function ef(n,t,e,i){for(let s=0,r=i;s<=e.length;s++){let o=s?e[s-1].to:n,l=sh;)p==m&&(p=e[--g].from,m=g?e[g-1].to:n),j[--p]=d;h=f}else r=a,h++}}}function Pn(n,t,e,i,s,r,o){let l=i%2?2:1;if(i%2==s%2)for(let h=t,a=0;hh&&o.push(new jt(h,g.from,d));let m=g.direction==Ee!=!(d%2);Rn(n,m?i+1:i,s,g.inner,g.from,g.to,o),h=g.to}p=g.to}else{if(p==e||(f?j[p]!=l:j[p]==l))break;p++}u?Pn(n,h,p,i+1,s,u,o):ht;){let f=!0,c=!1;if(!a||h>r[a-1].to){let g=j[h-1];g!=l&&(f=!1,c=g==16)}let u=!f&&l==1?[]:null,d=f?i:i+1,p=h;t:for(;;)if(a&&p==r[a-1].to){if(c)break t;let g=r[--a];if(!f)for(let m=g.from,b=a;;){if(m==t)break t;if(b&&r[b-1].to==m)m=r[--b].from;else{if(j[m-1]==l)break t;break}}if(u)u.push(g);else{g.toj.length;)j[j.length]=256;let i=[],s=t==Ee?0:1;return Rn(n,s,s,e,0,n.length,i),i}function Nl(n){return[new jt(0,n,0)]}function nf(n,t,e,i,s){var r;let o=i.head-n.from,l=jt.find(t,o,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),h=t[l],a=h.side(s,e);if(o==a){let u=l+=s?1:-1;if(u<0||u>=t.length)return null;h=t[l=u],o=h.side(!s,e),a=h.side(s,e)}let f=Rt(n.text,o,h.forward(s,e));(fh.to)&&(f=a),Ll=n.text.slice(Math.min(o,f),Math.max(o,f));let c=l==(s?t.length-1:0)?null:t[l+(s?1:-1)];return c&&f==a&&c.level+(s?0:1)r instanceof Function?r(n):r),s=[];return L.spans(i,t.from,t.to,{point(){},span(r,o,l,h){let a=r-t.from,f=o-t.from,c=s;for(let u=l.length-1;u>=0;u--,h--){let d=l[u].spec.bidiIsolate,p;if(d==null&&(d=rf(t.text,a,f)),h>0&&c.length&&(p=c[c.length-1]).to==a&&p.direction==d)p.to=f,c=p.inner;else{let g={from:a,to:f,direction:d,inner:[]};c.push(g),c=g.inner}}}}),s}function Xl(n){let t=0,e=0,i=0,s=0;for(let r of n.state.facet(Gl)){let o=r(n);o&&(o.left!=null&&(t=Math.max(t,o.left)),o.right!=null&&(e=Math.max(e,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:t,right:e,top:i,bottom:s}}function lf(n){return n.node.nodeType==1&&n.node.firstChild&&(n.offset==0||n.node.childNodes[n.offset-1].contentEditable=="false")&&(n.offset==n.node.childNodes.length||n.node.childNodes[n.offset].contentEditable=="false")}function Jl(n,t){let e=n.observer.selectionRange;if(!e.focusNode)return null;let i=Sl(e.focusNode,e.focusOffset),s=Cl(e.focusNode,e.focusOffset),r=i||s;if(s&&i&&s.node!=i.node){let l=W.get(s.node);if(!l||l instanceof wt&&l.text!=s.node.nodeValue)r=s;else if(n.docView.lastCompositionAfterCursor){let h=W.get(i.node);!h||h instanceof wt&&h.text!=i.node.nodeValue||(r=s)}}if(n.docView.lastCompositionAfterCursor=r!=i,!r)return null;let o=t-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function hf(n,t,e){let i=Jl(n,e);if(!i)return null;let{node:s,from:r,to:o}=i,l=s.nodeValue;if(/[\n\r]/.test(l)||n.state.doc.sliceString(i.from,i.to)!=l)return null;let h=t.invertedDesc,a=new gt(h.mapPos(r),h.mapPos(o),r,o),f=[];for(let c=s.parentNode;;c=c.parentNode){let u=W.get(c);if(u instanceof Lt)f.push({node:c,deco:u.mark});else{if(u instanceof X||c.nodeName=="DIV"&&c.parentNode==n.contentDOM)return{range:a,text:s,marks:f,line:c};if(c!=n.contentDOM)f.push({node:c,deco:new Pe({inclusive:!0,attributes:Ya(c),tagName:c.tagName.toLowerCase()})});else return null}}}function af(n,t){return n.nodeType!=1?0:(t&&n.childNodes[t-1].contentEditable=="false"?1:0)|(t{it.from&&(e=!0)}),e}function pf(n,t,e=1){let i=n.charCategorizer(t),s=n.doc.lineAt(t),r=t-s.from;if(s.length==0)return A.cursor(t);r==0?e=1:r==s.length&&(e=-1);let o=r,l=r;e<0?o=Rt(s.text,r,!1):l=Rt(s.text,r);let h=i(s.text.slice(o,l));for(;o>0;){let a=Rt(s.text,o,!1);if(i(s.text.slice(a,o))!=h)break;o=a}for(;ln?t.left-n:Math.max(0,n-t.right)}function mf(n,t){return t.top>n?t.top-n:Math.max(0,n-t.bottom)}function gn(n,t){return n.topt.top+1}function Ho(n,t){return tn.bottom?{top:n.top,left:n.left,right:n.right,bottom:t}:n}function Bn(n,t,e){let i,s,r,o,l=!1,h,a,f,c;for(let p=n.firstChild;p;p=p.nextSibling){let g=Si(p);for(let m=0;mS||o==S&&r>x)&&(i=p,s=b,r=x,o=S,l=x?t0:mb.bottom&&(!f||f.bottomb.top)&&(a=p,c=b):f&&gn(f,b)?f=zo(f,b.bottom):c&&gn(c,b)&&(c=Ho(c,b.top))}}if(f&&f.bottom>=e?(i=h,s=f):c&&c.top<=e&&(i=a,s=c),!i)return{node:n,offset:0};let u=Math.max(s.left,Math.min(s.right,t));if(i.nodeType==3)return Vo(i,u,e);if(l&&i.contentEditable!="false")return Bn(i,u,e);let d=Array.prototype.indexOf.call(n.childNodes,i)+(t>=(s.left+s.right)/2?1:0);return{node:n,offset:d}}function Vo(n,t,e){let i=n.nodeValue.length,s=-1,r=1e9,o=0;for(let l=0;le?f.top-e:e-f.bottom)-1;if(f.left-1<=t&&f.right+1>=t&&c=(f.left+f.right)/2,d=u;if(v.chrome||v.gecko){let p=Oe(n,l).getBoundingClientRect();Math.abs(p.left-f.right)<.1&&(d=!u)}if(c<=0)return{node:n,offset:l+(d?1:0)};s=l+(d?1:0),r=c}}}return{node:n,offset:s>-1?s:o>0?n.nodeValue.length:0}}function Ql(n,t,e,i=-1){var s,r;let o=n.contentDOM.getBoundingClientRect(),l=o.top+n.viewState.paddingTop,h,{docHeight:a}=n.viewState,{x:f,y:c}=t,u=c-l;if(u<0)return 0;if(u>a)return n.state.doc.length;for(let D=n.viewState.heightOracle.textHeight/2,y=!1;h=n.elementAtHeight(u),h.type!=ut.Text;)for(;u=i>0?h.bottom+D:h.top-D,!(u>=0&&u<=a);){if(y)return e?null:0;y=!0,i=-i}c=l+u;let d=h.from;if(dn.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:e?null:Wo(n,o,h,f,c);let p=n.dom.ownerDocument,g=n.root.elementFromPoint?n.root:p,m=g.elementFromPoint(f,c);m&&!n.contentDOM.contains(m)&&(m=null),m||(f=Math.max(o.left+1,Math.min(o.right-1,f)),m=g.elementFromPoint(f,c),m&&!n.contentDOM.contains(m)&&(m=null));let b,x=-1;if(m&&((s=n.docView.nearest(m))===null||s===void 0?void 0:s.isEditable)!=!1){if(p.caretPositionFromPoint){let D=p.caretPositionFromPoint(f,c);D&&({offsetNode:b,offset:x}=D)}else if(p.caretRangeFromPoint){let D=p.caretRangeFromPoint(f,c);D&&({startContainer:b,startOffset:x}=D)}b&&(!n.contentDOM.contains(b)||v.safari&&bf(b,x,f)||v.chrome&&yf(b,x,f))&&(b=void 0),b&&(x=Math.min($t(b),x))}if(!b||!n.docView.dom.contains(b)){let D=X.find(n.docView,d);if(!D)return u>h.top+h.height/2?h.to:h.from;({node:b,offset:x}=Bn(D.dom,f,c))}let S=n.docView.nearest(b);if(!S)return null;if(S.isWidget&&((r=S.dom)===null||r===void 0?void 0:r.nodeType)==1){let D=S.dom.getBoundingClientRect();return t.yn.defaultLineHeight*1.5){let l=n.viewState.heightOracle.textHeight,h=Math.floor((s-e.top-(n.defaultLineHeight-l)*.5)/l);r+=h*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(e.from,e.to);return e.from+Ji(o,r,n.state.tabSize)}function Zl(n,t,e){let i,s=n;if(n.nodeType!=3||t!=(i=n.nodeValue.length))return!1;for(;;){let r=s.nextSibling;if(r){if(r.nodeName=="BR")break;return!1}else{let o=s.parentNode;if(!o||o.nodeName=="DIV")break;s=o}}return Oe(n,i-1,i).getBoundingClientRect().right>e}function bf(n,t,e){return Zl(n,t,e)}function yf(n,t,e){if(t!=0)return Zl(n,t,e);for(let s=n;;){let r=s.parentNode;if(!r||r.nodeType!=1||r.firstChild!=s)return!1;if(r.classList.contains("cm-line"))break;s=r}let i=n.nodeType==1?n.getBoundingClientRect():Oe(n,0,Math.max(n.nodeValue.length,1)).getBoundingClientRect();return e-i.left>5}function Nn(n,t,e){let i=n.lineBlockAt(t);if(Array.isArray(i.type)){let s;for(let r of i.type){if(r.from>t)break;if(!(r.tot)return r;(!s||r.type==ut.Text&&(s.type!=r.type||(e<0?r.fromt)))&&(s=r)}}return s||i}return i}function xf(n,t,e,i){let s=Nn(n,t.head,t.assoc||-1),r=!i||s.type!=ut.Text||!(n.lineWrapping||s.widgetLineBreaks)?null:n.coordsAtPos(t.assoc<0&&t.head>s.from?t.head-1:t.head);if(r){let o=n.dom.getBoundingClientRect(),l=n.textDirectionAt(s.from),h=n.posAtCoords({x:e==(l==J.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(h!=null)return A.cursor(h,e?-1:1)}return A.cursor(e?s.to:s.from,e?-1:1)}function qo(n,t,e,i){let s=n.state.doc.lineAt(t.head),r=n.bidiSpans(s),o=n.textDirectionAt(s.from);for(let l=t,h=null;;){let a=nf(s,r,o,l,e),f=Ll;if(!a){if(s.number==(e?n.state.doc.lines:1))return l;f=` +`,s=n.state.doc.line(s.number+(e?1:-1)),r=n.bidiSpans(s),a=n.visualLineSide(s,!e)}if(h){if(!h(f))return l}else{if(!i)return a;h=i(f)}l=a}}function wf(n,t,e){let i=n.state.charCategorizer(t),s=i(e);return r=>{let o=i(r);return s==Wt.Space&&(s=o),s==o}}function kf(n,t,e,i){let s=t.head,r=e?1:-1;if(s==(e?n.state.doc.length:0))return A.cursor(s,t.assoc);let o=t.goalColumn,l,h=n.contentDOM.getBoundingClientRect(),a=n.coordsAtPos(s,t.assoc||-1),f=n.documentTop;if(a)o==null&&(o=a.left-h.left),l=r<0?a.top:a.bottom;else{let d=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(h.right-h.left,n.defaultCharacterWidth*(s-d.from))),l=(r<0?d.top:d.bottom)+f}let c=h.left+o,u=i??n.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*r,g=Ql(n,{x:c,y:p},!1,r);if(ph.bottom||(r<0?gs)){let m=n.docView.coordsForChar(g),b=!m||p{if(t>r&&ts(n)),e.from,t.head>e.from?-1:1);return i==e.from?e:A.cursor(i,iDate.now()-100?n.inputState.lastKeyCode:-1;if(t.bounds){let{from:o,to:l}=t.bounds,h=s.from,a=null;(r===8||v.android&&t.text.length=s.from&&e.to<=s.to&&(e.from!=s.from||e.to!=s.to)&&s.to-s.from-(e.to-e.from)<=4?e={from:s.from,to:s.to,insert:n.state.doc.slice(s.from,e.from).append(e.insert).append(n.state.doc.slice(e.to,s.to))}:n.state.doc.lineAt(s.from).toDate.now()-50?e={from:s.from,to:s.to,insert:n.state.toText(n.inputState.insertingText)}:v.chrome&&e&&e.from==e.to&&e.from==s.head&&e.insert.toString()==` + `&&n.lineWrapping&&(i&&(i=A.single(i.main.anchor-1,i.main.head-1)),e={from:s.from,to:s.to,insert:F.of([" "])}),e)return ar(n,e,i,r);if(i&&!i.main.eq(s)){let o=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(o=!0),l=n.inputState.lastSelectionOrigin,l=="select.pointer"&&(i=th(n.state.facet(Pi).map(h=>h(n)),i))),n.dispatch({selection:i,scrollIntoView:o,userEvent:l}),!0}else return!1}function ar(n,t,e,i=-1){if(v.ios&&n.inputState.flushIOSKey(t))return!0;let s=n.state.selection.main;if(v.android&&(t.to==s.to&&(t.from==s.from||t.from==s.from-1&&n.state.sliceDoc(t.from,s.from)==" ")&&t.insert.length==1&&t.insert.lines==2&&Je(n.contentDOM,"Enter",13)||(t.from==s.from-1&&t.to==s.to&&t.insert.length==0||i==8&&t.insert.lengths.head)&&Je(n.contentDOM,"Backspace",8)||t.from==s.from&&t.to==s.to+1&&t.insert.length==0&&Je(n.contentDOM,"Delete",46)))return!0;let r=t.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,l=()=>o||(o=Cf(n,t,e));return n.state.facet(Vl).some(h=>h(n,t.from,t.to,r,l))||n.dispatch(l()),!0}function Cf(n,t,e){let i,s=n.state,r=s.selection.main,o=-1;if(t.from==t.to&&t.fromr.to){let h=t.fromc(n)),a,h);t.from==f&&(o=f)}if(o>-1)i={changes:t,selection:A.cursor(t.from+t.insert.length,-1)};else if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!e||e.main.empty&&e.main.from==t.from+t.insert.length)&&n.inputState.composing<0){let h=r.fromt.to?s.sliceDoc(t.to,r.to):"";i=s.replaceSelection(n.state.toText(h+t.insert.sliceString(0,void 0,n.state.lineBreak)+a))}else{let h=s.changes(t),a=e&&e.main.to<=h.newLength?e.main:void 0;if(s.selection.ranges.length>1&&(n.inputState.composing>=0||n.inputState.compositionPendingChange)&&t.to<=r.to+10&&t.to>=r.to-10){let f=n.state.sliceDoc(t.from,t.to),c,u=e&&Jl(n,e.main.head);if(u){let p=t.insert.length-(t.to-t.from);c={from:u.from,to:u.to-p}}else c=n.state.doc.lineAt(r.head);let d=r.to-t.to;i=s.changeByRange(p=>{if(p.from==r.from&&p.to==r.to)return{changes:h,range:a||p.map(h)};let g=p.to-d,m=g-f.length;if(n.state.sliceDoc(m,g)!=f||g>=c.from&&m<=c.to)return{range:p};let b=s.changes({from:m,to:g,insert:t.insert}),x=p.to-r.to;return{changes:b,range:a?A.range(Math.max(0,a.anchor+x),Math.max(0,a.head+x)):p.map(b)}})}else i={changes:h,selection:a&&s.selection.replaceRange(a)}}let l="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,l+=".compose",n.inputState.compositionFirstChange&&(l+=".start",n.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:l,scrollIntoView:!0})}function ih(n,t,e,i){let s=Math.min(n.length,t.length),r=0;for(;r0&&l>0&&n.charCodeAt(o-1)==t.charCodeAt(l-1);)o--,l--;if(i=="end"){let h=Math.max(0,r-Math.min(o,l));e-=o+h-r}if(o=o?r-e:0;r-=h,l=r+(l-o),o=r}else if(l=l?r-e:0;r-=h,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function Af(n){let t=[];if(n.root.activeElement!=n.contentDOM)return t;let{anchorNode:e,anchorOffset:i,focusNode:s,focusOffset:r}=n.observer.selectionRange;return e&&(t.push(new ms(e,i)),(s!=e||r!=i)&&t.push(new ms(s,r))),t}function Mf(n,t){if(n.length==0)return null;let e=n[0].pos,i=n.length==2?n[1].pos:e;return e>-1&&i>-1?A.single(e+t,i+t):null}function Ko(n,t){return(e,i)=>{try{return t.call(n,i,e)}catch(s){Bt(e.state,s)}}}function Tf(n){let t=Object.create(null);function e(i){return t[i]||(t[i]={observers:[],handlers:[]})}for(let i of n){let s=i.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let l in r){let h=r[l];h&&e(l).handlers.push(Ko(i.value,h))}if(o)for(let l in o){let h=o[l];h&&e(l).observers.push(Ko(i.value,h))}}for(let i in It)e(i).handlers.push(It[i]);for(let i in Tt)e(i).observers.push(Tt[i]);return t}function is(n){return Math.max(0,n)*.7+8}function Of(n,t){return Math.max(Math.abs(n.clientX-t.clientX),Math.abs(n.clientY-t.clientY))}function Pf(n,t){let e=n.state.facet(Il);return e.length?e[0](t):v.mac?t.metaKey:t.ctrlKey}function Rf(n,t){let e=n.state.facet(Fl);return e.length?e[0](t):v.mac?!t.altKey:!t.ctrlKey}function Ef(n,t){let{main:e}=n.state.selection;if(e.empty)return!1;let i=vi(n.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r=t.clientX&&o.top<=t.clientY&&o.bottom>=t.clientY)return!0}return!1}function Bf(n,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let e=t.target,i;e!=n.contentDOM;e=e.parentNode)if(!e||e.nodeType==11||(i=W.get(e))&&i.ignoreEvent(t))return!1;return!0}function Nf(n){let t=n.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{n.focus(),e.remove(),oh(n,e.value)},50)}function As(n,t,e){for(let i of n.facet(t))e=i(e,n);return e}function oh(n,t){t=As(n.state,lr,t);let{state:e}=n,i,s=1,r=e.toText(t),o=r.lines==e.selection.ranges.length;if(zn!=null&&e.selection.ranges.every(h=>h.empty)&&zn==r.toString()){let h=-1;i=e.changeByRange(a=>{let f=e.doc.lineAt(a.from);if(f.from==h)return{range:a};h=f.from;let c=e.toText((o?r.line(s++).text:t)+e.lineBreak);return{changes:{from:f.from,insert:c},range:A.cursor(a.from+c.length)}})}else o?i=e.changeByRange(h=>{let a=r.line(s++);return{changes:{from:h.from,to:h.to,insert:a.text},range:A.cursor(h.from+a.length)}}):i=e.replaceSelection(r);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}function jo(n,t,e,i){if(i==1)return A.cursor(t,e);if(i==2)return pf(n.state,t,e);{let s=X.find(n.docView,t),r=n.state.doc.lineAt(s?s.posAtEnd:t),o=s?s.posAtStart:r.from,l=s?s.posAtEnd:r.to;return l=i?-1:1}function Uo(n,t){let e=n.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:e,bias:Lf(n,e,t.clientX,t.clientY)}}function lh(n){if(!If)return n.detail;let t=_o,e=Go;return _o=n,Go=Date.now(),Yo=!t||e>Date.now()-400&&Math.abs(t.clientX-n.clientX)<2&&Math.abs(t.clientY-n.clientY)<2?(Yo+1)%3:1}function Ff(n,t){let e=Uo(n,t),i=lh(t),s=n.state.selection;return{update(r){r.docChanged&&(e.pos=r.changes.mapPos(e.pos),s=s.map(r.changes))},get(r,o,l){let h=Uo(n,r),a,f=jo(n,h.pos,h.bias,i);if(e.pos!=h.pos&&!o){let c=jo(n,e.pos,e.bias,i),u=Math.min(c.from,f.from),d=Math.max(c.to,f.to);f=u1&&(a=Hf(s,h.pos))?a:l?s.addRange(f):A.create([f])}}}function Hf(n,t){for(let e=0;e=t)return A.create(n.ranges.slice(0,e).concat(n.ranges.slice(e+1)),n.mainIndex==e?0:n.mainIndex-(n.mainIndex>e?1:0))}return null}function Xo(n,t,e,i){if(e=As(n.state,lr,e),!e)return;let s=n.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:r}=n.inputState,o=i&&r&&Rf(n,t)?{from:r.from,to:r.to}:null,l={from:s,insert:e},h=n.state.changes(o?[o,l]:l);n.focus(),n.dispatch({changes:h,selection:{anchor:h.mapPos(s,-1),head:h.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}function zf(n,t){let e=n.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function Vf(n){let t=[],e=[],i=!1;for(let s of n.selection.ranges)s.empty||(t.push(n.sliceDoc(s.from,s.to)),e.push(s));if(!t.length){let s=-1;for(let{from:r}of n.selection.ranges){let o=n.doc.lineAt(r);o.number>s&&(t.push(o.text),e.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),s=o.number}i=!0}return{text:As(n,hr,t.join(n.lineBreak)),ranges:e,linewise:i}}function ah(n,t){let e=[];for(let i of n.facet(Wl)){let s=i(n,t);s&&e.push(s)}return e.length?n.update({effects:e,annotations:hh.of(!0)}):null}function fh(n){setTimeout(()=>{let t=n.hasFocus;if(t!=n.inputState.notifiedFocused){let e=ah(n.state,t);e?n.dispatch(e):n.update([])}},10)}function Wf(n){Jo.has(n)||(Jo.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}function Zo(){Ze=!1}function bs(n,t){return n==t?n:(n.constructor!=t.constructor&&(Ze=!0),t)}function tl(n,t){let e,i;n[t]==null&&(e=n[t-1])instanceof st&&(i=n[t+1])instanceof st&&n.splice(t-1,3,new st(e.length+1+i.length))}function Kf(n,t,e){let i=new Kn;return L.compare(n,t,e,i,0),i.changes}function jf(n,t){let e=n.getBoundingClientRect(),i=n.ownerDocument,s=i.defaultView||window,r=Math.max(0,e.left),o=Math.min(s.innerWidth,e.right),l=Math.max(0,e.top),h=Math.min(s.innerHeight,e.bottom);for(let a=n.parentNode;a&&a!=i.body;)if(a.nodeType==1){let f=a,c=window.getComputedStyle(f);if((f.scrollHeight>f.clientHeight||f.scrollWidth>f.clientWidth)&&c.overflow!="visible"){let u=f.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),h=Math.min(a==n.parentNode?s.innerHeight:h,u.bottom)}a=c.position=="absolute"||c.position=="fixed"?f.offsetParent:f.parentNode}else if(a.nodeType==11)a=a.host;else break;return{left:r-e.left,right:Math.max(r,o)-e.left,top:l-(e.top+t),bottom:Math.max(l,h)-(e.top+t)}}function $f(n){let t=n.getBoundingClientRect(),e=n.ownerDocument.defaultView||window;return t.left0&&t.top0}function Uf(n,t){let e=n.getBoundingClientRect();return{left:0,right:e.right-e.left,top:t,bottom:e.bottom-(e.top+t)}}function _f(n,t,e){let i=[],s=n,r=0;return L.spans(e,n,t,{span(){},point(o,l){o>s&&(i.push({from:s,to:o}),r+=o-s),s=l}},20),s=1)return t[t.length-1].to;let i=Math.floor(n*e);for(let s=0;;s++){let{from:r,to:o}=t[s],l=o-r;if(i<=l)return r+i;i-=l}}function ns(n,t){let e=0;for(let{from:i,to:s}of n.ranges){if(t<=s){e+=t-i;break}e+=s-i}return e/n.total}function Yf(n,t){for(let e of n)if(t(e))return e}function pi(n,t){if(t.scale==1)return n;let e=t.toDOM(n.top),i=t.toDOM(n.bottom);return new Mt(n.from,n.length,e,i-e,Array.isArray(n._content)?n._content.map(s=>pi(s,t)):n._content)}function _n(n,t,e){return new At(t,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return n;if(!e||!e[s])throw new RangeError(`Unsupported selector: ${s}`);return e[s]}):n+" "+i}})}function il(n,t,e){for(;t;){let i=W.get(t);if(i&&i.parent==n)return i;let s=t.parentNode;t=s!=n.dom?s:e>0?t.nextSibling:t.previousSibling}return null}function sl(n,t){let e=t.startContainer,i=t.startOffset,s=t.endContainer,r=t.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor);return mi(o.node,o.offset,s,r)&&([e,i,s,r]=[s,r,e,i]),{anchorNode:e,anchorOffset:i,focusNode:s,focusOffset:r}}function Jf(n,t){if(t.getComposedRanges){let s=t.getComposedRanges(n.root)[0];if(s)return sl(n,s)}let e=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),e=s.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",i,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),e?sl(n,e):null}function rl(n,t,e){for(let i=n.state.facet(t),s=i.length-1;s>=0;s--){let r=i[s],o=typeof r=="function"?r(n):r;o&&Tn(o,e)}return e}function tc(n,t){let e=n.split(/-(?!$)/),i=e[e.length-1];i=="Space"&&(i=" ");let s,r,o,l;for(let h=0;hi.concat(s),[]))),e}function Ju(n,t,e){return gh(ph(n.state),t,n,e)}function nc(n,t=Zf){let e=Object.create(null),i=Object.create(null),s=(o,l)=>{let h=i[o];if(h==null)i[o]=l;else if(h!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,h,a,f)=>{var c,u;let d=e[o]||(e[o]=Object.create(null)),p=l.split(/ (?!$)/).map(b=>tc(b,t));for(let b=1;b{let D=le={view:S,prefix:x,scope:o};return setTimeout(()=>{le==D&&(le=null)},sc),!0}]})}let g=p.join(" ");s(g,!1);let m=d[g]||(d[g]={preventDefault:!1,stopPropagation:!1,run:((u=(c=d._any)===null||c===void 0?void 0:c.run)===null||u===void 0?void 0:u.slice())||[]});h&&m.run.push(h),a&&(m.preventDefault=!0),f&&(m.stopPropagation=!0)};for(let o of n){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let a of l){let f=e[a]||(e[a]=Object.create(null));f._any||(f._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:c}=o;for(let u in f)f[u].run.push(d=>c(d,Xn))}let h=o[t]||o.key;if(h)for(let a of l)r(a,h,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(a,"Shift-"+h,o.shift,o.preventDefault,o.stopPropagation)}return e}function gh(n,t,e,i){Xn=t;let s=Ao(t),r=on(s,0),o=fo(r)==s.length&&s!=" ",l="",h=!1,a=!1,f=!1;le&&le.view==e&&le.scope==i&&(l=le.prefix+" ",nh.indexOf(t.keyCode)<0&&(a=!0,le=null));let c=new Set,u=m=>{if(m){for(let b of m.run)if(!c.has(b)&&(c.add(b),b(e)))return m.stopPropagation&&(f=!0),!0;m.preventDefault&&(m.stopPropagation&&(f=!0),a=!0)}return!1},d=n[i],p,g;return d&&(u(d[l+os(s,t,!o)])?h=!0:o&&(t.altKey||t.metaKey||t.ctrlKey)&&!(v.windows&&t.ctrlKey&&t.altKey)&&!(v.mac&&t.altKey&&!(t.ctrlKey||t.metaKey))&&(p=se[t.keyCode])&&p!=s?(u(d[l+os(p,t,!0)])||t.shiftKey&&(g=Ue[t.keyCode])!=s&&g!=p&&u(d[l+os(g,t,!1)]))&&(h=!0):o&&t.shiftKey&&u(d[l+os(s,t,!0)])&&(h=!0),!h&&u(d._any)&&(h=!0)),a&&(h=!0),h&&f&&t.stopPropagation(),Xn=null,h}function mh(n){let t=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==J.LTR?t.left:t.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:t.top-n.scrollDOM.scrollTop*n.scaleY}}function ll(n,t,e,i){let s=n.coordsAtPos(t,e*2);if(!s)return i;let r=n.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,l=n.posAtCoords({x:r.left+1,y:o}),h=n.posAtCoords({x:r.right-1,y:o});return l==null||h==null?i:{from:Math.max(i.from,Math.min(l,h)),to:Math.min(i.to,Math.max(l,h))}}function rc(n,t,e){if(e.to<=n.viewport.from||e.from>=n.viewport.to)return[];let i=Math.max(e.from,n.viewport.from),s=Math.min(e.to,n.viewport.to),r=n.textDirection==J.LTR,o=n.contentDOM,l=o.getBoundingClientRect(),h=mh(n),a=o.querySelector(".cm-line"),f=a&&window.getComputedStyle(a),c=l.left+(f?parseInt(f.paddingLeft)+Math.min(0,parseInt(f.textIndent)):0),u=l.right-(f?parseInt(f.paddingRight):0),d=Nn(n,i,1),p=Nn(n,s,-1),g=d.type==ut.Text?d:null,m=p.type==ut.Text?p:null;if(g&&(n.lineWrapping||d.widgetLineBreaks)&&(g=ll(n,i,1,g)),m&&(n.lineWrapping||p.widgetLineBreaks)&&(m=ll(n,s,-1,m)),g&&m&&g.from==m.from&&g.to==m.to)return x(S(e.from,e.to,g));{let y=g?S(e.from,null,g):D(d,!1),M=m?S(null,e.to,m):D(p,!0),C=[];return(g||d).to<(m||p).from-(g&&m?1:0)||d.widgetLineBreaks>1&&y.bottom+n.defaultLineHeight/2O&&V.from=at)break;vt>$&&E(Math.max(ot,$),y==null&&ot<=O,Math.min(vt,at),M==null&&vt>=q,Ht.dir)}if($=xt.to+1,$>=at)break}return K.length==0&&E(O,y==null,q,M==null,n.textDirection),{top:z,bottom:N,horizontal:K}}function D(y,M){let C=l.top+(M?y.top:y.bottom);return{top:C,bottom:C,horizontal:[]}}}function oc(n,t){return n.constructor==t.constructor&&n.eq(t)}function bh(n){return[tt.define(t=>new Jn(t,n)),fs.of(n)]}function Qu(n={}){return[Di.of(n),lc,hc,ac,Kl.of(!0)]}function yh(n){return n.startState.facet(Di)!=n.state.facet(Di)}function hl(n,t){t.style.animationDuration=n.facet(Di).cursorBlinkRate+"ms"}function Zu(){return[gi,fc]}function al(n,t,e,i,s){t.lastIndex=0;for(let r=n.iterRange(e,i),o=e,l;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;l=t.exec(r.value);)s(o+l.index,l)}function cc(n,t){let e=n.visibleRanges;if(e.length==1&&e[0].from==n.viewport.from&&e[0].to==n.viewport.to)return e;let i=[];for(let{from:s,to:r}of e)s=Math.max(n.state.doc.lineAt(s).from,s-t),r=Math.min(n.state.doc.lineAt(r).to,r+t),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}function pc(){var n;if(yn==null&&typeof document<"u"&&document.body){let t=document.body.style;yn=((n=t.tabSize)!==null&&n!==void 0?n:t.MozTabSize)!=null}return yn||!1}function td(n={}){return[cs.of(n),gc()]}function gc(){return fl||(fl=tt.fromClass(class{constructor(n){this.view=n,this.decorations=B.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(cs)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Oi({regexp:n.specialChars,decoration:(t,e,i)=>{let{doc:s}=e.state,r=on(t[0],0);if(r==9){let o=s.lineAt(i),l=e.state.tabSize,h=ci(o.text,l,i-o.from);return B.replace({widget:new tr((l-h%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=B.replace({widget:new Zn(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let t=n.state.facet(cs);n.startState.facet(cs)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}function bc(n){return n>=32?mc:n==10?"\u2424":String.fromCharCode(9216+n)}function ed(){return[cl,Cs.of(n=>{var t;return((t=n.plugin(cl))===null||t===void 0?void 0:t.attrs)||null})]}function id(){return xc}function wc(n,t,e){let i=Math.min(t.line,e.line),s=Math.max(t.line,e.line),r=[];if(t.off>er||e.off>er||t.col<0||e.col<0){let o=Math.min(t.off,e.off),l=Math.max(t.off,e.off);for(let h=i;h<=s;h++){let a=n.doc.line(h);a.length<=l&&r.push(A.range(a.from+o,a.to+l))}}else{let o=Math.min(t.col,e.col),l=Math.max(t.col,e.col);for(let h=i;h<=s;h++){let a=n.doc.line(h),f=Ji(a.text,o,n.tabSize,!0);if(f<0)r.push(A.cursor(a.to));else{let c=Ji(a.text,l,n.tabSize);r.push(A.range(a.from+f,a.from+c))}}}return r}function kc(n,t){let e=n.coordsAtPos(n.viewport.from);return e?Math.round(Math.abs((e.left-t)/n.defaultCharacterWidth)):-1}function ul(n,t){let e=n.posAtCoords({x:t.clientX,y:t.clientY},!1),i=n.state.doc.lineAt(e),s=e-i.from,r=s>er?-1:s==i.length?kc(n,t.clientX):ci(i.text,n.state.tabSize,e-i.from);return{line:i.number,col:r,off:s}}function vc(n,t){let e=ul(n,t),i=n.state.selection;return e?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(e.line).from),o=s.state.doc.lineAt(r);e={line:o.number,col:e.col,off:Math.min(e.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=ul(n,s);if(!l)return i;let h=wc(n.state,e,l);return h.length?o?A.create(h.concat(i.ranges)):A.create(h):i}}:null}function sd(n){let t=n?.eventFilter||(e=>e.altKey&&e.button==0);return P.mouseSelectionStyle.of((e,i)=>t(i)?vc(e,i):null)}function nd(n={}){let[t,e]=Sc[n.key||"Alt"],i=tt.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==t||e(s))},keyup(s){(s.keyCode==t||!e(s))&&this.set(!1)},mousemove(s){this.set(e(s))}}});return[i,P.contentAttributes.of(s=>{var r;return!((r=s.plugin(i))===null||r===void 0)&&r.isDown?Cc:null})]}function rd(n={}){return Mc.of(n)}function Ac(n){let t=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:t.clientHeight,right:t.clientWidth}}function ld(n,t){let e=n.plugin(wh),i=e?e.specs.indexOf(t):-1;return i>-1?e.panels[i]:null}function pl(n){let t=n.nextSibling;return n.remove(),t}function kh(n){return[vh(),wi.of({...Dc,...n})]}function vh(n){let t=[Oc];return n&&n.fixed===!1&&t.push(ir.of(!0)),t}function ml(n){return Array.isArray(n)?n:[n]}function sr(n,t,e){for(;n.value&&n.from<=e;)n.from==e&&t.push(n.value),n.next()}function Pc(n,t){if(n.length!=t.length)return!1;for(let e=0;e({decorations:n.createDeco(t),update(e){this.decorations=n.updateDeco(e,this.decorations)}}),{decorations:t=>t.decorations})}function ad(){return Ic}function fd(){return Fc}var ct,kn,vn,yl,Sn,vs,Po,pn,Ro,Cn,Eo,v,Mn,Me,No,nt,rr,W,ds,ja,wt,Lt,Kt,ae,Io,Ut,ut,B,Pe,Re,_t,X,Nt,Ci,Te,fe,J,Ee,or,Xa,Ja,On,qt,Qa,jt,j,Ll,Il,Fl,Hl,zl,En,Vl,Wl,lr,hr,ql,Kl,jl,he,ts,$l,ne,of,_e,tt,bi,Ul,Cs,Ai,_l,Pi,Yl,Gl,ui,gt,Qe,gs,ff,di,Ln,ms,In,Fn,sh,Df,nh,es,Hn,It,Tt,rh,$o,If,_o,Yo,Go,zn,hh,Jo,Qo,Ze,Vn,Wn,Mt,Y,as,lt,ys,ft,st,qn,qf,Mi,Kn,xi,jn,xs,Ye,el,Ti,rs,$n,Un,ch,uh,dh,Gf,Xf,bn,Yn,Gn,P,Qf,nl,ti,Zf,ec,ic,ol,le,sc,Xn,Be,Jn,fs,Di,lc,hc,ac,xh,gi,fc,Oi,Qn,uc,dc,yn,cs,fl,mc,Zn,tr,cl,yc,xc,er,Sc,Cc,Mc,od,dl,wh,Ge,gl,Ft,xn,Tc,Dc,wi,ir,Oc,nr,ws,ks,Rc,Ec,Xe,ki,Bc,Nc,Lc,Ic,Fc,Ch=Vt(()=>{an();dn();Mo();Oo();ct=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},kn=typeof document<"u"?document:{documentElement:{style:{}}},vn=/Edge\/(\d+)/.exec(ct.userAgent),yl=/MSIE \d/.test(ct.userAgent),Sn=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ct.userAgent),vs=!!(yl||Sn||vn),Po=!vs&&/gecko\/(\d+)/i.test(ct.userAgent),pn=!vs&&/Chrome\/(\d+)/.exec(ct.userAgent),Ro="webkitFontSmoothing"in kn.documentElement.style,Cn=!vs&&/Apple Computer/.test(ct.vendor),Eo=Cn&&(/Mobile\/\w+/.test(ct.userAgent)||ct.maxTouchPoints>2),v={mac:Eo||/Mac/.test(ct.platform),windows:/Win/.test(ct.platform),linux:/Linux|X11/.test(ct.platform),ie:vs,ie_version:yl?kn.documentMode||6:Sn?+Sn[1]:vn?+vn[1]:0,gecko:Po,gecko_version:Po?+(/Firefox\/(\d+)/.exec(ct.userAgent)||[0,0])[1]:0,chrome:!!pn,chrome_version:pn?+pn[1]:0,ios:Eo,android:/Android\b/.test(ct.userAgent),webkit:Ro,webkit_version:Ro?+(/\bAppleWebKit\/(\d+)/.exec(ct.userAgent)||[0,0])[1]:0,safari:Cn,safari_version:Cn?+(/\bVersion\/(\d+(\.\d+)?)/.exec(ct.userAgent)||[0,0])[1]:0,tabSize:kn.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};Mn=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){let{anchorNode:e,focusNode:i}=t;this.set(e,Math.min(t.anchorOffset,e?$t(e):0),i,Math.min(t.focusOffset,i?$t(i):0))}set(t,e,i,s){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=s}},Me=null;v.safari&&v.safari_version>=26&&(Me=!1);nt=class{constructor(t,e,i=!0){this.node=t,this.offset=e,this.precise=i}static before(t,e){return new nt(t.parentNode,De(t),e)}static after(t,e){return new nt(t.parentNode,De(t)+1,e)}},rr=[],W=class{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(t){let e=this.posAtStart;for(let i of this.children){if(i==t)return e;e+=i.length+i.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(t){return this.posBefore(t)+t.length}sync(t,e){if(this.flags&2){let i=this.dom,s=null,r;for(let o of this.children){if(o.flags&7){if(!o.dom&&(r=s?s.nextSibling:i.firstChild)){let l=W.get(r);(!l||!l.parent&&l.canReuseDOM(o))&&o.reuseDOM(r)}o.sync(t,e),o.flags&=-8}if(r=s?s.nextSibling:i.firstChild,e&&!e.written&&e.node==i&&r!=o.dom&&(e.written=!0),o.dom.parentNode==i)for(;r&&r!=o.dom;)r=Lo(r);else i.insertBefore(o.dom,r);s=o.dom}for(r=s?s.nextSibling:i.firstChild,r&&e&&e.node==i&&(e.written=!0);r;)r=Lo(r)}else if(this.flags&1)for(let i of this.children)i.flags&7&&(i.sync(t,e),i.flags&=-8)}reuseDOM(t){}localPosFromDOM(t,e){let i;if(t==this.dom)i=this.dom.childNodes[e];else{let s=$t(t)==0?0:e==0?-1:1;for(;;){let r=t.parentNode;if(r==this.dom)break;s==0&&r.firstChild!=r.lastChild&&(t==r.firstChild?s=-1:s=1),t=r}s<0?i=t:i=t.nextSibling}if(i==this.dom.firstChild)return 0;for(;i&&!W.get(i);)i=i.nextSibling;if(!i)return this.length;for(let s=0,r=0;;s++){let o=this.children[s];if(o.dom==i)return r;r+=o.length+o.breakAfter}}domBoundsAround(t,e,i=0){let s=-1,r=-1,o=-1,l=-1;for(let h=0,a=i,f=i;he)return c.domBoundsAround(t,e,a);if(u>=t&&s==-1&&(s=h,r=a),a>e&&c.dom.parentNode==this.dom){o=h,l=f;break}f=u,a=u+c.breakAfter}return{from:r,to:l<0?i+this.length:l,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(t=!1){this.flags|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.flags|=2),e.flags&1)return;e.flags|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,this.flags&7&&this.markParentsDirty(!0))}setDOM(t){this.dom!=t&&(this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this)}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=rr){this.markDirty();for(let s=t;sthis.pos||t==this.pos&&(e>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};ja=256,wt=class extends W{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){t.nodeType==3&&this.createDOM(t)}merge(t,e,i){return this.flags&8||i&&(!(i instanceof wt)||this.length-(e-t)+i.length>ja||i.flags&8)?!1:(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),!0)}split(t){let e=new wt(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e.flags|=this.flags&8,e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new nt(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return $a(this.dom,t,e)}},Lt=class extends W{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let s of e)s.setParent(this)}setAttrs(t){if(kl(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}canReuseDOM(t){return super.canReuseDOM(t)&&!((this.flags|t.flags)&8)}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.flags|=6)}sync(t,e){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,s,r,o){return i&&(!(i instanceof Lt&&i.mark.eq(this.mark))||t&&r<=0||et&&e.push(i=t&&(s=r),i=h,r++}let o=this.length-t;return this.length=t,s>-1&&(this.children.length=s,this.markDirty()),new Lt(this.mark,e,o)}domAtPos(t){return Tl(this,t)}coordsAt(t,e){return Ol(this,t,e)}};Kt=class extends W{static create(t,e,i){return new Kt(t,e,i)}constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}split(t){let e=Kt.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){(!this.dom||!this.widget.updateDOM(this.dom,t))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(t,e,i,s,r,o){return i&&(!(i instanceof Kt)||!this.widget.compare(i.widget)||t>0&&r<=0||e0)?nt.before(this.dom):nt.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.widget.coordsAt(this.dom,t,e);if(i)return i;let s=this.dom.getClientRects(),r=null;if(!s.length)return null;let o=this.side?this.side<0:t>0;for(let l=o?s.length-1:0;r=s[l],!(t>0?l==0:l==s.length-1||r.top0?nt.before(this.dom):nt.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){return this.dom.getBoundingClientRect()}get overrideDOMText(){return F.empty}get isHidden(){return!0}};wt.prototype.children=Kt.prototype.children=ae.prototype.children=rr;Io=Object.create(null);Ut=class{eq(t){return!1}updateDOM(t,e){return!1}compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(t){return!0}coordsAt(t,e,i){return null}get isHidden(){return!1}get editable(){return!1}destroy(t){}},ut=function(n){return n[n.Text=0]="Text",n[n.WidgetBefore=1]="WidgetBefore",n[n.WidgetAfter=2]="WidgetAfter",n[n.WidgetRange=3]="WidgetRange",n}(ut||(ut={})),B=class extends ie{constructor(t,e,i,s){super(),this.startSide=t,this.endSide=e,this.widget=i,this.spec=s}get heightRelevant(){return!1}static mark(t){return new Pe(t)}static widget(t){let e=Math.max(-1e4,Math.min(1e4,t.side||0)),i=!!t.block;return e+=i&&!t.inlineOrder?e>0?3e8:-4e8:e>0?1e8:-1e8,new _t(t,e,e,i,t.widget||null,!1)}static replace(t){let e=!!t.block,i,s;if(t.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:o}=Pl(t,e);i=(r?e?-3e8:-1:5e8)-1,s=(o?e?2e8:1:-6e8)+1}return new _t(t,i,s,e,t.widget||null,!0)}static line(t){return new Re(t)}static set(t,e=!1){return L.of(t,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};B.none=L.empty;Pe=class extends B{constructor(t){let{start:e,end:i}=Pl(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){var e,i;return this==t||t instanceof Pe&&this.tagName==t.tagName&&(this.class||((e=this.attrs)===null||e===void 0?void 0:e.class))==(t.class||((i=t.attrs)===null||i===void 0?void 0:i.class))&&ps(this.attrs,t.attrs,"class")}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}};Pe.prototype.point=!1;Re=class extends B{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof Re&&this.spec.class==t.spec.class&&ps(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}};Re.prototype.mapMode=dt.TrackBefore;Re.prototype.point=!0;_t=class extends B{constructor(t,e,i,s,r,o){super(e,i,r,t),this.block=s,this.isReplace=o,this.mapMode=s?e<=0?dt.TrackBefore:dt.TrackAfter:dt.TrackDel}get type(){return this.startSide!=this.endSide?ut.WidgetRange:this.startSide<=0?ut.WidgetBefore:ut.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(t){return t instanceof _t&&Ga(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}};_t.prototype.point=!0;X=class extends W{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,s,r,o){if(i){if(!(i instanceof X))return!1;this.dom||i.transferDOM(this)}return s&&this.setDeco(i?i.attrs:null),Ml(this,t,e,i?i.children.slice():[],r,o),!0}split(t){let e=new X;if(e.breakAfter=this.breakAfter,this.length==0)return e;let{i,off:s}=this.childPos(t);s&&(e.append(this.children[i].split(s),0),this.children[i].merge(s,this.children[i].length,null,!1,0,0),i++);for(let r=i;r0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){ps(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){Dl(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=Tn(e,this.attrs||{})),i&&(this.attrs=Tn({class:i},this.attrs||{}))}domAtPos(t){return Tl(this,t)}reuseDOM(t){t.nodeName=="DIV"&&(this.setDOM(t),this.flags|=6)}sync(t,e){var i;this.dom?this.flags&4&&(kl(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Dn(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let s=this.dom.lastChild;for(;s&&W.get(s)instanceof Lt;)s=s.lastChild;if(!s||!this.length||s.nodeName!="BR"&&((i=W.get(s))===null||i===void 0?void 0:i.isEditable)==!1&&(!v.ios||!this.children.some(r=>r instanceof wt))){let r=document.createElement("BR");r.cmIgnore=!0,this.dom.appendChild(r)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let t=0,e;for(let i of this.children){if(!(i instanceof wt)||/[^ -~]/.test(i.text))return null;let s=Si(i.dom);if(s.length!=1)return null;t+=s[0].width,e=s[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(t,e){let i=Ol(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:s}=this.parent.view.viewState,r=i.bottom-i.top;if(Math.abs(r-s.lineHeight)<2&&s.textHeight=e){if(r instanceof X)return r;if(o>e)break}s=o+r.breakAfter}return null}},Nt=class extends W{constructor(t,e,i){super(),this.widget=t,this.length=e,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,s,r,o){return i&&(!(i instanceof Nt)||!this.widget.compare(i.widget)||t>0&&r<=0||e0}},Ci=class extends Ut{constructor(t){super(),this.height=t}toDOM(){let t=document.createElement("div");return t.className="cm-gap",this.updateDOM(t),t}eq(t){return t.height==this.height}updateDOM(t){return t.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}},Te=class{constructor(t,e,i,s){this.doc=t,this.pos=e,this.end=i,this.disallowBlockEffectsFor=s,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=t.iter(),this.skip=e}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let t=this.content[this.content.length-1];return!(t.breakAfter||t instanceof Nt&&t.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new X),this.atCursorPos=!0),this.curLine}flushBuffer(t=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Zi(new ae(-1),t),t.length),this.pendingBuffer=0)}addBlockWidget(t){this.flushBuffer(),this.curLine=null,this.content.push(t)}finish(t){this.pendingBuffer&&t<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(t&&this.content.length&&this.content[this.content.length-1]instanceof Nt)&&this.getLine()}buildText(t,e,i){for(;t>0;){if(this.textOff==this.text.length){let{value:o,lineBreak:l,done:h}=this.cursor.next(this.skip);if(this.skip=0,h)throw new Error("Ran out of text content when drawing inline views");if(l){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}else this.text=o,this.textOff=0}let s=Math.min(this.text.length-this.textOff,t),r=Math.min(s,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(Zi(new wt(this.text.slice(this.textOff,this.textOff+r)),e),i),this.atCursorPos=!0,this.textOff+=r,t-=r,i=s<=r?0:e.length}}span(t,e,i,s){this.buildText(e-t,i,s),this.pos=e,this.openStart<0&&(this.openStart=s)}point(t,e,i,s,r,o){if(this.disallowBlockEffectsFor[o]&&i instanceof _t){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=e-t;if(i instanceof _t)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Nt(i.widget||fe.block,l,i));else{let h=Kt.create(i.widget||fe.inline,l,l?0:i.startSide),a=this.atCursorPos&&!h.isEditable&&r<=s.length&&(t0),f=!h.isEditable&&(ts.length||i.startSide<=0),c=this.getLine();this.pendingBuffer==2&&!a&&!h.isEditable&&(this.pendingBuffer=0),this.flushBuffer(s),a&&(c.append(Zi(new ae(1),s),r),r=s.length+Math.max(0,r-s.length)),c.append(Zi(h,s),r),this.atCursorPos=f,this.pendingBuffer=f?ts.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=s.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=r)}static build(t,e,i,s,r){let o=new Te(t,e,i,r);return o.openEnd=L.spans(s,e,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};fe=class extends Ut{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}};fe.inline=new fe("span");fe.block=new fe("div");J=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(J||(J={})),Ee=J.LTR,or=J.RTL;Xa=Rl("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Ja=Rl("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),On=Object.create(null),qt=[];for(let n of["()","[]","{}"]){let t=n.charCodeAt(0),e=n.charCodeAt(1);On[t]=e,On[e]=-t}Qa=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,jt=class{get dir(){return this.level%2?or:Ee}constructor(t,e,i){this.from=t,this.to=e,this.level=i}side(t,e){return this.dir==e==t?this.to:this.from}forward(t,e){return t==(this.dir==e)}static find(t,e,i,s){let r=-1;for(let o=0;o=e){if(l.level==i)return o;(r<0||(s!=0?s<0?l.frome:t[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}};j=[];Ll="";Il=T.define(),Fl=T.define(),Hl=T.define(),zl=T.define(),En=T.define(),Vl=T.define(),Wl=T.define(),lr=T.define(),hr=T.define(),ql=T.define({combine:n=>n.some(t=>t)}),Kl=T.define({combine:n=>n.some(t=>t)}),jl=T.define(),he=class{constructor(t,e="nearest",i="nearest",s=5,r=5,o=!1){this.range=t,this.y=e,this.x=i,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(t){return t.empty?this:new he(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(t){return this.range.to<=t.doc.length?this:new he(A.cursor(t.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}},ts=U.define({map:(n,t)=>n.map(t)}),$l=U.define();ne=T.define({combine:n=>n.length?n[0]:!0}),of=0,_e=T.define({combine(n){return n.filter((t,e)=>{for(let i=0;i{let h=[];return o&&h.push(Ai.of(a=>{let f=a.plugin(l);return f?o(f):B.none})),r&&h.push(r(l)),h})}static fromClass(t,e){return tt.define((i,s)=>new t(i,s),e)}},bi=class{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(t){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(i){if(Bt(e.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(t,this.spec.arg)}catch(e){Bt(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(!((e=this.value)===null||e===void 0)&&e.destroy)try{this.value.destroy()}catch(i){Bt(t.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Ul=T.define(),Cs=T.define(),Ai=T.define(),_l=T.define(),Pi=T.define(),Yl=T.define();Gl=T.define();ui=T.define(),gt=class{constructor(t,e,i,s){this.fromA=t,this.toA=e,this.fromB=i,this.toB=s}join(t){return new gt(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let s=t[e-1];if(!(s.fromA>i.toA)){if(s.toAf)break;r+=2}if(!h)return i;new gt(h.fromA,h.toA,h.fromB,h.toB).addToSet(i),o=h.toA,l=h.toB}}},Qe=class{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=Q.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let s=[];this.changes.iterChangedRanges((r,o,l,h)=>s.push(new gt(r,o,l,h))),this.changedRanges=s}static create(t,e,i){return new Qe(t,e,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},gs=class extends W{get length(){return this.view.state.doc.length}constructor(t){super(),this.view=t,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=B.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(t.contentDOM),this.children=[new X],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new gt(0,0,0,t.state.doc.length)],0,null)}update(t){var e;let i=t.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:a,toA:f})=>fthis.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(t);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((e=this.domChanged)===null||e===void 0)&&e.newSel?s=this.domChanged.newSel.head:!df(t.changes,this.hasComposition)&&!t.selectionSet&&(s=t.state.selection.main.head));let r=s>-1?hf(this.view,t.changes,s):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:a,to:f}=this.hasComposition;i=new gt(a,f,t.changes.mapPos(a,-1),t.changes.mapPos(f,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(v.ie||v.chrome)&&!r&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.updateDeco(),h=cf(o,l,t.changes);return i=gt.extendWithRanges(i,h),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,t.startState.doc.length,r),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=v.chrome||v.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||s.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let r=[];if(this.view.viewport.from||this.view.viewport.to=0?s[o]:null;if(!l)break;let{fromA:h,toA:a,fromB:f,toB:c}=l,u,d,p,g;if(i&&i.range.fromBf){let D=Te.build(this.view.state.doc,f,i.range.fromB,this.decorations,this.dynamicDecorationMap),y=Te.build(this.view.state.doc,i.range.toB,c,this.decorations,this.dynamicDecorationMap);d=D.breakAtStart,p=D.openStart,g=y.openEnd;let M=this.compositionView(i);y.breakAtStart?M.breakAfter=1:y.content.length&&M.merge(M.length,M.length,y.content[0],!1,y.openStart,0)&&(M.breakAfter=y.content[0].breakAfter,y.content.shift()),D.content.length&&M.merge(0,0,D.content[D.content.length-1],!0,0,D.openEnd)&&D.content.pop(),u=D.content.concat(M).concat(y.content)}else({content:u,breakAtStart:d,openStart:p,openEnd:g}=Te.build(this.view.state.doc,f,c,this.decorations,this.dynamicDecorationMap));let{i:m,off:b}=r.findPos(a,1),{i:x,off:S}=r.findPos(h,-1);Al(this,x,S,m,b,u,d,p,g)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(t){this.editContextFormatting=this.editContextFormatting.map(t.changes);for(let e of t.transactions)for(let i of e.effects)i.is($l)&&(this.editContextFormatting=i.value)}compositionView(t){let e=new wt(t.text.nodeValue);e.flags|=8;for(let{deco:s}of t.marks)e=new Lt(s,[e],e.length);let i=new X;return i.append(e,0),i}fixCompositionDOM(t){let e=(r,o)=>{o.flags|=8|(o.children.some(h=>h.flags&7)?1:0),this.markedForComposition.add(o);let l=W.get(r);l&&l!=o&&(l.dom=null),o.setDOM(r)},i=this.childPos(t.range.fromB,1),s=this.children[i.i];e(t.line,s);for(let r=t.marks.length-1;r>=-1;r--)i=s.childPos(i.off,1),s=s.children[i.i],e(r>=0?t.marks[r].node:t.text,s)}updateSelection(t=!1,e=!1){(t||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,s=i==this.dom,r=!s&&!(this.view.state.facet(ne)||this.dom.tabIndex>-1)&&ls(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(s||e||r))return;let o=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,h=this.moveToLine(this.domAtPos(l.anchor)),a=l.empty?h:this.moveToLine(this.domAtPos(l.head));if(v.gecko&&l.empty&&!this.hasComposition&&lf(h)){let c=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(c,h.node.childNodes[h.offset]||null)),h=a=new nt(c,0),o=!0}let f=this.view.observer.selectionRange;(o||!f.focusNode||(!mi(h.node,h.offset,f.anchorNode,f.anchorOffset)||!mi(a.node,a.offset,f.focusNode,f.focusOffset))&&!this.suppressWidgetCursorChange(f,l))&&(this.view.observer.ignore(()=>{v.android&&v.chrome&&this.dom.contains(f.focusNode)&&uf(f.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let c=vi(this.view.root);if(c)if(l.empty){if(v.gecko){let u=af(h.node,h.offset);if(u&&u!=3){let d=(u==1?Sl:Cl)(h.node,h.offset);d&&(h=new nt(d.node,d.offset))}}c.collapse(h.node,h.offset),l.bidiLevel!=null&&c.caretBidiLevel!==void 0&&(c.caretBidiLevel=l.bidiLevel)}else if(c.extend){c.collapse(h.node,h.offset);try{c.extend(a.node,a.offset)}catch{}}else{let u=document.createRange();l.anchor>l.head&&([h,a]=[a,h]),u.setEnd(a.node,a.offset),u.setStart(h.node,h.offset),c.removeAllRanges(),c.addRange(u)}r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(h,a)),this.impreciseAnchor=h.precise?null:new nt(f.anchorNode,f.anchorOffset),this.impreciseHead=a.precise?null:new nt(f.focusNode,f.focusOffset)}suppressWidgetCursorChange(t,e){return this.hasComposition&&e.empty&&mi(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)&&this.posFromDOM(t.focusNode,t.focusOffset)==e.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:t}=this,e=t.state.selection.main,i=vi(t.root),{anchorNode:s,anchorOffset:r}=t.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let o=X.find(this,e.head);if(!o)return;let l=o.posAtStart;if(e.head==l||e.head==l+o.length)return;let h=this.coordsAt(e.head,-1),a=this.coordsAt(e.head,1);if(!h||!a||h.bottom>a.top)return;let f=this.domAtPos(e.head+e.assoc);i.collapse(f.node,f.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let c=t.observer.selectionRange;t.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=e.from&&i.collapse(s,r)}moveToLine(t){let e=this.dom,i;if(t.node!=e)return t;for(let s=t.offset;!i&&s=0;s--){let r=W.get(e.childNodes[s]);r instanceof X&&(i=r.domAtPos(r.length))}return i?new nt(i.node,i.offset,!0):t}nearest(t){for(let e=t;e;){let i=W.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;e=0;o--){let l=this.children[o],h=r-l.breakAfter,a=h-l.length;if(ht||l.covers(1))&&(!i||l instanceof X&&!(i instanceof X&&e>=0)))i=l,s=a;else if(i&&a==t&&h==t&&l instanceof Nt&&Math.abs(e)<2){if(l.deco.startSide<0)break;o&&(i=null)}r=a}return i?i.coordsAt(t-s,e):null}coordsForChar(t){let{i:e,off:i}=this.childPos(t,1),s=this.children[e];if(!(s instanceof X))return null;for(;s.children.length;){let{i:l,off:h}=s.childPos(i,1);for(;;l++){if(l==s.children.length)return null;if((s=s.children[l]).length)break}i=h}if(!(s instanceof wt))return null;let r=Rt(s.text,i);if(r==i)return null;let o=Oe(s.dom,i,r).getClientRects();for(let l=0;lMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,h=this.view.textDirection==J.LTR;for(let a=0,f=0;fs)break;if(a>=i){let d=c.dom.getBoundingClientRect();if(e.push(d.height),o){let p=c.dom.lastChild,g=p?Si(p):[];if(g.length){let m=g[g.length-1],b=h?m.right-d.left:d.right-m.left;b>l&&(l=b,this.minWidth=r,this.minWidthFrom=a,this.minWidthTo=u)}}}a=u+c.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return getComputedStyle(this.children[e].dom).direction=="rtl"?J.RTL:J.LTR}measureTextSize(){for(let r of this.children)if(r instanceof X){let o=r.measureTextSize();if(o)return o}let t=document.createElement("div"),e,i,s;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);let r=Si(t.firstChild)[0];e=t.getBoundingClientRect().height,i=r?r.width/27:7,s=r?r.height:e,t.remove()}),{lineHeight:e,charWidth:i,textHeight:s}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new ds(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,s=0;;s++){let r=s==e.viewports.length?null:e.viewports[s],o=r?r.from-1:this.length;if(o>i){let l=(e.lineBlockAt(o).bottom-e.lineBlockAt(i).top)/this.view.scaleY;t.push(B.replace({widget:new Ci(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return B.set(t)}updateDeco(){let t=1,e=this.view.state.facet(Ai).map(r=>(this.dynamicDecorationMap[t++]=typeof r=="function")?r(this.view):r),i=!1,s=this.view.state.facet(_l).map((r,o)=>{let l=typeof r=="function";return l&&(i=!0),l?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[t++]=i,e.push(L.join(s))),this.decorations=[this.editContextFormatting,...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];te.anchor?-1:1),s;if(!i)return;!e.empty&&(s=this.coordsAt(e.anchor,e.anchor>e.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=Xl(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:l,offsetHeight:h}=this.view.scrollDOM;Va(this.view.scrollDOM,o,e.heads instanceof Kt||s.children.some(i);return i(this.children[e])}};ff=class{constructor(){this.changes=[]}compareRange(t,e){hs(t,e,this.changes)}comparePoint(t,e){hs(t,e,this.changes)}boundChange(t){hs(t,t,this.changes)}};di="\uFFFF",Ln=class{constructor(t,e){this.points=t,this.text="",this.lineSeparator=e.facet(I.lineSeparator)}append(t){this.text+=t}lineBreak(){this.text+=di}readRange(t,e){if(!t)return this;let i=t.parentNode;for(let s=t;;){this.findPointBefore(i,s);let r=this.text.length;this.readNode(s);let o=s.nextSibling;if(o==e)break;let l=W.get(s),h=W.get(o);(l&&h?l.breakAfter:(l?l.breakAfter:us(s))||us(o)&&(s.nodeName!="BR"||s.cmIgnore)&&this.text.length>r)&&!Sf(o,e)&&this.lineBreak(),s=o}return this.findPointBefore(i,e),this}readTextNode(t){let e=t.nodeValue;for(let i of this.points)i.node==t&&(i.pos=this.text.length+Math.min(i.offset,e.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,l;if(this.lineSeparator?(r=e.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(l=s.exec(e))&&(r=l.index,o=l[0].length),this.append(e.slice(i,r<0?e.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let h of this.points)h.node==t&&h.pos>this.text.length&&(h.pos-=o-1);i=r+o}}readNode(t){if(t.cmIgnore)return;let e=W.get(t),i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(t,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else t.nodeType==3?this.readTextNode(t):t.nodeName=="BR"?t.nextSibling&&this.lineBreak():t.nodeType==1&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(t.nodeType==3?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+(vf(t,i.node,i.offset)?e:0))}};ms=class{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}},In=class{constructor(t,e,i,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=e>-1;let{impreciseHead:r,impreciseAnchor:o}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let l=r||o?[]:Af(t),h=new Ln(l,t.state);h.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=h.text,this.newSel=Mf(l,this.bounds.from)}else{let l=t.observer.selectionRange,h=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!An(t.contentDOM,l.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(l.focusNode,l.focusOffset),a=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!An(t.contentDOM,l.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(l.anchorNode,l.anchorOffset),f=t.viewport;if((v.ios||v.chrome)&&t.state.selection.main.empty&&h!=a&&(f.from>0||f.to-1&&t.state.selection.ranges.length>1?this.newSel=t.state.selection.replaceRange(A.range(a,h)):this.newSel=A.single(a,h)}}};Fn=class{setSelectionOrigin(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}constructor(t){this.view=t,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=t.hasFocus,v.safari&&t.contentDOM.addEventListener("input",()=>null),v.gecko&&Wf(t.contentDOM.ownerDocument)}handleEvent(t){!Bf(this.view,t)||this.ignoreDuringComposition(t)||t.type=="keydown"&&this.keydown(t)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(t.type,t)):this.runHandlers(t.type,t))}runHandlers(t,e){let i=this.handlers[t];if(i){for(let s of i.observers)s(this.view,e);for(let s of i.handlers){if(e.defaultPrevented)break;if(s(this.view,e)){e.preventDefault();break}}}}ensureHandlers(t){let e=Tf(t),i=this.handlers,s=this.view.contentDOM;for(let r in e)if(r!="scroll"){let o=!e[r].handlers.length,l=i[r];l&&o!=!l.handlers.length&&(s.removeEventListener(r,this.handleEvent),l=null),l||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in i)r!="scroll"&&!e[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=e}keydown(t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&t.keyCode!=27&&nh.indexOf(t.keyCode)<0&&(this.tabFocusMode=-1),v.android&&v.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return this.view.observer.delayAndroidKey(t.key,t.keyCode),!0;let e;return v.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((e=sh.find(i=>i.keyCode==t.keyCode))&&!t.ctrlKey||Df.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=e||t,setTimeout(()=>this.flushIOSKey(),250),!0):(t.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(t){let e=this.pendingIOSKey;return!e||e.key=="Enter"&&t&&t.from0?!0:v.safari&&!v.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.view.observer.update(t),this.mouseSelection&&this.mouseSelection.update(t),this.draggedContent&&t.docChanged&&(this.draggedContent=this.draggedContent.map(t.changes)),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}};sh=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Df="dthko",nh=[16,17,18,20,91,92,224,225],es=6;Hn=class{constructor(t,e,i,s){this.view=t,this.startEvent=e,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParents=Wa(t.contentDOM),this.atoms=t.state.facet(Pi).map(o=>o(t));let r=t.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(I.allowMultipleSelections)&&Pf(t,e),this.dragging=Ef(t,e)&&lh(e)==1?null:!1}start(t){this.dragging===!1&&this.select(t)}move(t){if(t.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Of(this.startEvent,t)<10)return;this.select(this.lastEvent=t);let e=0,i=0,s=0,r=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:l}=this.scrollParents.y.getBoundingClientRect());let h=Xl(this.view);t.clientX-h.left<=s+es?e=-is(s-t.clientX):t.clientX+h.right>=o-es&&(e=is(t.clientX-o)),t.clientY-h.top<=r+es?i=-is(r-t.clientY):t.clientY+h.bottom>=l-es&&(i=is(t.clientY-l)),this.setScrollSpeed(e,i)}up(t){this.dragging==null&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:t,y:e}=this.scrollSpeed;t&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=t,t=0),e&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=e,e=0),(t||e)&&this.view.win.scrollBy(t,e),this.dragging===!1&&this.select(this.lastEvent)}select(t){let{view:e}=this,i=th(this.atoms,this.style.get(t,this.extend,this.multiple));(this.mustSelect||!i.eq(e.state.selection,this.dragging===!1))&&this.view.dispatch({selection:i,userEvent:"select.pointer"}),this.mustSelect=!1}update(t){t.transactions.some(e=>e.isUserEvent("input.type"))?this.destroy():this.style.update(t)&&setTimeout(()=>this.select(this.lastEvent),20)}};It=Object.create(null),Tt=Object.create(null),rh=v.ie&&v.ie_version<15||v.ios&&v.webkit_version<604;Tt.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};It.keydown=(n,t)=>(n.inputState.setSelectionOrigin("select"),t.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);Tt.touchstart=(n,t)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};Tt.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};It.mousedown=(n,t)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let e=null;for(let i of n.state.facet(Hl))if(e=i(n,t),e)break;if(!e&&t.button==0&&(e=Ff(n,t)),e){let i=!n.hasFocus;n.inputState.startMouseSelection(new Hn(n,t,e,i)),i&&n.observer.ignore(()=>{wl(n.contentDOM);let r=n.root.activeElement;r&&!r.contains(n.contentDOM)&&r.blur()});let s=n.inputState.mouseSelection;if(s)return s.start(t),s.dragging===!1}else n.inputState.setSelectionOrigin("select.pointer");return!1};$o=(n,t,e)=>t>=e.top&&t<=e.bottom&&n>=e.left&&n<=e.right;If=v.ie&&v.ie_version<=11,_o=null,Yo=0,Go=0;It.dragstart=(n,t)=>{let{selection:{main:e}}=n.state;if(t.target.draggable){let s=n.docView.nearest(t.target);if(s&&s.isWidget){let r=s.posAtStart,o=r+s.length;(r>=e.to||o<=e.from)&&(e=A.range(r,o))}}let{inputState:i}=n;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=e,t.dataTransfer&&(t.dataTransfer.setData("Text",As(n.state,hr,n.state.sliceDoc(e.from,e.to))),t.dataTransfer.effectAllowed="copyMove"),!1};It.dragend=n=>(n.inputState.draggedContent=null,!1);It.drop=(n,t)=>{if(!t.dataTransfer)return!1;if(n.state.readOnly)return!0;let e=t.dataTransfer.files;if(e&&e.length){let i=Array(e.length),s=0,r=()=>{++s==e.length&&Xo(n,t,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(i[o]=l.result),r()},l.readAsText(e[o])}return!0}else{let i=t.dataTransfer.getData("Text");if(i)return Xo(n,t,i,!0),!0}return!1};It.paste=(n,t)=>{if(n.state.readOnly)return!0;n.observer.flush();let e=rh?null:t.clipboardData;return e?(oh(n,e.getData("text/plain")||e.getData("text/uri-list")),!0):(Nf(n),!1)};zn=null;It.copy=It.cut=(n,t)=>{let{text:e,ranges:i,linewise:s}=Vf(n.state);if(!e&&!s)return!1;zn=s?e:null,t.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=rh?null:t.clipboardData;return r?(r.clearData(),r.setData("text/plain",e),!0):(zf(n,e),!1)};hh=ee.define();Tt.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),fh(n)};Tt.blur=n=>{n.observer.clearSelectionRange(),fh(n)};Tt.compositionstart=Tt.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};Tt.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,v.chrome&&v.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};Tt.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};It.beforeinput=(n,t)=>{var e,i;if((t.inputType=="insertText"||t.inputType=="insertCompositionText")&&(n.inputState.insertingText=t.data,n.inputState.insertingTextAt=Date.now()),t.inputType=="insertReplacementText"&&n.observer.editContext){let r=(e=t.dataTransfer)===null||e===void 0?void 0:e.getData("text/plain"),o=t.getTargetRanges();if(r&&o.length){let l=o[0],h=n.posAtDOM(l.startContainer,l.startOffset),a=n.posAtDOM(l.endContainer,l.endOffset);return ar(n,{from:h,to:a,insert:n.state.toText(r)},null),!0}}let s;if(v.chrome&&v.android&&(s=sh.find(r=>r.inputType==t.inputType))&&(n.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>r+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return v.ios&&t.inputType=="deleteContentForward"&&n.observer.flushSoon(),v.safari&&t.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>Tt.compositionend(n,t),20),!1};Jo=new Set;Qo=["pre-wrap","normal","pre-line","break-spaces"],Ze=!1;Vn=class{constructor(t){this.lineWrapping=t,this.doc=F.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return Qo.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,h=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=e,this.charWidth=i,this.textHeight=s,this.lineLength=r,h){this.heightSamples={};for(let a=0;a0}set outdated(t){this.flags=(t?2:0)|this.flags&-3}setHeight(t){this.height!=t&&(Math.abs(this.height-t)>as&&(Ze=!0),this.height=t)}replace(t,e,i){return lt.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,s){let r=this,o=i.doc;for(let l=s.length-1;l>=0;l--){let{fromA:h,toA:a,fromB:f,toB:c}=s[l],u=r.lineAt(h,Y.ByPosNoHeight,i.setDoc(e),0,0),d=u.to>=a?u:r.lineAt(a,Y.ByPosNoHeight,i,0,0);for(c+=d.to-a,a=d.to;l>0&&u.from<=s[l-1].toA;)h=s[l-1].fromA,f=s[l-1].fromB,l--,hr*2){let l=t[e-1];l.break?t.splice(--e,1,l.left,null,l.right):t.splice(--e,1,l.left,l.right),i+=1+l.break,s-=l.size}else if(r>s*2){let l=t[i];l.break?t.splice(i,1,l.left,null,l.right):t.splice(i,1,l.left,l.right),i+=2+l.break,r-=l.size}else break;else if(s=r&&o(this.blockAt(0,i,s,r))}updateHeight(t,e=0,i=!1,s){return s&&s.from<=e&&s.more&&this.setHeight(s.heights[s.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},ft=class extends ys{constructor(t,e){super(t,e,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(t,e,i,s){return new Mt(s,this.length,i,this.height,this.breaks)}replace(t,e,i){let s=i[0];return i.length==1&&(s instanceof ft||s instanceof st&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof st?s=new ft(s.length,this.height):s.height=this.height,this.outdated||(s.outdated=!1),s):lt.of(i)}updateHeight(t,e=0,i=!1,s){return s&&s.from<=e&&s.more?this.setHeight(s.heights[s.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))+this.breaks*t.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},st=class extends lt{constructor(t){super(t,0)}heightMetrics(t,e){let i=t.doc.lineAt(e).number,s=t.doc.lineAt(e+this.length).number,r=s-i+1,o,l=0;if(t.lineWrapping){let h=Math.min(this.height,t.lineHeight*r);o=h/r,this.length>r+1&&(l=(this.height-h)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:s,perLine:o,perChar:l}}blockAt(t,e,i,s){let{firstLine:r,lastLine:o,perLine:l,perChar:h}=this.heightMetrics(e,s);if(e.lineWrapping){let a=s+(t0){let r=i[i.length-1];r instanceof st?i[i.length-1]=new st(r.length+s):i.push(null,new st(s-1))}if(t>0){let r=i[0];r instanceof st?i[0]=new st(t+r.length):i.unshift(new st(t-1),null)}return lt.of(i)}decomposeLeft(t,e){e.push(new st(t-1),null)}decomposeRight(t,e){e.push(null,new st(this.length-t-1))}updateHeight(t,e=0,i=!1,s){let r=e+this.length;if(s&&s.from<=e+this.length&&s.more){let o=[],l=Math.max(e,s.from),h=-1;for(s.from>e&&o.push(new st(s.from-e-1).updateHeight(t,e));l<=r&&s.more;){let f=t.doc.lineAt(l).length;o.length&&o.push(null);let c=s.heights[s.index++];h==-1?h=c:Math.abs(c-h)>=as&&(h=-2);let u=new ft(f,c);u.outdated=!1,o.push(u),l+=f+1}l<=r&&o.push(null,new st(r-l).updateHeight(t,l));let a=lt.of(o);return(h<0||Math.abs(a.height-this.height)>=as||Math.abs(h-this.heightMetrics(t,e).perLine)>=as)&&(Ze=!0),bs(this,a)}else(i||this.outdated)&&(this.setHeight(t.heightForGap(e,e+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},qn=class extends lt{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return this.flags&1}blockAt(t,e,i,s){let r=i+this.left.height;return tl))return a;let f=e==Y.ByPosNoHeight?Y.ByPosNoHeight:Y.ByPos;return h?a.join(this.right.lineAt(l,f,i,o,l)):this.left.lineAt(l,f,i,s,r).join(a)}forEachLine(t,e,i,s,r,o){let l=s+this.left.height,h=r+this.left.length+this.break;if(this.break)t=h&&this.right.forEachLine(t,e,i,l,h,o);else{let a=this.lineAt(h,Y.ByPos,i,s,r);t=t&&a.from<=e&&o(a),e>a.to&&this.right.forEachLine(a.to+1,e,i,l,h,o)}}replace(t,e,i){let s=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-s,e-s,i));let r=[];t>0&&this.decomposeLeft(t,r);let o=r.length;for(let l of i)r.push(l);if(t>0&&tl(r,o-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,s=i+this.break;if(t>=s)return this.right.decomposeRight(t-s,e);t2*e.size||e.size>2*t.size?lt.of(this.break?[t,null,e]:[t,e]):(this.left=bs(this.left,t),this.right=bs(this.right,e),this.setHeight(t.height+e.height),this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,s){let{left:r,right:o}=this,l=e+r.length+this.break,h=null;return s&&s.from<=e+r.length&&s.more?h=r=r.updateHeight(t,e,i,s):r.updateHeight(t,e,i),s&&s.from<=l+o.length&&s.more?h=o=o.updateHeight(t,l,i,s):o.updateHeight(t,l,i),h?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};qf=5,Mi=class{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let i=Math.min(e,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof ft?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new ft(i-this.pos,-1)),this.writtenTo=i,e>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=qf)&&this.addLineDeco(s,r,o)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new ft(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new st(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof ft)return t;let e=new ft(0,-1);return this.nodes.push(e),e}addBlock(t){this.enterLine();let e=t.deco;e&&e.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,e&&e.endSide>0&&(this.covering=t)}addLineDeco(t,e,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,t),s.breaks+=e,this.writtenTo=this.pos=this.pos+i}finish(t){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(e instanceof ft)&&!this.isCovered?this.nodes.push(new ft(0,-1)):(this.writtenTotypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new Vn(e),this.stateDeco=t.facet(Ai).filter(i=>typeof i!="function"),this.heightMap=lt.empty().applyChanges(this.stateDeco,F.empty,this.heightOracle.setDoc(t.doc),[new gt(0,0,0,t.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=B.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let s=i?e.head:e.anchor;if(!t.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);t.push(new Ye(r,o))}}return this.viewports=t.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let t=this.scaler;return this.scaler=this.heightMap.height<=7e6?el:new Ti(this.heightOracle,this.heightMap,this.viewports),t.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,t=>{this.viewportLines.push(pi(t,this.scaler))})}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Ai).filter(f=>typeof f!="function");let s=t.changedRanges,r=gt.extendWithRanges(s,Kf(i,this.stateDeco,t?t.changes:Q.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Zo(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Ze)&&(t.flags|=2),l?(this.scrollAnchorPos=t.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let h=r.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.headh.to)||!this.viewportIsAppropriate(h))&&(h=this.getViewport(0,e));let a=h.from!=this.viewport.from||h.to!=this.viewport.to;this.viewport=h,t.flags|=this.updateForViewport(),(a||!t.changes.empty||t.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(t.changes),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(Kl)&&(this.mustEnforceCursorAssoc=!0)}measure(t){let e=t.contentDOM,i=window.getComputedStyle(e),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?J.RTL:J.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),l=e.getBoundingClientRect(),h=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let a=0,f=0;if(l.width&&l.height){let{scaleX:D,scaleY:y}=xl(e,l);(D>.005&&Math.abs(this.scaleX-D)>.005||y>.005&&Math.abs(this.scaleY-y)>.005)&&(this.scaleX=D,this.scaleY=y,a|=16,o=h=!0)}let c=(parseInt(i.paddingTop)||0)*this.scaleY,u=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=c||this.paddingBottom!=u)&&(this.paddingTop=c,this.paddingBottom=u,a|=18),this.editorWidth!=t.scrollDOM.clientWidth&&(s.lineWrapping&&(h=!0),this.editorWidth=t.scrollDOM.clientWidth,a|=16);let d=t.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=vl(t.scrollDOM);let p=(this.printing?Uf:jf)(e,this.paddingTop),g=p.top-this.pixelViewport.top,m=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let b=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(b!=this.inView&&(this.inView=b,b&&(h=!0)),!this.inView&&!this.scrollTarget&&!$f(t.dom))return 0;let x=l.width;if((this.contentDOMWidth!=x||this.editorHeight!=t.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=t.scrollDOM.clientHeight,a|=16),h){let D=t.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(D)&&(o=!0),o||s.lineWrapping&&Math.abs(x-this.contentDOMWidth)>s.charWidth){let{lineHeight:y,charWidth:M,textHeight:C}=t.docView.measureTextSize();o=y>0&&s.refresh(r,y,M,C,Math.max(5,x/M),D),o&&(t.docView.minWidth=0,a|=16)}g>0&&m>0?f=Math.max(g,m):g<0&&m<0&&(f=Math.min(g,m)),Zo();for(let y of this.viewports){let M=y.from==this.viewport.from?D:t.docView.measureVisibleLineHeights(y);this.heightMap=(o?lt.empty().applyChanges(this.stateDeco,F.empty,this.heightOracle,[new gt(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new Wn(y.from,M))}Ze&&(a|=2)}let S=!this.viewportIsAppropriate(this.viewport,f)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return S&&(a&2&&(a|=this.updateScaler()),this.viewport=this.getViewport(f,this.scrollTarget),a|=this.updateForViewport()),(a&2||S)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,t)),a|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.docView.enforceCursorAssoc()),a}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,h=new Ye(s.lineAt(o-i*1e3,Y.ByHeight,r,0,0).from,s.lineAt(l+(1-i)*1e3,Y.ByHeight,r,0,0).to);if(e){let{head:a}=e.range;if(ah.to){let f=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),c=s.lineAt(a,Y.ByPos,r,0,0),u;e.y=="center"?u=(c.top+c.bottom)/2-f/2:e.y=="start"||e.y=="nearest"&&a=l+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=J.LTR&&!i)return[];let l=[],h=(f,c,u,d)=>{if(c-ff&&bb.from>=u.from&&b.to<=u.to&&Math.abs(b.from-f)b.fromx));if(!m){if(cS.from<=c&&S.to>=c)){let S=e.moveToLineBoundary(A.cursor(c),!1,!0).head;S>f&&(c=S)}let b=this.gapSize(u,f,c,d),x=i||b<2e6?b:2e6;m=new xi(f,c,b,x)}l.push(m)},a=f=>{if(f.length2e6)for(let M of t)M.from>=f.from&&M.fromf.from&&h(f.from,d,f,c),pe.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(t){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let i=[];L.spans(e,this.viewport.from,this.viewport.to,{span(r,o){i.push({from:r,to:o})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find(e=>e.from<=t&&e.to>=t)||pi(this.heightMap.lineAt(t,Y.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return t>=this.viewportLines[0].top&&t<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(e=>e.top<=t&&e.bottom>=t)||pi(this.heightMap.lineAt(this.scaler.fromDOM(t),Y.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(t){let e=this.lineBlockAtHeight(t+8);return e.from>=this.viewport.from||this.viewportLines[0].top-t>200?e:this.viewportLines[0]}elementAtHeight(t){return pi(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Ye=class{constructor(t,e){this.from=t,this.to=e}};el={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}},Ti=class{constructor(t,e,i){let s=0,r=0,o=0;this.viewports=i.map(({from:l,to:h})=>{let a=e.lineAt(l,Y.ByPos,t,0,0).top,f=e.lineAt(h,Y.ByPos,t,0,0).bottom;return s+=f-a,{from:l,to:h,top:a,bottom:f,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(e.height-s);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(t){for(let e=0,i=0,s=0;;e++){let r=ee.from==t.viewports[i].from&&e.to==t.viewports[i].to):!1}};rs=T.define({combine:n=>n.join(" ")}),$n=T.define({combine:n=>n.indexOf(!0)>-1}),Un=At.newName(),ch=At.newName(),uh=At.newName(),dh={"&light":"."+ch,"&dark":"."+uh};Gf=_n("."+Un,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},dh),Xf={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},bn=v.ie&&v.ie_version<=11,Yn=class{constructor(t){this.view=t,this.active=!1,this.editContext=null,this.selectionRange=new Mn,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(e=>{for(let i of e)this.queue.push(i);(v.ie&&v.ie_version<=11||v.ios&&t.composing)&&e.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&v.android&&t.constructor.EDIT_CONTEXT!==!1&&!(v.chrome&&v.chrome_version<126)&&(this.editContext=new Gn(t),t.state.facet(ne)&&(t.contentDOM.editContext=this.editContext.editContext)),bn&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var e;((e=this.view.docView)===null||e===void 0?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runHandlers("scroll",t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(t){(t.type=="change"||!t.type)&&!t.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((e,i)=>e!=t[i]))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(ne)?i.root.activeElement!=this.dom:!ls(this.dom,s))return;let r=s.anchorNode&&i.docView.nearest(s.anchorNode);if(r&&r.ignoreEvent(t)){e||(this.selectionChanged=!1);return}(v.ie&&v.ie_version<=11||v.android&&v.chrome)&&!i.state.selection.main.empty&&s.focusNode&&mi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=vi(t.root);if(!e)return!1;let i=v.safari&&t.root.nodeType==11&&t.root.activeElement==this.dom&&Jf(this.view,e)||e;if(!i||this.selectionRange.eq(i))return!1;let s=ls(this.dom,i);return s&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&Je(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||t=="Enter")&&(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,s=!1;for(let r of t){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),e==-1?{from:e,to:i}=o:(e=Math.min(o.from,e),i=Math.max(o.to,i)))}return{from:e,to:i,typeOver:s}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),s=this.selectionChanged&&ls(this.dom,this.selectionRange);if(t<0&&!s)return null;t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new In(this.view,t,e,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return this.view.requestMeasure(),!1;let i=this.view.state,s=eh(this.view,e);return this.view.state==i&&(e.domChanged||e.newSel&&!e.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),s}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty(t.type=="attributes"),t.type=="attributes"&&(e.flags|=4),t.type=="childList"){let i=il(e,t.previousSibling||t.target.previousSibling,-1),s=il(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:s?e.posBefore(s):e.posAtEnd,typeOver:!1}}else return t.type=="characterData"?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}update(t){this.editContext&&(this.editContext.update(t),t.startState.facet(ne)!=t.state.facet(ne)&&(t.view.contentDOM.editContext=t.state.facet(ne)?this.editContext.editContext:null))}destroy(){var t,e,i;this.stop(),(t=this.intersection)===null||t===void 0||t.disconnect(),(e=this.gapIntersection)===null||e===void 0||e.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}};Gn=class{constructor(t){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(t.state);let e=this.editContext=new window.EditContext({text:t.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,t.state.selection.main.anchor))),selectionEnd:this.toContextPos(t.state.selection.main.head)});this.handlers.textupdate=i=>{let s=t.state.selection.main,{anchor:r,head:o}=s,l=this.toEditorPos(i.updateRangeStart),h=this.toEditorPos(i.updateRangeEnd);t.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:l,drifted:!1});let a=h-l>i.text.length;l==this.from&&rthis.to&&(h=r);let f=ih(t.state.sliceDoc(l,h),i.text,(a?s.from:s.to)-l,a?"end":null);if(!f){let u=A.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));u.main.eq(s)||t.dispatch({selection:u,userEvent:"select"});return}let c={from:f.from+l,to:f.toA+l,insert:F.of(i.text.slice(f.from,f.toB).split(` +`))};if((v.mac||v.android)&&c.from==o-1&&/^\. ?$/.test(i.text)&&t.contentDOM.getAttribute("autocorrect")=="off"&&(c={from:l,to:h,insert:F.of([i.text.replace("."," ")])}),this.pendingContextChange=c,!t.state.readOnly){let u=this.to-this.from+(c.to-c.from+c.insert.length);ar(t,c,A.single(this.toEditorPos(i.selectionStart,u),this.toEditorPos(i.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(t.state),this.setSelection(t.state)),c.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(e.text.slice(Math.max(0,i.updateRangeStart-1),Math.min(e.text.length,i.updateRangeStart+1)))&&this.handlers.compositionend(i)},this.handlers.characterboundsupdate=i=>{let s=[],r=null;for(let o=this.toEditorPos(i.rangeStart),l=this.toEditorPos(i.rangeEnd);o{let s=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,l=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(l)){let h=this.toEditorPos(r.rangeStart),a=this.toEditorPos(r.rangeEnd);if(h{t.inputState.composing<0&&(t.inputState.composing=0,t.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(t.inputState.composing=-1,t.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(t.state)}};for(let i in this.handlers)e.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=vi(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(t){let e=0,i=!1,s=this.pendingContextChange;return t.changes.iterChanges((r,o,l,h,a)=>{if(i)return;let f=a.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(a)){s=this.pendingContextChange=null,e+=f,this.to+=f;return}else s=null,this.revertPending(t.state);if(r+=e,o+=e,o<=this.from)this.from+=f,this.to+=f;else if(rthis.to||this.to-this.from+a.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),a.toString()),this.to+=f}e+=f}),s&&!i&&this.revertPending(t.state),!i}update(t){let e=this.pendingContextChange,i=t.startState.selection.main;this.composing&&(this.composing.drifted||!t.changes.touchesRange(i.from,i.to)&&t.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=t.changes.mapPos(this.composing.editorBase)):!this.applyEdits(t)||!this.rangeIsValid(t.state)?(this.pendingContextChange=null,this.reset(t.state)):(t.docChanged||t.selectionSet||e)&&this.setSelection(t.state),(t.geometryChanged||t.docChanged||t.selectionSet)&&t.view.requestMeasure(this.measureReq)}resetRange(t){let{head:e}=t.selection.main;this.from=Math.max(0,e-1e4),this.to=Math.min(t.doc.length,e+1e4)}reset(t){this.resetRange(t),this.editContext.updateText(0,this.editContext.text.length,t.doc.sliceString(this.from,this.to)),this.setSelection(t)}revertPending(t){let e=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(e.from),this.toContextPos(e.from+e.insert.length),t.doc.sliceString(e.from,e.to))}setSelection(t){let{main:e}=t.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,e.anchor))),s=this.toContextPos(e.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(t){let{head:e}=t.selection.main;return!(this.from>0&&e-this.from<500||this.to1e4*3)}toEditorPos(t,e=this.to-this.from){t=Math.min(t,e);let i=this.composing;return i&&i.drifted?i.editorBase+(t-i.contextBase):t+this.from}toContextPos(t){let e=this.composing;return e&&e.drifted?e.contextBase+(t-e.editorBase):t-this.from}destroy(){for(let t in this.handlers)this.editContext.removeEventListener(t,this.handlers[t])}},P=class{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(t={}){var e;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),t.parent&&t.parent.appendChild(this.dom);let{dispatch:i}=t;this.dispatchTransactions=t.dispatchTransactions||i&&(s=>s.forEach(r=>i(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=t.root||qa(t.parent)||document,this.viewState=new xs(t.state||I.create(t)),t.scrollTo&&t.scrollTo.is(ts)&&(this.viewState.scrollTarget=t.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(_e).map(s=>new bi(s));for(let s of this.plugins)s.update(this);this.observer=new Yn(this),this.inputState=new Fn(this),this.inputState.ensureHandlers(this.plugins),this.docView=new gs(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((e=document.fonts)===null||e===void 0)&&e.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...t){let e=t.length==1&&t[0]instanceof it?t:t.length==1&&Array.isArray(t[0])?t[0]:[this.state.update(...t)];this.dispatchTransactions(e,this)}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e=!1,i=!1,s,r=this.state;for(let u of t){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,l=0,h=null;t.some(u=>u.annotation(hh))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,h=ah(r,o),h||(l=1));let a=this.observer.delayedAndroidKey,f=null;if(a?(this.observer.clearDelayedAndroidKey(),f=this.observer.readChange(),(f&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(f=null)):this.observer.clear(),r.facet(I.phrases)!=this.state.facet(I.phrases))return this.setState(r);s=Qe.create(this,r,t),s.flags|=l;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let u of t){if(c&&(c=c.map(u.changes)),u.scrollIntoView){let{main:d}=u.state.selection;c=new he(d.empty?d:A.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of u.effects)d.is(ts)&&(c=d.value.clip(this.state))}this.viewState.update(s,c),this.bidiCache=ti.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),e=this.docView.update(s),this.state.facet(ui)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(e,t.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(rs)!=s.state.facet(rs)&&(this.viewState.mustMeasureContent=!0),(e||i||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),e&&this.docViewUpdate(),!s.empty)for(let u of this.state.facet(En))try{u(s)}catch(d){Bt(this.state,d,"update listener")}(h||f)&&Promise.resolve().then(()=>{h&&this.state==h.startState&&this.dispatch(h),f&&!eh(this,f)&&a.force&&Je(this.contentDOM,a.key,a.keyCode)})}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;let e=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new xs(t),this.plugins=t.facet(_e).map(i=>new bi(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new gs(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(_e),i=t.state.facet(_e);if(e!=i){let s=[];for(let r of i){let o=e.indexOf(r);if(o<0)s.push(new bi(r));else{let l=this.plugins[o];l.mustUpdate=t,s.push(l)}}for(let r of this.plugins)r.mustUpdate!=t&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=t;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,i=this.scrollDOM,s=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(vl(i))r=-1,o=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(s);r=d.from,o=d.top}this.updateState=1;let h=this.viewState.measure(this);if(!h&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];h&4||([this.measureRequests,a]=[a,this.measureRequests]);let f=a.map(d=>{try{return d.read(this)}catch(p){return Bt(this.state,p),nl}}),c=Qe.create(this,this.state,[]),u=!1;c.flags|=h,e?e.flags|=h:e=c,this.updateState=2,c.empty||(this.updatePlugins(c),this.inputState.update(c),this.updateAttrs(),u=this.docView.update(c),u&&this.docViewUpdate());for(let d=0;d1||p<-1){s=s+p,i.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let l of this.state.facet(En))l(e)}get themeClasses(){return Un+" "+(this.state.facet($n)?uh:ch)+" "+this.state.facet(rs)}updateAttrs(){let t=rl(this,Ul,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(ne)?"true":"false",class:"cm-content",style:`${v.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),rl(this,Cs,e);let i=this.observer.ignore(()=>{let s=Dn(this.contentDOM,this.contentAttrs,e),r=Dn(this.dom,this.editorAttrs,t);return s||r});return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let s of i.effects)if(s.is(P.announce)){e&&(this.announceDOM.textContent=""),e=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(ui);let t=this.state.facet(P.cspNonce);At.mount(this.root,this.styleModules.concat(Gf).reverse(),t?{nonce:t}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),t){if(this.measureRequests.indexOf(t)>-1)return;if(t.key!=null){for(let e=0;ei.plugin==t)||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return mn(this,t,qo(this,t,e,i))}moveByGroup(t,e){return mn(this,t,qo(this,t,e,i=>wf(this,t.head,i)))}visualLineSide(t,e){let i=this.bidiSpans(t),s=this.textDirectionAt(t.from),r=i[e?i.length-1:0];return A.cursor(r.side(e,s)+t.from,r.forward(!e,s)?1:-1)}moveToLineBoundary(t,e,i=!0){return xf(this,t,e,i)}moveVertically(t,e,i){return mn(this,t,kf(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),Ql(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(t),r=this.bidiSpans(s),o=r[jt.find(r,t-s.from,-1,e)];return Ss(i,o.dir==J.LTR==e>0)}coordsForChar(t){return this.readMeasured(),this.docView.coordsForChar(t)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(ql)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Qf)return Nl(t.length);let e=this.textDirectionAt(t.from),i;for(let r of this.bidiCache)if(r.from==t.from&&r.dir==e&&(r.fresh||Bl(r.isolates,i=Fo(this,t))))return r.order;i||(i=Fo(this,t));let s=sf(t.text,e,i);return this.bidiCache.push(new ti(t.from,t.to,e,i,!0,s)),s}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||v.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{wl(this.contentDOM),this.docView.updateSelection()})}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((t.nodeType==9?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return ts.of(new he(typeof t=="number"?A.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}scrollSnapshot(){let{scrollTop:t,scrollLeft:e}=this.scrollDOM,i=this.viewState.scrollAnchorAt(t);return ts.of(new he(A.cursor(i.from),"start","start",i.top-t,e,!0))}setTabFocusMode(t){t==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof t=="boolean"?this.inputState.tabFocusMode=t?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+t)}static domEventHandlers(t){return tt.define(()=>({}),{eventHandlers:t})}static domEventObservers(t){return tt.define(()=>({}),{eventObservers:t})}static theme(t,e){let i=At.newName(),s=[rs.of(i),ui.of(_n(`.${i}`,t))];return e&&e.dark&&s.push($n.of(!0)),s}static baseTheme(t){return $e.lowest(ui.of(_n("."+Un,t,dh)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),s=i&&W.get(i)||W.get(t);return((e=s?.rootView)===null||e===void 0?void 0:e.view)||null}};P.styleModule=ui;P.inputHandler=Vl;P.clipboardInputFilter=lr;P.clipboardOutputFilter=hr;P.scrollHandler=jl;P.focusChangeEffect=Wl;P.perLineTextDirection=ql;P.exceptionSink=zl;P.updateListener=En;P.editable=ne;P.mouseSelectionStyle=Hl;P.dragMovesSelection=Fl;P.clickAddsSelectionRange=Il;P.decorations=Ai;P.outerDecorations=_l;P.atomicRanges=Pi;P.bidiIsolatedRanges=Yl;P.scrollMargins=Gl;P.darkTheme=$n;P.cspNonce=T.define({combine:n=>n.length?n[0]:""});P.contentAttributes=Cs;P.editorAttributes=Ul;P.lineWrapping=P.contentAttributes.of({class:"cm-lineWrapping"});P.announce=U.define();Qf=4096,nl={},ti=class{constructor(t,e,i,s,r,o){this.from=t,this.to=e,this.dir=i,this.isolates=s,this.fresh=r,this.order=o}static update(t,e){if(e.empty&&!t.some(r=>r.fresh))return t;let i=[],s=t.length?t[t.length-1].dir:J.LTR;for(let r=Math.max(0,t.length-10);r!oc(e,this.drawn[i]))){let e=this.dom.firstChild,i=0;for(let s of t)s.update&&e&&s.constructor&&this.drawn[i].constructor&&s.update(e,this.drawn[i])?(e=e.nextSibling,i++):this.dom.insertBefore(s.draw(),e);for(;e;){let s=e.nextSibling;e.remove(),e=s}this.drawn=t,v.safari&&v.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},fs=T.define();Di=T.define({combine(n){return Ae(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(t,e)=>Math.min(t,e),drawRangeCursor:(t,e)=>t||e})}});lc=bh({above:!0,markers(n){let{state:t}=n,e=t.facet(Di),i=[];for(let s of t.selection.ranges){let r=s==t.selection.main;if(s.empty||e.drawRangeCursor){let o=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=s.empty?s:A.cursor(s.head,s.head>s.anchor?-1:1);for(let h of Be.forRange(n,o,l))i.push(h)}}return i},update(n,t){n.transactions.some(i=>i.selection)&&(t.style.animationName=t.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let e=yh(n);return e&&hl(n.state,t),n.docChanged||n.selectionSet||e},mount(n,t){hl(t.state,n)},class:"cm-cursorLayer"});hc=bh({above:!1,markers(n){return n.state.selection.ranges.map(t=>t.empty?[]:Be.forRange(n,"cm-selectionBackground",t)).reduce((t,e)=>t.concat(e))},update(n,t){return n.docChanged||n.selectionSet||n.viewportChanged||yh(n)},class:"cm-selectionLayer"}),ac=$e.highest(P.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),xh=U.define({map(n,t){return n==null?null:t.mapPos(n)}}),gi=pt.define({create(){return null},update(n,t){return n!=null&&(n=t.changes.mapPos(n)),t.effects.reduce((e,i)=>i.is(xh)?i.value:e,n)}}),fc=tt.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var t;let e=n.state.field(gi);e==null?this.cursor!=null&&((t=this.cursor)===null||t===void 0||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(gi)!=e||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,t=n.state.field(gi),e=t!=null&&n.coordsAtPos(t);if(!e)return null;let i=n.scrollDOM.getBoundingClientRect();return{left:e.left-i.left+n.scrollDOM.scrollLeft*n.scaleX,top:e.top-i.top+n.scrollDOM.scrollTop*n.scaleY,height:e.bottom-e.top}}drawCursor(n){if(this.cursor){let{scaleX:t,scaleY:e}=this.view;n?(this.cursor.style.left=n.left/t+"px",this.cursor.style.top=n.top/e+"px",this.cursor.style.height=n.height/e+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(gi)!=n&&this.view.dispatch({effects:xh.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});Oi=class{constructor(t){let{regexp:e,decoration:i,decorate:s,boundary:r,maxLength:o=1e3}=t;if(!e.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=e,s)this.addMatch=(l,h,a,f)=>s(f,a,a+l[0].length,l,h);else if(typeof i=="function")this.addMatch=(l,h,a,f)=>{let c=i(l,h,a);c&&f(a,a+l[0].length,c)};else if(i)this.addMatch=(l,h,a,f)=>f(a,a+l[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(t){let e=new Et,i=e.add.bind(e);for(let{from:s,to:r}of cc(t,this.maxLength))al(t.state.doc,this.regexp,s,r,(o,l)=>this.addMatch(l,t,o,i));return e.finish()}updateDeco(t,e){let i=1e9,s=-1;return t.docChanged&&t.changes.iterChanges((r,o,l,h)=>{h>=t.view.viewport.from&&l<=t.view.viewport.to&&(i=Math.min(l,i),s=Math.max(h,s))}),t.viewportMoved||s-i>1e3?this.createDeco(t.view):s>-1?this.updateRange(t.view,e.map(t.changes),i,s):e}updateRange(t,e,i,s){for(let r of t.visibleRanges){let o=Math.max(r.from,i),l=Math.min(r.to,s);if(l>=o){let h=t.state.doc.lineAt(o),a=h.toh.from;o--)if(this.boundary.test(h.text[o-1-h.from])){f=o;break}for(;lu.push(b.range(g,m));if(h==a)for(this.regexp.lastIndex=f-h.from;(d=this.regexp.exec(h.text))&&d.indexthis.addMatch(m,t,g,p));e=e.update({filterFrom:f,filterTo:c,filter:(g,m)=>gc,add:u})}}return e}},Qn=/x/.unicode!=null?"gu":"g",uc=new RegExp(`[\0-\b +-\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Qn),dc={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},yn=null;cs=T.define({combine(n){let t=Ae(n,{render:null,specialChars:uc,addSpecialChars:null});return(t.replaceTabs=!pc())&&(t.specialChars=new RegExp(" |"+t.specialChars.source,Qn)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,Qn)),t}});fl=null;mc="\u2022";Zn=class extends Ut{constructor(t,e){super(),this.options=t,this.code=e}eq(t){return t.code==this.code}toDOM(t){let e=bc(this.code),i=t.state.phrase("Control character")+" "+(dc[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,e);if(s)return s;let r=document.createElement("span");return r.textContent=e,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}},tr=class extends Ut{constructor(t){super(),this.width=t}eq(t){return t.width==this.width}toDOM(){let t=document.createElement("span");return t.textContent=" ",t.className="cm-tab",t.style.width=this.width+"px",t}ignoreEvent(){return!1}},cl=tt.fromClass(class{constructor(){this.height=1e3,this.attrs={style:"padding-bottom: 1000px"}}update(n){let{view:t}=n,e=t.viewState.editorHeight-t.defaultLineHeight-t.documentPadding.top-.5;e>=0&&e!=this.height&&(this.height=e,this.attrs={style:`padding-bottom: ${e}px`})}});yc=B.line({class:"cm-activeLine"}),xc=tt.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let t=-1,e=[];for(let i of n.state.selection.ranges){let s=n.lineBlockAt(i.head);s.from>t&&(e.push(yc.range(s.from)),t=s.from)}return B.set(e)}},{decorations:n=>n.decorations}),er=2e3;Sc={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},Cc={style:"cursor: crosshair"};Mc=T.define({combine:n=>{var t,e,i;return{position:v.ios?"absolute":((t=n.find(s=>s.position))===null||t===void 0?void 0:t.position)||"fixed",parent:((e=n.find(s=>s.parent))===null||e===void 0?void 0:e.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||Ac}}}),od=P.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),dl=T.define({combine(n){let t,e;for(let i of n)t=t||i.topContainer,e=e||i.bottomContainer;return{topContainer:t,bottomContainer:e}}});wh=tt.fromClass(class{constructor(n){this.input=n.state.facet(gl),this.specs=this.input.filter(e=>e),this.panels=this.specs.map(e=>e(n));let t=n.state.facet(dl);this.top=new Ge(n,!0,t.topContainer),this.bottom=new Ge(n,!1,t.bottomContainer),this.top.sync(this.panels.filter(e=>e.top)),this.bottom.sync(this.panels.filter(e=>!e.top));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(n){let t=n.state.facet(dl);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new Ge(n.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ge(n.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let e=n.state.facet(gl);if(e!=this.input){let i=e.filter(h=>h),s=[],r=[],o=[],l=[];for(let h of i){let a=this.specs.indexOf(h),f;a<0?(f=h(n.view),l.push(f)):(f=this.panels[a],f.update&&f.update(n)),s.push(f),(f.top?r:o).push(f)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let h of l)h.dom.classList.add("cm-panel"),h.mount&&h.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>P.scrollMargins.of(t=>{let e=t.plugin(n);return e&&{top:e.top.scrollMargin(),bottom:e.bottom.scrollMargin()}})}),Ge=class{constructor(t,e,i){this.view=t,this.top=e,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(t){for(let e of this.panels)e.destroy&&t.indexOf(e)<0&&e.destroy();this.panels=t,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let t=this.dom.firstChild;for(let e of this.panels)if(e.dom.parentNode==this.dom){for(;t!=e.dom;)t=pl(t);t=t.nextSibling}else this.dom.insertBefore(e.dom,t);for(;t;)t=pl(t)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let t of this.classes.split(" "))t&&this.container.classList.remove(t);for(let t of(this.classes=this.view.themeClasses).split(" "))t&&this.container.classList.add(t)}}};gl=T.define({enables:wh}),Ft=class extends ie{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}};Ft.prototype.elementClass="";Ft.prototype.toDOM=void 0;Ft.prototype.mapMode=dt.TrackBefore;Ft.prototype.startSide=Ft.prototype.endSide=-1;Ft.prototype.point=!0;xn=T.define(),Tc=T.define(),Dc={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>L.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},wi=T.define();ir=T.define({combine:n=>n.some(t=>t)});Oc=tt.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(wi).map(t=>new ws(n,t)),this.fixed=!n.state.facet(ir);for(let t of this.gutters)t.config.side=="after"?this.getDOMAfter().appendChild(t.dom):this.dom.appendChild(t.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let t=this.prevViewport,e=n.view.viewport,i=Math.min(t.to,e.to)-Math.max(t.from,e.from);this.syncGutters(i<(e.to-e.from)*.8)}if(n.geometryChanged){let t=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=t,this.domAfter&&(this.domAfter.style.minHeight=t)}this.view.state.facet(ir)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let t=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let e=L.iter(this.view.state.facet(xn),this.view.viewport.from),i=[],s=this.gutters.map(r=>new nr(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let l of r.type)if(l.type==ut.Text&&o){sr(e,i,l.from);for(let h of s)h.line(this.view,l,i);o=!1}else if(l.widget)for(let h of s)h.widget(this.view,l)}else if(r.type==ut.Text){sr(e,i,r.from);for(let o of s)o.line(this.view,r,i)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,t),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let t=n.startState.facet(wi),e=n.state.facet(wi),i=n.docChanged||n.heightChanged||n.viewportChanged||!L.eq(n.startState.facet(xn),n.state.facet(xn),n.view.viewport.from,n.view.viewport.to);if(t==e)for(let s of this.gutters)s.update(n)&&(i=!0);else{i=!0;let s=[];for(let r of e){let o=t.indexOf(r);o<0?s.push(new ws(this.view,r)):(this.gutters[o].update(n),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>P.scrollMargins.of(t=>{let e=t.plugin(n);if(!e||e.gutters.length==0||!e.fixed)return null;let i=e.dom.offsetWidth*t.scaleX,s=e.domAfter?e.domAfter.offsetWidth*t.scaleX:0;return t.textDirection==J.LTR?{left:i,right:s}:{right:i,left:s}})});nr=class{constructor(t,e,i){this.gutter=t,this.height=i,this.i=0,this.cursor=L.iter(t.markers,e.from)}addElement(t,e,i){let{gutter:s}=this,r=(e.top-this.height)/t.scaleY,o=e.height/t.scaleY;if(this.i==s.elements.length){let l=new ks(t,o,r,i);s.elements.push(l),s.dom.appendChild(l.dom)}else s.elements[this.i].update(t,o,r,i);this.height=e.bottom,this.i++}line(t,e,i){let s=[];sr(this.cursor,s,e.from),i.length&&(s=s.concat(i));let r=this.gutter.config.lineMarker(t,e,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(t,e,s)}widget(t,e){let i=this.gutter.config.widgetMarker(t,e.widget,e),s=i?[i]:null;for(let r of t.state.facet(Tc)){let o=r(t,e.widget,e);o&&(s||(s=[])).push(o)}s&&this.addElement(t,e,s)}finish(){let t=this.gutter;for(;t.elements.length>this.i;){let e=t.elements.pop();t.dom.removeChild(e.dom),e.destroy()}}},ws=class{constructor(t,e){this.view=t,this.config=e,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in e.domEventHandlers)this.dom.addEventListener(i,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let h=r.getBoundingClientRect();o=(h.top+h.bottom)/2}else o=s.clientY;let l=t.lineBlockAtHeight(o-t.documentTop);e.domEventHandlers[i](t,l,s)&&s.preventDefault()});this.markers=ml(e.markers(t)),e.initialSpacer&&(this.spacer=new ks(t,0,0,[e.initialSpacer(t)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(t){let e=this.markers;if(this.markers=ml(this.config.markers(t.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],t);s!=this.spacer.markers[0]&&this.spacer.update(t.view,0,0,[s])}let i=t.view.viewport;return!L.eq(this.markers,e,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(t):!1)}destroy(){for(let t of this.elements)t.destroy()}},ks=class{constructor(t,e,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(t,e,i,s)}update(t,e,i,s){this.height!=e&&(this.height=e,this.dom.style.height=e+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),Pc(this.markers,s)||this.setMarkers(t,s)}setMarkers(t,e){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let l=o,h=rr(l,h,a)||o(l,h,a):o}return i}})}}),ki=class extends Ft{constructor(t){super(),this.number=t}eq(t){return this.number==t.number}toDOM(){return document.createTextNode(this.number)}};Bc=wi.compute([Xe],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(t){return t.state.facet(Rc)},lineMarker(t,e,i){return i.some(s=>s.toDOM)?null:new ki(wn(t,t.state.doc.lineAt(e.from).number))},widgetMarker:(t,e,i)=>{for(let s of t.state.facet(Ec)){let r=s(t,e,i);if(r)return r}return null},lineMarkerChange:t=>t.startState.facet(Xe)!=t.state.facet(Xe),initialSpacer(t){return new ki(wn(t,bl(t.state.doc.lines)))},updateSpacer(t,e){let i=wn(e.view,bl(e.view.state.doc.lines));return i==t.number?t:new ki(i)},domEventHandlers:n.facet(Xe).domEventHandlers,side:"before"}));Nc=B.mark({class:"cm-highlightTab"}),Lc=B.mark({class:"cm-highlightSpace"}),Ic=Sh(new Oi({regexp:/\t| /g,decoration:n=>n[0]==" "?Nc:Lc,boundary:/\S/}));Fc=Sh(new Oi({regexp:/\s+$/g,decoration:B.mark({class:"cm-trailingSpace"})}))});function Bh(n,t,e,i){switch(n){case-2:return e=t&&et;case 1:return e<=t&&i>t;case 2:return i>t;case 4:return!0}}function Ei(n,t,e,i){for(var s;n.from==n.to||(e<1?n.from>=t:n.from>t)||(e>-1?n.to<=t:n.to=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[e]&&t[e]!=i.name)return!1;e--}}return!0}function Nh(n){if(!n.length)return null;let t=0,e=n[0];for(let r=1;re.from||o.to=t){let l=new rt(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[i])).push(Ei(l,t,e,!1))}}return s?Nh(s):i}function yr(n){return n.children.some(t=>t instanceof Yt||!t.type.isAnonymous||yr(t))}function Wc(n){var t;let{buffer:e,nodeSet:i,maxBufferLength:s=1024,reused:r=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(e)?new Ri(e,e.length):e,h=i.types,a=0,f=0;function c(y,M,C,z,N,K){let{id:E,start:O,end:q,size:V}=l,$=f,at=a;if(V<0)if(l.next(),V==-1){let Zt=r[E];C.push(Zt),z.push(O-y);return}else if(V==-3){a=E;return}else if(V==-4){f=E;return}else throw new RangeError(`Unrecognized record size: ${V}`);let xt=h[E],Ht,ot,vt=O-y;if(q-O<=s&&(ot=m(l.pos-M,N))){let Zt=new Uint16Array(ot.size-ot.skip),St=l.pos-ot.size,zt=Zt.length;for(;l.pos>St;)zt=b(ot.start,Zt,zt);Ht=new Yt(Zt,q-ot.start,i),vt=ot.start-y}else{let Zt=l.pos-V;l.next();let St=[],zt=[],ye=E>=o?E:-1,ze=0,Wi=q;for(;l.pos>Zt;)ye>=0&&l.id==ye&&l.size>=0?(l.end<=Wi-s&&(p(St,zt,O,ze,l.end,Wi,ye,$,at),ze=St.length,Wi=l.end),l.next()):K>2500?u(O,Zt,St,zt):c(O,Zt,St,zt,ye,K+1);if(ye>=0&&ze>0&&ze-1&&ze>0){let Gr=d(xt,at);Ht=xr(xt,St,zt,0,St.length,0,q-O,Gr,Gr)}else Ht=g(xt,St,zt,q-O,$-q,at)}C.push(Ht),z.push(vt)}function u(y,M,C,z){let N=[],K=0,E=-1;for(;l.pos>M;){let{id:O,start:q,end:V,size:$}=l;if($>4)l.next();else{if(E>-1&&q=0;V-=3)O[$++]=N[V],O[$++]=N[V+1]-q,O[$++]=N[V+2]-q,O[$++]=$;C.push(new Yt(O,N[2]-q,i)),z.push(q-y)}}function d(y,M){return(C,z,N)=>{let K=0,E=C.length-1,O,q;if(E>=0&&(O=C[E])instanceof H){if(!E&&O.type==y&&O.length==N)return O;(q=O.prop(R.lookAhead))&&(K=z[E]+O.length+q)}return g(y,C,z,N,K,M)}}function p(y,M,C,z,N,K,E,O,q){let V=[],$=[];for(;y.length>z;)V.push(y.pop()),$.push(M.pop()+C-N);y.push(g(i.types[E],V,$,K-N,O-K,q)),M.push(N-C)}function g(y,M,C,z,N,K,E){if(K){let O=[R.contextHash,K];E=E?[O].concat(E):[O]}if(N>25){let O=[R.lookAhead,N];E=E?[O].concat(E):[O]}return new H(y,M,C,z,E)}function m(y,M){let C=l.fork(),z=0,N=0,K=0,E=C.end-s,O={size:0,start:0,skip:0};t:for(let q=C.pos-y;C.pos>q;){let V=C.size;if(C.id==M&&V>=0){O.size=z,O.start=N,O.skip=K,K+=4,z+=4,C.next();continue}let $=C.pos-V;if(V<0||$=o?4:0,xt=C.start;for(C.next();C.pos>$;){if(C.size<0)if(C.size==-3||C.size==-4)at+=4;else break t;else C.id>=o&&(at+=4);C.next()}N=xt,z+=V,K+=at}return(M<0||z==y)&&(O.size=z,O.start=N,O.skip=K),O.size>4?O:void 0}function b(y,M,C){let{id:z,start:N,end:K,size:E}=l;if(l.next(),E>=0&&z4){let q=l.pos-(E-4);for(;l.pos>q;)C=b(y,M,C)}M[--C]=O,M[--C]=K-y,M[--C]=N-y,M[--C]=z}else E==-3?a=z:E==-4&&(f=z);return C}let x=[],S=[];for(;l.pos>0;)c(n.start||0,n.bufferStart||0,x,S,-1,0);let D=(t=n.length)!==null&&t!==void 0?t:x.length?S[0]+x[0].length:0;return new H(h[n.topID],x.reverse(),S.reverse(),D)}function Ts(n,t){if(!n.isAnonymous||t instanceof Yt||t.type!=n)return 1;let e=Th.get(t);if(e==null){e=1;for(let i of t.children){if(i.type!=n||!(i instanceof H)){e=1;break}e+=Ts(n,i)}Th.set(t,e)}return e}function xr(n,t,e,i,s,r,o,l,h){let a=0;for(let p=i;p=f)break;M+=C}if(S==D+1){if(M>f){let C=p[D];d(C.children,C.positions,0,C.children.length,g[D]+x);continue}c.push(p[D])}else{let C=g[S-1]+p[S-1].length-y;c.push(xr(n,p,g,D,S,y,C,null,h))}u.push(y+x-r)}}return d(t,e,i,s,0),(l||h)(c,u,o)}function xd(n){return(t,e,i,s)=>new mr(t,n,e,i,s)}function Oh(n){if(!n.length||n.some(t=>t.from>=t.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(n))}function qc(n,t,e){for(let i of n){if(i.from>=e)break;if(i.to>t)return i.from<=t&&i.to>=e?2:1}return 0}function Ph(n,t,e,i,s,r){if(t=l)break;h.to<=o||(e||(i=e=t.slice()),h.froml&&e.splice(r+1,0,new mt(l,h.to))):h.to>l?e[r--]=new mt(l,h.to):e.splice(r--,1))}}return i}function jc(n,t,e,i){let s=0,r=0,o=!1,l=!1,h=-1e9,a=[];for(;;){let f=s==n.length?1e9:o?n[s].to:n[s].from,c=r==t.length?1e9:l?t[r].to:t[r].from;if(o!=l){let u=Math.max(h,e),d=Math.min(f,c,i);unew mt(u.from+i,u.to+i)),c=jc(t,f,h,a);for(let u=0,d=h;;u++){let p=u==c.length,g=p?a:c[u].from;if(g>d&&e.push(new Ot(d,g,s.tree,-o,r.from>=d||r.openStart,r.to<=g||r.openEnd)),p)break;d=c[u].to}}else e.push(new Ot(h,a,s.tree,-o,r.from>=o||r.openStart,r.to<=l||r.openEnd))}return e}var Hc,mt,R,Ne,zc,et,ce,Ms,Ah,_,H,Ri,Yt,Ds,rt,cr,Dt,ur,ei,Th,Dh,Ot,Le,dr,Os,pr,gr,mr,Ps,br,Rs=Vt(()=>{Hc=0,mt=class{constructor(t,e){this.from=t,this.to=e}},R=class{constructor(t={}){this.id=Hc++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=t.combine||null}add(t){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof t!="function"&&(t=et.match(t)),e=>{let i=t(e);return i===void 0?null:[this,i]}}};R.closedBy=new R({deserialize:n=>n.split(" ")});R.openedBy=new R({deserialize:n=>n.split(" ")});R.group=new R({deserialize:n=>n.split(" ")});R.isolate=new R({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});R.contextHash=new R({perNode:!0});R.lookAhead=new R({perNode:!0});R.mounted=new R({perNode:!0});Ne=class{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[R.mounted.id]}},zc=Object.create(null),et=class{constructor(t,e,i,s=0){this.name=t,this.props=e,this.id=i,this.flags=s}static define(t){let e=t.props&&t.props.length?Object.create(null):zc,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),s=new et(t.name||"",e,t.id,i);if(t.props){for(let r of t.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");e[r[0].id]=r[1]}}return s}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let e=this.prop(R.group);return e?e.indexOf(t)>-1:!1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let s of i.split(" "))e[s]=t[i];return i=>{for(let s=i.prop(R.group),r=-1;r<(s?s.length:0);r++){let o=e[r<0?i.name:s[r]];if(o)return o}}}};et.none=new et("",Object.create(null),0,8);ce=class{constructor(t){this.types=t;for(let e=0;e0;for(let h=this.cursor(o|_.IncludeAnonymous);;){let a=!1;if(h.from<=r&&h.to>=s&&(!l&&h.type.isAnonymous||e(h)!==!1)){if(h.firstChild())continue;a=!0}for(;a&&i&&(l||!h.type.isAnonymous)&&i(h),!h.nextSibling();){if(!h.parent())return;a=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:xr(et.none,this.children,this.positions,0,this.children.length,0,this.length,(e,i,s)=>new H(this.type,e,i,s,this.propValues),t.makeTree||((e,i,s)=>new H(et.none,e,i,s)))}static build(t){return Wc(t)}};H.empty=new H(et.none,[],[],0);Ri=class{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Ri(this.buffer,this.index)}},Yt=class{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return et.none}toString(){let t=[];for(let e=0;e0));h=o[h+3]);return l}slice(t,e,i){let s=this.buffer,r=new Uint16Array(e-t),o=0;for(let l=t,h=0;l0?l.length:-1;t!=a;t+=e){let f=l[t],c=h[t]+o.from;if(Bh(s,i,c,c+f.length)){if(f instanceof Yt){if(r&_.ExcludeBuffers)continue;let u=f.findChild(0,f.buffer.length,e,i-c,s);if(u>-1)return new Dt(new cr(o,f,t,c),null,u)}else if(r&_.IncludeAnonymous||!f.type.isAnonymous||yr(f)){let u;if(!(r&_.IgnoreMounts)&&(u=Ne.get(f))&&!u.overlay)return new rt(u.tree,c,t,o);let d=new rt(f,c,t,o);return r&_.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(e<0?f.children.length-1:0,e,i,s)}}}if(r&_.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?t=o.index+e:t=e<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}prop(t){return this._tree.prop(t)}enter(t,e,i=0){let s;if(!(i&_.IgnoreOverlays)&&(s=Ne.get(this._tree))&&s.overlay){let r=t-this.from;for(let{from:o,to:l}of s.overlay)if((e>0?o<=r:o=r:l>r))return new rt(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};cr=class{constructor(t,e,i,s){this.parent=t,this.buffer=e,this.index=i,this.start=s}},Dt=class extends Ds{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],t,e-this.context.start,i);return r<0?null:new Dt(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}prop(t){return this.type.prop(t)}enter(t,e,i=0){if(i&_.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return r<0?null:new Dt(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new Dt(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new Dt(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1];t.push(i.slice(s,r,o)),e.push(0)}return new H(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};ur=class{constructor(t,e){this.heads=t,this.node=e}get next(){return Nh(this.heads)}};ei=class{get name(){return this.type.name}constructor(t,e=0){if(this.mode=e,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,t instanceof rt)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let i=t._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,e){this.index=t;let{start:i,buffer:s}=this.buffer;return this.type=e||s.set.types[s.buffer[t]],this.from=i+s.buffer[t+1],this.to=i+s.buffer[t+2],!0}yield(t){return t?t instanceof rt?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,e,i){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,e,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],t,e-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,e,i=this.mode){return this.buffer?i&_.ExcludeBuffers?!1:this.enterChild(1,t,e):this.yield(this._tree.enter(t,e,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&_.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&_.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:e}=this.buffer,i=this.stack.length-1;if(t<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(e.findChild(s,this.index,-1,0,4))}else{let s=e.buffer[this.index+3];if(s<(i<0?e.buffer.length:e.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let e,i,{buffer:s}=this;if(s){if(t>0){if(this.index-1)for(let r=e+t,o=t<0?-1:i._tree.children.length;r!=o;r+=t){let l=i._tree.children[r];if(this.mode&_.IncludeAnonymous||l instanceof Yt||!l.type.isAnonymous||yr(l))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let o=t;o;o=o._parent)if(o.index==s){if(s==this.index)return o;e=o,i=r+1;break t}s=this.stack[--r]}for(let s=i;s=0;r--){if(r<0)return fr(this._tree,t,s);let o=i[e.buffer[this.stack[r]]];if(!o.isAnonymous){if(t[s]&&t[s]!=o.name)return!1;s--}}return!0}};Th=new WeakMap;Dh=class{constructor(){this.map=new WeakMap}setBuffer(t,e,i){let s=this.map.get(t);s||this.map.set(t,s=new Map),s.set(e,i)}getBuffer(t,e){let i=this.map.get(t);return i&&i.get(e)}set(t,e){t instanceof Dt?this.setBuffer(t.context.buffer,t.index,e):t instanceof rt&&this.map.set(t.tree,e)}get(t){return t instanceof Dt?this.getBuffer(t.context.buffer,t.index):t instanceof rt?this.map.get(t.tree):void 0}cursorSet(t,e){t.buffer?this.setBuffer(t.buffer.buffer,t.index,e):this.map.set(t.tree,e)}cursorGet(t){return t.buffer?this.getBuffer(t.buffer.buffer,t.index):this.map.get(t.tree)}},Ot=class{constructor(t,e,i,s,r=!1,o=!1){this.from=t,this.to=e,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,e=[],i=!1){let s=[new Ot(0,t.length,t,0,!1,i)];for(let r of e)r.to>t.length&&s.push(r);return s}static applyChanges(t,e,i=128){if(!e.length)return t;let s=[],r=1,o=t.length?t[0]:null;for(let l=0,h=0,a=0;;l++){let f=l=i)for(;o&&o.from=u.from||c<=u.to||a){let d=Math.max(u.from,h)-a,p=Math.min(u.to,c)-a;u=d>=p?null:new Ot(d,p,u.tree,u.offset+a,l>0,!!f)}if(u&&s.push(u),o.to>c)break;o=rnew mt(s.from,s.to)):[new mt(0,0)]:[new mt(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let s=this.startParse(t,e,i);for(;;){let r=s.advance();if(r)return r}}},dr=class{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}};Os=class{constructor(t,e,i,s,r){this.parser=t,this.parse=e,this.overlay=i,this.target=s,this.from=r}};pr=class{constructor(t,e,i,s,r,o,l){this.parser=t,this.predicate=e,this.mounts=i,this.index=s,this.start=r,this.target=o,this.prev=l,this.depth=0,this.ranges=[]}},gr=new R({perNode:!0}),mr=class{constructor(t,e,i,s,r){this.nest=e,this.input=i,this.fragments=s,this.ranges=r,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=t}advance(){if(this.baseParse){let i=this.baseParse.advance();if(!i)return null;if(this.baseParse=null,this.baseTree=i,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let i=this.baseTree;return this.stoppedAt!=null&&(i=new H(i.type,i.children,i.positions,i.length,i.propValues.concat([[gr,this.stoppedAt]]))),i}let t=this.inner[this.innerDone],e=t.parse.advance();if(e){this.innerDone++;let i=Object.assign(Object.create(null),t.target.props);i[R.mounted.id]=new Ne(e,t.overlay,t.parser),t.target.props=i}return null}get parsedPos(){if(this.baseParse)return 0;let t=this.input.length;for(let e=this.innerDone;e=this.stoppedAt)l=!1;else if(t.hasNode(s)){if(e){let a=e.mounts.find(f=>f.frag.from<=s.from&&f.frag.to>=s.to&&f.mount.overlay);if(a)for(let f of a.mount.overlay){let c=f.from+a.pos,u=f.to+a.pos;c>=s.from&&u<=s.to&&!e.ranges.some(d=>d.fromc)&&e.ranges.push({from:c,to:u})}}l=!1}else if(i&&(o=qc(i.ranges,s.from,s.to)))l=o!=2;else if(!s.type.isAnonymous&&(r=this.nest(s,this.input))&&(s.fromnew mt(c.from-s.from,c.to-s.from)):null,s.tree,f.length?f[0].from:s.from)),r.overlay?f.length&&(i={ranges:f,depth:0,prev:i}):l=!1}}else if(e&&(h=e.predicate(s))&&(h===!0&&(h=new mt(s.from,s.to)),h.from=0&&e.ranges[a].to==h.from?e.ranges[a]={from:e.ranges[a].from,to:h.to}:e.ranges.push(h)}if(l&&s.firstChild())e&&e.depth++,i&&i.depth++;else for(;!s.nextSibling();){if(!s.parent())break t;if(e&&!--e.depth){let a=Rh(this.ranges,e.ranges);a.length&&(Oh(a),this.inner.splice(e.index,0,new Os(e.parser,e.parser.startParse(this.input,Eh(e.mounts,a),a),e.ranges.map(f=>new mt(f.from-e.start,f.to-e.start)),e.target,a[0].from))),e=e.prev}i&&!--i.depth&&(i=i.prev)}}}};Ps=class{constructor(t,e){this.offset=e,this.done=!1,this.cursor=t.cursor(_.IncludeAnonymous|_.IgnoreMounts)}moveTo(t){let{cursor:e}=this,i=t-this.offset;for(;!this.done&&e.from=t&&e.enter(i,1,_.IgnoreOverlays|_.ExcludeBuffers)||e.next(!1)||(this.done=!0)}hasNode(t){if(this.moveTo(t.from),!this.done&&this.cursor.from+this.offset==t.from&&this.cursor.tree)for(let e=this.cursor.tree;;){if(e==t.tree)return!0;if(e.children.length&&e.positions[0]==0&&e.children[0]instanceof H)e=e.children[0];else break}return!1}},br=class{constructor(t){var e;if(this.fragments=t,this.curTo=0,this.fragI=0,t.length){let i=this.curFrag=t[0];this.curTo=(e=i.tree.prop(gr))!==null&&e!==void 0?e:i.to,this.inner=new Ps(i.tree,-i.offset)}else this.curFrag=this.inner=null}hasNode(t){for(;this.curFrag&&t.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=t.from&&this.curTo>=t.to&&this.inner.hasNode(t)}nextFrag(){var t;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let e=this.curFrag=this.fragments[this.fragI];this.curTo=(t=e.tree.prop(gr))!==null&&t!==void 0?t:e.to,this.inner=new Ps(e.tree,-e.offset)}}findMounts(t,e){var i;let s=[];if(this.inner){this.inner.cursor.moveTo(t,1);for(let r=this.inner.cursor.node;r;r=r.parent){let o=(i=r.tree)===null||i===void 0?void 0:i.prop(R.mounted);if(o&&o.parser==e)for(let l=this.fragI;l=r.to)break;h.tree==this.curFrag.tree&&s.push({frag:h,pos:r.from-h.offset,mount:o})}}}return s}}});function _c(n,t){return n.length==t.length&&n.every((e,i)=>e==t[i])}function Yc(n){let t=[[]];for(let e=0;ei.length-e.length)}function Fh(n){let t=Object.create(null);for(let e in n){let i=n[e];Array.isArray(i)||(i=[i]);for(let s of e.split(" "))if(s){let r=[],o=2,l=s;for(let c=0;;){if(l=="..."&&c>0&&c+3==s.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+s);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),c+=u[0].length,c==s.length)break;let d=s[c++];if(c==s.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+s);l=s.slice(c)}let h=r.length-1,a=r[h];if(!a)throw new RangeError("Invalid path: "+s);let f=new Fe(i,o,h>0?r.slice(0,h):null);t[a]=f.sort(t[a])}}return Hh.add(t)}function Sr(n,t){let e=Object.create(null);for(let r of n)if(!Array.isArray(r.tag))e[r.tag.id]=r.class;else for(let o of r.tag)e[o.id]=r.class;let{scope:i,all:s=null}=t||{};return{style:r=>{let o=s;for(let l of r)for(let h of l.set){let a=e[h.id];if(a){o=o?o+" "+a:a;break}}return o},scope:i}}function Gc(n,t){let e=null;for(let i of n){let s=i.style(t);s&&(e=e?e+" "+s:s)}return e}function zh(n,t,e,i=0,s=n.length){let r=new kr(i,Array.isArray(t)?t:[t],e);r.highlightRange(n.cursor(),i,s,"",r.highlighters),r.flush(s)}function Xc(n){let t=n.type.prop(Hh);for(;t&&t.context&&!n.matchContext(t.context);)t=t.next;return t||null}var $c,bt,Uc,ii,Hh,Fe,kr,w,Es,ue,Lh,Ih,de,Bs,wr,Jt,Ie,Gt,Xt,vr,Bi,Ns,k,vd,Vh=Vt(()=>{Rs();$c=0,bt=class{constructor(t,e,i,s){this.name=t,this.set=e,this.base=i,this.modified=s,this.id=$c++}toString(){let{name:t}=this;for(let e of this.modified)e.name&&(t=`${e.name}(${t})`);return t}static define(t,e){let i=typeof t=="string"?t:"?";if(t instanceof bt&&(e=t),e?.base)throw new Error("Can not derive from a modified tag");let s=new bt(i,[],null,[]);if(s.set.push(s),e)for(let r of e.set)s.set.push(r);return s}static defineModifier(t){let e=new ii(t);return i=>i.modified.indexOf(e)>-1?i:ii.get(i.base||i,i.modified.concat(e).sort((s,r)=>s.id-r.id))}},Uc=0,ii=class{constructor(t){this.name=t,this.instances=[],this.id=Uc++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find(l=>l.base==t&&_c(e,l.modified));if(i)return i;let s=[],r=new bt(t.name,s,t,e);for(let l of e)l.instances.push(r);let o=Yc(e);for(let l of t.set)if(!l.modified.length)for(let h of o)s.push(ii.get(l,h));return r}};Hh=new R({combine(n,t){let e,i,s;for(;n||t;){if(!n||t&&n.depth>=t.depth?(s=t,t=t.next):(s=n,n=n.next),e&&e.mode==s.mode&&!s.context&&!e.context)continue;let r=new Fe(s.tags,s.mode,s.context);e?e.next=r:i=r,e=r}return i}}),Fe=class{constructor(t,e,i,s){this.tags=t,this.mode=e,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depththis.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,i,s,r){let{type:o,from:l,to:h}=t;if(l>=i||h<=e)return;o.isTop&&(r=this.highlighters.filter(d=>!d.scope||d.scope(o)));let a=s,f=Xc(t)||Fe.empty,c=Gc(r,f.tags);if(c&&(a&&(a+=" "),a+=c,f.mode==1&&(s+=(s?" ":"")+c)),this.startSpan(Math.max(e,l),a),f.opaque)return;let u=t.tree&&t.tree.prop(R.mounted);if(u&&u.overlay){let d=t.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(m=>!m.scope||m.scope(u.tree.type)),g=t.firstChild();for(let m=0,b=l;;m++){let x=m=S||!t.nextSibling())););if(!x||S>i)break;b=x.to+l,b>e&&(this.highlightRange(d.cursor(),Math.max(e,x.from+l),Math.min(i,b),"",p),this.startSpan(Math.min(i,b),a))}g&&t.parent()}else if(t.firstChild()){u&&(s="");do if(!(t.to<=e)){if(t.from>=i)break;this.highlightRange(t,e,i,s,r),this.startSpan(Math.min(i,t.to),a)}while(t.nextSibling());t.parent()}}};w=bt.define,Es=w(),ue=w(),Lh=w(ue),Ih=w(ue),de=w(),Bs=w(de),wr=w(de),Jt=w(),Ie=w(Jt),Gt=w(),Xt=w(),vr=w(),Bi=w(vr),Ns=w(),k={comment:Es,lineComment:w(Es),blockComment:w(Es),docComment:w(Es),name:ue,variableName:w(ue),typeName:Lh,tagName:w(Lh),propertyName:Ih,attributeName:w(Ih),className:w(ue),labelName:w(ue),namespace:w(ue),macroName:w(ue),literal:de,string:Bs,docString:w(Bs),character:w(Bs),attributeValue:w(Bs),number:wr,integer:w(wr),float:w(wr),bool:w(de),regexp:w(de),escape:w(de),color:w(de),url:w(de),keyword:Gt,self:w(Gt),null:w(Gt),atom:w(Gt),unit:w(Gt),modifier:w(Gt),operatorKeyword:w(Gt),controlKeyword:w(Gt),definitionKeyword:w(Gt),moduleKeyword:w(Gt),operator:Xt,derefOperator:w(Xt),arithmeticOperator:w(Xt),logicOperator:w(Xt),bitwiseOperator:w(Xt),compareOperator:w(Xt),updateOperator:w(Xt),definitionOperator:w(Xt),typeOperator:w(Xt),controlOperator:w(Xt),punctuation:vr,separator:w(vr),bracket:Bi,angleBracket:w(Bi),squareBracket:w(Bi),paren:w(Bi),brace:w(Bi),content:Jt,heading:Ie,heading1:w(Ie),heading2:w(Ie),heading3:w(Ie),heading4:w(Ie),heading5:w(Ie),heading6:w(Ie),contentSeparator:w(Jt),list:w(Jt),quote:w(Jt),emphasis:w(Jt),strong:w(Jt),link:w(Jt),monospace:w(Jt),strikethrough:w(Jt),inserted:w(),deleted:w(),changed:w(),invalid:w(),meta:Ns,documentMeta:w(Ns),annotation:w(Ns),processingInstruction:w(Ns),definition:bt.defineModifier("definition"),constant:bt.defineModifier("constant"),function:bt.defineModifier("function"),standard:bt.defineModifier("standard"),local:bt.defineModifier("local"),special:bt.defineModifier("special")};for(let n in k){let t=k[n];t instanceof bt&&(t.name=n)}vd=Sr([{tag:k.link,class:"tok-link"},{tag:k.heading,class:"tok-heading"},{tag:k.emphasis,class:"tok-emphasis"},{tag:k.strong,class:"tok-strong"},{tag:k.keyword,class:"tok-keyword"},{tag:k.atom,class:"tok-atom"},{tag:k.bool,class:"tok-bool"},{tag:k.url,class:"tok-url"},{tag:k.labelName,class:"tok-labelName"},{tag:k.inserted,class:"tok-inserted"},{tag:k.deleted,class:"tok-deleted"},{tag:k.literal,class:"tok-literal"},{tag:k.string,class:"tok-string"},{tag:k.number,class:"tok-number"},{tag:[k.regexp,k.escape,k.special(k.string)],class:"tok-string2"},{tag:k.variableName,class:"tok-variableName"},{tag:k.local(k.variableName),class:"tok-variableName tok-local"},{tag:k.definition(k.variableName),class:"tok-variableName tok-definition"},{tag:k.special(k.variableName),class:"tok-variableName2"},{tag:k.definition(k.propertyName),class:"tok-propertyName tok-definition"},{tag:k.typeName,class:"tok-typeName"},{tag:k.namespace,class:"tok-namespace"},{tag:k.className,class:"tok-className"},{tag:k.macroName,class:"tok-macroName"},{tag:k.propertyName,class:"tok-propertyName"},{tag:k.operator,class:"tok-operator"},{tag:k.comment,class:"tok-comment"},{tag:k.meta,class:"tok-meta"},{tag:k.invalid,class:"tok-invalid"},{tag:k.punctuation,class:"tok-punctuation"}])});function Jh(n){return T.define({combine:n?t=>t.concat(n):void 0})}function Wh(n,t,e){let i=n.facet(me),s=Qt(n).topNode;if(!i||i.allowsNesting)for(let r=s;r;r=r.enter(t,e,_.ExcludeBuffers))r.type.isTop&&(s=r);return s}function Qt(n){let t=n.field(yt.state,!1);return t?t.tree:H.empty}function qh(n,t,e){return Ot.applyChanges(n,[{fromA:t,toA:e,fromB:t,toB:e}])}function Fs(n){let t=n.facet(Zh);return t.charCodeAt(0)==9?n.tabSize*t.length:t.length}function tu(n,t){let e="",i=n.tabSize,s=n.facet(Zh)[0];if(s==" "){for(;t>=i;)e+=" ",t-=i;s=" "}for(let r=0;r=t?iu(n,e,t):null}function iu(n,t,e){let i=t.resolveStack(e),s=t.resolveInner(e,-1).resolve(e,0).enterUnfinishedNodesBefore(e);if(s!=i.node){let r=[];for(let o=s;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)i={node:r[o],next:i}}return ea(i,n,e)}function ea(n,t,e){for(let i=n;i;i=i.next){let s=nu(i.node);if(s)return s(Fi.create(t,e,i))}return 0}function su(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function nu(n){let t=n.type.prop(ta);if(t)return t;let e=n.firstChild,i;if(e&&(i=e.type.prop(R.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>ia(o,!0,1,void 0,r&&!su(o)?s.from:void 0)}return n.parent==null?ru:null}function ru(){return 0}function ou(n,t){for(let e=t;e;e=e.parent)if(n==e)return!0;return!1}function lu(n){let t=n.node,e=t.childAfter(t.from),i=t.lastChild;if(!e)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(e.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let l=e.to;;){let h=t.childAfter(l);if(!h||h==i)return null;if(!h.type.isSkipped){if(h.from>=o)return null;let a=/^ */.exec(r.text.slice(e.to-r.from))[0].length;return{from:e.from,to:e.to+a}}l=h.to}}function Pd({closing:n,align:t=!0,units:e=1}){return i=>ia(i,t,e,n)}function ia(n,t,e,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,l=i&&r.slice(o,o+i.length)==i||s==n.pos+o,h=t?lu(n):null;return h?l?n.column(h.from):n.column(h.to):n.baseIndent+(l?0:n.unit*e)}function Ed({except:n,units:t=1}={}){return e=>{let i=n&&n.test(e.textAfter);return e.baseIndent+(i?0:t*e.unit)}}function Bd(){return I.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let t=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!t.length)return n;let e=n.newDoc,{head:i}=n.newSelection.main,s=e.lineAt(i);if(i>s.from+hu)return n;let r=e.sliceString(s.from,i);if(!t.some(a=>a.test(r)))return n;let{state:o}=n,l=-1,h=[];for(let{head:a}of o.selection.ranges){let f=o.doc.lineAt(a);if(f.from==l)continue;l=f.from;let c=eu(o,f.from);if(c==null)continue;let u=/^\s*/.exec(f.text)[0],d=tu(o,c);u!=d&&h.push({from:f.from,to:f.from+u.length,insert:d})}return h.length?[n,{changes:h,sequential:!0}]:n})}function Nd(n){let t=n.firstChild,e=n.lastChild;return t&&t.toe)continue;if(r&&l.from=t&&a.to>e&&(r=a)}}return r}function uu(n){let t=n.lastChild;return t&&t.to==n.to&&t.type.isError}function jh(n,t,e){for(let i of n.facet(au)){let s=i(n,t,e);if(s)return s}return cu(n,t,e)}function sa(n,t){let e=t.mapPos(n.from,1),i=t.mapPos(n.to,-1);return e>=i?void 0:{from:e,to:i}}function $h(n,t,e=t){let i=!1;return n.between(t,e,(s,r)=>{st&&(i=!0)}),i?n.update({filterFrom:t,filterTo:e,filter:(s,r)=>s>=e||r<=t}):n}function Or(n,t,e){var i;let s=null;return(i=n.field(zs,!1))===null||i===void 0||i.between(t,e,(r,o)=>{(!s||s.from>r)&&(s={from:r,to:o})}),s}function du(n,t,e){let i=!1;return n.between(t,t,(s,r)=>{s==t&&r==e&&(i=!0)}),i}function gu(n){let t=[zs,bu];return n&&t.push(Fr.of(n)),t}function ra(n,t){let{state:e}=n,i=e.facet(Fr),s=o=>{let l=n.lineBlockAt(n.posAtDOM(o.target)),h=Or(n.state,l.from,l.to);h&&n.dispatch({effects:Ir.of(h)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(n,s,t);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",e.phrase("folded code")),r.title=e.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}function Ld(n={}){let t={...mu,...n},e=new Li(t,!0),i=new Li(t,!1),s=tt.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(me)!=o.state.facet(me)||o.startState.field(zs,!1)!=o.state.field(zs,!1)||Qt(o.startState)!=Qt(o.state)||t.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new Et;for(let h of o.viewportLineBlocks){let a=Or(o.state,h.from,h.to)?i:jh(o.state,h.from,h.to)?e:null;a&&l.add(h.from,h.from,a)}return l.finish()}}),{domEventHandlers:r}=t;return[s,kh({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(s))===null||l===void 0?void 0:l.markers)||L.empty},initialSpacer(){return new Li(t,!1)},domEventHandlers:{...r,click:(o,l,h)=>{if(r.click&&r.click(o,l,h))return!0;let a=Or(o.state,l.from,l.to);if(a)return o.dispatch({effects:Ir.of(a)}),!0;let f=jh(o.state,l.from,l.to);return f?(o.dispatch({effects:na.of(f)}),!0):!1}}}),gu()]}function Mr(n){let t=n.facet(Rr);return t.length?t:n.facet(oa)}function Id(n,t){let e=[yu],i;return n instanceof si&&(n.module&&e.push(P.styleModule.of(n.module)),i=n.themeType),t?.fallback?e.push(oa.of(n)):i?e.push(Rr.computeN([P.darkTheme],s=>s.facet(P.darkTheme)==(i=="dark")?[n]:[])):e.push(Rr.of(n)),e}function vu(n){let t=[],e=n.matched?wu:ku;return t.push(e.range(n.start.from,n.start.to)),n.end&&t.push(e.range(n.end.from,n.end.to)),t}function Hd(n={}){return[aa.of(n),Cu]}function Br(n,t,e){let i=n.prop(t<0?R.openedBy:R.closedBy);if(i)return i;if(n.name.length==1){let s=e.indexOf(n.name);if(s>-1&&s%2==(t<0?1:0))return[e[s+t]]}return null}function Nr(n){let t=n.type.prop(Au);return t?t(n.node):n}function Ls(n,t,e,i={}){let s=i.maxScanDistance||la,r=i.brackets||ha,o=Qt(n),l=o.resolveInner(t,e);for(let h=l;h;h=h.parent){let a=Br(h.type,e,r);if(a&&h.from0?t>=f.from&&tf.from&&t<=f.to))return Mu(n,t,e,h,f,a,r)}}return Tu(n,t,e,o,l.type,s,r)}function Mu(n,t,e,i,s,r,o){let l=i.parent,h={from:s.from,to:s.to},a=0,f=l?.cursor();if(f&&(e<0?f.childBefore(i.from):f.childAfter(i.to)))do if(e<0?f.to<=i.from:f.from>=i.to){if(a==0&&r.indexOf(f.type.name)>-1&&f.from0)return null;let a={from:e<0?t-1:t,to:e>0?t+1:t},f=n.doc.iterRange(t,e>0?n.doc.length:0),c=0;for(let u=0;!f.next().done&&u<=r;){let d=f.value;e<0&&(u+=d.length);let p=t+u*e;for(let g=e>0?0:d.length-1,m=e>0?d.length:-1;g!=m;g+=e){let b=o.indexOf(d[g]);if(!(b<0||i.resolveInner(p+g,1).type!=s))if(b%2==0==e>0)c++;else{if(c==1)return{start:a,end:{from:p+g,to:p+g+1},matched:b>>1==h>>1};c--}}e>0&&(u+=d.length)}return f.done?{start:a,matched:!1}:null}function _h(n,t,e,i=0,s=0){t==null&&(t=n.search(/[^\s\u00a0]/),t==-1&&(t=n.length));let r=s;for(let o=i;o{}),startState:n.startState||(()=>!0),copyState:n.copyState||Ou,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||zr,mergeTokens:n.mergeTokens!==!1}}function Ou(n){if(typeof n!="object")return n;let t={};for(let e in n){let i=n[e];t[e]=i instanceof Array?i.slice():i}return t}function Hr(n,t,e,i,s){let r=e>=i&&e+t.length<=s&&t.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:e+t.length};for(let o=t.children.length-1;o>=0;o--){let l=t.children[o],h=e+t.positions[o],a=l instanceof H&&h=t.length)return t;!s&&e==0&&t.type==n.topNode&&(s=!0);for(let r=t.children.length-1;r>=0;r--){let o=t.positions[r],l=t.children[r],h;if(oe&&Hr(n,r.tree,0-r.offset,e,l),a;if(h&&h.pos<=i&&(a=fa(n,r.tree,e+r.offset,h.pos+r.offset,!1)))return{state:h.state,tree:a}}return{state:n.streamParser.startState(s?Fs(s):4),tree:H.empty}}function ca(n,t,e){t.start=t.pos;for(let i=0;i<10;i++){let s=n(t,e);if(t.pos>t.start)return s}throw new Error("Stream parser failed to advance stream.")}function Tr(n,t){Gh.indexOf(n)>-1||(Gh.push(n),console.warn(t))}function da(n,t){let e=[];for(let l of t.split(" ")){let h=[];for(let a of l.split(".")){let f=n[a]||k[a];f?typeof f=="function"?h.length?h=h.map(f):Tr(a,`Modifier ${a} used at start of tag`):h.length?Tr(a,`Tag ${a} used as modifier`):h=Array.isArray(f)?f:[f]:Tr(a,`Unknown highlighting tag ${a}`)}for(let a of h)e.push(a)}if(!e.length)return 0;let i=t.replace(/ /g,"_"),s=i+" "+e.map(l=>l.id),r=Xh[s];if(r)return r.id;let o=Xh[s]=et.define({id:Hi.length,name:i,props:[Fh({[i]:e})]});return Hi.push(o),o.id}function Bu(n,t){let e=et.define({id:Hi.length,name:"Document",props:[He.add(()=>n),ta.add(()=>i=>t.getIndent(i))],top:!0});return Hi.push(e),e}var Cr,He,Jc,yt,Ii,Dr,Ni,pe,ge,Qh,Ar,Qc,me,Kh,Is,Zc,Zh,Hs,ta,Fi,Rd,hu,au,fu,na,Ir,zs,pu,Fr,Uh,Pr,mu,Li,bu,si,Rr,oa,Er,yu,Fd,xu,la,ha,aa,wu,ku,Su,Cu,Au,Vs,Yh,Ws,Lr,zr,Hi,Ru,Gh,Xh,ua,qs,Eu,zd,Nu=Vt(()=>{Rs();an();Ch();Vh();dn();He=new R;Jc=new R,yt=class{constructor(t,e,i=[],s=""){this.data=t,this.name=s,I.prototype.hasOwnProperty("tree")||Object.defineProperty(I.prototype,"tree",{get(){return Qt(this)}}),this.parser=e,this.extension=[me.of(this),I.languageData.of((r,o,l)=>{let h=Wh(r,o,l),a=h.type.prop(He);if(!a)return[];let f=r.facet(a),c=h.type.prop(Jc);if(c){let u=h.resolve(o-h.from,l);for(let d of c)if(d.test(u,r)){let p=r.facet(d.facet);return d.type=="replace"?p:p.concat(f)}}return f})].concat(i)}isActiveAt(t,e,i=-1){return Wh(t,e,i).type.prop(He)==this.data}findRegions(t){let e=t.facet(me);if(e?.data==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(He)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(R.mounted);if(l){if(l.tree.prop(He)==this.data){if(l.overlay)for(let h of l.overlay)i.push({from:h.from+o,to:h.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let h=i.length;if(s(l.tree,l.overlay[0].from+o),i.length>h)return}}for(let h=0;hi.isTop?e:void 0)]}),t.name)}configure(t,e){return new Ii(this.data,this.parser.configure(t),e||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};Dr=class{constructor(t){this.doc=t,this.cursorPos=0,this.string="",this.cursor=t.iter()}get length(){return this.doc.length}syncTo(t){return this.string=this.cursor.next(t-this.cursorPos).value,this.cursorPos=t+this.string.length,this.cursorPos-this.string.length}chunk(t){return this.syncTo(t),this.string}get lineChunks(){return!0}read(t,e){let i=this.cursorPos-this.string.length;return t=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}},Ni=null,pe=class{constructor(t,e,i=[],s,r,o,l,h){this.parser=t,this.state=e,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=h,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new pe(t,e,[],H.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Dr(this.state.doc),this.fragments)}work(t,e){return e!=null&&e>=this.state.doc.length&&(e=void 0),this.tree!=H.empty&&this.isDone(e??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof t=="number"){let s=Date.now()+t;t=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),e!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&e=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext(()=>{for(;!(e=this.parse.advance()););}),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(Ot.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Ni;Ni=this;try{return t()}finally{Ni=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=qh(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!t.empty){let h=[];if(t.iterChangedRanges((a,f,c,u)=>h.push({fromA:a,toA:f,fromB:c,toB:u})),i=Ot.applyChanges(i,h),s=H.empty,r=0,o={from:t.mapPos(o.from,-1),to:t.mapPos(o.to,1)},this.skipped.length){l=[];for(let a of this.skipped){let f=t.mapPos(a.from,1),c=t.mapPos(a.to,-1);ft.from&&(this.fragments=qh(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=e?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends Le{createParse(e,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let h=Ni;if(h){for(let a of s)h.tempSkipped.push(a);t&&(h.scheduleOn=h.scheduleOn?Promise.all([h.scheduleOn,t]):t)}return this.parsedPos=o,new H(et.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&e[0].from==0&&e[0].to>=t}static get(){return Ni}};ge=class{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new ge(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=pe.create(t.facet(me).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new ge(i)}};yt.state=pt.define({create:ge.init,update(n,t){for(let e of t.effects)if(e.is(yt.setState))return e.value;return t.startState.facet(me)!=t.state.facet(me)?ge.init(t.state):n.apply(t)}});Qh=n=>{let t=setTimeout(()=>n(),500);return()=>clearTimeout(t)};typeof requestIdleCallback<"u"&&(Qh=n=>{let t=-1,e=setTimeout(()=>{t=requestIdleCallback(n,{timeout:500-100})},100);return()=>t<0?clearTimeout(e):cancelIdleCallback(t)});Ar=typeof navigator<"u"&&(!((Cr=navigator.scheduling)===null||Cr===void 0)&&Cr.isInputPending)?()=>navigator.scheduling.isInputPending():null,Qc=tt.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(yt.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),(t.docChanged||t.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(yt.state);(e.tree!=e.context.tree||!e.context.isDone(t.doc.length))&&(this.working=Qh(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEnds+1e3,h=r.context.work(()=>Ar&&Ar()||Date.now()>o,s+(l?0:1e5));this.chunkBudget-=Date.now()-e,(h||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:yt.setState.of(new ge(r.context))})),this.chunkBudget>0&&!(h&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then(()=>this.scheduleWork()).catch(e=>Bt(this.view.state,e)).then(()=>this.workScheduled--),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),me=T.define({combine(n){return n.length?n[0]:null},enables:n=>[yt.state,Qc,P.contentAttributes.compute([n],t=>{let e=t.facet(n);return e&&e.name?{"data-language":e.name}:{}})]}),Kh=class{constructor(t,e=[]){this.language=t,this.support=e,this.extension=[t,e]}},Is=class{constructor(t,e,i,s,r,o=void 0){this.name=t,this.alias=e,this.extensions=i,this.filename=s,this.loadFunc=r,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(t=>this.support=t,t=>{throw this.loading=null,t}))}static of(t){let{load:e,support:i}=t;if(!e){if(!i)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");e=()=>Promise.resolve(i)}return new Is(t.name,(t.alias||[]).concat(t.name).map(s=>s.toLowerCase()),t.extensions||[],t.filename,e,i)}static matchFilename(t,e){for(let s of t)if(s.filename&&s.filename.test(e))return s;let i=/\.([^.]+)$/.exec(e);if(i){for(let s of t)if(s.extensions.indexOf(i[1])>-1)return s}return null}static matchLanguageName(t,e,i=!0){e=e.toLowerCase();for(let s of t)if(s.alias.some(r=>r==e))return s;if(i)for(let s of t)for(let r of s.alias){let o=e.indexOf(r);if(o>-1&&(r.length>2||!/\w/.test(e[o-1])&&!/\w/.test(e[o+r.length])))return s}return null}},Zc=T.define(),Zh=T.define({combine:n=>{if(!n.length)return" ";let t=n[0];if(!t||/\S/.test(t)||Array.from(t).some(e=>e!=t[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return t}});Hs=class{constructor(t,e={}){this.state=t,this.options=e,this.unit=Fs(t)}lineAt(t,e=1){let i=this.state.doc.lineAt(t),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==t?{text:"",from:t}:(e<0?s-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(t,e=t.length){return ci(t,this.state.tabSize,e)}lineIndent(t,e=1){let{text:i,from:s}=this.lineAt(t,e),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},ta=new R;Fi=class extends Hs{constructor(t,e,i){super(t.state,t.options),this.base=t,this.pos=e,this.context=i}get node(){return this.context.node}static create(t,e,i){return new Fi(t,e,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(t){let e=this.state.doc.lineAt(t.from);for(;;){let i=t.resolve(e.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(ou(i,t))break;e=this.state.doc.lineAt(i.from)}return this.lineIndent(e.from)}continue(){return ea(this.context.next,this.base,this.pos)}};Rd=n=>n.baseIndent;hu=200;au=T.define(),fu=new R;na=U.define({map:sa}),Ir=U.define({map:sa}),zs=pt.define({create(){return B.none},update(n,t){t.isUserEvent("delete")&&t.changes.iterChangedRanges((e,i)=>n=$h(n,e,i)),n=n.map(t.changes);for(let e of t.effects)if(e.is(na)&&!du(n,e.value.from,e.value.to)){let{preparePlaceholder:i}=t.state.facet(Fr),s=i?B.replace({widget:new Pr(i(t.state,e.value))}):Uh;n=n.update({add:[s.range(e.value.from,e.value.to)]})}else e.is(Ir)&&(n=n.update({filter:(i,s)=>e.value.from!=i||e.value.to!=s,filterFrom:e.value.from,filterTo:e.value.to}));return t.selection&&(n=$h(n,t.selection.main.head)),n},provide:n=>P.decorations.from(n),toJSON(n,t){let e=[];return n.between(0,t.doc.length,(i,s)=>{e.push(i,s)}),e},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let e=0;e!1},Li=class extends Ft{constructor(t,e){super(),this.config=t,this.open=e}eq(t){return this.config==t.config&&this.open==t.open}toDOM(t){if(this.config.markerDOM)return this.config.markerDOM(this.open);let e=document.createElement("span");return e.textContent=this.open?this.config.openText:this.config.closedText,e.title=t.state.phrase(this.open?"Fold line":"Unfold line"),e}};bu=P.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}}),si=class{constructor(t,e){this.specs=t;let i;function s(l){let h=At.newName();return(i||(i=Object.create(null)))["."+h]=l,h}let r=typeof e.all=="string"?e.all:e.all?s(e.all):void 0,o=e.scope;this.scope=o instanceof yt?l=>l.prop(He)==o.data:o?l=>l==o:void 0,this.style=Sr(t.map(l=>({tag:l.tag,class:l.class||s(Object.assign({},l,{tag:null}))})),{all:r}).style,this.module=i?new At(i):null,this.themeType=e.themeType}static define(t,e){return new si(t,e||{})}},Rr=T.define(),oa=T.define({combine(n){return n.length?[n[0]]:null}});Er=class{constructor(t){this.markCache=Object.create(null),this.tree=Qt(t.state),this.decorations=this.buildDeco(t,Mr(t.state)),this.decoratedTo=t.viewport.to}update(t){let e=Qt(t.state),i=Mr(t.state),s=i!=Mr(t.startState),{viewport:r}=t.view,o=t.changes.mapPos(this.decoratedTo,1);e.length=r.to?(this.decorations=this.decorations.map(t.changes),this.decoratedTo=o):(e!=this.tree||t.viewportChanged||s)&&(this.tree=e,this.decorations=this.buildDeco(t.view,i),this.decoratedTo=r.to)}buildDeco(t,e){if(!e||!this.tree.length)return B.none;let i=new Et;for(let{from:s,to:r}of t.visibleRanges)zh(this.tree,e,(o,l,h)=>{i.add(o,l,this.markCache[h]||(this.markCache[h]=B.mark({class:h})))},s,r);return i.finish()}},yu=$e.high(tt.fromClass(Er,{decorations:n=>n.decorations})),Fd=si.define([{tag:k.meta,color:"#404740"},{tag:k.link,textDecoration:"underline"},{tag:k.heading,textDecoration:"underline",fontWeight:"bold"},{tag:k.emphasis,fontStyle:"italic"},{tag:k.strong,fontWeight:"bold"},{tag:k.strikethrough,textDecoration:"line-through"},{tag:k.keyword,color:"#708"},{tag:[k.atom,k.bool,k.url,k.contentSeparator,k.labelName],color:"#219"},{tag:[k.literal,k.inserted],color:"#164"},{tag:[k.string,k.deleted],color:"#a11"},{tag:[k.regexp,k.escape,k.special(k.string)],color:"#e40"},{tag:k.definition(k.variableName),color:"#00f"},{tag:k.local(k.variableName),color:"#30a"},{tag:[k.typeName,k.namespace],color:"#085"},{tag:k.className,color:"#167"},{tag:[k.special(k.variableName),k.macroName],color:"#256"},{tag:k.definition(k.propertyName),color:"#00c"},{tag:k.comment,color:"#940"},{tag:k.invalid,color:"#f00"}]),xu=P.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),la=1e4,ha="()[]{}",aa=T.define({combine(n){return Ae(n,{afterCursor:!0,brackets:ha,maxScanDistance:la,renderMatch:vu})}}),wu=B.mark({class:"cm-matchingBracket"}),ku=B.mark({class:"cm-nonmatchingBracket"});Su=pt.define({create(){return B.none},update(n,t){if(!t.docChanged&&!t.selection)return n;let e=[],i=t.state.facet(aa);for(let s of t.state.selection.ranges){if(!s.empty)continue;let r=Ls(t.state,s.head,-1,i)||s.head>0&&Ls(t.state,s.head-1,1,i)||i.afterCursor&&(Ls(t.state,s.head,1,i)||s.headP.decorations.from(n)}),Cu=[Su,xu];Au=new R;Vs=class{constructor(t,e,i,s){this.string=t,this.tabSize=e,this.indentUnit=i,this.overrideIndent=s,this.pos=0,this.start=0,this.lastColumnPos=0,this.lastColumnValue=0}eol(){return this.pos>=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.pose}eatSpace(){let t=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t}skipToEnd(){this.pos=this.string.length}skipTo(t){let e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0}backUp(t){this.pos-=t}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,t.length);return s(r)==s(t)?(e!==!1&&(this.pos+=t.length),!0):null}else{let s=this.string.slice(this.pos).match(t);return s&&s.index>0?null:(s&&e!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}};Yh=new WeakMap,Ws=class extends yt{constructor(t){let e=Jh(t.languageData),i=Du(t),s,r=new class extends Le{createParse(o,l,h){return new Lr(s,o,l,h)}};super(e,r,[],t.name),this.topNode=Bu(e,this),s=this,this.streamParser=i,this.stateAfter=new R({perNode:!0}),this.tokenTable=t.tokenTable?new qs(i.tokenTable):Eu}static define(t){return new Ws(t)}getIndent(t){let e,{overrideIndentation:i}=t.options;i&&(e=Yh.get(t.state),e!=null&&e1e4)return null;for(;ra.from<=r.viewport.from&&a.to>=r.viewport.from)&&(this.state=this.lang.streamParser.startState(Fs(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from),this.moveRangeIndex()}advance(){let t=pe.get(),e=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(e,this.chunkStart+512);for(t&&(i=Math.min(i,t.viewport.to));this.parsedPos=e?this.finish():t&&this.parsedPos>=t.viewport.to?(t.skipUntilInView(this.parsedPos,e),this.finish()):null}stopAt(t){this.stoppedAt=t}lineAfter(t){let e=this.input.chunk(t);if(this.input.lineChunks)e==` +`&&(e="");else{let i=e.indexOf(` +`);i>-1&&(e=e.slice(0,i))}return t+e.length<=this.to?e:e.slice(0,this.to-t)}nextLine(){let t=this.parsedPos,e=this.lineAfter(t),i=t+e.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(e=e.slice(0,r-(i-e.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);e+=l,i=o+l.length}return{line:e,end:i}}skipGapsTo(t,e,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=t+e;if(i>0?s>r:s>=r)break;let o=this.ranges[++this.rangeIndex].from;e+=o-s}return e}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){s=this.skipGapsTo(e,s,1),e+=s;let l=this.chunk.length;s=this.skipGapsTo(i,s,-1),i+=s,r+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&r==4&&o>=0&&this.chunk[o]==t&&this.chunk[o+2]==e?this.chunk[o+2]=i:this.chunk.push(t,e,i,r),s}parseLine(t){let{line:e,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new Vs(e,t?t.state.tabSize:4,t?Fs(t.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=ca(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPos=92&&o--,o>=34&&o--;let h=o-32;if(h>=46&&(h-=46,l=!0),r+=h,l)break;r*=46}e?e[s++]=r:e=new t(r)}return e}function ka(n,t,e,i,s,r){let o=0,l=1<0){let p=n[d];if(h.allows(p)&&(t.token.value==-1||t.token.value==p||Iu(p,t.token.value,s,r))){t.acceptToken(p);break}}let f=t.next,c=0,u=n[o+2];if(t.next<0&&u>c&&n[a+u*3-3]==65535){o=n[a+u*3-1];continue t}for(;c>1,p=a+d+(d<<1),g=n[p],m=n[p+1]||65536;if(f=m)c=d+1;else{o=n[p+2],t.advance();continue t}}break}}function ma(n,t,e){for(let i=t,s;(s=n[i])!=65535;i++)if(s==e)return i-t;return-1}function Iu(n,t,e,i){let s=ma(e,i,t);return s<0||ma(e,i,n)t)&&!i.type.isError)return e<0?Math.max(0,Math.min(i.to-1,t-25)):Math.min(n.length,Math.max(i.from+1,t+25));if(e<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return e<0?0:n.length}}function ya(n,t){for(let e=0;ei)&&e.p.parser.stateFlag(e.state,2)&&(!t||t.scoren.external(e,i)<<1|t}return n.get}var ri,Ks,qr,oi,ni,pa,Kr,be,jr,ga,kt,Vr,$r,Ur,_r,Yr,Wr,xa,Vi,Hu=Vt(()=>{Rs();ri=class{constructor(t,e,i,s,r,o,l,h,a,f=0,c){this.p=t,this.stack=e,this.state=i,this.reducePos=s,this.pos=r,this.score=o,this.buffer=l,this.bufferBase=h,this.curContext=a,this.lookAhead=f,this.parent=c}toString(){return`[${this.stack.filter((t,e)=>e%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(t,e,i=0){let s=t.parser.context;return new ri(t,[],e,i,i,0,[],0,s?new Ks(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(t,e){this.stack.push(this.state,e,this.bufferBase+this.buffer.length),this.state=t}reduce(t){var e;let i=t>>19,s=t&65535,{parser:r}=this.p,o=this.reducePos=2e3&&!(!((e=this.p.parser.nodeSet.types[s])===null||e===void 0)&&e.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=f):this.p.lastBigReductionSizeh;)this.stack.pop();this.reduceContext(s,a)}storeNode(t,e,i,s=4,r=!1){if(t==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&o.buffer[l-4]==0&&o.buffer[l-1]>-1){if(e==i)return;if(o.buffer[l-2]>=e){o.buffer[l-2]=i;return}}}if(!r||this.pos==i)this.buffer.push(t,e,i,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let l=!1;for(let h=o;h>0&&this.buffer[h-2]>i;h-=4)if(this.buffer[h-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>i;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=t,this.buffer[o+1]=e,this.buffer[o+2]=i,this.buffer[o+3]=s}}shift(t,e,i,s){if(t&131072)this.pushState(t&65535,this.pos);else if(t&262144)this.pos=s,this.shiftContext(e,i),e<=this.p.parser.maxNode&&this.buffer.push(e,i,s,4);else{let r=t,{parser:o}=this.p;(s>this.pos||e<=o.maxNode)&&(this.pos=s,o.stateFlag(r,1)||(this.reducePos=s)),this.pushState(r,i),this.shiftContext(e,i),e<=o.maxNode&&this.buffer.push(e,i,s,4)}}apply(t,e,i,s){t&65536?this.reduce(t):this.shift(t,e,i,s)}useNode(t,e){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=t)&&(this.p.reused.push(t),i++);let s=this.pos;this.reducePos=this.pos=s+t.length,this.pushState(e,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,t,this,this.p.stream.reset(this.pos-t.length)))}split(){let t=this,e=t.buffer.length;for(;e>0&&t.buffer[e-2]>t.reducePos;)e-=4;let i=t.buffer.slice(e),s=t.bufferBase+e;for(;t&&s==t.bufferBase;)t=t.parent;return new ri(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,t)}recoverByDelete(t,e){let i=t<=this.p.parser.maxNode;i&&this.storeNode(t,this.pos,e,4),this.storeNode(0,this.pos,e,i?8:4),this.pos=this.reducePos=e,this.score-=190}canShift(t){for(let e=new qr(this);;){let i=this.p.parser.stateSlot(e.state,4)||this.p.parser.hasAction(e.state,t);if(i==0)return!1;if(!(i&65536))return!0;e.reduce(i)}}recoverByInsert(t){if(this.stack.length>=300)return[];let e=this.p.parser.nextStates(this.state);if(e.length>4<<1||this.stack.length>=120){let s=[];for(let r=0,o;rh&1&&l==o)||s.push(e[r],o)}e=s}let i=[];for(let s=0;s>19,s=e&65535,r=this.stack.length-i*3;if(r<0||t.getGoto(this.stack[r],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;e=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}findForcedReduction(){let{parser:t}=this.p,e=[],i=(s,r)=>{if(!e.includes(s))return e.push(s),t.allActions(s,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-r;if(l>1){let h=o&65535,a=this.stack.length-l*3;if(a>=0&&t.getGoto(this.stack[a],h,!1)>=0)return l<<19|65536|h}}else{let l=i(o,r+1);if(l!=null)return l}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:t}=this.p;return t.data[t.stateSlot(this.state,1)]==65535&&!t.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(t){if(this.state!=t.state||this.stack.length!=t.stack.length)return!1;for(let e=0;e0&&this.emitLookAhead()}},Ks=class{constructor(t,e){this.tracker=t,this.context=e,this.hash=t.strict?t.hash(e):0}},qr=class{constructor(t){this.start=t,this.state=t.state,this.stack=t.stack,this.base=this.stack.length}reduce(t){let e=t&65535,i=t>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],e,!0);this.state=s}},oi=class{constructor(t,e,i){this.stack=t,this.pos=e,this.index=i,this.buffer=t.buffer,this.index==0&&this.maybeNext()}static create(t,e=t.bufferBase+t.buffer.length){return new oi(t,e,e-t.bufferBase)}maybeNext(){let t=this.stack.parent;t!=null&&(this.index=this.stack.bufferBase-t.bufferBase,this.stack=t,this.buffer=t.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new oi(this.stack,this.pos,this.index)}};ni=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},pa=new ni,Kr=class{constructor(t,e){this.input=t,this.ranges=e,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=pa,this.rangeIndex=0,this.pos=this.chunkPos=e[0].from,this.range=e[0],this.end=e[e.length-1].to,this.readNext()}resolveOffset(t,e){let i=this.range,s=this.rangeIndex,r=this.pos+t;for(;ri.to:r>=i.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];r+=o.from-i.to,i=o}return r}clipPos(t){if(t>=this.range.from&&tt)return Math.max(t,e.from);return this.end}peek(t){let e=this.chunkOff+t,i,s;if(e>=0&&e=this.chunk2Pos&&il.to&&(this.chunk2=this.chunk2.slice(0,l.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(t,e=0){let i=e?this.resolveOffset(e,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?t.slice(0,this.range.to-this.pos):t,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(t=1){for(this.chunkOff+=t;this.pos+t>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();t-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=t,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(t,e){if(e?(this.token=e,e.start=t,e.lookAhead=t+1,e.value=e.extended=-1):this.token=pa,this.pos!=t){if(this.pos=t,t==this.end)return this.setDone(),this;for(;t=this.range.to;)this.range=this.ranges[++this.rangeIndex];t>=this.chunkPos&&t=this.chunkPos&&e<=this.chunkPos+this.chunk.length)return this.chunk.slice(t-this.chunkPos,e-this.chunkPos);if(t>=this.chunk2Pos&&e<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(t-this.chunk2Pos,e-this.chunk2Pos);if(t>=this.range.from&&e<=this.range.to)return this.input.read(t,e);let i="";for(let s of this.ranges){if(s.from>=e)break;s.to>t&&(i+=this.input.read(Math.max(s.from,t),Math.min(s.to,e)))}return i}},be=class{constructor(t,e){this.data=t,this.id=e}token(t,e){let{parser:i}=e.p;ka(this.data,t,e,this.id,i.data,i.tokenPrecTable)}};be.prototype.contextual=be.prototype.fallback=be.prototype.extend=!1;jr=class{constructor(t,e,i){this.precTable=e,this.elseToken=i,this.data=typeof t=="string"?zi(t):t}token(t,e){let i=t.pos,s=0;for(;;){let r=t.next<0,o=t.resolveOffset(1,1);if(ka(this.data,t,e,0,this.data,this.precTable),t.token.value>-1)break;if(this.elseToken==null)return;if(r||s++,o==null)break;t.reset(o,t.token)}s&&(t.reset(i,t.token),t.acceptToken(this.elseToken,s))}};jr.prototype.contextual=be.prototype.fallback=be.prototype.extend=!1;ga=class{constructor(t,e={}){this.token=t,this.contextual=!!e.contextual,this.fallback=!!e.fallback,this.extend=!!e.extend}};kt=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Vr=null;$r=class{constructor(t,e){this.fragments=t,this.nodeSet=e,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let t=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(t){for(this.safeFrom=t.openStart?ba(t.tree,t.from+t.offset,1)-t.offset:t.from,this.safeTo=t.openEnd?ba(t.tree,t.to+t.offset,-1)-t.offset:t.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(t.tree),this.start.push(-t.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(t){if(tt)return this.nextStart=o,null;if(r instanceof H){if(o==t){if(o=Math.max(this.safeFrom,t)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[e]++,this.nextStart=o+r.length}}},Ur=class{constructor(t,e){this.stream=e,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=t.tokenizers.map(i=>new ni)}getActions(t){let e=0,i=null,{parser:s}=t.p,{tokenizers:r}=s,o=s.stateSlot(t.state,3),l=t.curContext?t.curContext.hash:0,h=0;for(let a=0;ac.end+25&&(h=Math.max(c.lookAhead,h)),c.value!=0)){let u=e;if(c.extended>-1&&(e=this.addActions(t,c.extended,c.end,e)),e=this.addActions(t,c.value,c.end,e),!f.extend&&(i=c,e>u))break}}for(;this.actions.length>e;)this.actions.pop();return h&&t.setLookAhead(h),!i&&t.pos==this.stream.end&&(i=new ni,i.value=t.p.parser.eofTerm,i.start=i.end=t.pos,e=this.addActions(t,i.value,i.end,e)),this.mainToken=i,this.actions}getMainToken(t){if(this.mainToken)return this.mainToken;let e=new ni,{pos:i,p:s}=t;return e.start=i,e.end=Math.min(i+1,s.stream.end),e.value=i==s.stream.end?s.parser.eofTerm:0,e}updateCachedToken(t,e,i){let s=this.stream.clipPos(i.pos);if(e.token(this.stream.reset(s,t),i),t.value>-1){let{parser:r}=i.p;for(let o=0;o=0&&i.p.parser.dialect.allows(l>>1)){l&1?t.extended=l>>1:t.value=l>>1;break}}}else t.value=0,t.end=this.stream.clipPos(s+1)}putAction(t,e,i,s){for(let r=0;rt.bufferLength*4?new $r(i,t.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let t=this.stacks,e=this.minStackPos,i=this.stacks=[],s,r;if(this.bigReductionCount>300&&t.length==1){let[o]=t;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;oe)i.push(l);else{if(this.advanceStack(l,i,t))continue;{s||(s=[],r=[]),s.push(l);let h=this.tokens.getMainToken(l);r.push(h.value,h.end)}}break}}if(!i.length){let o=s&&Fu(s);if(o)return kt&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw kt&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+e);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,i);if(o)return kt&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(i.length>o)for(i.sort((l,h)=>h.score-l.score);i.length>o;)i.pop();i.some(l=>l.reducePos>e)&&this.recovering--}else if(i.length>1){t:for(let o=0;o500&&a.buffer.length>500)if((l.score-a.score||l.buffer.length-a.buffer.length)>0)i.splice(h--,1);else{i.splice(o--,1);continue t}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return t.forceReduce()?t:null;if(this.fragments){let a=t.curContext&&t.curContext.tracker.strict,f=a?t.curContext.hash:0;for(let c=this.fragments.nodeAt(s);c;){let u=this.parser.nodeSet.types[c.type.id]==c.type?r.getGoto(t.state,c.type.id):-1;if(u>-1&&c.length&&(!a||(c.prop(R.contextHash)||0)==f))return t.useNode(c,u),kt&&console.log(o+this.stackID(t)+` (via reuse of ${r.getName(c.type.id)})`),!0;if(!(c instanceof H)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof H&&c.positions[0]==0)c=d;else break}}let l=r.stateSlot(t.state,4);if(l>0)return t.reduce(l),kt&&console.log(o+this.stackID(t)+` (via always-reduce ${r.getName(l&65535)})`),!0;if(t.stack.length>=8400)for(;t.stack.length>6e3&&t.forceReduce(););let h=this.tokens.getActions(t);for(let a=0;as?e.push(p):i.push(p)}return!1}advanceFully(t,e){let i=t.pos;for(;;){if(!this.advanceStack(t,null,null))return!1;if(t.pos>i)return ya(t,e),!0}}runRecovery(t,e,i){let s=null,r=!1;for(let o=0;o ":"";if(l.deadEnd&&(r||(r=!0,l.restart(),kt&&console.log(f+this.stackID(l)+" (restarted)"),this.advanceFully(l,i))))continue;let c=l.split(),u=f;for(let d=0;d<10&&c.forceReduce()&&(kt&&console.log(u+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,i));d++)kt&&(u=this.stackID(c)+" -> ");for(let d of l.recoverByInsert(h))kt&&console.log(f+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>l.pos?(a==l.pos&&(a++,h=0),l.recoverByDelete(h,a),kt&&console.log(f+this.stackID(l)+` (via recover-delete ${this.parser.getName(h)})`),ya(l,i)):(!s||s.scoren,xa=class{constructor(t){this.start=t.start,this.shift=t.shift||Wr,this.reduce=t.reduce||Wr,this.reuse=t.reuse||Wr,this.hash=t.hash||(()=>0),this.strict=t.strict!==!1}},Vi=class extends Le{constructor(t){if(super(),this.wrappers=[],t.version!=14)throw new RangeError(`Parser version (${t.version}) doesn't match runtime version (14)`);let e=t.nodeNames.split(" ");this.minRepeatTerm=e.length;for(let l=0;lt.topRules[l][1]),s=[];for(let l=0;l=0)r(f,h,l[a++]);else{let c=l[a+-f];for(let u=-f;u>0;u--)r(l[a++],h,c);a++}}}this.nodeSet=new ce(e.map((l,h)=>et.define({name:h>=this.minRepeatTerm?void 0:l,id:h,props:s[h],top:i.indexOf(h)>-1,error:h==0,skipped:t.skippedNodes&&t.skippedNodes.indexOf(h)>-1}))),t.propSources&&(this.nodeSet=this.nodeSet.extend(...t.propSources)),this.strict=!1,this.bufferLength=1024;let o=zi(t.tokenData);this.context=t.context,this.specializerSpecs=t.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new be(o,l):l),this.topRules=t.topRules,this.dialects=t.dialects||{},this.dynamicPrecedences=t.dynamicPrecedences||null,this.tokenPrecTable=t.tokenPrec,this.termNames=t.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(t,e,i){let s=new _r(this,t,e,i);for(let r of this.wrappers)s=r(s,t,e,i);return s}getGoto(t,e,i=!1){let s=this.goto;if(e>=s[0])return-1;for(let r=s[e+1];;){let o=s[r++],l=o&1,h=s[r++];if(l&&i)return h;for(let a=r+(o>>1);r0}validAction(t,e){return!!this.allActions(t,i=>i==e?!0:null)}allActions(t,e){let i=this.stateSlot(t,4),s=i?e(i):void 0;for(let r=this.stateSlot(t,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=re(this.data,r+2);else break;s=e(re(this.data,r+1))}return s}nextStates(t){let e=[];for(let i=this.stateSlot(t,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=re(this.data,i+2);else break;if(!(this.data[i+2]&1)){let s=this.data[i+1];e.some((r,o)=>o&1&&r==s)||e.push(this.data[i],s)}}return e}configure(t){let e=Object.assign(Object.create(Vi.prototype),this);if(t.props&&(e.nodeSet=this.nodeSet.extend(...t.props)),t.top){let i=this.topRules[t.top];if(!i)throw new RangeError(`Invalid top rule name ${t.top}`);e.top=i}return t.tokenizers&&(e.tokenizers=this.tokenizers.map(i=>{let s=t.tokenizers.find(r=>r.from==i);return s?s.to:i})),t.specializers&&(e.specializers=this.specializers.slice(),e.specializerSpecs=this.specializerSpecs.map((i,s)=>{let r=t.specializers.find(l=>l.from==i.external);if(!r)return i;let o=Object.assign(Object.assign({},i),{external:r.to});return e.specializers[s]=wa(o),o})),t.contextTracker&&(e.context=t.contextTracker),t.dialect&&(e.dialect=this.parseDialect(t.dialect)),t.strict!=null&&(e.strict=t.strict),t.wrap&&(e.wrappers=e.wrappers.concat(t.wrap)),t.bufferLength!=null&&(e.bufferLength=t.bufferLength),e}hasWrappers(){return this.wrappers.length>0}getName(t){return this.termNames?this.termNames[t]:String(t<=this.maxNode&&this.nodeSet.types[t].name||t)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(t){let e=this.dynamicPrecedences;return e==null?0:e[t]||0}parseDialect(t){let e=Object.keys(this.dialects),i=e.map(()=>!1);if(t)for(let r of t.split(" ")){let o=e.indexOf(r);o>=0&&(i[o]=!0)}let s=null;for(let r=0;r{N.exports=E;E.displayName="ichigojam";E.aliases=[];function E(R){R.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GOTO|GSB|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RIGHT|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@\S+)/,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/}}});export{L as a}; diff --git a/build/_shared/chunk-6IYMFPYI.js b/build/_shared/chunk-6IYMFPYI.js new file mode 100644 index 00000000..277f969e --- /dev/null +++ b/build/_shared/chunk-6IYMFPYI.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var s=n((r,t)=>{t.exports=e;e.displayName="psl";e.aliases=[];function e(_){_.languages.psl={comment:{pattern:/#.*/,greedy:!0},string:{pattern:/"(?:\\.|[^\\"])*"/,greedy:!0,inside:{symbol:/\\[ntrbA-Z"\\]/}},"heredoc-string":{pattern:/<<<([a-zA-Z_]\w*)[\r\n](?:.*[\r\n])*?\1\b/,alias:"string",greedy:!0},keyword:/\b(?:__multi|__single|case|default|do|else|elsif|exit|export|for|foreach|function|if|last|line|local|next|requires|return|switch|until|while|word)\b/,constant:/\b(?:ALARM|CHART_ADD_GRAPH|CHART_DELETE_GRAPH|CHART_DESTROY|CHART_LOAD|CHART_PRINT|EOF|OFFLINE|OK|PSL_PROF_LOG|R_CHECK_HORIZ|R_CHECK_VERT|R_CLICKER|R_COLUMN|R_FRAME|R_ICON|R_LABEL|R_LABEL_CENTER|R_LIST_MULTIPLE|R_LIST_MULTIPLE_ND|R_LIST_SINGLE|R_LIST_SINGLE_ND|R_MENU|R_POPUP|R_POPUP_SCROLLED|R_RADIO_HORIZ|R_RADIO_VERT|R_ROW|R_SCALE_HORIZ|R_SCALE_VERT|R_SEP_HORIZ|R_SEP_VERT|R_SPINNER|R_TEXT_FIELD|R_TEXT_FIELD_LABEL|R_TOGGLE|TRIM_LEADING|TRIM_LEADING_AND_TRAILING|TRIM_REDUNDANT|TRIM_TRAILING|VOID|WARN)\b/,boolean:/\b(?:FALSE|False|NO|No|TRUE|True|YES|Yes|false|no|true|yes)\b/,variable:/\b(?:PslDebug|errno|exit_status)\b/,builtin:{pattern:/\b(?:PslExecute|PslFunctionCall|PslFunctionExists|PslSetOptions|_snmp_debug|acos|add_diary|annotate|annotate_get|ascii_to_ebcdic|asctime|asin|atan|atexit|batch_set|blackout|cat|ceil|chan_exists|change_state|close|code_cvt|cond_signal|cond_wait|console_type|convert_base|convert_date|convert_locale_date|cos|cosh|create|date|dcget_text|destroy|destroy_lock|dget_text|difference|dump_hist|ebcdic_to_ascii|encrypt|event_archive|event_catalog_get|event_check|event_query|event_range_manage|event_range_query|event_report|event_schedule|event_trigger|event_trigger2|execute|exists|exp|fabs|file|floor|fmod|fopen|fseek|ftell|full_discovery|get|get_chan_info|get_ranges|get_text|get_vars|getenv|gethostinfo|getpid|getpname|grep|history|history_get_retention|in_transition|index|int|internal|intersection|is_var|isnumber|join|kill|length|lines|lock|lock_info|log|log10|loge|matchline|msg_check|msg_get_format|msg_get_severity|msg_printf|msg_sprintf|ntharg|nthargf|nthline|nthlinef|num_bytes|num_consoles|pconfig|popen|poplines|pow|print|printf|proc_exists|process|random|read|readln|refresh_parameters|remote_check|remote_close|remote_event_query|remote_event_trigger|remote_file_send|remote_open|remove|replace|rindex|sec_check_priv|sec_store_get|sec_store_set|set|set_alarm_ranges|set_locale|share|sin|sinh|sleep|snmp_agent_config|snmp_agent_start|snmp_agent_stop|snmp_close|snmp_config|snmp_get|snmp_get_next|snmp_h_get|snmp_h_get_next|snmp_h_set|snmp_open|snmp_set|snmp_trap_ignore|snmp_trap_listen|snmp_trap_raise_std_trap|snmp_trap_receive|snmp_trap_register_im|snmp_trap_send|snmp_walk|sopen|sort|splitline|sprintf|sqrt|srandom|str_repeat|strcasecmp|subset|substr|system|tail|tan|tanh|text_domain|time|tmpnam|tolower|toupper|trace_psl_process|trim|union|unique|unlock|unset|va_arg|va_start|write)\b/,alias:"builtin-function"},"foreach-variable":{pattern:/(\bforeach\s+(?:(?:\w+\b|"(?:\\.|[^\\"])*")\s+){0,2})[_a-zA-Z]\w*(?=\s*\()/,lookbehind:!0,greedy:!0},function:/\b[_a-z]\w*\b(?=\s*\()/i,number:/\b(?:0x[0-9a-f]+|\d+(?:\.\d+)?)\b/i,operator:/--|\+\+|&&=?|\|\|=?|<<=?|>>=?|[=!]~|[-+*/%&|^!=<>]=?|\.|[:?]/,punctuation:/[(){}\[\];,]/}}});export{s as a}; diff --git a/build/_shared/chunk-6KJFUITK.js b/build/_shared/chunk-6KJFUITK.js new file mode 100644 index 00000000..fe2c87a4 --- /dev/null +++ b/build/_shared/chunk-6KJFUITK.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var A=n((I,N)=>{N.exports=S;S.displayName="dnsZoneFile";S.aliases=[];function S(e){e.languages["dns-zone-file"]={comment:/;.*/,string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},variable:[{pattern:/(^\$ORIGIN[ \t]+)\S+/m,lookbehind:!0},{pattern:/(^|\s)@(?=\s|$)/,lookbehind:!0}],keyword:/^\$(?:INCLUDE|ORIGIN|TTL)(?=\s|$)/m,class:{pattern:/(^|\s)(?:CH|CS|HS|IN)(?=\s|$)/,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|\s)(?:A|A6|AAAA|AFSDB|APL|ATMA|CAA|CDNSKEY|CDS|CERT|CNAME|DHCID|DLV|DNAME|DNSKEY|DS|EID|GID|GPOS|HINFO|HIP|IPSECKEY|ISDN|KEY|KX|LOC|MAILA|MAILB|MB|MD|MF|MG|MINFO|MR|MX|NAPTR|NB|NBSTAT|NIMLOC|NINFO|NS|NSAP|NSAP-PTR|NSEC|NSEC3|NSEC3PARAM|NULL|NXT|OPENPGPKEY|PTR|PX|RKEY|RP|RRSIG|RT|SIG|SINK|SMIMEA|SOA|SPF|SRV|SSHFP|TA|TKEY|TLSA|TSIG|TXT|UID|UINFO|UNSPEC|URI|WKS|X25)(?=\s|$)/,lookbehind:!0,alias:"keyword"},punctuation:/[()]/},e.languages["dns-zone"]=e.languages["dns-zone-file"]}});export{A as a}; diff --git a/build/_shared/chunk-6ME5FGC4.js b/build/_shared/chunk-6ME5FGC4.js new file mode 100644 index 00000000..32b7ba97 --- /dev/null +++ b/build/_shared/chunk-6ME5FGC4.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=t((s,n)=>{n.exports=e;e.displayName="vim";e.aliases=[];function e(i){i.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\b\w+(?=\()/,keyword:/\b(?:N|Next|P|Print|X|XMLent|XMLns|ab|abbreviate|abc|abclear|abo|aboveleft|al|all|ar|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|args|argu|argument|as|ascii|b|bN|bNext|ba|bad|badd|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bo|botright|bp|bprevious|br|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|brewind|bro|browse|bufdo|buffer|buffers|bun|bunload|bw|bwipeout|c|cN|cNext|cNfcNfile|ca|cabbrev|cabc|cabclear|cad|caddb|caddbuffer|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cg|cgetb|cgetbuffer|cgete|cgetexpr|cgetfile|change|changes|chd|chdir|che|checkpath|checkt|checktime|cl|cla|clast|clist|clo|close|cmapc|cmapclear|cn|cnew|cnewer|cnext|cnf|cnfile|cnorea|cnoreabbrev|co|col|colder|colo|colorscheme|comc|comclear|comp|compiler|con|conf|confirm|continue|cope|copen|copy|cp|cpf|cpfile|cprevious|cq|cquit|cr|crewind|cu|cuna|cunabbrev|cunmap|cw|cwindow|d|debugg|debuggreedy|delc|delcommand|delete|delf|delfunction|delm|delmarks|di|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|e|earlier|echoe|echoerr|echom|echomsg|echon|edit|el|else|elsei|elseif|em|emenu|en|endf|endfo|endfor|endfun|endfunction|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fin|fina|finally|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|foldd|folddoc|folddoclosed|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|h|ha|hardcopy|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iu|iuna|iunabbrev|iunmap|j|join|ju|jumps|k|kee|keepalt|keepj|keepjumps|keepmarks|l|lN|lNext|lNf|lNfile|la|lad|laddb|laddbuffer|laddexpr|laddf|laddfile|lan|language|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|left|lefta|leftabove|let|lex|lexpr|lf|lfile|lfir|lfirst|lg|lgetb|lgetbuffer|lgete|lgetexpr|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|list|ll|lla|llast|lli|llist|lm|lmak|lmake|lmap|lmapc|lmapclear|ln|lne|lnew|lnewer|lnext|lnf|lnfile|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lp|lpf|lpfile|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|m|ma|mak|make|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkv|mkvie|mkview|mkvimrc|mod|mode|move|mz|mzf|mzfile|mzscheme|n|nbkey|new|next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|o|omapc|omapclear|on|only|open|opt|options|ou|ounmap|p|pc|pclose|pe|ped|pedit|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|print|prof|profd|profdel|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|ptN|ptNext|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|py|pyf|pyfile|python|q|qa|qall|quit|quita|quitall|r|read|rec|recover|red|redi|redir|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|ru|rub|ruby|rubyd|rubydo|rubyf|rubyfile|runtime|rv|rviminfo|sN|sNext|sa|sal|sall|san|sandbox|sargument|sav|saveas|sb|sbN|sbNext|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbp|sbprevious|sbr|sbrewind|sbuffer|scrip|scripte|scriptencoding|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sl|sla|slast|sleep|sm|smagic|smap|smapc|smapclear|sme|smenu|sn|snext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|so|sor|sort|source|sp|spe|spelld|spelldump|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|split|spr|sprevious|sre|srewind|st|sta|stag|star|startg|startgreplace|startinsert|startr|startreplace|stj|stjump|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tN|tNext|ta|tab|tabN|tabNext|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabn|tabnew|tabnext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tmenu|tn|tnext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tunmenu|u|una|unabbreviate|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|ve|verb|verbose|version|vert|vertical|vi|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|w|wN|wNext|wa|wall|wh|while|win|winc|wincmd|windo|winp|winpos|winsize|wn|wnext|wp|wprevious|wq|wqa|wqall|write|ws|wsverb|wv|wviminfo|x|xa|xall|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autocmd|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|t_AB|t_AF|t_AL|t_CS|t_CV|t_Ce|t_Co|t_Cs|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_IE|t_IS|t_K1|t_K3|t_K4|t_K5|t_K6|t_K7|t_K8|t_K9|t_KA|t_KB|t_KC|t_KD|t_KE|t_KF|t_KG|t_KH|t_KI|t_KJ|t_KK|t_KL|t_RI|t_RV|t_SI|t_Sb|t_Sf|t_WP|t_WS|t_ZH|t_ZR|t_al|t_bc|t_cd|t_ce|t_cl|t_cm|t_cs|t_da|t_db|t_dl|t_fs|t_k1|t_k2|t_k3|t_k4|t_k5|t_k6|t_k7|t_k8|t_k9|t_kB|t_kD|t_kI|t_kN|t_kP|t_kb|t_kd|t_ke|t_kh|t_kl|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_se|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_xs|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/}}});export{o as a}; diff --git a/build/_shared/chunk-6SZIOUXW.js b/build/_shared/chunk-6SZIOUXW.js new file mode 100644 index 00000000..75be4dac --- /dev/null +++ b/build/_shared/chunk-6SZIOUXW.js @@ -0,0 +1 @@ +import{c as o}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var l=o((u,n)=>{n.exports=a;a.displayName="flow";a.aliases=[];function a(t){(function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})})(t)}});export{l as a}; diff --git a/build/_shared/chunk-6YA43ERH.js b/build/_shared/chunk-6YA43ERH.js new file mode 100644 index 00000000..ae30c434 --- /dev/null +++ b/build/_shared/chunk-6YA43ERH.js @@ -0,0 +1 @@ +import{c as i}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=i((r,a)=>{a.exports=t;t.displayName="xeora";t.aliases=["xeoracube"];function t(e){(function(n){n.languages.xeora=n.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:\{[-\w.]+\?[-\w.]+(?:,(?:(?:@[-#]*\w+\.[\w+.]\.*)*\|)*(?:(?:[\w+]|[-#*.~^]+[\w+]|=\S)(?:[^$=]|=+[^=])*=*|(?:@[-#]*\w+\.[\w+.]\.*)+(?:(?:[\w+]|[-#*~^][-#*.~^]*[\w+]|=\S)(?:[^$=]|=+[^=])*=*)?)?)?\}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:\{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+\])?:[-\w.]+:\{(?:![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/\}:[-\w.]+:\{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/\}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),n.languages.insertBefore("inside","punctuation",{variable:n.languages.xeora["function-inline"].inside.variable},n.languages.xeora["function-block"]),n.languages.xeoracube=n.languages.xeora})(e)}});export{o as a}; diff --git a/build/_shared/chunk-6YGIEX7D.js b/build/_shared/chunk-6YGIEX7D.js new file mode 100644 index 00000000..ace0c401 --- /dev/null +++ b/build/_shared/chunk-6YGIEX7D.js @@ -0,0 +1 @@ +import{a as u}from"/numpy-tutorials/build/_shared/chunk-R3ABELDT.js";import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var d=a((g,s)=>{var o=u();s.exports=e;e.displayName="json5";e.aliases=[];function e(n){n.register(o),function(r){var t=/("|')(?:\\(?:\r\n?|\n|.)|(?!\1)[^\\\r\n])*\1/;r.languages.json5=r.languages.extend("json",{property:[{pattern:RegExp(t.source+"(?=\\s*:)"),greedy:!0},{pattern:/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/,alias:"unquoted"}],string:{pattern:t,greedy:!0},number:/[+-]?\b(?:NaN|Infinity|0x[a-fA-F\d]+)\b|[+-]?(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+\b)?/})}(n)}});export{d as a}; diff --git a/build/_shared/chunk-6ZWZTF4Z.js b/build/_shared/chunk-6ZWZTF4Z.js new file mode 100644 index 00000000..bc58e58e --- /dev/null +++ b/build/_shared/chunk-6ZWZTF4Z.js @@ -0,0 +1 @@ +var s={name:"mermaid",version:"11.12.2",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.1.1","@iconify/utils":"^3.0.1","@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.13",dayjs:"^1.11.18",dompurify:"^3.2.5",katex:"^0.16.22",khroma:"^2.1.0","lodash-es":"^4.17.21",marked:"^16.2.1",roughjs:"^4.6.6",stylis:"^4.3.6","ts-dedent":"^2.2.0",uuid:"^11.1.0"},devDependencies:{"@adobe/jsonschema2md":"^8.0.5","@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.2",chokidar:"3.6.0",concurrently:"^9.1.2","csstree-validator":"^4.0.1",globby:"^14.1.0",jison:"^0.4.18","js-base64":"^3.7.8",jsdom:"^26.1.0","json-schema-to-typescript":"^15.0.4",micromatch:"^4.0.8","path-browserify":"^1.0.1",prettier:"^3.5.3",remark:"^15.0.1","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1",rimraf:"^6.0.1","start-server-and-test":"^2.0.13","type-fest":"^4.35.0",typedoc:"^0.28.12","typedoc-plugin-markdown":"^4.8.1",typescript:"~5.7.3","unist-util-flatmap":"^1.0.0","unist-util-visit":"^5.0.0",vitepress:"^1.6.4","vitepress-plugin-search":"1.0.4-alpha.22"},files:["dist/","README.md"],publishConfig:{access:"public"}};export{s as a}; diff --git a/build/_shared/chunk-725GE56H.js b/build/_shared/chunk-725GE56H.js new file mode 100644 index 00000000..850b43d0 --- /dev/null +++ b/build/_shared/chunk-725GE56H.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=a((n,e)=>{e.exports=t;t.displayName="mermaid";t.aliases=[];function t(r){r.languages.mermaid={comment:{pattern:/%%.*/,greedy:!0},style:{pattern:/^([ \t]*(?:classDef|linkStyle|style)[ \t]+[\w$-]+[ \t]+)\w.*[^\s;]/m,lookbehind:!0,inside:{property:/\b\w[\w-]*(?=[ \t]*:)/,operator:/:/,punctuation:/,/}},"inter-arrow-label":{pattern:/([^<>ox.=-])(?:-[-.]|==)(?![<>ox.=-])[ \t]*(?:"[^"\r\n]*"|[^\s".=-](?:[^\r\n.=-]*[^\s.=-])?)[ \t]*(?:\.+->?|--+[->]|==+[=>])(?![<>ox.=-])/,lookbehind:!0,greedy:!0,inside:{arrow:{pattern:/(?:\.+->?|--+[->]|==+[=>])$/,alias:"operator"},label:{pattern:/^([\s\S]{2}[ \t]*)\S(?:[\s\S]*\S)?/,lookbehind:!0,alias:"property"},"arrow-head":{pattern:/^\S+/,alias:["arrow","operator"]}}},arrow:[{pattern:/(^|[^{}|o.-])[|}][|o](?:--|\.\.)[|o][|{](?![{}|o.-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>ox.=-])(?:[ox]?|(?:==+|--+|-\.*-)[>ox]|===+|---+|-\.+-)(?![<>ox.=-])/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>()x-])(?:--?(?:>>|[x>)])(?![<>()x])|(?:<<|[x<(])--?(?!-))/,lookbehind:!0,alias:"operator"},{pattern:/(^|[^<>|*o.-])(?:[*o]--|--[*o]|<\|?(?:--|\.\.)|(?:--|\.\.)\|?>|--|\.\.)(?![<>|*o.-])/,lookbehind:!0,alias:"operator"}],label:{pattern:/(^|[^|<])\|(?:[^\r\n"|]|"[^"\r\n]*")+\|/,lookbehind:!0,greedy:!0,alias:"property"},text:{pattern:/(?:[(\[{]+|\b>)(?:[^\r\n"()\[\]{}]|"[^"\r\n]*")+(?:[)\]}]+|>)/,alias:"string"},string:{pattern:/"[^"\r\n]*"/,greedy:!0},annotation:{pattern:/<<(?:abstract|choice|enumeration|fork|interface|join|service)>>|\[\[(?:choice|fork|join)\]\]/i,alias:"important"},keyword:[{pattern:/(^[ \t]*)(?:action|callback|class|classDef|classDiagram|click|direction|erDiagram|flowchart|gantt|gitGraph|graph|journey|link|linkStyle|pie|requirementDiagram|sequenceDiagram|stateDiagram|stateDiagram-v2|style|subgraph)(?![\w$-])/m,lookbehind:!0,greedy:!0},{pattern:/(^[ \t]*)(?:activate|alt|and|as|autonumber|deactivate|else|end(?:[ \t]+note)?|loop|opt|par|participant|rect|state|note[ \t]+(?:over|(?:left|right)[ \t]+of))(?![\w$-])/im,lookbehind:!0,greedy:!0}],entity:/#[a-z0-9]+;/,operator:{pattern:/(\w[ \t]*)&(?=[ \t]*\w)|:::|:/,lookbehind:!0},punctuation:/[(){};]/}}});export{o as a}; diff --git a/build/_shared/chunk-726SDXJV.js b/build/_shared/chunk-726SDXJV.js new file mode 100644 index 00000000..273ea4a6 --- /dev/null +++ b/build/_shared/chunk-726SDXJV.js @@ -0,0 +1 @@ +import{c as R}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var N=R((A,T)=>{T.exports=E;E.displayName="cobol";E.aliases=[];function E(I){I.languages.cobol={comment:{pattern:/\*>.*|(^[ \t]*)\*.*/m,lookbehind:!0,greedy:!0},string:{pattern:/[xzgn]?(?:"(?:[^\r\n"]|"")*"(?!")|'(?:[^\r\n']|'')*'(?!'))/i,greedy:!0},level:{pattern:/(^[ \t]*)\d+\b/m,lookbehind:!0,greedy:!0,alias:"number"},"class-name":{pattern:/(\bpic(?:ture)?\s+)(?:(?:[-\w$/,:*+<>]|\.(?!\s|$))(?:\(\d+\))?)+/i,lookbehind:!0,inside:{number:{pattern:/(\()\d+/,lookbehind:!0},punctuation:/[()]/}},keyword:{pattern:/(^|[^\w-])(?:ABORT|ACCEPT|ACCESS|ADD|ADDRESS|ADVANCING|AFTER|ALIGNED|ALL|ALPHABET|ALPHABETIC|ALPHABETIC-LOWER|ALPHABETIC-UPPER|ALPHANUMERIC|ALPHANUMERIC-EDITED|ALSO|ALTER|ALTERNATE|ANY|ARE|AREA|AREAS|AS|ASCENDING|ASCII|ASSIGN|ASSOCIATED-DATA|ASSOCIATED-DATA-LENGTH|AT|ATTRIBUTE|AUTHOR|AUTO|AUTO-SKIP|BACKGROUND-COLOR|BACKGROUND-COLOUR|BASIS|BEEP|BEFORE|BEGINNING|BELL|BINARY|BIT|BLANK|BLINK|BLOCK|BOTTOM|BOUNDS|BY|BYFUNCTION|BYTITLE|CALL|CANCEL|CAPABLE|CCSVERSION|CD|CF|CH|CHAINING|CHANGED|CHANNEL|CHARACTER|CHARACTERS|CLASS|CLASS-ID|CLOCK-UNITS|CLOSE|CLOSE-DISPOSITION|COBOL|CODE|CODE-SET|COL|COLLATING|COLUMN|COM-REG|COMMA|COMMITMENT|COMMON|COMMUNICATION|COMP|COMP-1|COMP-2|COMP-3|COMP-4|COMP-5|COMPUTATIONAL|COMPUTATIONAL-1|COMPUTATIONAL-2|COMPUTATIONAL-3|COMPUTATIONAL-4|COMPUTATIONAL-5|COMPUTE|CONFIGURATION|CONTAINS|CONTENT|CONTINUE|CONTROL|CONTROL-POINT|CONTROLS|CONVENTION|CONVERTING|COPY|CORR|CORRESPONDING|COUNT|CRUNCH|CURRENCY|CURSOR|DATA|DATA-BASE|DATE|DATE-COMPILED|DATE-WRITTEN|DAY|DAY-OF-WEEK|DBCS|DE|DEBUG-CONTENTS|DEBUG-ITEM|DEBUG-LINE|DEBUG-NAME|DEBUG-SUB-1|DEBUG-SUB-2|DEBUG-SUB-3|DEBUGGING|DECIMAL-POINT|DECLARATIVES|DEFAULT|DEFAULT-DISPLAY|DEFINITION|DELETE|DELIMITED|DELIMITER|DEPENDING|DESCENDING|DESTINATION|DETAIL|DFHRESP|DFHVALUE|DISABLE|DISK|DISPLAY|DISPLAY-1|DIVIDE|DIVISION|DONTCARE|DOUBLE|DOWN|DUPLICATES|DYNAMIC|EBCDIC|EGCS|EGI|ELSE|EMI|EMPTY-CHECK|ENABLE|END|END-ACCEPT|END-ADD|END-CALL|END-COMPUTE|END-DELETE|END-DIVIDE|END-EVALUATE|END-IF|END-MULTIPLY|END-OF-PAGE|END-PERFORM|END-READ|END-RECEIVE|END-RETURN|END-REWRITE|END-SEARCH|END-START|END-STRING|END-SUBTRACT|END-UNSTRING|END-WRITE|ENDING|ENTER|ENTRY|ENTRY-PROCEDURE|ENVIRONMENT|EOL|EOP|EOS|ERASE|ERROR|ESCAPE|ESI|EVALUATE|EVENT|EVERY|EXCEPTION|EXCLUSIVE|EXHIBIT|EXIT|EXPORT|EXTEND|EXTENDED|EXTERNAL|FD|FILE|FILE-CONTROL|FILLER|FINAL|FIRST|FOOTING|FOR|FOREGROUND-COLOR|FOREGROUND-COLOUR|FROM|FULL|FUNCTION|FUNCTION-POINTER|FUNCTIONNAME|GENERATE|GIVING|GLOBAL|GO|GOBACK|GRID|GROUP|HEADING|HIGH-VALUE|HIGH-VALUES|HIGHLIGHT|I-O|I-O-CONTROL|ID|IDENTIFICATION|IF|IMPLICIT|IMPORT|IN|INDEX|INDEXED|INDICATE|INITIAL|INITIALIZE|INITIATE|INPUT|INPUT-OUTPUT|INSPECT|INSTALLATION|INTEGER|INTO|INVALID|INVOKE|IS|JUST|JUSTIFIED|KANJI|KEPT|KEY|KEYBOARD|LABEL|LANGUAGE|LAST|LB|LD|LEADING|LEFT|LEFTLINE|LENGTH|LENGTH-CHECK|LIBACCESS|LIBPARAMETER|LIBRARY|LIMIT|LIMITS|LINAGE|LINAGE-COUNTER|LINE|LINE-COUNTER|LINES|LINKAGE|LIST|LOCAL|LOCAL-STORAGE|LOCK|LONG-DATE|LONG-TIME|LOW-VALUE|LOW-VALUES|LOWER|LOWLIGHT|MEMORY|MERGE|MESSAGE|MMDDYYYY|MODE|MODULES|MORE-LABELS|MOVE|MULTIPLE|MULTIPLY|NAMED|NATIONAL|NATIONAL-EDITED|NATIVE|NEGATIVE|NETWORK|NEXT|NO|NO-ECHO|NULL|NULLS|NUMBER|NUMERIC|NUMERIC-DATE|NUMERIC-EDITED|NUMERIC-TIME|OBJECT-COMPUTER|OCCURS|ODT|OF|OFF|OMITTED|ON|OPEN|OPTIONAL|ORDER|ORDERLY|ORGANIZATION|OTHER|OUTPUT|OVERFLOW|OVERLINE|OWN|PACKED-DECIMAL|PADDING|PAGE|PAGE-COUNTER|PASSWORD|PERFORM|PF|PH|PIC|PICTURE|PLUS|POINTER|PORT|POSITION|POSITIVE|PRINTER|PRINTING|PRIVATE|PROCEDURE|PROCEDURE-POINTER|PROCEDURES|PROCEED|PROCESS|PROGRAM|PROGRAM-ID|PROGRAM-LIBRARY|PROMPT|PURGE|QUEUE|QUOTE|QUOTES|RANDOM|RD|READ|READER|REAL|RECEIVE|RECEIVED|RECORD|RECORDING|RECORDS|RECURSIVE|REDEFINES|REEL|REF|REFERENCE|REFERENCES|RELATIVE|RELEASE|REMAINDER|REMARKS|REMOTE|REMOVAL|REMOVE|RENAMES|REPLACE|REPLACING|REPORT|REPORTING|REPORTS|REQUIRED|RERUN|RESERVE|RESET|RETURN|RETURN-CODE|RETURNING|REVERSE-VIDEO|REVERSED|REWIND|REWRITE|RF|RH|RIGHT|ROUNDED|RUN|SAME|SAVE|SCREEN|SD|SEARCH|SECTION|SECURE|SECURITY|SEGMENT|SEGMENT-LIMIT|SELECT|SEND|SENTENCE|SEPARATE|SEQUENCE|SEQUENTIAL|SET|SHARED|SHAREDBYALL|SHAREDBYRUNUNIT|SHARING|SHIFT-IN|SHIFT-OUT|SHORT-DATE|SIGN|SIZE|SORT|SORT-CONTROL|SORT-CORE-SIZE|SORT-FILE-SIZE|SORT-MERGE|SORT-MESSAGE|SORT-MODE-SIZE|SORT-RETURN|SOURCE|SOURCE-COMPUTER|SPACE|SPACES|SPECIAL-NAMES|STANDARD|STANDARD-1|STANDARD-2|START|STATUS|STOP|STRING|SUB-QUEUE-1|SUB-QUEUE-2|SUB-QUEUE-3|SUBTRACT|SUM|SUPPRESS|SYMBOL|SYMBOLIC|SYNC|SYNCHRONIZED|TABLE|TALLY|TALLYING|TAPE|TASK|TERMINAL|TERMINATE|TEST|TEXT|THEN|THREAD|THREAD-LOCAL|THROUGH|THRU|TIME|TIMER|TIMES|TITLE|TO|TODAYS-DATE|TODAYS-NAME|TOP|TRAILING|TRUNCATED|TYPE|TYPEDEF|UNDERLINE|UNIT|UNSTRING|UNTIL|UP|UPON|USAGE|USE|USING|VALUE|VALUES|VARYING|VIRTUAL|WAIT|WHEN|WHEN-COMPILED|WITH|WORDS|WORKING-STORAGE|WRITE|YEAR|YYYYDDD|YYYYMMDD|ZERO-FILL|ZEROES|ZEROS)(?![\w-])/i,lookbehind:!0},boolean:{pattern:/(^|[^\w-])(?:false|true)(?![\w-])/i,lookbehind:!0},number:{pattern:/(^|[^\w-])(?:[+-]?(?:(?:\d+(?:[.,]\d+)?|[.,]\d+)(?:e[+-]?\d+)?|zero))(?![\w-])/i,lookbehind:!0},operator:[/<>|[<>]=?|[=+*/&]/,{pattern:/(^|[^\w-])(?:-|and|equal|greater|less|not|or|than)(?![\w-])/i,lookbehind:!0}],punctuation:/[.:,()]/}}});export{N as a}; diff --git a/build/_shared/chunk-746DYJXZ.js b/build/_shared/chunk-746DYJXZ.js new file mode 100644 index 00000000..7527c393 --- /dev/null +++ b/build/_shared/chunk-746DYJXZ.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var n=a((r,e)=>{e.exports=t;t.displayName="wiki";t.aliases=[];function t(i){i.languages.wiki=i.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+)[^=\r\n].*?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold-italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0,alias:["bold","italic"]},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:PMID|RFC) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:i.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),i.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[^>]*>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[^>]*>|<\/(?:nowiki|pre|source)>/i,inside:i.languages.markup.tag.inside}}}})}});export{n as a}; diff --git a/build/_shared/chunk-7DFIBGEP.js b/build/_shared/chunk-7DFIBGEP.js new file mode 100644 index 00000000..f932571e --- /dev/null +++ b/build/_shared/chunk-7DFIBGEP.js @@ -0,0 +1 @@ +import{c as o}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var u=o((l,n)=>{n.exports=t;t.displayName="sass";t.aliases=[];function t(s){(function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var a=/\$[-\w]+|#\{\$[-\w]+\}/,r=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:a,operator:r}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:a,operator:r,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(s)}});export{u as a}; diff --git a/build/_shared/chunk-7DW7L33J.js b/build/_shared/chunk-7DW7L33J.js new file mode 100644 index 00000000..46f63c26 --- /dev/null +++ b/build/_shared/chunk-7DW7L33J.js @@ -0,0 +1 @@ +import{a as fe,b as _n,c as yr,d as Ie}from"/numpy-tutorials/build/_shared/chunk-KQM5FBHR.js";import{c as wf,f as Mf}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var Lo=wf((_r,vr)=>{(function(t,e){typeof _r=="object"&&typeof vr<"u"?vr.exports=e():typeof define=="function"&&define.amd?define(e):(t=typeof globalThis<"u"?globalThis:t||self).dayjs=e()})(_r,function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",o="second",i="minute",a="hour",u="day",f="week",s="month",c="quarter",h="year",l="date",p="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,T=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,S={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(w){var d=["th","st","nd","rd"],g=w%100;return"["+w+(d[(g-20)%10]||d[g]||d[0])+"]"}},C=function(w,d,g){var U=String(w);return!U||U.length>=d?w:""+Array(d+1-U.length).join(g)+w},E={s:C,z:function(w){var d=-w.utcOffset(),g=Math.abs(d),U=Math.floor(g/60),M=g%60;return(d<=0?"+":"-")+C(U,2,"0")+":"+C(M,2,"0")},m:function w(d,g){if(d.date()1)return w(N[0])}else{var I=d.name;A[I]=d,M=I}return!U&&M&&(k=M),M||!U&&k},P=function(w,d){if(v(w))return w.clone();var g=typeof d=="object"?d:{};return g.date=w,g.args=arguments,new W(g)},$=E;$.l=L,$.i=v,$.w=function(w,d){return P(w,{locale:d.$L,utc:d.$u,x:d.$x,$offset:d.$offset})};var W=function(){function w(g){this.$L=L(g.locale,null,!0),this.parse(g),this.$x=this.$x||g.x||{},this[F]=!0}var d=w.prototype;return d.parse=function(g){this.$d=function(U){var M=U.date,Y=U.utc;if(M===null)return new Date(NaN);if($.u(M))return new Date;if(M instanceof Date)return new Date(M);if(typeof M=="string"&&!/Z$/i.test(M)){var N=M.match(y);if(N){var I=N[2]-1||0,z=(N[7]||"0").substring(0,3);return Y?new Date(Date.UTC(N[1],I,N[3]||1,N[4]||0,N[5]||0,N[6]||0,z)):new Date(N[1],I,N[3]||1,N[4]||0,N[5]||0,N[6]||0,z)}}return new Date(M)}(g),this.init()},d.init=function(){var g=this.$d;this.$y=g.getFullYear(),this.$M=g.getMonth(),this.$D=g.getDate(),this.$W=g.getDay(),this.$H=g.getHours(),this.$m=g.getMinutes(),this.$s=g.getSeconds(),this.$ms=g.getMilliseconds()},d.$utils=function(){return $},d.isValid=function(){return this.$d.toString()!==p},d.isSame=function(g,U){var M=P(g);return this.startOf(U)<=M&&M<=this.endOf(U)},d.isAfter=function(g,U){return P(g)Ro(t,"name",{value:e,configurable:!0}),Rd=(t,e)=>{for(var n in e)Ro(t,n,{get:e[n],enumerable:!0})},Mt={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},dt={trace:Ut((...t)=>{},"trace"),debug:Ut((...t)=>{},"debug"),info:Ut((...t)=>{},"info"),warn:Ut((...t)=>{},"warn"),error:Ut((...t)=>{},"error"),fatal:Ut((...t)=>{},"fatal")},Hd=Ut(function(t="fatal"){let e=Mt.fatal;typeof t=="string"?t.toLowerCase()in Mt&&(e=Mt[t]):typeof t=="number"&&(e=t),dt.trace=()=>{},dt.debug=()=>{},dt.info=()=>{},dt.warn=()=>{},dt.error=()=>{},dt.fatal=()=>{},e<=Mt.fatal&&(dt.fatal=console.error?console.error.bind(console,xt("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",xt("FATAL"))),e<=Mt.error&&(dt.error=console.error?console.error.bind(console,xt("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",xt("ERROR"))),e<=Mt.warn&&(dt.warn=console.warn?console.warn.bind(console,xt("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",xt("WARN"))),e<=Mt.info&&(dt.info=console.info?console.info.bind(console,xt("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",xt("INFO"))),e<=Mt.debug&&(dt.debug=console.debug?console.debug.bind(console,xt("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",xt("DEBUG"))),e<=Mt.trace&&(dt.trace=console.debug?console.debug.bind(console,xt("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",xt("TRACE")))},"setLogLevel"),xt=Ut(t=>`%c${(0,Ho.default)().format("ss.SSS")} : ${t} : `,"format");function Wo(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n=r)&&(n=r);else{let r=-1;for(let o of t)(o=e(o,++r,t))!=null&&(n=o)&&(n=o)}return n}function zo(t,e){let n;if(e===void 0)for(let r of t)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);else{let r=-1;for(let o of t)(o=e(o,++r,t))!=null&&(n>o||n===void 0&&o>=o)&&(n=o)}return n}var le=class extends Map{constructor(e,n=Sf){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(let[r,o]of e)this.set(r,o)}get(e){return super.get(Bo(this,e))}has(e){return super.has(Bo(this,e))}set(e,n){return super.set(Tf(this,e),n)}delete(e){return super.delete(bf(this,e))}};function Bo({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):n}function Tf({_intern:t,_key:e},n){let r=e(n);return t.has(r)?t.get(r):(t.set(r,n),n)}function bf({_intern:t,_key:e},n){let r=e(n);return t.has(r)&&(n=t.get(r),t.delete(r)),n}function Sf(t){return t!==null&&typeof t=="object"?t.valueOf():t}function qo(t){return t}var wn=1,wr=2,Mr=3,vn=4,Vo=1e-6;function Cf(t){return"translate("+t+",0)"}function kf(t){return"translate(0,"+t+")"}function Df(t){return e=>+t(e)}function Uf(t,e){return e=Math.max(0,t.bandwidth()-e*2)/2,t.round()&&(e=Math.round(e)),n=>+t(n)+e}function Af(){return!this.__axis}function Xo(t,e){var n=[],r=null,o=null,i=6,a=6,u=3,f=typeof window<"u"&&window.devicePixelRatio>1?0:.5,s=t===wn||t===vn?-1:1,c=t===vn||t===wr?"x":"y",h=t===wn||t===Mr?Cf:kf;function l(p){var y=r??(e.ticks?e.ticks.apply(e,n):e.domain()),T=o??(e.tickFormat?e.tickFormat.apply(e,n):qo),S=Math.max(i,0)+u,C=e.range(),E=+C[0]+f,k=+C[C.length-1]+f,A=(e.bandwidth?Uf:Df)(e.copy(),f),F=p.selection?p.selection():p,v=F.selectAll(".domain").data([null]),L=F.selectAll(".tick").data(y,e).order(),P=L.exit(),$=L.enter().append("g").attr("class","tick"),W=L.select("line"),_=L.select("text");v=v.merge(v.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),L=L.merge($),W=W.merge($.append("line").attr("stroke","currentColor").attr(c+"2",s*i)),_=_.merge($.append("text").attr("fill","currentColor").attr(c,s*S).attr("dy",t===wn?"0em":t===Mr?"0.71em":"0.32em")),p!==F&&(v=v.transition(p),L=L.transition(p),W=W.transition(p),_=_.transition(p),P=P.transition(p).attr("opacity",Vo).attr("transform",function(w){return isFinite(w=A(w))?h(w+f):this.getAttribute("transform")}),$.attr("opacity",Vo).attr("transform",function(w){var d=this.parentNode.__axis;return h((d&&isFinite(d=d(w))?d:A(w))+f)})),P.remove(),v.attr("d",t===vn||t===wr?a?"M"+s*a+","+E+"H"+f+"V"+k+"H"+s*a:"M"+f+","+E+"V"+k:a?"M"+E+","+s*a+"V"+f+"H"+k+"V"+s*a:"M"+E+","+f+"H"+k),L.attr("opacity",1).attr("transform",function(w){return h(A(w)+f)}),W.attr(c+"2",s*i),_.attr(c,s*S).text(T),F.filter(Af).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===wr?"start":t===vn?"end":"middle"),F.each(function(){this.__axis=A})}return l.scale=function(p){return arguments.length?(e=p,l):e},l.ticks=function(){return n=Array.from(arguments),l},l.tickArguments=function(p){return arguments.length?(n=p==null?[]:Array.from(p),l):n.slice()},l.tickValues=function(p){return arguments.length?(r=p==null?null:Array.from(p),l):r&&r.slice()},l.tickFormat=function(p){return arguments.length?(o=p,l):o},l.tickSize=function(p){return arguments.length?(i=a=+p,l):i},l.tickSizeInner=function(p){return arguments.length?(i=+p,l):i},l.tickSizeOuter=function(p){return arguments.length?(a=+p,l):a},l.tickPadding=function(p){return arguments.length?(u=+p,l):u},l.offset=function(p){return arguments.length?(f=+p,l):f},l}function Ff(t){return Xo(wn,t)}function Yf(t){return Xo(Mr,t)}function Nf(){}function Rt(t){return t==null?Nf:function(){return this.querySelector(t)}}function Go(t){typeof t!="function"&&(t=Rt(t));for(var e=this._groups,n=e.length,r=new Array(n),o=0;o=k&&(k=E+1);!(F=S[k])&&++k=0;)(a=r[o])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function ai(t){t||(t=Vf);function e(h,l){return h&&l?t(h.__data__,l.__data__):!h-!l}for(var n=this._groups,r=n.length,o=new Array(r),i=0;ie?1:t>=e?0:NaN}function ui(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function si(){return Array.from(this)}function fi(){for(var t=this._groups,e=0,n=t.length;e=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),br.hasOwnProperty(e)?{space:br[e],local:t}:t}function Xf(t){return function(){this.removeAttribute(t)}}function Gf(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Zf(t,e){return function(){this.setAttribute(t,e)}}function Qf(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Jf(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function Kf(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function mi(t,e){var n=Tt(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?Gf:Xf:typeof e=="function"?n.local?Kf:Jf:n.local?Qf:Zf)(n,e))}function Sn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function jf(t){return function(){this.style.removeProperty(t)}}function tl(t,e,n){return function(){this.style.setProperty(t,e,n)}}function el(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function pi(t,e,n){return arguments.length>1?this.each((e==null?jf:typeof e=="function"?el:tl)(t,e,n??"")):At(this.node(),t)}function At(t,e){return t.style.getPropertyValue(e)||Sn(t).getComputedStyle(t,null).getPropertyValue(e)}function nl(t){return function(){delete this[t]}}function rl(t,e){return function(){this[t]=e}}function ol(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function di(t,e){return arguments.length>1?this.each((e==null?nl:typeof e=="function"?ol:rl)(t,e)):this.node()[t]}function xi(t){return t.trim().split(/^|\s+/)}function Sr(t){return t.classList||new gi(t)}function gi(t){this._node=t,this._names=xi(t.getAttribute("class")||"")}gi.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function yi(t,e){for(var n=Sr(t),r=-1,o=e.length;++r=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function bl(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,o=e.length,i;n()=>t;function Oi(t,e){return function(n){return t+n*e}}function Al(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function Ei(t,e){var n=e-t;return n?Oi(t,n>180||n<-180?n-360*Math.round(n/360):n):ce(isNaN(t)?e:t)}function $i(t){return(t=+t)==1?St:function(e,n){return n-e?Al(e,n,t):ce(isNaN(e)?n:e)}}function St(t,e){var n=e-t;return n?Oi(t,n):ce(isNaN(t)?e:t)}function Pi(t){return function(e,n){var r=t((e=yr(e)).h,(n=yr(n)).h),o=St(e.c,n.c),i=St(e.l,n.l),a=St(e.opacity,n.opacity);return function(u){return e.h=r(u),e.c=o(u),e.l=i(u),e.opacity=a(u),e+""}}}var Fl=Pi(Ei),Yl=Pi(St);Ie();Ie();function kr(t,e,n,r,o){var i=t*t,a=i*t;return((1-3*t+3*i-a)*e+(4-6*i+3*a)*n+(1+3*t+3*i-3*a)*r+a*o)/6}function Li(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),o=t[r],i=t[r+1],a=r>0?t[r-1]:2*o-i,u=rn&&(i=e.slice(n,i),u[a]?u[a]+=i:u[++a]=i),(r=r[0])===(o=o[0])?u[a]?u[a]+=o:u[++a]=o:(u[++a]=null,f.push({i:a,x:at(r,o)})),n=Dr.lastIndex;return n180?c+=360:c-s>180&&(s+=360),l.push({i:h.push(o(h)+"rotate(",null,r)-2,x:at(s,c)})):c&&h.push(o(h)+"rotate("+c+r)}function u(s,c,h,l){s!==c?l.push({i:h.push(o(h)+"skewX(",null,r)-2,x:at(s,c)}):c&&h.push(o(h)+"skewX("+c+r)}function f(s,c,h,l,p,y){if(s!==h||c!==l){var T=p.push(o(p)+"scale(",null,",",null,")");y.push({i:T-4,x:at(s,h)},{i:T-2,x:at(c,l)})}else(h!==1||l!==1)&&p.push(o(p)+"scale("+h+","+l+")")}return function(s,c){var h=[],l=[];return s=t(s),c=t(c),i(s.translateX,s.translateY,c.translateX,c.translateY,h,l),a(s.rotate,c.rotate,h,l),u(s.skewX,c.skewX,h,l),f(s.scaleX,s.scaleY,c.scaleX,c.scaleY,h,l),s=c=null,function(p){for(var y=-1,T=l.length,S;++y=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function zt(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function Ki(t){return t=zt(Math.abs(t)),t?t[1]:NaN}function ji(t,e){return function(n,r){for(var o=n.length,i=[],a=0,u=t[0],f=0;o>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),i.push(n.substring(o-=u,o+u)),!((f+=u+1)>r));)u=t[a=(a+1)%t.length];return i.reverse().join(e)}}function ta(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var $l=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Le(t){if(!(e=$l.exec(t)))throw new Error("invalid format: "+t);var e;return new Ir({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Le.prototype=Ir.prototype;function Ir(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}Ir.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function ea(t){t:for(var e=t.length,n=1,r=-1,o;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(o+1):t}var Or;function na(t,e){var n=zt(t,e);if(!n)return t+"";var r=n[0],o=n[1],i=o-(Or=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+zt(t,Math.max(0,e+i-1))[0]}function Er(t,e){var n=zt(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var $r={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:Ji,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>Er(t*100,e),r:Er,s:na,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function Pr(t){return t}var ra=Array.prototype.map,oa=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function ia(t){var e=t.grouping===void 0||t.thousands===void 0?Pr:ji(ra.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",i=t.numerals===void 0?Pr:ta(ra.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",u=t.minus===void 0?"\u2212":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function s(h){h=Le(h);var l=h.fill,p=h.align,y=h.sign,T=h.symbol,S=h.zero,C=h.width,E=h.comma,k=h.precision,A=h.trim,F=h.type;F==="n"?(E=!0,F="g"):$r[F]||(k===void 0&&(k=12),A=!0,F="g"),(S||l==="0"&&p==="=")&&(S=!0,l="0",p="=");var v=T==="$"?n:T==="#"&&/[boxX]/.test(F)?"0"+F.toLowerCase():"",L=T==="$"?r:/[%p]/.test(F)?a:"",P=$r[F],$=/[defgprs%]/.test(F);k=k===void 0?6:/[gprs]/.test(F)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function W(_){var w=v,d=L,g,U,M;if(F==="c")d=P(_)+d,_="";else{_=+_;var Y=_<0||1/_<0;if(_=isNaN(_)?f:P(Math.abs(_),k),A&&(_=ea(_)),Y&&+_==0&&y!=="+"&&(Y=!1),w=(Y?y==="("?y:u:y==="-"||y==="("?"":y)+w,d=(F==="s"?oa[8+Or/3]:"")+d+(Y&&y==="("?")":""),$){for(g=-1,U=_.length;++gM||M>57){d=(M===46?o+_.slice(g+1):_.slice(g))+d,_=_.slice(0,g);break}}}E&&!S&&(_=e(_,1/0));var N=w.length+_.length+d.length,I=N>1)+w+_+d+I.slice(N);break;default:_=I+w+_+d;break}return i(_)}return W.toString=function(){return h+""},W}function c(h,l){var p=s((h=Le(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(Ki(l)/3)))*3,T=Math.pow(10,-y),S=oa[8+y/3];return function(C){return p(T*C)+S}}return{format:s,formatPrefix:c}}var Un,aa,ua;Lr({thousands:",",grouping:[3],currency:["$",""]});function Lr(t){return Un=ia(t),aa=Un.format,ua=Un.formatPrefix,Un}function Pl(t){var e=0,n=t.children,r=n&&n.length;if(!r)e=1;else for(;--r>=0;)e+=n[r].value;t.value=e}function sa(){return this.eachAfter(Pl)}function fa(t,e){let n=-1;for(let r of this)t.call(e,r,++n,this);return this}function la(t,e){for(var n=this,r=[n],o,i,a=-1;n=r.pop();)if(t.call(e,n,++a,this),o=n.children)for(i=o.length-1;i>=0;--i)r.push(o[i]);return this}function ca(t,e){for(var n=this,r=[n],o=[],i,a,u,f=-1;n=r.pop();)if(o.push(n),i=n.children)for(a=0,u=i.length;a=0;)n+=r[o].value;e.value=n})}function pa(t){return this.eachBefore(function(e){e.children&&e.children.sort(t)})}function da(t){for(var e=this,n=Ll(e,t),r=[e];e!==n;)e=e.parent,r.push(e);for(var o=r.length;t!==n;)r.splice(o,0,t),t=t.parent;return r}function Ll(t,e){if(t===e)return t;var n=t.ancestors(),r=e.ancestors(),o=null;for(t=n.pop(),e=r.pop();t===e;)o=t,t=n.pop(),e=r.pop();return o}function xa(){for(var t=this,e=[t];t=t.parent;)e.push(t);return e}function ga(){return Array.from(this)}function ya(){var t=[];return this.eachBefore(function(e){e.children||t.push(e)}),t}function _a(){var t=this,e=[];return t.each(function(n){n!==t&&e.push({source:n.parent,target:n})}),e}function*va(){var t=this,e,n=[t],r,o,i;do for(e=n.reverse(),n=[];t=e.pop();)if(yield t,r=t.children)for(o=0,i=r.length;o=0;--u)o.push(i=a[u]=new Re(a[u])),i.parent=r,i.depth=r.depth+1;return n.eachBefore(Bl)}function Rl(){return An(this).eachBefore(zl)}function Hl(t){return t.children}function Wl(t){return Array.isArray(t)?t[1]:null}function zl(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function Bl(t){var e=0;do t.height=e;while((t=t.parent)&&t.height<++e)}function Re(t){this.data=t,this.depth=this.height=0,this.parent=null}Re.prototype=An.prototype={constructor:Re,count:sa,each:fa,eachAfter:ca,eachBefore:la,find:ha,sum:ma,sort:pa,path:da,ancestors:xa,descendants:ga,leaves:ya,links:_a,copy:Rl,[Symbol.iterator]:va};function wa(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Ma(t,e,n,r,o){for(var i=t.children,a,u=-1,f=i.length,s=t.value&&(r-e)/t.value;++uE&&(E=s),v=S*S*F,k=Math.max(E/v,v/C),k>A){S-=s;break}A=k}a.push(f={value:S,dice:p1?r:1)},n}(ql);function Sa(t){if(typeof t!="function")throw new Error;return t}function he(){return 0}function me(t){return function(){return t}}function Xl(){var t=ba,e=!1,n=1,r=1,o=[0],i=he,a=he,u=he,f=he,s=he;function c(l){return l.x0=l.y0=0,l.x1=n,l.y1=r,l.eachBefore(h),o=[0],e&&l.eachBefore(wa),l}function h(l){var p=o[l.depth],y=l.x0+p,T=l.y0+p,S=l.x1-p,C=l.y1-p;Se?1:t>=e?0:NaN}function Rr(t,e){return t==null||e==null?NaN:et?1:e>=t?0:NaN}function qt(t){let e,n,r;t.length!==2?(e=Bt,n=(u,f)=>Bt(t(u),f),r=(u,f)=>t(u)-f):(e=t===Bt||t===Rr?t:Gl,n=t,r=t);function o(u,f,s=0,c=u.length){if(s>>1;n(u[h],f)<0?s=h+1:c=h}while(s>>1;n(u[h],f)<=0?s=h+1:c=h}while(ss&&r(u[h-1],f)>-r(u[h],f)?h-1:h}return{left:o,center:a,right:i}}function Gl(){return 0}function Hr(t){return t===null?NaN:+t}var Ca=qt(Bt),ka=Ca.right,Zl=Ca.left,Ql=qt(Hr).center,Wr=ka;var Jl=Math.sqrt(50),Kl=Math.sqrt(10),jl=Math.sqrt(2);function Fn(t,e,n){let r=(e-t)/Math.max(0,n),o=Math.floor(Math.log10(r)),i=r/Math.pow(10,o),a=i>=Jl?10:i>=Kl?5:i>=jl?2:1,u,f,s;return o<0?(s=Math.pow(10,-o)/a,u=Math.round(t*s),f=Math.round(e*s),u/se&&--f,s=-s):(s=Math.pow(10,o)*a,u=Math.round(t/s),f=Math.round(e/s),u*se&&--f),f0))return[];if(t===e)return[t];let r=e=o))return[];let u=i-o+1,f=new Array(u);if(r)if(a<0)for(let s=0;se&&(n=t,t=e,e=n),function(r){return Math.max(t,Math.min(e,r))}}function ec(t,e,n){var r=t[0],o=t[1],i=e[0],a=e[1];return o2?nc:ec,f=s=null,h}function h(l){return l==null||isNaN(l=+l)?i:(f||(f=u(t.map(r),e,n)))(r(a(l)))}return h.invert=function(l){return a(o((s||(s=u(e,t.map(r),at)))(l)))},h.domain=function(l){return arguments.length?(t=Array.from(l,Vr),c()):t.slice()},h.range=function(l){return arguments.length?(e=Array.from(l),c()):e.slice()},h.rangeRound=function(l){return e=Array.from(l),n=Ar,c()},h.clamp=function(l){return arguments.length?(a=l?!0:de,c()):a!==de},h.interpolate=function(l){return arguments.length?(n=l,c()):n},h.unknown=function(l){return arguments.length?(i=l,h):i},function(l,p){return r=l,o=p,c()}}function ze(){return rc()(de,de)}function Ua(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function Vt(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}function _t(t){return t=Vt(Math.abs(t)),t?t[1]:NaN}function Aa(t,e){return function(n,r){for(var o=n.length,i=[],a=0,u=t[0],f=0;o>0&&u>0&&(f+u+1>r&&(u=Math.max(1,r-f)),i.push(n.substring(o-=u,o+u)),!((f+=u+1)>r));)u=t[a=(a+1)%t.length];return i.reverse().join(e)}}function Fa(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var oc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Yt(t){if(!(e=oc.exec(t)))throw new Error("invalid format: "+t);var e;return new On({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}Yt.prototype=On.prototype;function On(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}On.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Ya(t){t:for(var e=t.length,n=1,r=-1,o;n0&&(r=0);break}return r>0?t.slice(0,r)+t.slice(o+1):t}var Gr;function Na(t,e){var n=Vt(t,e);if(!n)return t+"";var r=n[0],o=n[1],i=o-(Gr=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,a=r.length;return i===a?r:i>a?r+new Array(i-a+1).join("0"):i>0?r.slice(0,i)+"."+r.slice(i):"0."+new Array(1-i).join("0")+Vt(t,Math.max(0,e+i-1))[0]}function Zr(t,e){var n=Vt(t,e);if(!n)return t+"";var r=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+r:r.length>o+1?r.slice(0,o+1)+"."+r.slice(o+1):r+new Array(o-r.length+2).join("0")}var Qr={"%":function(t,e){return(t*100).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:Ua,e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return Zr(t*100,e)},r:Zr,s:Na,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}};function Jr(t){return t}var Ia=Array.prototype.map,Oa=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function Ea(t){var e=t.grouping===void 0||t.thousands===void 0?Jr:Aa(Ia.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",r=t.currency===void 0?"":t.currency[1]+"",o=t.decimal===void 0?".":t.decimal+"",i=t.numerals===void 0?Jr:Fa(Ia.call(t.numerals,String)),a=t.percent===void 0?"%":t.percent+"",u=t.minus===void 0?"-":t.minus+"",f=t.nan===void 0?"NaN":t.nan+"";function s(h){h=Yt(h);var l=h.fill,p=h.align,y=h.sign,T=h.symbol,S=h.zero,C=h.width,E=h.comma,k=h.precision,A=h.trim,F=h.type;F==="n"?(E=!0,F="g"):Qr[F]||(k===void 0&&(k=12),A=!0,F="g"),(S||l==="0"&&p==="=")&&(S=!0,l="0",p="=");var v=T==="$"?n:T==="#"&&/[boxX]/.test(F)?"0"+F.toLowerCase():"",L=T==="$"?r:/[%p]/.test(F)?a:"",P=Qr[F],$=/[defgprs%]/.test(F);k=k===void 0?6:/[gprs]/.test(F)?Math.max(1,Math.min(21,k)):Math.max(0,Math.min(20,k));function W(_){var w=v,d=L,g,U,M;if(F==="c")d=P(_)+d,_="";else{_=+_;var Y=_<0||1/_<0;if(_=isNaN(_)?f:P(Math.abs(_),k),A&&(_=Ya(_)),Y&&+_==0&&y!=="+"&&(Y=!1),w=(Y?y==="("?y:u:y==="-"||y==="("?"":y)+w,d=(F==="s"?Oa[8+Gr/3]:"")+d+(Y&&y==="("?")":""),$){for(g=-1,U=_.length;++gM||M>57){d=(M===46?o+_.slice(g+1):_.slice(g))+d,_=_.slice(0,g);break}}}E&&!S&&(_=e(_,1/0));var N=w.length+_.length+d.length,I=N>1)+w+_+d+I.slice(N);break;default:_=I+w+_+d;break}return i(_)}return W.toString=function(){return h+""},W}function c(h,l){var p=s((h=Yt(h),h.type="f",h)),y=Math.max(-8,Math.min(8,Math.floor(_t(l)/3)))*3,T=Math.pow(10,-y),S=Oa[8+y/3];return function(C){return p(T*C)+S}}return{format:s,formatPrefix:c}}var En,$n,Pn;Kr({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function Kr(t){return En=Ea(t),$n=En.format,Pn=En.formatPrefix,En}function jr(t){return Math.max(0,-_t(Math.abs(t)))}function to(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(_t(e)/3)))*3-_t(Math.abs(t)))}function eo(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,_t(e)-_t(t))+1}function no(t,e,n,r){var o=pe(t,e,n),i;switch(r=Yt(r??",f"),r.type){case"s":{var a=Math.max(Math.abs(t),Math.abs(e));return r.precision==null&&!isNaN(i=to(o,a))&&(r.precision=i),Pn(r,a)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(i=eo(o,Math.max(Math.abs(t),Math.abs(e))))&&(r.precision=i-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(i=jr(o))&&(r.precision=i-(r.type==="%")*2);break}}return $n(r)}function ic(t){var e=t.domain;return t.ticks=function(n){var r=e();return Yn(r[0],r[r.length-1],n??10)},t.tickFormat=function(n,r){var o=e();return no(o[0],o[o.length-1],n??10,r)},t.nice=function(n){n==null&&(n=10);var r=e(),o=0,i=r.length-1,a=r[o],u=r[i],f,s,c=10;for(u0;){if(s=He(a,u,n),s===f)return r[o]=a,r[i]=u,e(r);if(s>0)a=Math.floor(a/s)*s,u=Math.ceil(u/s)*s;else if(s<0)a=Math.ceil(a*s)/s,u=Math.floor(u*s)/s;else break;f=s}return t},t}function ro(){var t=ze();return t.copy=function(){return In(t,ro())},Ft.apply(t,arguments),ic(t)}var oo=new Date,io=new Date;function G(t,e,n,r){function o(i){return t(i=arguments.length===0?new Date:new Date(+i)),i}return o.floor=i=>(t(i=new Date(+i)),i),o.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),o.round=i=>{let a=o(i),u=o.ceil(i);return i-a(e(i=new Date(+i),a==null?1:Math.floor(a)),i),o.range=(i,a,u)=>{let f=[];if(i=o.ceil(i),u=u==null?1:Math.floor(u),!(i0))return f;let s;do f.push(s=new Date(+i)),e(i,u),t(i);while(sG(a=>{if(a>=a)for(;t(a),!i(a);)a.setTime(a-1)},(a,u)=>{if(a>=a)if(u<0)for(;++u<=0;)for(;e(a,-1),!i(a););else for(;--u>=0;)for(;e(a,1),!i(a););}),n&&(o.count=(i,a)=>(oo.setTime(+i),io.setTime(+a),t(oo),t(io),Math.floor(n(oo,io))),o.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?o.filter(r?a=>r(a)%i===0:a=>o.count(0,a)%i===0):o)),o}var Be=G(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);Be.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?G(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):Be);var J1=Be.range;var vt=G(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),$a=vt.range;var xe=G(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),ac=xe.range,Ln=G(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),uc=Ln.range;var ge=G(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),sc=ge.range,Rn=G(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),fc=Rn.range;var ye=G(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),lc=ye.range,Pa=G(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),cc=Pa.range,Hn=G(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),hc=Hn.range;function Zt(t){return G(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var Qt=Zt(0),Ra=Zt(1),Ha=Zt(2),Wa=Zt(3),za=Zt(4),Ba=Zt(5),qa=Zt(6),Va=Qt.range,mc=Ra.range,pc=Ha.range,dc=Wa.range,xc=za.range,gc=Ba.range,yc=qa.range;function Jt(t){return G(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/6048e5)}var Ve=Jt(0),Xa=Jt(1),Ga=Jt(2),Za=Jt(3),Qa=Jt(4),Ja=Jt(5),Ka=Jt(6),ja=Ve.range,_c=Xa.range,vc=Ga.range,wc=Za.range,Mc=Qa.range,Tc=Ja.range,bc=Ka.range;var _e=G(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),Sc=_e.range,Wn=G(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),Cc=Wn.range;var Kt=G(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Kt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:G(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var kc=Kt.range,Xe=G(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());Xe.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:G(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var Dc=Xe.range;function eu(t,e,n,r,o,i){let a=[[vt,1,1e3],[vt,5,5*1e3],[vt,15,15*1e3],[vt,30,30*1e3],[i,1,6e4],[i,5,5*6e4],[i,15,15*6e4],[i,30,30*6e4],[o,1,36e5],[o,3,3*36e5],[o,6,6*36e5],[o,12,12*36e5],[r,1,864e5],[r,2,2*864e5],[n,1,6048e5],[e,1,2592e6],[e,3,3*2592e6],[t,1,31536e6]];function u(s,c,h){let l=cS).right(a,l);if(p===a.length)return t.every(pe(s/31536e6,c/31536e6,h));if(p===0)return Be.every(Math.max(pe(s,c,h),1));let[y,T]=a[l/a[p-1][2]0))return f;do f.push(s=new Date(+i)),e(i,u),t(i);while(s=a)for(;t(a),!i(a);)a.setTime(a-1)},function(a,u){if(a>=a)if(u<0)for(;++u<=0;)for(;e(a,-1),!i(a););else for(;--u>=0;)for(;e(a,1),!i(a););})},n&&(o.count=function(i,a){return so.setTime(+i),fo.setTime(+a),t(so),t(fo),Math.floor(n(so,fo))},o.every=function(i){return i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?o.filter(r?function(a){return r(a)%i===0}:function(a){return o.count(0,a)%i===0}):o}),o}var zn=6e4;var Bn=864e5,qn=6048e5;var nu=ft(function(t){t.setHours(0,0,0,0)},function(t,e){t.setDate(t.getDate()+e)},function(t,e){return(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*zn)/Bn},function(t){return t.getDate()-1}),Vn=nu,Yc=nu.range;function jt(t){return ft(function(e){e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},function(e,n){e.setDate(e.getDate()+n*7)},function(e,n){return(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*zn)/qn})}var Ge=jt(0),ve=jt(1),ru=jt(2),ou=jt(3),Nt=jt(4),iu=jt(5),au=jt(6),uu=Ge.range,Nc=ve.range,Ic=ru.range,Oc=ou.range,Ec=Nt.range,$c=iu.range,Pc=au.range;var lo=ft(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,e){t.setFullYear(t.getFullYear()+e)},function(t,e){return e.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});lo.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},function(e,n){e.setFullYear(e.getFullYear()+n*t)})};var te=lo,Lc=lo.range;var su=ft(function(t){t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCDate(t.getUTCDate()+e)},function(t,e){return(e-t)/Bn},function(t){return t.getUTCDate()-1}),Xn=su,Rc=su.range;function ee(t){return ft(function(e){e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCDate(e.getUTCDate()+n*7)},function(e,n){return(n-e)/qn})}var Ze=ee(0),we=ee(1),fu=ee(2),lu=ee(3),It=ee(4),cu=ee(5),hu=ee(6),mu=Ze.range,Hc=we.range,Wc=fu.range,zc=lu.range,Bc=It.range,qc=cu.range,Vc=hu.range;var co=ft(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,e){t.setUTCFullYear(t.getUTCFullYear()+e)},function(t,e){return e.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});co.every=function(t){return!isFinite(t=Math.floor(t))||!(t>0)?null:ft(function(e){e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},function(e,n){e.setUTCFullYear(e.getUTCFullYear()+n*t)})};var ne=co,Xc=co.range;function ho(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function mo(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Qe(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function po(t){var e=t.dateTime,n=t.date,r=t.time,o=t.periods,i=t.days,a=t.shortDays,u=t.months,f=t.shortMonths,s=Je(o),c=Ke(o),h=Je(i),l=Ke(i),p=Je(a),y=Ke(a),T=Je(u),S=Ke(u),C=Je(f),E=Ke(f),k={a:Y,A:N,b:I,B:z,c:null,d:_u,e:_u,f:xh,g:Ch,G:Dh,H:mh,I:ph,j:dh,L:bu,m:gh,M:yh,p:q,q:Q,Q:Mu,s:Tu,S:_h,u:vh,U:wh,V:Mh,w:Th,W:bh,x:null,X:null,y:Sh,Y:kh,Z:Uh,"%":wu},A={a:et,A:mt,b:tt,B:pt,c:null,d:vu,e:vu,f:Nh,g:zh,G:qh,H:Ah,I:Fh,j:Yh,L:Cu,m:Ih,M:Oh,p:lt,q:K,Q:Mu,s:Tu,S:Eh,u:$h,U:Ph,V:Lh,w:Rh,W:Hh,x:null,X:null,y:Wh,Y:Bh,Z:Vh,"%":wu},F={a:W,A:_,b:w,B:d,c:g,d:gu,e:gu,f:fh,g:xu,G:du,H:yu,I:yu,j:ih,L:sh,m:oh,M:ah,p:$,q:rh,Q:ch,s:hh,S:uh,u:Kc,U:jc,V:th,w:Jc,W:eh,x:U,X:M,y:xu,Y:du,Z:nh,"%":lh};k.x=v(n,k),k.X=v(r,k),k.c=v(e,k),A.x=v(n,A),A.X=v(r,A),A.c=v(e,A);function v(x,b){return function(D){var m=[],B=-1,O=0,V=x.length,X,ct,Ne;for(D instanceof Date||(D=new Date(+D));++B53)return null;"w"in m||(m.w=1),"Z"in m?(O=mo(Qe(m.y,0,1)),V=O.getUTCDay(),O=V>4||V===0?we.ceil(O):we(O),O=Xn.offset(O,(m.V-1)*7),m.y=O.getUTCFullYear(),m.m=O.getUTCMonth(),m.d=O.getUTCDate()+(m.w+6)%7):(O=ho(Qe(m.y,0,1)),V=O.getDay(),O=V>4||V===0?ve.ceil(O):ve(O),O=Vn.offset(O,(m.V-1)*7),m.y=O.getFullYear(),m.m=O.getMonth(),m.d=O.getDate()+(m.w+6)%7)}else("W"in m||"U"in m)&&("w"in m||(m.w="u"in m?m.u%7:"W"in m?1:0),V="Z"in m?mo(Qe(m.y,0,1)).getUTCDay():ho(Qe(m.y,0,1)).getDay(),m.m=0,m.d="W"in m?(m.w+6)%7+m.W*7-(V+5)%7:m.w+m.U*7-(V+6)%7);return"Z"in m?(m.H+=m.Z/100|0,m.M+=m.Z%100,mo(m)):ho(m)}}function P(x,b,D,m){for(var B=0,O=b.length,V=D.length,X,ct;B=V)return-1;if(X=b.charCodeAt(B++),X===37){if(X=b.charAt(B++),ct=F[X in pu?b.charAt(B++):X],!ct||(m=ct(x,D,m))<0)return-1}else if(X!=D.charCodeAt(m++))return-1}return m}function $(x,b,D){var m=s.exec(b.slice(D));return m?(x.p=c[m[0].toLowerCase()],D+m[0].length):-1}function W(x,b,D){var m=p.exec(b.slice(D));return m?(x.w=y[m[0].toLowerCase()],D+m[0].length):-1}function _(x,b,D){var m=h.exec(b.slice(D));return m?(x.w=l[m[0].toLowerCase()],D+m[0].length):-1}function w(x,b,D){var m=C.exec(b.slice(D));return m?(x.m=E[m[0].toLowerCase()],D+m[0].length):-1}function d(x,b,D){var m=T.exec(b.slice(D));return m?(x.m=S[m[0].toLowerCase()],D+m[0].length):-1}function g(x,b,D){return P(x,e,b,D)}function U(x,b,D){return P(x,n,b,D)}function M(x,b,D){return P(x,r,b,D)}function Y(x){return a[x.getDay()]}function N(x){return i[x.getDay()]}function I(x){return f[x.getMonth()]}function z(x){return u[x.getMonth()]}function q(x){return o[+(x.getHours()>=12)]}function Q(x){return 1+~~(x.getMonth()/3)}function et(x){return a[x.getUTCDay()]}function mt(x){return i[x.getUTCDay()]}function tt(x){return f[x.getUTCMonth()]}function pt(x){return u[x.getUTCMonth()]}function lt(x){return o[+(x.getUTCHours()>=12)]}function K(x){return 1+~~(x.getUTCMonth()/3)}return{format:function(x){var b=v(x+="",k);return b.toString=function(){return x},b},parse:function(x){var b=L(x+="",!1);return b.toString=function(){return x},b},utcFormat:function(x){var b=v(x+="",A);return b.toString=function(){return x},b},utcParse:function(x){var b=L(x+="",!0);return b.toString=function(){return x},b}}}var pu={"-":"",_:" ",0:"0"},rt=/^\s*\d+/,Gc=/^%/,Zc=/[\\^$*+?|[\]().{}]/g;function R(t,e,n){var r=t<0?"-":"",o=(r?-t:t)+"",i=o.length;return r+(i68?1900:2e3),n+r[0].length):-1}function nh(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function rh(t,e,n){var r=rt.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function oh(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function gu(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function ih(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function yu(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function ah(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function uh(t,e,n){var r=rt.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function sh(t,e,n){var r=rt.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function fh(t,e,n){var r=rt.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function lh(t,e,n){var r=Gc.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function ch(t,e,n){var r=rt.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function hh(t,e,n){var r=rt.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function _u(t,e){return R(t.getDate(),e,2)}function mh(t,e){return R(t.getHours(),e,2)}function ph(t,e){return R(t.getHours()%12||12,e,2)}function dh(t,e){return R(1+Vn.count(te(t),t),e,3)}function bu(t,e){return R(t.getMilliseconds(),e,3)}function xh(t,e){return bu(t,e)+"000"}function gh(t,e){return R(t.getMonth()+1,e,2)}function yh(t,e){return R(t.getMinutes(),e,2)}function _h(t,e){return R(t.getSeconds(),e,2)}function vh(t){var e=t.getDay();return e===0?7:e}function wh(t,e){return R(Ge.count(te(t)-1,t),e,2)}function Su(t){var e=t.getDay();return e>=4||e===0?Nt(t):Nt.ceil(t)}function Mh(t,e){return t=Su(t),R(Nt.count(te(t),t)+(te(t).getDay()===4),e,2)}function Th(t){return t.getDay()}function bh(t,e){return R(ve.count(te(t)-1,t),e,2)}function Sh(t,e){return R(t.getFullYear()%100,e,2)}function Ch(t,e){return t=Su(t),R(t.getFullYear()%100,e,2)}function kh(t,e){return R(t.getFullYear()%1e4,e,4)}function Dh(t,e){var n=t.getDay();return t=n>=4||n===0?Nt(t):Nt.ceil(t),R(t.getFullYear()%1e4,e,4)}function Uh(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+R(e/60|0,"0",2)+R(e%60,"0",2)}function vu(t,e){return R(t.getUTCDate(),e,2)}function Ah(t,e){return R(t.getUTCHours(),e,2)}function Fh(t,e){return R(t.getUTCHours()%12||12,e,2)}function Yh(t,e){return R(1+Xn.count(ne(t),t),e,3)}function Cu(t,e){return R(t.getUTCMilliseconds(),e,3)}function Nh(t,e){return Cu(t,e)+"000"}function Ih(t,e){return R(t.getUTCMonth()+1,e,2)}function Oh(t,e){return R(t.getUTCMinutes(),e,2)}function Eh(t,e){return R(t.getUTCSeconds(),e,2)}function $h(t){var e=t.getUTCDay();return e===0?7:e}function Ph(t,e){return R(Ze.count(ne(t)-1,t),e,2)}function ku(t){var e=t.getUTCDay();return e>=4||e===0?It(t):It.ceil(t)}function Lh(t,e){return t=ku(t),R(It.count(ne(t),t)+(ne(t).getUTCDay()===4),e,2)}function Rh(t){return t.getUTCDay()}function Hh(t,e){return R(we.count(ne(t)-1,t),e,2)}function Wh(t,e){return R(t.getUTCFullYear()%100,e,2)}function zh(t,e){return t=ku(t),R(t.getUTCFullYear()%100,e,2)}function Bh(t,e){return R(t.getUTCFullYear()%1e4,e,4)}function qh(t,e){var n=t.getUTCDay();return t=n>=4||n===0?It(t):It.ceil(t),R(t.getUTCFullYear()%1e4,e,4)}function Vh(){return"+0000"}function wu(){return"%"}function Mu(t){return+t}function Tu(t){return Math.floor(+t/1e3)}var Me,Gn,Du,Uu,Au;xo({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function xo(t){return Me=po(t),Gn=Me.format,Du=Me.parse,Uu=Me.utcFormat,Au=Me.utcParse,Me}function go(t,e){t=t.slice();var n=0,r=t.length-1,o=t[n],i=t[r],a;return i1?0:t<-1?Te:Math.acos(t)}function _o(t){return t>=1?je:t<=-1?-je:Math.asin(t)}var vo=Math.PI,wo=2*vo,oe=1e-6,Qh=wo-oe;function Eu(t){this._+=t[0];for(let e=1,n=t.length;e=0))throw new Error(`invalid digits: ${t}`);if(e>15)return Eu;let n=10**e;return function(r){this._+=r[0];for(let o=1,i=r.length;ooe)if(!(Math.abs(h*f-s*c)>oe)||!i)this._append`L${this._x1=e},${this._y1=n}`;else{let p=r-a,y=o-u,T=f*f+s*s,S=p*p+y*y,C=Math.sqrt(T),E=Math.sqrt(l),k=i*Math.tan((vo-Math.acos((T+l-S)/(2*C*E)))/2),A=k/E,F=k/C;Math.abs(A-1)>oe&&this._append`L${e+A*c},${n+A*h}`,this._append`A${i},${i},0,0,${+(h*p>c*y)},${this._x1=e+F*f},${this._y1=n+F*s}`}}arc(e,n,r,o,i,a){if(e=+e,n=+n,r=+r,a=!!a,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(o),f=r*Math.sin(o),s=e+u,c=n+f,h=1^a,l=a?o-i:i-o;this._x1===null?this._append`M${s},${c}`:(Math.abs(this._x1-s)>oe||Math.abs(this._y1-c)>oe)&&this._append`L${s},${c}`,r&&(l<0&&(l=l%wo+wo),l>Qh?this._append`A${r},${r},0,1,${h},${e-u},${n-f}A${r},${r},0,1,${h},${this._x1=s},${this._y1=c}`:l>oe&&this._append`A${r},${r},0,${+(l>=vo)},${h},${this._x1=e+r*Math.cos(i)},${this._y1=n+r*Math.sin(i)}`)}rect(e,n,r,o){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${r=+r}v${+o}h${-r}Z`}toString(){return this._}};function $u(){return new ie}$u.prototype=ie.prototype;function Qn(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{let r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);e=r}return t},()=>new ie(e)}function Kh(t){return t.innerRadius}function jh(t){return t.outerRadius}function tm(t){return t.startAngle}function em(t){return t.endAngle}function nm(t){return t&&t.padAngle}function rm(t,e,n,r,o,i,a,u){var f=n-t,s=r-e,c=a-o,h=u-i,l=h*f-c*s;if(!(l*lg*g+U*U&&(P=W,$=_),{cx:P,cy:$,x01:-c,y01:-h,x11:P*(o/F-1),y11:$*(o/F-1)}}function om(){var t=Kh,e=jh,n=J(0),r=null,o=tm,i=em,a=nm,u=null,f=Qn(s);function s(){var c,h,l=+t.apply(this,arguments),p=+e.apply(this,arguments),y=o.apply(this,arguments)-je,T=i.apply(this,arguments)-je,S=yo(T-y),C=T>y;if(u||(u=c=f()),pot))u.moveTo(0,0);else if(S>be-ot)u.moveTo(p*Ot(y),p*yt(y)),u.arc(0,0,p,y,T,!C),l>ot&&(u.moveTo(l*Ot(T),l*yt(T)),u.arc(0,0,l,T,y,C));else{var E=y,k=T,A=y,F=T,v=S,L=S,P=a.apply(this,arguments)/2,$=P>ot&&(r?+r.apply(this,arguments):re(l*l+p*p)),W=Zn(yo(p-l)/2,+n.apply(this,arguments)),_=W,w=W,d,g;if($>ot){var U=_o($/l*yt(P)),M=_o($/p*yt(P));(v-=U*2)>ot?(U*=C?1:-1,A+=U,F-=U):(v=0,A=F=(y+T)/2),(L-=M*2)>ot?(M*=C?1:-1,E+=M,k-=M):(L=0,E=k=(y+T)/2)}var Y=p*Ot(E),N=p*yt(E),I=l*Ot(F),z=l*yt(F);if(W>ot){var q=p*Ot(k),Q=p*yt(k),et=l*Ot(A),mt=l*yt(A),tt;if(Sot?w>ot?(d=Jn(et,mt,Y,N,p,w,C),g=Jn(q,Q,I,z,p,w,C),u.moveTo(d.cx+d.x01,d.cy+d.y01),wot)||!(v>ot)?u.lineTo(I,z):_>ot?(d=Jn(I,z,q,Q,l,-_,C),g=Jn(Y,N,et,mt,l,-_,C),u.lineTo(d.cx+d.x01,d.cy+d.y01),_t?1:e>=t?0:NaN}function Wu(t){return t}function am(){var t=Wu,e=Hu,n=null,r=J(0),o=J(be),i=J(0);function a(u){var f,s=(u=Kn(u)).length,c,h,l=0,p=new Array(s),y=new Array(s),T=+r.apply(this,arguments),S=Math.min(be,Math.max(-be,o.apply(this,arguments)-T)),C,E=Math.min(Math.abs(S)/s,i.apply(this,arguments)),k=E*(S<0?-1:1),A;for(f=0;f0&&(l+=A);for(e!=null?p.sort(function(F,v){return e(y[F],y[v])}):n!=null&&p.sort(function(F,v){return n(u[F],u[v])}),f=0,h=l?(S-s*k)/l:0;f0?A*h:0)+k,y[c]={data:u[c],index:f,value:A,startAngle:T,endAngle:C,padAngle:E};return y}return a.value=function(u){return arguments.length?(t=typeof u=="function"?u:J(+u),a):t},a.sortValues=function(u){return arguments.length?(e=u,n=null,a):e},a.sort=function(u){return arguments.length?(n=u,e=null,a):n},a.startAngle=function(u){return arguments.length?(r=typeof u=="function"?u:J(+u),a):r},a.endAngle=function(u){return arguments.length?(o=typeof u=="function"?u:J(+u),a):o},a.padAngle=function(u){return arguments.length?(i=typeof u=="function"?u:J(+u),a):i},a}function Se(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function tn(t){this._context=t}tn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Se(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Se(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function um(t){return new tn(t)}var jn=class{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}};function sm(t){return new jn(t,!0)}function fm(t){return new jn(t,!1)}function gt(){}function zu(t){this._context=t}zu.prototype={areaStart:gt,areaEnd:gt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:Se(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function lm(t){return new zu(t)}function Bu(t){this._context=t}Bu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Se(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function cm(t){return new Bu(t)}function qu(t,e){this._basis=new tn(t),this._beta=e}qu.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,e=this._y,n=t.length-1;if(n>0)for(var r=t[0],o=e[0],i=t[n]-r,a=e[n]-o,u=-1,f;++u<=n;)f=u/n,this._basis.point(this._beta*t[u]+(1-this._beta)*(r+f*i),this._beta*e[u]+(1-this._beta)*(o+f*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,e){this._x.push(+t),this._y.push(+e)}};var hm=function t(e){function n(r){return e===1?new tn(r):new qu(r,e)}return n.beta=function(r){return t(+r)},n}(.85);function Ce(t,e,n){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-e),t._y2+t._k*(t._y1-n),t._x2,t._y2)}function tr(t,e){this._context=t,this._k=(1-e)/6}tr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Ce(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2,this._x1=t,this._y1=e;break;case 2:this._point=3;default:Ce(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var mm=function t(e){function n(r){return new tr(r,e)}return n.tension=function(r){return t(+r)},n}(0);function er(t,e){this._context=t,this._k=(1-e)/6}er.prototype={areaStart:gt,areaEnd:gt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:Ce(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var pm=function t(e){function n(r){return new er(r,e)}return n.tension=function(r){return t(+r)},n}(0);function nr(t,e){this._context=t,this._k=(1-e)/6}nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ce(this,t,e);break}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var dm=function t(e){function n(r){return new nr(r,e)}return n.tension=function(r){return t(+r)},n}(0);function en(t,e,n){var r=t._x1,o=t._y1,i=t._x2,a=t._y2;if(t._l01_a>ot){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,f=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/f,o=(o*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/f}if(t._l23_a>ot){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,c=3*t._l23_a*(t._l23_a+t._l12_a);i=(i*s+t._x1*t._l23_2a-e*t._l12_2a)/c,a=(a*s+t._y1*t._l23_2a-n*t._l12_2a)/c}t._context.bezierCurveTo(r,o,i,a,t._x2,t._y2)}function Vu(t,e){this._context=t,this._alpha=e}Vu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3;default:en(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var xm=function t(e){function n(r){return e?new Vu(r,e):new tr(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function Xu(t,e){this._context=t,this._alpha=e}Xu.prototype={areaStart:gt,areaEnd:gt,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=e;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=e);break;case 2:this._point=3,this._x5=t,this._y5=e;break;default:en(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var gm=function t(e){function n(r){return e?new Xu(r,e):new er(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function Gu(t,e){this._context=t,this._alpha=e}Gu.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){if(t=+t,e=+e,this._point){var n=this._x2-t,r=this._y2-e;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(n*n+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:en(this,t,e);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=e}};var ym=function t(e){function n(r){return e?new Gu(r,e):new nr(r,0)}return n.alpha=function(r){return t(+r)},n}(.5);function Zu(t){this._context=t}Zu.prototype={areaStart:gt,areaEnd:gt,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function _m(t){return new Zu(t)}function Qu(t){return t<0?-1:1}function Ju(t,e,n){var r=t._x1-t._x0,o=e-t._x1,i=(t._y1-t._y0)/(r||o<0&&-0),a=(n-t._y1)/(o||r<0&&-0),u=(i*o+a*r)/(r+o);return(Qu(i)+Qu(a))*Math.min(Math.abs(i),Math.abs(a),.5*Math.abs(u))||0}function Ku(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function To(t,e,n){var r=t._x0,o=t._y0,i=t._x1,a=t._y1,u=(i-r)/3;t._context.bezierCurveTo(r+u,o+u*e,i-u,a-u*n,i,a)}function rr(t){this._context=t}rr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:To(this,this._t0,Ku(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,To(this,Ku(this,n=Ju(this,t,e)),n);break;default:To(this,this._t0,n=Ju(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function ju(t){this._context=new ts(t)}(ju.prototype=Object.create(rr.prototype)).point=function(t,e){rr.prototype.point.call(this,e,t)};function ts(t){this._context=t}ts.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,r,o,i){this._context.bezierCurveTo(e,t,r,n,i,o)}};function vm(t){return new rr(t)}function wm(t){return new ju(t)}function ns(t){this._context=t}ns.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var r=es(t),o=es(e),i=0,a=1;a=0;--e)o[e]=(a[e]-o[e+1])/i[e];for(i[n-1]=(t[n]+o[n-1])/2,e=0;e=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function Tm(t){return new or(t,.5)}function bm(t){return new or(t,0)}function Sm(t){return new or(t,1)}var bo=new Date,So=new Date;function Z(t,e,n,r){function o(i){return t(i=arguments.length===0?new Date:new Date(+i)),i}return o.floor=i=>(t(i=new Date(+i)),i),o.ceil=i=>(t(i=new Date(i-1)),e(i,1),t(i),i),o.round=i=>{let a=o(i),u=o.ceil(i);return i-a(e(i=new Date(+i),a==null?1:Math.floor(a)),i),o.range=(i,a,u)=>{let f=[];if(i=o.ceil(i),u=u==null?1:Math.floor(u),!(i0))return f;let s;do f.push(s=new Date(+i)),e(i,u),t(i);while(sZ(a=>{if(a>=a)for(;t(a),!i(a);)a.setTime(a-1)},(a,u)=>{if(a>=a)if(u<0)for(;++u<=0;)for(;e(a,-1),!i(a););else for(;--u>=0;)for(;e(a,1),!i(a););}),n&&(o.count=(i,a)=>(bo.setTime(+i),So.setTime(+a),t(bo),t(So),Math.floor(n(bo,So))),o.every=i=>(i=Math.floor(i),!isFinite(i)||!(i>0)?null:i>1?o.filter(r?a=>r(a)%i===0:a=>o.count(0,a)%i===0):o)),o}var nn=Z(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);nn.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?Z(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):nn);var rs=nn.range;var ko=Z(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*1e3)},(t,e)=>(e-t)/1e3,t=>t.getUTCSeconds()),os=ko.range;var is=Z(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getMinutes()),Cm=is.range,as=Z(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*6e4)},(t,e)=>(e-t)/6e4,t=>t.getUTCMinutes()),km=as.range;var us=Z(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*1e3-t.getMinutes()*6e4)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getHours()),Dm=us.range,ss=Z(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*36e5)},(t,e)=>(e-t)/36e5,t=>t.getUTCHours()),Um=ss.range;var rn=Z(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*6e4)/864e5,t=>t.getDate()-1),Am=rn.range,on=Z(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>t.getUTCDate()-1),Fm=on.range,fs=Z(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/864e5,t=>Math.floor(t/864e5)),Ym=fs.range;function ae(t){return Z(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*6e4)/6048e5)}var an=ae(0),De=ae(1),ls=ae(2),cs=ae(3),Et=ae(4),hs=ae(5),ms=ae(6),ps=an.range,Im=De.range,Om=ls.range,Em=cs.range,$m=Et.range,Pm=hs.range,Lm=ms.range;function ue(t){return Z(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/6048e5)}var un=ue(0),Ue=ue(1),ds=ue(2),xs=ue(3),$t=ue(4),gs=ue(5),ys=ue(6),_s=un.range,Rm=Ue.range,Hm=ds.range,Wm=xs.range,zm=$t.range,Bm=gs.range,qm=ys.range;var vs=Z(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth()),Vm=vs.range,ws=Z(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth()),Xm=ws.range;var Ct=Z(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());Ct.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Z(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});var Gm=Ct.range,kt=Z(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());kt.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:Z(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});var Zm=kt.range;function Ao(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Fo(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function sn(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function Yo(t){var e=t.dateTime,n=t.date,r=t.time,o=t.periods,i=t.days,a=t.shortDays,u=t.months,f=t.shortMonths,s=fn(o),c=ln(o),h=fn(i),l=ln(i),p=fn(a),y=ln(a),T=fn(u),S=ln(u),C=fn(f),E=ln(f),k={a:Y,A:N,b:I,B:z,c:null,d:ks,e:ks,f:yp,g:Dp,G:Ap,H:dp,I:xp,j:gp,L:Ys,m:_p,M:vp,p:q,q:Q,Q:As,s:Fs,S:wp,u:Mp,U:Tp,V:bp,w:Sp,W:Cp,x:null,X:null,y:kp,Y:Up,Z:Fp,"%":Us},A={a:et,A:mt,b:tt,B:pt,c:null,d:Ds,e:Ds,f:Op,g:qp,G:Xp,H:Yp,I:Np,j:Ip,L:Is,m:Ep,M:$p,p:lt,q:K,Q:As,s:Fs,S:Pp,u:Lp,U:Rp,V:Hp,w:Wp,W:zp,x:null,X:null,y:Bp,Y:Vp,Z:Gp,"%":Us},F={a:W,A:_,b:w,B:d,c:g,d:Ss,e:Ss,f:cp,g:bs,G:Ts,H:Cs,I:Cs,j:up,L:lp,m:ap,M:sp,p:$,q:ip,Q:mp,s:pp,S:fp,u:tp,U:ep,V:np,w:jm,W:rp,x:U,X:M,y:bs,Y:Ts,Z:op,"%":hp};k.x=v(n,k),k.X=v(r,k),k.c=v(e,k),A.x=v(n,A),A.X=v(r,A),A.c=v(e,A);function v(x,b){return function(D){var m=[],B=-1,O=0,V=x.length,X,ct,Ne;for(D instanceof Date||(D=new Date(+D));++B53)return null;"w"in m||(m.w=1),"Z"in m?(O=Fo(sn(m.y,0,1)),V=O.getUTCDay(),O=V>4||V===0?Ue.ceil(O):Ue(O),O=on.offset(O,(m.V-1)*7),m.y=O.getUTCFullYear(),m.m=O.getUTCMonth(),m.d=O.getUTCDate()+(m.w+6)%7):(O=Ao(sn(m.y,0,1)),V=O.getDay(),O=V>4||V===0?De.ceil(O):De(O),O=rn.offset(O,(m.V-1)*7),m.y=O.getFullYear(),m.m=O.getMonth(),m.d=O.getDate()+(m.w+6)%7)}else("W"in m||"U"in m)&&("w"in m||(m.w="u"in m?m.u%7:"W"in m?1:0),V="Z"in m?Fo(sn(m.y,0,1)).getUTCDay():Ao(sn(m.y,0,1)).getDay(),m.m=0,m.d="W"in m?(m.w+6)%7+m.W*7-(V+5)%7:m.w+m.U*7-(V+6)%7);return"Z"in m?(m.H+=m.Z/100|0,m.M+=m.Z%100,Fo(m)):Ao(m)}}function P(x,b,D,m){for(var B=0,O=b.length,V=D.length,X,ct;B=V)return-1;if(X=b.charCodeAt(B++),X===37){if(X=b.charAt(B++),ct=F[X in Ms?b.charAt(B++):X],!ct||(m=ct(x,D,m))<0)return-1}else if(X!=D.charCodeAt(m++))return-1}return m}function $(x,b,D){var m=s.exec(b.slice(D));return m?(x.p=c.get(m[0].toLowerCase()),D+m[0].length):-1}function W(x,b,D){var m=p.exec(b.slice(D));return m?(x.w=y.get(m[0].toLowerCase()),D+m[0].length):-1}function _(x,b,D){var m=h.exec(b.slice(D));return m?(x.w=l.get(m[0].toLowerCase()),D+m[0].length):-1}function w(x,b,D){var m=C.exec(b.slice(D));return m?(x.m=E.get(m[0].toLowerCase()),D+m[0].length):-1}function d(x,b,D){var m=T.exec(b.slice(D));return m?(x.m=S.get(m[0].toLowerCase()),D+m[0].length):-1}function g(x,b,D){return P(x,e,b,D)}function U(x,b,D){return P(x,n,b,D)}function M(x,b,D){return P(x,r,b,D)}function Y(x){return a[x.getDay()]}function N(x){return i[x.getDay()]}function I(x){return f[x.getMonth()]}function z(x){return u[x.getMonth()]}function q(x){return o[+(x.getHours()>=12)]}function Q(x){return 1+~~(x.getMonth()/3)}function et(x){return a[x.getUTCDay()]}function mt(x){return i[x.getUTCDay()]}function tt(x){return f[x.getUTCMonth()]}function pt(x){return u[x.getUTCMonth()]}function lt(x){return o[+(x.getUTCHours()>=12)]}function K(x){return 1+~~(x.getUTCMonth()/3)}return{format:function(x){var b=v(x+="",k);return b.toString=function(){return x},b},parse:function(x){var b=L(x+="",!1);return b.toString=function(){return x},b},utcFormat:function(x){var b=v(x+="",A);return b.toString=function(){return x},b},utcParse:function(x){var b=L(x+="",!0);return b.toString=function(){return x},b}}}var Ms={"-":"",_:" ",0:"0"},it=/^\s*\d+/,Qm=/^%/,Jm=/[\\^$*+?|[\]().{}]/g;function H(t,e,n){var r=t<0?"-":"",o=(r?-t:t)+"",i=o.length;return r+(i[e.toLowerCase(),n]))}function jm(t,e,n){var r=it.exec(e.slice(n,n+1));return r?(t.w=+r[0],n+r[0].length):-1}function tp(t,e,n){var r=it.exec(e.slice(n,n+1));return r?(t.u=+r[0],n+r[0].length):-1}function ep(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.U=+r[0],n+r[0].length):-1}function np(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.V=+r[0],n+r[0].length):-1}function rp(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.W=+r[0],n+r[0].length):-1}function Ts(t,e,n){var r=it.exec(e.slice(n,n+4));return r?(t.y=+r[0],n+r[0].length):-1}function bs(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function op(t,e,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function ip(t,e,n){var r=it.exec(e.slice(n,n+1));return r?(t.q=r[0]*3-3,n+r[0].length):-1}function ap(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.m=r[0]-1,n+r[0].length):-1}function Ss(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.d=+r[0],n+r[0].length):-1}function up(t,e,n){var r=it.exec(e.slice(n,n+3));return r?(t.m=0,t.d=+r[0],n+r[0].length):-1}function Cs(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.H=+r[0],n+r[0].length):-1}function sp(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.M=+r[0],n+r[0].length):-1}function fp(t,e,n){var r=it.exec(e.slice(n,n+2));return r?(t.S=+r[0],n+r[0].length):-1}function lp(t,e,n){var r=it.exec(e.slice(n,n+3));return r?(t.L=+r[0],n+r[0].length):-1}function cp(t,e,n){var r=it.exec(e.slice(n,n+6));return r?(t.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function hp(t,e,n){var r=Qm.exec(e.slice(n,n+1));return r?n+r[0].length:-1}function mp(t,e,n){var r=it.exec(e.slice(n));return r?(t.Q=+r[0],n+r[0].length):-1}function pp(t,e,n){var r=it.exec(e.slice(n));return r?(t.s=+r[0],n+r[0].length):-1}function ks(t,e){return H(t.getDate(),e,2)}function dp(t,e){return H(t.getHours(),e,2)}function xp(t,e){return H(t.getHours()%12||12,e,2)}function gp(t,e){return H(1+rn.count(Ct(t),t),e,3)}function Ys(t,e){return H(t.getMilliseconds(),e,3)}function yp(t,e){return Ys(t,e)+"000"}function _p(t,e){return H(t.getMonth()+1,e,2)}function vp(t,e){return H(t.getMinutes(),e,2)}function wp(t,e){return H(t.getSeconds(),e,2)}function Mp(t){var e=t.getDay();return e===0?7:e}function Tp(t,e){return H(an.count(Ct(t)-1,t),e,2)}function Ns(t){var e=t.getDay();return e>=4||e===0?Et(t):Et.ceil(t)}function bp(t,e){return t=Ns(t),H(Et.count(Ct(t),t)+(Ct(t).getDay()===4),e,2)}function Sp(t){return t.getDay()}function Cp(t,e){return H(De.count(Ct(t)-1,t),e,2)}function kp(t,e){return H(t.getFullYear()%100,e,2)}function Dp(t,e){return t=Ns(t),H(t.getFullYear()%100,e,2)}function Up(t,e){return H(t.getFullYear()%1e4,e,4)}function Ap(t,e){var n=t.getDay();return t=n>=4||n===0?Et(t):Et.ceil(t),H(t.getFullYear()%1e4,e,4)}function Fp(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+H(e/60|0,"0",2)+H(e%60,"0",2)}function Ds(t,e){return H(t.getUTCDate(),e,2)}function Yp(t,e){return H(t.getUTCHours(),e,2)}function Np(t,e){return H(t.getUTCHours()%12||12,e,2)}function Ip(t,e){return H(1+on.count(kt(t),t),e,3)}function Is(t,e){return H(t.getUTCMilliseconds(),e,3)}function Op(t,e){return Is(t,e)+"000"}function Ep(t,e){return H(t.getUTCMonth()+1,e,2)}function $p(t,e){return H(t.getUTCMinutes(),e,2)}function Pp(t,e){return H(t.getUTCSeconds(),e,2)}function Lp(t){var e=t.getUTCDay();return e===0?7:e}function Rp(t,e){return H(un.count(kt(t)-1,t),e,2)}function Os(t){var e=t.getUTCDay();return e>=4||e===0?$t(t):$t.ceil(t)}function Hp(t,e){return t=Os(t),H($t.count(kt(t),t)+(kt(t).getUTCDay()===4),e,2)}function Wp(t){return t.getUTCDay()}function zp(t,e){return H(Ue.count(kt(t)-1,t),e,2)}function Bp(t,e){return H(t.getUTCFullYear()%100,e,2)}function qp(t,e){return t=Os(t),H(t.getUTCFullYear()%100,e,2)}function Vp(t,e){return H(t.getUTCFullYear()%1e4,e,4)}function Xp(t,e){var n=t.getUTCDay();return t=n>=4||n===0?$t(t):$t.ceil(t),H(t.getUTCFullYear()%1e4,e,4)}function Gp(){return"+0000"}function Us(){return"%"}function As(t){return+t}function Fs(t){return Math.floor(+t/1e3)}var Ae,Es,$s,Ps,Ls;No({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function No(t){return Ae=Yo(t),Es=Ae.format,$s=Ae.parse,Ps=Ae.utcFormat,Ls=Ae.utcParse,Ae}var Zp={value:function(){}};function Hs(){for(var t=0,e=arguments.length,n={},r;t=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}ir.prototype=Hs.prototype={constructor:ir,on:function(t,e){var n=this._,r=Qp(t+"",n),o,i=-1,a=r.length;if(arguments.length<2){for(;++i0)for(var n=new Array(o),r=0,o,i;r=0&&t._call.call(null,e),t=t._next;--Fe}function Ws(){se=(ur=pn.now())+sr,Fe=hn=0;try{qs()}finally{Fe=0,td(),se=0}}function jp(){var t=pn.now(),e=t-ur;e>zs&&(sr-=e,ur=t)}function td(){for(var t,e=ar,n,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:ar=n);mn=t,Oo(r)}function Oo(t){if(!Fe){hn&&(hn=clearTimeout(hn));var e=t-se;e>24?(t<1/0&&(hn=setTimeout(Ws,t-pn.now()-sr)),cn&&(cn=clearInterval(cn))):(cn||(ur=pn.now(),cn=setInterval(jp,zs)),Fe=1,Bs(Ws))}}function lr(t,e,n){var r=new dn;return e=e==null?0:+e,r.restart(function(o){r.stop(),t(o+e)},e,n),r}var ed=Io("start","end","cancel","interrupt"),nd=[],Gs=0,Vs=1,hr=2,cr=3,Xs=4,mr=5,gn=6;function Pt(t,e,n,r,o,i){var a=t.__transition;if(!a)t.__transition={};else if(n in a)return;rd(t,n,{name:e,index:r,group:o,on:ed,tween:nd,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Gs})}function yn(t,e){var n=nt(t,e);if(n.state>Gs)throw new Error("too late; already scheduled");return n}function st(t,e){var n=nt(t,e);if(n.state>cr)throw new Error("too late; already running");return n}function nt(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function rd(t,e,n){var r=t.__transition,o;r[e]=n,n.timer=fr(i,0,n.time);function i(s){n.state=Vs,n.timer.restart(a,n.delay,n.time),n.delay<=s&&a(s-n.delay)}function a(s){var c,h,l,p;if(n.state!==Vs)return f();for(c in r)if(p=r[c],p.name===n.name){if(p.state===cr)return lr(a);p.state===Xs?(p.state=gn,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[c]):+chr&&r.state=0&&(e=e.slice(0,n)),!e||e==="start"})}function Td(t,e,n){var r,o,i=Md(e)?yn:st;return function(){var a=i(this,t),u=a.on;u!==r&&(o=(r=u).copy()).on(e,n),a.on=o}}function af(t,e){var n=this._id;return arguments.length<2?nt(this.node(),n).on.on(t):this.each(Td(n,t,e))}function bd(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function uf(){return this.on("end.remove",bd(this._id))}function sf(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Rt(t));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a{yi.exports=["0BSD","3D-Slicer-1.0","AAL","ADSL","AFL-1.1","AFL-1.2","AFL-2.0","AFL-2.1","AFL-3.0","AGPL-1.0-only","AGPL-1.0-or-later","AGPL-3.0-only","AGPL-3.0-or-later","AMD-newlib","AMDPLPA","AML","AML-glslang","AMPAS","ANTLR-PD","ANTLR-PD-fallback","APAFML","APL-1.0","APSL-1.0","APSL-1.1","APSL-1.2","APSL-2.0","ASWF-Digital-Assets-1.0","ASWF-Digital-Assets-1.1","Abstyles","AdaCore-doc","Adobe-2006","Adobe-Display-PostScript","Adobe-Glyph","Adobe-Utopia","Afmparse","Aladdin","Apache-1.0","Apache-1.1","Apache-2.0","App-s2p","Arphic-1999","Artistic-1.0","Artistic-1.0-Perl","Artistic-1.0-cl8","Artistic-2.0","Artistic-dist","Aspell-RU","BSD-1-Clause","BSD-2-Clause","BSD-2-Clause-Darwin","BSD-2-Clause-Patent","BSD-2-Clause-Views","BSD-2-Clause-first-lines","BSD-2-Clause-pkgconf-disclaimer","BSD-3-Clause","BSD-3-Clause-Attribution","BSD-3-Clause-Clear","BSD-3-Clause-HP","BSD-3-Clause-LBNL","BSD-3-Clause-Modification","BSD-3-Clause-No-Military-License","BSD-3-Clause-No-Nuclear-License","BSD-3-Clause-No-Nuclear-License-2014","BSD-3-Clause-No-Nuclear-Warranty","BSD-3-Clause-Open-MPI","BSD-3-Clause-Sun","BSD-3-Clause-acpica","BSD-3-Clause-flex","BSD-4-Clause","BSD-4-Clause-Shortened","BSD-4-Clause-UC","BSD-4.3RENO","BSD-4.3TAHOE","BSD-Advertising-Acknowledgement","BSD-Attribution-HPND-disclaimer","BSD-Inferno-Nettverk","BSD-Protection","BSD-Source-Code","BSD-Source-beginning-file","BSD-Systemics","BSD-Systemics-W3Works","BSL-1.0","BUSL-1.1","Baekmuk","Bahyph","Barr","Beerware","BitTorrent-1.0","BitTorrent-1.1","Bitstream-Charter","Bitstream-Vera","BlueOak-1.0.0","Boehm-GC","Boehm-GC-without-fee","Borceux","Brian-Gladman-2-Clause","Brian-Gladman-3-Clause","C-UDA-1.0","CAL-1.0","CAL-1.0-Combined-Work-Exception","CATOSL-1.1","CC-BY-1.0","CC-BY-2.0","CC-BY-2.5","CC-BY-2.5-AU","CC-BY-3.0","CC-BY-3.0-AT","CC-BY-3.0-AU","CC-BY-3.0-DE","CC-BY-3.0-IGO","CC-BY-3.0-NL","CC-BY-3.0-US","CC-BY-4.0","CC-BY-NC-1.0","CC-BY-NC-2.0","CC-BY-NC-2.5","CC-BY-NC-3.0","CC-BY-NC-3.0-DE","CC-BY-NC-4.0","CC-BY-NC-ND-1.0","CC-BY-NC-ND-2.0","CC-BY-NC-ND-2.5","CC-BY-NC-ND-3.0","CC-BY-NC-ND-3.0-DE","CC-BY-NC-ND-3.0-IGO","CC-BY-NC-ND-4.0","CC-BY-NC-SA-1.0","CC-BY-NC-SA-2.0","CC-BY-NC-SA-2.0-DE","CC-BY-NC-SA-2.0-FR","CC-BY-NC-SA-2.0-UK","CC-BY-NC-SA-2.5","CC-BY-NC-SA-3.0","CC-BY-NC-SA-3.0-DE","CC-BY-NC-SA-3.0-IGO","CC-BY-NC-SA-4.0","CC-BY-ND-1.0","CC-BY-ND-2.0","CC-BY-ND-2.5","CC-BY-ND-3.0","CC-BY-ND-3.0-DE","CC-BY-ND-4.0","CC-BY-SA-1.0","CC-BY-SA-2.0","CC-BY-SA-2.0-UK","CC-BY-SA-2.1-JP","CC-BY-SA-2.5","CC-BY-SA-3.0","CC-BY-SA-3.0-AT","CC-BY-SA-3.0-DE","CC-BY-SA-3.0-IGO","CC-BY-SA-4.0","CC-PDDC","CC-PDM-1.0","CC-SA-1.0","CC0-1.0","CDDL-1.0","CDDL-1.1","CDL-1.0","CDLA-Permissive-1.0","CDLA-Permissive-2.0","CDLA-Sharing-1.0","CECILL-1.0","CECILL-1.1","CECILL-2.0","CECILL-2.1","CECILL-B","CECILL-C","CERN-OHL-1.1","CERN-OHL-1.2","CERN-OHL-P-2.0","CERN-OHL-S-2.0","CERN-OHL-W-2.0","CFITSIO","CMU-Mach","CMU-Mach-nodoc","CNRI-Jython","CNRI-Python","CNRI-Python-GPL-Compatible","COIL-1.0","CPAL-1.0","CPL-1.0","CPOL-1.02","CUA-OPL-1.0","Caldera","Caldera-no-preamble","Catharon","ClArtistic","Clips","Community-Spec-1.0","Condor-1.1","Cornell-Lossless-JPEG","Cronyx","Crossword","CryptoSwift","CrystalStacker","Cube","D-FSL-1.0","DEC-3-Clause","DL-DE-BY-2.0","DL-DE-ZERO-2.0","DOC","DRL-1.0","DRL-1.1","DSDP","DocBook-DTD","DocBook-Schema","DocBook-Stylesheet","DocBook-XML","Dotseqn","ECL-1.0","ECL-2.0","EFL-1.0","EFL-2.0","EPICS","EPL-1.0","EPL-2.0","EUDatagrid","EUPL-1.0","EUPL-1.1","EUPL-1.2","Elastic-2.0","Entessa","ErlPL-1.1","Eurosym","FBM","FDK-AAC","FSFAP","FSFAP-no-warranty-disclaimer","FSFUL","FSFULLR","FSFULLRSD","FSFULLRWD","FSL-1.1-ALv2","FSL-1.1-MIT","FTL","Fair","Ferguson-Twofish","Frameworx-1.0","FreeBSD-DOC","FreeImage","Furuseth","GCR-docs","GD","GFDL-1.1-invariants-only","GFDL-1.1-invariants-or-later","GFDL-1.1-no-invariants-only","GFDL-1.1-no-invariants-or-later","GFDL-1.1-only","GFDL-1.1-or-later","GFDL-1.2-invariants-only","GFDL-1.2-invariants-or-later","GFDL-1.2-no-invariants-only","GFDL-1.2-no-invariants-or-later","GFDL-1.2-only","GFDL-1.2-or-later","GFDL-1.3-invariants-only","GFDL-1.3-invariants-or-later","GFDL-1.3-no-invariants-only","GFDL-1.3-no-invariants-or-later","GFDL-1.3-only","GFDL-1.3-or-later","GL2PS","GLWTPL","GPL-1.0-only","GPL-1.0-or-later","GPL-2.0-only","GPL-2.0-or-later","GPL-3.0-only","GPL-3.0-or-later","Game-Programming-Gems","Giftware","Glide","Glulxe","Graphics-Gems","Gutmann","HDF5","HIDAPI","HP-1986","HP-1989","HPND","HPND-DEC","HPND-Fenneberg-Livingston","HPND-INRIA-IMAG","HPND-Intel","HPND-Kevlin-Henney","HPND-MIT-disclaimer","HPND-Markus-Kuhn","HPND-Netrek","HPND-Pbmplus","HPND-UC","HPND-UC-export-US","HPND-doc","HPND-doc-sell","HPND-export-US","HPND-export-US-acknowledgement","HPND-export-US-modify","HPND-export2-US","HPND-merchantability-variant","HPND-sell-MIT-disclaimer-xserver","HPND-sell-regexpr","HPND-sell-variant","HPND-sell-variant-MIT-disclaimer","HPND-sell-variant-MIT-disclaimer-rev","HTMLTIDY","HaskellReport","Hippocratic-2.1","IBM-pibs","ICU","IEC-Code-Components-EULA","IJG","IJG-short","IPA","IPL-1.0","ISC","ISC-Veillard","ImageMagick","Imlib2","Info-ZIP","Inner-Net-2.0","InnoSetup","Intel","Intel-ACPI","Interbase-1.0","JPL-image","JPNIC","JSON","Jam","JasPer-2.0","Kastrup","Kazlib","Knuth-CTAN","LAL-1.2","LAL-1.3","LGPL-2.0-only","LGPL-2.0-or-later","LGPL-2.1-only","LGPL-2.1-or-later","LGPL-3.0-only","LGPL-3.0-or-later","LGPLLR","LOOP","LPD-document","LPL-1.0","LPL-1.02","LPPL-1.0","LPPL-1.1","LPPL-1.2","LPPL-1.3a","LPPL-1.3c","LZMA-SDK-9.11-to-9.20","LZMA-SDK-9.22","Latex2e","Latex2e-translated-notice","Leptonica","LiLiQ-P-1.1","LiLiQ-R-1.1","LiLiQ-Rplus-1.1","Libpng","Linux-OpenIB","Linux-man-pages-1-para","Linux-man-pages-copyleft","Linux-man-pages-copyleft-2-para","Linux-man-pages-copyleft-var","Lucida-Bitmap-Fonts","MIPS","MIT","MIT-0","MIT-CMU","MIT-Click","MIT-Festival","MIT-Khronos-old","MIT-Modern-Variant","MIT-Wu","MIT-advertising","MIT-enna","MIT-feh","MIT-open-group","MIT-testregex","MITNFA","MMIXware","MPEG-SSG","MPL-1.0","MPL-1.1","MPL-2.0","MPL-2.0-no-copyleft-exception","MS-LPL","MS-PL","MS-RL","MTLL","Mackerras-3-Clause","Mackerras-3-Clause-acknowledgment","MakeIndex","Martin-Birgmeier","McPhee-slideshow","Minpack","MirOS","Motosoto","MulanPSL-1.0","MulanPSL-2.0","Multics","Mup","NAIST-2003","NASA-1.3","NBPL-1.0","NCBI-PD","NCGL-UK-2.0","NCL","NCSA","NGPL","NICTA-1.0","NIST-PD","NIST-PD-fallback","NIST-Software","NLOD-1.0","NLOD-2.0","NLPL","NOSL","NPL-1.0","NPL-1.1","NPOSL-3.0","NRL","NTIA-PD","NTP","NTP-0","Naumen","NetCDF","Newsletr","Nokia","Noweb","O-UDA-1.0","OAR","OCCT-PL","OCLC-2.0","ODC-By-1.0","ODbL-1.0","OFFIS","OFL-1.0","OFL-1.0-RFN","OFL-1.0-no-RFN","OFL-1.1","OFL-1.1-RFN","OFL-1.1-no-RFN","OGC-1.0","OGDL-Taiwan-1.0","OGL-Canada-2.0","OGL-UK-1.0","OGL-UK-2.0","OGL-UK-3.0","OGTSL","OLDAP-1.1","OLDAP-1.2","OLDAP-1.3","OLDAP-1.4","OLDAP-2.0","OLDAP-2.0.1","OLDAP-2.1","OLDAP-2.2","OLDAP-2.2.1","OLDAP-2.2.2","OLDAP-2.3","OLDAP-2.4","OLDAP-2.5","OLDAP-2.6","OLDAP-2.7","OLDAP-2.8","OLFL-1.3","OML","OPL-1.0","OPL-UK-3.0","OPUBL-1.0","OSET-PL-2.1","OSL-1.0","OSL-1.1","OSL-2.0","OSL-2.1","OSL-3.0","OpenPBS-2.3","OpenSSL","OpenSSL-standalone","OpenVision","PADL","PDDL-1.0","PHP-3.0","PHP-3.01","PPL","PSF-2.0","Parity-6.0.0","Parity-7.0.0","Pixar","Plexus","PolyForm-Noncommercial-1.0.0","PolyForm-Small-Business-1.0.0","PostgreSQL","Python-2.0","Python-2.0.1","QPL-1.0","QPL-1.0-INRIA-2004","Qhull","RHeCos-1.1","RPL-1.1","RPL-1.5","RPSL-1.0","RSA-MD","RSCPL","Rdisc","Ruby","Ruby-pty","SAX-PD","SAX-PD-2.0","SCEA","SGI-B-1.0","SGI-B-1.1","SGI-B-2.0","SGI-OpenGL","SGP4","SHL-0.5","SHL-0.51","SISSL","SISSL-1.2","SL","SMAIL-GPL","SMLNJ","SMPPL","SNIA","SOFA","SPL-1.0","SSH-OpenSSH","SSH-short","SSLeay-standalone","SSPL-1.0","SUL-1.0","SWL","Saxpath","SchemeReport","Sendmail","Sendmail-8.23","Sendmail-Open-Source-1.1","SimPL-2.0","Sleepycat","Soundex","Spencer-86","Spencer-94","Spencer-99","SugarCRM-1.1.3","Sun-PPP","Sun-PPP-2000","SunPro","Symlinks","TAPR-OHL-1.0","TCL","TCP-wrappers","TGPPL-1.0","TMate","TORQUE-1.1","TOSL","TPDL","TPL-1.0","TTWL","TTYP0","TU-Berlin-1.0","TU-Berlin-2.0","TermReadKey","ThirdEye","TrustedQSL","UCAR","UCL-1.0","UMich-Merit","UPL-1.0","URT-RLE","Ubuntu-font-1.0","Unicode-3.0","Unicode-DFS-2015","Unicode-DFS-2016","Unicode-TOU","UnixCrypt","Unlicense","Unlicense-libtelnet","Unlicense-libwhirlpool","VOSTROM","VSL-1.0","Vim","W3C","W3C-19980720","W3C-20150513","WTFPL","Watcom-1.0","Widget-Workshop","Wsuipa","X11","X11-distribute-modifications-variant","X11-swapped","XFree86-1.1","XSkat","Xdebug-1.03","Xerox","Xfig","Xnet","YPL-1.0","YPL-1.1","ZPL-1.1","ZPL-2.0","ZPL-2.1","Zed","Zeeff","Zend-2.0","Zimbra-1.3","Zimbra-1.4","Zlib","any-OSI","any-OSI-perl-modules","bcrypt-Solar-Designer","blessing","bzip2-1.0.6","check-cvs","checkmk","copyleft-next-0.3.0","copyleft-next-0.3.1","curl","cve-tou","diffmark","dtoa","dvipdfm","eGenix","etalab-2.0","fwlw","gSOAP-1.3b","generic-xts","gnuplot","gtkbook","hdparm","iMatix","jove","libpng-1.6.35","libpng-2.0","libselinux-1.0","libtiff","libutil-David-Nugent","lsof","magaz","mailprio","man2html","metamail","mpi-permissive","mpich2","mplus","ngrep","pkgconf","pnmstitch","psfrag","psutils","python-ldap","radvd","snprintf","softSurfer","ssh-keyscan","swrule","threeparttable","ulem","w3m","wwl","xinetd","xkeyboard-config-Zinoviev","xlock","xpp","xzoom","zlib-acknowledgement"]});var an=w((Sr,xi)=>{xi.exports=["AGPL-1.0","AGPL-3.0","BSD-2-Clause-FreeBSD","BSD-2-Clause-NetBSD","GFDL-1.1","GFDL-1.2","GFDL-1.3","GPL-1.0","GPL-2.0","GPL-2.0-with-GCC-exception","GPL-2.0-with-autoconf-exception","GPL-2.0-with-bison-exception","GPL-2.0-with-classpath-exception","GPL-2.0-with-font-exception","GPL-3.0","GPL-3.0-with-GCC-exception","GPL-3.0-with-autoconf-exception","LGPL-2.0","LGPL-2.1","LGPL-3.0","Net-SNMP","Nunit","StandardML-NJ","bzip2-1.0.5","eCos-2.0","wxWindows"]});var on=w((vr,Ei)=>{Ei.exports=["389-exception","Asterisk-exception","Autoconf-exception-2.0","Autoconf-exception-3.0","Autoconf-exception-generic","Autoconf-exception-generic-3.0","Autoconf-exception-macro","Bison-exception-1.24","Bison-exception-2.2","Bootloader-exception","Classpath-exception-2.0","CLISP-exception-2.0","cryptsetup-OpenSSL-exception","DigiRule-FOSS-exception","eCos-exception-2.0","Fawkes-Runtime-exception","FLTK-exception","fmt-exception","Font-exception-2.0","freertos-exception-2.0","GCC-exception-2.0","GCC-exception-2.0-note","GCC-exception-3.1","Gmsh-exception","GNAT-exception","GNOME-examples-exception","GNU-compiler-exception","gnu-javamail-exception","GPL-3.0-interface-exception","GPL-3.0-linking-exception","GPL-3.0-linking-source-exception","GPL-CC-1.0","GStreamer-exception-2005","GStreamer-exception-2008","i2p-gpl-java-exception","KiCad-libraries-exception","LGPL-3.0-linking-exception","libpri-OpenH323-exception","Libtool-exception","Linux-syscall-note","LLGPL","LLVM-exception","LZMA-exception","mif-exception","OCaml-LGPL-linking-exception","OCCT-exception-1.0","OpenJDK-assembly-exception-1.0","openvpn-openssl-exception","PS-or-PDF-font-exception-20170817","QPL-1.0-INRIA-2004-exception","Qt-GPL-exception-1.0","Qt-LGPL-exception-1.1","Qwt-exception-1.0","SANE-exception","SHL-2.0","SHL-2.1","stunnel-exception","SWI-exception","Swift-exception","Texinfo-exception","u-boot-exception-2.0","UBDL-exception","Universal-FOSS-exception-1.0","vsftpd-openssl-exception","WxWindows-exception-3.1","x11vnc-openssl-exception"]});var cn=w((Pr,sn)=>{"use strict";var Gi=[].concat(ye()).concat(an()),Ii=on();sn.exports=function(e){var n=0;function i(){return n1&&e[n-2]===" ")throw new Error("Space before `+`");return L&&{type:"OPERATOR",string:L}}function l(){return t(/[A-Za-z0-9-.]+/)}function o(){var L=l();if(!L)throw new Error("Expected idstring at offset "+n);return L}function u(){if(t("DocumentRef-")){var L=o();return{type:"DOCUMENTREF",string:L}}}function d(){if(t("LicenseRef-")){var L=o();return{type:"LICENSEREF",string:L}}}function f(){var L=n,C=l();if(Gi.indexOf(C)!==-1)return{type:"LICENSE",string:C};if(Ii.indexOf(C)!==-1)return{type:"EXCEPTION",string:C};n=L}function P(){return c()||u()||d()||f()}for(var D=[];i()&&(a(),!!i());){var v=P();if(!v)throw new Error("Unexpected `"+e[n]+"` at offset "+n);D.push(v)}return D}});var un=w((br,ln)=>{"use strict";ln.exports=function(e){var n=0;function i(){return n{"use strict";var _i=cn(),Ti=un();mn.exports=function(e){return Ti(_i(e))}});var gn=w((hr,bn)=>{var Bi=dn(),Fi=ye();function ce(e){try{return Bi(e),!0}catch{return!1}}function Pn(e,n){var i=n[0].length-e[0].length;return i!==0?i:e[0].toUpperCase().localeCompare(n[0].toUpperCase())}var fn=[["APGL","AGPL"],["Gpl","GPL"],["GLP","GPL"],["APL","Apache"],["ISD","ISC"],["GLP","GPL"],["IST","ISC"],["Claude","Clause"],[" or later","+"],[" International",""],["GNU","GPL"],["GUN","GPL"],["+",""],["GNU GPL","GPL"],["GNU LGPL","LGPL"],["GNU/GPL","GPL"],["GNU GLP","GPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL"],["GNU Lesser General Public License","LGPL"],["GNU LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["GNU Lesser General Public License","LGPL-2.1"],["LESSER GENERAL PUBLIC LICENSE","LGPL"],["Lesser General Public License","LGPL"],["LESSER GENERAL PUBLIC LICENSE","LGPL-2.1"],["Lesser General Public License","LGPL-2.1"],["GNU General Public License","GPL"],["Gnu public license","GPL"],["GNU Public License","GPL"],["GNU GENERAL PUBLIC LICENSE","GPL"],["MTI","MIT"],["Mozilla Public License","MPL"],["Universal Permissive License","UPL"],["WTH","WTF"],["WTFGPL","WTFPL"],["-License",""]].sort(Pn),Ri=0,wi=1,Ln=[function(e){return e.toUpperCase()},function(e){return e.trim()},function(e){return e.replace(/\./g,"")},function(e){return e.replace(/\s+/g,"")},function(e){return e.replace(/\s+/g,"-")},function(e){return e.replace("v","-")},function(e){return e.replace(/,?\s*(\d)/,"-$1")},function(e){return e.replace(/,?\s*(\d)/,"-$1.0")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2")},function(e){return e.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/,"-$2.0")},function(e){return e[0].toUpperCase()+e.slice(1)},function(e){return e.replace("/","-")},function(e){return e.replace(/\s*V\s*(\d)/,"-$1").replace(/(\d)$/,"$1.0")},function(e){return e.indexOf("3.0")!==-1?e+"-or-later":e+"-only"},function(e){return e+"only"},function(e){return e.replace(/(\d)$/,"-$1.0")},function(e){return e.replace(/(-| )?(\d)$/,"-$2-Clause")},function(e){return e.replace(/(-| )clause(-| )(\d)/,"-$3-Clause")},function(e){return e.replace(/\b(Modified|New|Revised)(-| )?BSD((-| )License)?/i,"BSD-3-Clause")},function(e){return e.replace(/\bSimplified(-| )?BSD((-| )License)?/i,"BSD-2-Clause")},function(e){return e.replace(/\b(Free|Net)(-| )?BSD((-| )License)?/i,"BSD-2-Clause-$1BSD")},function(e){return e.replace(/\bClear(-| )?BSD((-| )License)?/i,"BSD-3-Clause-Clear")},function(e){return e.replace(/\b(Old|Original)(-| )?BSD((-| )License)?/i,"BSD-4-Clause")},function(e){return"CC-"+e},function(e){return"CC-"+e+"-4.0"},function(e){return e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")},function(e){return"CC-"+e.replace("Attribution","BY").replace("NonCommercial","NC").replace("NoDerivatives","ND").replace(/ (\d)/,"-$1").replace(/ ?International/,"")+"-4.0"}],xe=Fi.map(function(e){var n=/^(.*)-\d+\.\d+$/.exec(e);return n?[n[0],n[1]]:[e,null]}).reduce(function(e,n){var i=n[1];return e[i]=e[i]||[],e[i].push(n[0]),e},{}),Mi=Object.keys(xe).map(function(n){return[n,xe[n]]}).filter(function(n){return n[1].length===1&&n[0]!==null&&n[0]!=="APL"}).map(function(n){return[n[0],n[1][0]]});xe=void 0;var pn=[["UNLI","Unlicense"],["WTF","WTFPL"],["2 CLAUSE","BSD-2-Clause"],["2-CLAUSE","BSD-2-Clause"],["3 CLAUSE","BSD-3-Clause"],["3-CLAUSE","BSD-3-Clause"],["AFFERO","AGPL-3.0-or-later"],["AGPL","AGPL-3.0-or-later"],["APACHE","Apache-2.0"],["ARTISTIC","Artistic-2.0"],["Affero","AGPL-3.0-or-later"],["BEER","Beerware"],["BOOST","BSL-1.0"],["BSD","BSD-2-Clause"],["CDDL","CDDL-1.1"],["ECLIPSE","EPL-1.0"],["FUCK","WTFPL"],["GNU","GPL-3.0-or-later"],["LGPL","LGPL-3.0-or-later"],["GPLV1","GPL-1.0-only"],["GPL-1","GPL-1.0-only"],["GPLV2","GPL-2.0-only"],["GPL-2","GPL-2.0-only"],["GPL","GPL-3.0-or-later"],["MIT +NO-FALSE-ATTRIBS","MITNFA"],["MIT","MIT"],["MPL","MPL-2.0"],["X11","X11"],["ZLIB","Zlib"]].concat(Mi).sort(Pn),Ui=0,ki=1,Cn=function(e){for(var n=0;n-1)return t[ki]}return null},vn=function(e,n){for(var i=0;i-1){var c=e.replace(a,t[wi]),l=n(c);if(l!==null)return l}}return null};bn.exports=function(e,n){n=n||{};var i=n.upgrade===void 0?!0:!!n.upgrade;function t(o){return i?$i(o):o}var a=typeof e=="string"&&e.trim().length!==0;if(!a)throw Error("Invalid argument. Expected non-empty string.");if(e=e.trim(),ce(e))return t(e);var c=e.replace(/\+$/,"").trim();if(ce(c))return t(c);var l=Cn(e);return l!==null||(l=vn(e,function(o){return ce(o)?o:Cn(o)}),l!==null)||(l=Sn(e),l!==null)||(l=vn(e,Sn),l!==null)?t(l):null};function $i(e){return["GPL-1.0","LGPL-1.0","AGPL-1.0","GPL-2.0","LGPL-2.0","AGPL-2.0","LGPL-2.1"].indexOf(e)!==-1?e+"-only":["GPL-1.0+","GPL-2.0+","GPL-3.0+","LGPL-2.0+","LGPL-2.1+","LGPL-3.0+","AGPL-1.0+","AGPL-3.0+"].indexOf(e)!==-1?e.replace(/\+$/,"-or-later"):["GPL-3.0","LGPL-3.0","AGPL-3.0"].indexOf(e)!==-1?e+"-or-later":e}});var $n=/^10\.\d{4,9}\/[-._;()/:A-Z0-9]+$/i;function I(e){return e?e.match($n)!==null:!1}var Me={test(e){return!!e.hostname.match(/(?:dx\.)?(?:www\.)?doi\.org/)},parse(e){return e.pathname.replace(/^\//,"")}},Yn={test(e){return e.hostname.endsWith("elifesciences.org")&&/^\/(?:articles|reviewed-preprints)\/\d+$/.test(e.pathname)},parse(e){return`10.7554/eLife.${e.pathname.replace(/^\/(?:articles|reviewed-preprints)\//,"")}`}},Hn={test(e){return e.hostname.endsWith("zenodo.org")&&!!e.pathname.match(/^\/(?:record|badge\/latestdoi)\//)},parse(e){return`10.5281/zenodo.${e.pathname.replace(/^\/(?:record|badge\/latestdoi)\//,"")}`}},jn={test(e){return e.hostname.endsWith("biorxiv.org")&&!!z(e).find(I)},parse(e){var n;return(n=z(e).find(I))===null||n===void 0?void 0:n.replace(/v\d+(\.[a-zA-Z-]+)?$/,"")}};function z(e){let n=e.pathname.split("/").filter(i=>!!i);return n.slice(0,-1).map((i,t)=>`${i}/${n[t+1]}`)}var Wn={test(e){return!!z(e).find(I)},parse(e){return z(e).find(I)}},Kn={test(e){return I(e.searchParams.get("id"))},parse(e){var n;return(n=e.searchParams.get("id"))!==null&&n!==void 0?n:void 0}},Ue=[Me],ke=[Me,jn,Wn,Yn,Hn,Kn];var zn="10.13039";function Xn(e,n){return e?!!X(e,n):!1}function X(e,n){let i;if(e){if(I(e))return e;if(e.startsWith("doi:")&&(i=e.slice(4),I(i)))return i;try{let t=new URL(e.startsWith("http")?e:`http://${e}`),a=Ue.find(o=>o.test(t)),c=ke.find(o=>o.test(t));if(n?.strict&&!a)return;let l=a??c;if(!l)return;if(i=l.parse(t),!n?.strict&&a)return i}catch{}if(I(i))return i}}function Vn(e,n){let i=X(e,n);if(i)return`https://doi.org/${i}`}function Zn(e){let n=X(e);return n?n.startsWith(`${zn}/`):!1}var $e={validatePart:I,validate:Xn,normalize:X,buildUrl:Vn,isOpenFunderRegistry:Zn};var Jn="https://credit.niso.org/",O;(function(e){e.Conceptualization="Conceptualization",e.DataCuration="Data curation",e.FormalAnalysis="Formal analysis",e.FundingAcquisition="Funding acquisition",e.Investigation="Investigation",e.Methodology="Methodology",e.ProjectAdministration="Project administration",e.Resources="Resources",e.Software="Software",e.Supervision="Supervision",e.Validation="Validation",e.Visualization="Visualization",e.WritingOriginalDraft="Writing \u2013 original draft",e.WritingReviewEditing="Writing \u2013 review & editing"})(O||(O={}));var qn={[O.Conceptualization]:"Ideas; formulation or evolution of overarching research goals and aims.",[O.DataCuration]:"Management activities to annotate (produce metadata), scrub data and maintain research data (including software code, where it is necessary for interpreting the data itself) for initial use and later re-use.",[O.FormalAnalysis]:"Application of statistical, mathematical, computational, or other formal techniques to analyse or synthesize study data.",[O.FundingAcquisition]:"Acquisition of the financial support for the project leading to this publication.",[O.Investigation]:"Conducting a research and investigation process, specifically performing the experiments, or data/evidence collection.",[O.Methodology]:"Development or design of methodology; creation of models.",[O.ProjectAdministration]:"Management and coordination responsibility for the research activity planning and execution.",[O.Resources]:"Provision of study materials, reagents, materials, patients, laboratory samples, animals, instrumentation, computing resources, or other analysis tools.",[O.Software]:"Programming, software development; designing computer programs; implementation of the computer code and supporting algorithms; testing of existing code components.",[O.Supervision]:"Oversight and leadership responsibility for the research activity planning and execution, including mentorship external to the core team.",[O.Validation]:"Verification, whether as a part of the activity or separate, of the overall replication/reproducibility of results/experiments and other research outputs.",[O.Visualization]:"Preparation, creation and/or presentation of the published work, specifically visualization/data presentation.",[O.WritingOriginalDraft]:"Preparation, creation and/or presentation of the published work, specifically writing the initial draft (including substantive translation).",[O.WritingReviewEditing]:"Preparation, creation and/or presentation of the published work by those from the original research group, specifically critical review, commentary or revision \u2013 including pre- or post-publication stages."},Ye=Object.keys(qn),Qn={writing:O.WritingOriginalDraft,editing:O.WritingReviewEditing,review:O.WritingReviewEditing,analysis:O.FormalAnalysis,funding:O.FundingAcquisition,admin:O.ProjectAdministration,administration:O.ProjectAdministration};function He(e){return e.trim().toLowerCase().replaceAll("z","s").split("").reduce((n,i)=>{if(i.match(/([a-z])/))return[...n,i];let t=n[n.length-1];return t?.match(/([a-z])/)?[...n,"-"]:n},[]).join("")}var ei=Object.fromEntries(Ye.map(e=>[He(e),e]));function pe(e,n){var i,t;if(e){if(Ye.includes(e))return e;if(!n?.strict)return(t=(i=ei[He(e)])!==null&&i!==void 0?i:Qn[e.toLowerCase().trim()])!==null&&t!==void 0?t:void 0}}function ni(e,n){return e?!!pe(e,n):!1}function ii(e,n){let i=pe(e,n);if(!i)return;let t=i.toLowerCase().replace("\u2013 ","").replace("& ","").replaceAll(" ","-");return`${Jn}contributor-roles/${t}/`}var je={validate:ni,normalize:pe,buildUrl:ii};var ti="https://orcid.org",ri="^([0-9]{4}-){3}[0-9]{3}[0-9X]$",ai="^((http(s)?://)?(www.)?orcid.org/)?([0-9]{4}-){3}[0-9]{3}[0-9X]$";function We(e,n){return!!e?.match(n?.strict?ri:ai)}function Ke(e,n){if(!(!e||!We(e,n)))return e.replace(/^(https?:\/\/)?(www\.)?orcid\.org\//,"")}function oi(e,n){let i=Ke(e,n);if(i)return`${ti}/${i}`}var ze={validate:We,normalize:Ke,buildUrl:oi};function s(e){return e!=null}function Se(e){return e.file&&e.location?` (at ${e.file}#${e.location})`:e.file||e.location?` (at ${e.file||e.location})`:""}function r(e,n){let i=n.property;return n.location&&(i=`${n.location}.${n.property}`),{...n,property:e,location:i}}function p(e,n){if(n.suppressErrors)return;let{messages:i}=n;i.errors||(i.errors=[]);let t=`'${n.property}' ${e}${Se(n)}`;i.errors.push({property:n.property,message:t}),n.errorLogFn&&n.errorLogFn(t)}function b(e,n){if(n.suppressWarnings)return;let{messages:i}=n;i.warnings||(i.warnings=[]);let t=`'${n.property}' ${e}${Se(n)}`;i.warnings.push({property:n.property,message:t}),n.warningLogFn&&n.warningLogFn(t)}function A(e,n){if(typeof e=="string"){if(e.toLowerCase()==="true")return!0;if(e.toLowerCase()==="false")return!1}return e===!0||e===!1?e:p("must be boolean",n)}function _(e,n){let i=Number(e);return Number.isNaN(i)?p(`must be a number: ${e}`,n):s(n.min)&&in.max?p(`must be less than or equal to ${n.max}: ${i}`,n):n.integer&&!Number.isInteger(i)?p(`must be an integer: ${i}`,n):i}function m(e,n){let i=e;return n.coerceNumber&&typeof i=="number"&&(Number.isNaN(i)&&b("is not a number",n),i=String(i)),typeof i!="string"?p("must be string",n):n.minLength&&i.lengthn.maxLength?p(`must be less than ${n.maxLength} chars`,n):n.regex&&!i.match(n.regex)?p(`must match regex ${n.regex}`,n):(n.escapeFn&&(i=n.escapeFn(i)),i)}function N(e,n){let i=m(e,{...n,maxLength:2048});if(i===void 0)return i;let t;try{t=new URL(i)}catch{return p(`must be valid URL: ${i}`,n)}return n.includes&&!t.origin.includes(n.includes)?p(`must include "${n.includes}": ${i}`,n):i}function j(e,n){let i=m(e,{...n,maxLength:2048});if(i===void 0)return i;!i.startsWith("https://")&&!i.startsWith("http://")&&(i=`http://${i}`);let t;try{t=new URL(i)}catch{return p(`domain must be valid when used as a URL: ${e}`,n)}let{hash:a,host:c,pathname:l,protocol:o,search:u}=t;if(o!=="http:"&&o!=="https:")return p(`must have http/https protocol or no protocol: ${e}`,n);if(l&&l!=="/"||a||u)return p(`must not specify path, query, or fragment: ${e}`,n);let d=c.split(".").length;return n.minParts!==void 0&&n.minParts>d?p(`must have at least ${n.minParts} parts: ${e}`,n):n.maxParts!==void 0&&n.maxParts()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)?i:p(`must be valid email address: ${i}`,n)}function T(e,n){return n.choices.includes(e)?e:p(`invalid value '${e}' - must be one of [${n.choices.join(", ")}]`,n)}function ve(e,n){return Object.values(n.enum).includes(e)?e:p(`invalid value '${e}' - must be one of [${Object.values(n.enum).join(", ")}]`,n)}var si=/^(\d\d\d\d)(?:-(\d\d))?(?:-(\d\d))?(T.*)?$/,ci=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),)?\s*(\d{1,2})\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+(\d\d\d\d)\s*([^\s].*)?$/,li=new Map(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"].map((e,n)=>[e,n+1]));function V(e,n,i){let t=`${n}`.padStart(2,"0"),a=`${i}`.padStart(2,"0");return`${e}-${t}-${a}`}function Ce(e){return`invalid date "${e}" - must be a full date "YYYY-MM-DD" (ISO 8601) or calendar date "Sat, 1 Jan 2000" (RFC 2822)`}function Xe(e,n,i){return Z(new Date(n),{...i,suppressErrors:!0,suppressWarnings:!0})!==n?p(Ce(e),i):n}function Z(e,n){if(typeof e=="string"){let i=e.match(si);if(i){let[l,o,u,d]=i.slice(1,5);d!==void 0&&b(`Date "${e}" should not include a time component ("${d}"), which has been ignored`,n);let f=[l,o??"01",u??"01"].join("-");return(o===void 0||u===void 0)&&b(`non-standard date "${e}": interpreting date as "${f}". +Please use a full date "YYYY-MM-DD" (ISO 8601).`,n),Xe(e,f,n)}if(i=e.match(ci),i){let[l,o,u,d]=i.slice(2,6);d!==void 0&&b(`Date "${e}" should not include a time component ("${d}"), which has been ignored`,n);let f=parseInt(u),P=li.get(o),D=parseInt(l),v=V(f,P,D);return Xe(e,v,n)}let t=Date.parse(e);if(isNaN(t))return p(Ce(e),n);let a=new Date(t),c=V(a.getFullYear(),a.getMonth()+1,a.getDate());return b(`non-standard date "${e}": interpreting date as "${c}". +Please use a full date "YYYY-MM-DD" (ISO 8601).`,n),c}else return e instanceof Date?n.dateIsLocal?V(e.getFullYear(),e.getMonth()+1,e.getDate()):V(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate()):p(Ce(e),n)}function E(e,n){return typeof e!="object"?p("must be object",n):Array.isArray(e)?p("must be object, not array",n):e}function k(e,n,i){var t;let a={},c=n.required||[],l=n.optional||[],o=Object.entries((t=n.alias)!==null&&t!==void 0?t:{}).filter(d=>c.includes(d[1])||l.includes(d[1])).map(d=>d[0]),u=[];if(Object.keys(e).forEach(d=>{var f;if(c.includes(d)||l.includes(d))a[d]=e[d],c=c.filter(P=>P!==d);else if(o.includes(d)){let P=(f=n.alias)===null||f===void 0?void 0:f[d];e[P]===void 0?(a[P]=e[d],c=c.filter(D=>D!==P)):b(`both "${P}" and "${d}" were provided, "${d}" was ignored.`,i)}else u.push(d),i.keepExtraKeys&&(a[d]=e[d])}),!(c.length&&(p(`missing required key${c.length>1?"s":""}: ${c.join(", ")}`,i),!i.returnInvalidPartial)))return u.length&&b(`extra key${u.length>1?"s":""} ignored: ${u.join(", ")}`,i),a}function S(e,n,i){let t=E(e,i);if(t!==void 0)return k(t,n,i)}function h(e,n,i){let t;if(Array.isArray(e))t=e;else if(n.coerce)t=[e];else return p("must be an array",n);return t.map((a,c)=>i(a,c)).filter(a=>a!==void 0)}function Pe(e,n,i){let t={...e};return i.forEach(a=>{if(!s(t[a])&&s(n[a])){let c=a;t[c]=n[c]}}),t}var be=["enumerator","all","headings","title"],ge=["heading_1","heading_2","heading_3","heading_4","heading_5","heading_6"],ui=["figure","subfigure","equation","subequation","table","code",...ge],Ze=["enabled","start","enumerator","template","continue"],Ve=["continue","next"],mi={sections:"headings",h1:"heading_1",h2:"heading_2",h3:"heading_3",h4:"heading_4",h5:"heading_5",h6:"heading_6",heading1:"heading_1",heading2:"heading_2",heading3:"heading_3",heading4:"heading_4",heading5:"heading_5",heading6:"heading_6",figures:"figure",subfigures:"subfigure",equations:"equation",math:"equation",subequations:"subequation",tables:"table",titles:"title"};function he(e){return typeof e=="string"?["true","false"].includes(e.toLowerCase()):typeof e=="boolean"}function J(e,n){var i,t,a,c,l;he(e)?e={enabled:e}:typeof e=="number"?e={start:e}:Ve.includes(e)?e={continue:!0}:typeof e=="string"&&(e={template:e});let o=S(e,{optional:Ze},n);if(o===void 0)return;let u={};if(s(o.enabled)){let d=A(o.enabled,r("enabled",n));s(d)&&(u.enabled=d)}if(s(o.start))if(Ve.includes(o.start)&&!s(o.continue))u.continue=!0,u.enabled=(i=u.enabled)!==null&&i!==void 0?i:!0;else{let d=_(o.start,{...r("start",n),integer:!0,min:1});d&&(u.start=d,u.enabled=(t=u.enabled)!==null&&t!==void 0?t:!0)}if(s(o.template)){let d=m(o.template,r("template",n));s(d)&&(u.template=d,u.enabled=(a=u.enabled)!==null&&a!==void 0?a:!0)}if(s(o.enumerator)){let d=m(o.enumerator,r("enumerator",n));s(d)&&(u.enumerator=d,u.enabled=(c=u.enabled)!==null&&c!==void 0?c:!0)}if(s(o.continue)){let d=A(o.continue,r("continue",n));s(d)&&(u.continue=d,u.enabled=(l=u.enabled)!==null&&l!==void 0?l:!0)}if(Object.keys(u).length!==0)return u}function di(e,n){var i,t;he(e)?e={enabled:e}:typeof e=="number"&&(e={offset:e});let a=S(e,{optional:["enabled","offset","enumerator"]},n);if(a===void 0)return;let c={};if(s(a.enabled)){let l=A(a.enabled,r("enabled",n));s(l)&&(c.enabled=l)}if(s(a.offset)){let l=_(a.offset,{integer:!0,min:0,max:5,...r("offset",n)});s(l)&&(c.offset=l,c.enabled=(i=c.enabled)!==null&&i!==void 0?i:!0)}if(s(a.enumerator)){let l=m(a.enumerator,r("enumerator",n));s(l)&&(c.enumerator=l,c.enabled=(t=c.enabled)!==null&&t!==void 0?t:!0)}if(Object.keys(c).length!==0)return c}function Je(e,n){var i,t,a,c,l;he(e)&&(e={all:e});let o=S(e,{optional:[...ui,...be],alias:mi},{...n,suppressWarnings:!0,keepExtraKeys:!0});if(o===void 0)return;let u={},d;if(s(o.enumerator)){let f=r("enumerator",n);typeof o.enumerator=="string"&&(o.enumerator={enumerator:o.enumerator}),u.enumerator=J(o.enumerator,f),((i=u.enumerator)===null||i===void 0?void 0:i.enabled)!=null&&(u.enumerator.enabled!==!0&&b("value for 'enabled' is ignored",f),delete u.enumerator.enabled),((t=u.enumerator)===null||t===void 0?void 0:t.start)!=null&&(b("value for 'start' is ignored",f),delete u.enumerator.start),((a=u.enumerator)===null||a===void 0?void 0:a.continue)!=null&&(b("value for 'continue' is ignored",f),delete u.enumerator.continue),(!u.enumerator||Object.keys(u.enumerator).length===0)&&delete u.enumerator}if(s(o.all)){let f=r("all",n);u.all=J(o.all,f),((c=u.all)===null||c===void 0?void 0:c.template)!=null&&(b("value for 'template' is ignored",f),delete u.all.template),((l=u.all)===null||l===void 0?void 0:l.start)!=null&&(b("value for 'start' is ignored",f),delete u.all.start),(!u.all||Object.keys(u.all).length===0)&&delete u.all}if(s(o.title)&&(u.title=di(o.title,r("title",n))),s(o.headings)&&(d=J(o.headings,r("headings",n)),ge.forEach(f=>{d&&!s(o[f])&&(o[f]=d)})),Object.keys(o).filter(f=>!be.includes(f)).forEach(f=>{if(s(o[f])){let P=J(o[f],r(f,n));if(!s(P))return;d&&ge.includes(f)?u[f]={...d,...P}:u[f]=P}}),Object.keys(u).length!==0)return u}function $t(e,n){let i={...n,...e};return Object.entries(n??{}).filter(([t])=>!be.includes(t)).forEach(([t,a])=>{var c,l,o,u,d;i[t]=Pe((c=e?.[t])!==null&&c!==void 0?c:{},{...a,enabled:(o=(l=e?.all)===null||l===void 0?void 0:l.enabled)!==null&&o!==void 0?o:a.enabled,continue:(d=(u=e?.all)===null||u===void 0?void 0:u.continue)!==null&&d!==void 0?d:a.continue},Ze)}),i}function q(e){return JSON.stringify(Object.entries(e).filter(([,n])=>n!==void 0).sort())}function fi(e,n,i){let t="";if(i){let a=i.replace("\\","/").split("/"),c=a[a.length-1].split(".");c.length===1?t=`-${c[0]}`:t=`-${c.slice(0,c.length-1).join("-")}`}return`${e}${t}-generated-uid-${n}`}function ee(e){return{id:e,name:e}}function Q(e){var n;if(!e.name||!e.id||e.name!==e.id)return!1;let i=Object.keys(e).length;return i===2?!0:i===3&&((n=e.nameParsed)===null||n===void 0?void 0:n.literal)===e.id}function G(e,n,i,t,a){var c,l,o;let u={},d={};if((c=n[i])===null||c===void 0||c.forEach(D=>{D.id&&(u[D.id]=D,d[q({...D,id:void 0})]=D.id)}),typeof e=="string"&&Object.keys(u).includes(e))return e;let f=t(e,a);if(!f)return;let P=!Q(f);return f.id||(d[q(f)]?(f.id=d[q(f)],P=!1):f.id=fi(i,(o=(l=n[i])===null||l===void 0?void 0:l.length)!==null&&o!==void 0?o:0,a.file)),Object.keys(u).includes(f.id)?Q(u[f.id])?u[f.id]=f:P&&b(`duplicate id for ${i} found in frontmatter: ${f.id}`,a):u[f.id]=f,n[i]=Object.values(u),f.id}var ne=["title","hidden"];function ie(e,n){let i={};return s(e.title)&&(i.title=m(e.title,r("title",n))),s(e.hidden)&&(i.hidden=A(e.hidden,r("hidden",n))),i}function Li(e,n){let i=S(e,{required:["file"],optional:[...ne,"children"]},n);if(!i)return;let t=m(i.file,r("file",n));if(!t)return;let a=ie(i,n),c={file:t,...a};return s(e.children)&&(c={children:h(i.children,r("children",n),(o,u)=>te(o,r(`children.${u}`,n))),...c}),c}function pi(e,n){let i=S(e,{required:["url"],optional:[...ne,"children"]},n);if(!i)return;let t=m(i.url,r("url",n));if(!t)return;let a=ie(i,n),c={url:t,...a};return s(e.children)&&(c={children:h(i.children,r("children",n),(o,u)=>te(o,r(`children.${u}`,n))),...c}),c}function Ci(e,n){let i=S(e,{required:["pattern"],optional:[...ne]},n);if(!i)return;let t=m(i.pattern,r("pattern",n));if(!t)return;let a=ie(i,n);return{pattern:t,...a}}function Si(e,n){let i=S(e,{required:["title","children"],optional:[...ne]},n);if(!i)return;let t=m(i.title,r("title",n));if(!t)return;let a=h(i.children,r("children",n),(l,o)=>te(l,r(`children.${o}`,n)));if(!a)return;let c=ie(i,n);return{children:a,title:t,...c}}function te(e,n){let i=E(e,n);if(i)return s(i.file)?Li(i,n):s(i.url)?pi(i,n):s(i.pattern)?Ci(i,n):s(i.title)?Si(i,n):p("expected an entry with 'file', 'url', 'pattern', or 'title'",n)}function qe(e,n){return h(e,n,(i,t)=>te(i,r(`${t}`,n)))}var Ae="^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$";function B(e,n){let i=m(e,n);if(i!==void 0){if($e.validate(i,{strict:!0}))return i;p("must be valid DOI",n)}}function Qe(e,n){let i=e;if(typeof i=="string"){let t=i.match(Ae);t&&(i=`https://github.com/${t}`)}return N(i,{...r("github",n),includes:"github"})}function F(e,n){return typeof e=="string"?m(e,n):typeof e=="number"?e:p("must be string or number",n)}var vi=["number","doi","title","subject"];function De(e,n){typeof e!="object"&&(e={number:e});let i=S(e,{optional:vi,alias:{name:"number"}},n);if(i===void 0)return;let t={};if(s(i.number)&&(t.number=F(i.number,r("number",n))),s(i.doi)&&(t.doi=B(i.doi,r("doi",n))),s(i.title)&&(t.title=m(i.title,r("title",n))),s(i.subject)&&(t.subject=m(i.subject,r("subject",n))),Object.keys(t).length!==0)return t}var re=["arxiv","pmid","pmcid","zenodo"],Ne=["date","doi","identifiers","open_access","license","binder","source","subject","volume","issue","first_page","last_page","oxa","numbering","bibliography","math","abbreviations","exports","downloads","settings","edit_url","source_url",...re,...we],Oe=[...Ne,"id","references","requirements","resources","thebe","toc"];var ae=[...Ne,"label","kernelspec","jupytext","tags","site","enumerator","content_includes_title","skip_execution","execute"];var y;(function(e){e.pdf="pdf",e.tex="tex",e.pdftex="pdf+tex",e.typst="typst",e.docx="docx",e.xml="xml",e.md="md",e.meca="meca",e.cff="cff"})(y||(y={}));var oe={required:[],optional:["format","template","output","zip","id","name","renderer","articles","top_level","sub_articles"],alias:{article:"articles",sub_article:"sub_articles"}},Pi={optional:["file","title","level",...ae,...Object.keys(M)]},en={".pdf":y.pdf,".tex":y.tex,".doc":y.docx,".docx":y.docx,".md":y.md,".zip":y.meca,".meca":y.meca,".xml":y.xml,".jats":y.xml,".typ":y.typst,".typst":y.typst,".cff":y.cff},nn=[...oe.required,...oe.optional,...Object.keys(oe.alias),...Oe,...Object.keys(M)],bi=[y.typst,y.pdf,y.tex,y.pdftex];function tn(e,n){if(e===void 0)return;let i={coerce:!0,...r("exports",n)},t=h(e,i,(c,l)=>Di(c,r(`exports.${l}`,n)));if(!t||t.length===0)return;let a=new Set;return t.forEach((c,l)=>{c.id&&t.slice(l+1).map(({id:o})=>o).includes(c.id)&&a.add(c.id)}),a.size&&p(`duplicate export ids: ${[...a].join(", ")}`,i),t}function se(e,n){return e===void 0?void 0:(e==="tex+pdf"&&(e="pdf+tex"),e==="jats"&&(e="xml"),ve(e,{...n,enum:y}))}function gi(e,n){typeof e=="string"&&(e={file:e});let i=S(e,Pi,n);if(!i)return;let t={...i};return s(i.file)&&(t.file=m(i.file,n)),s(i.title)&&(t.title=m(i.title,r("title",n))),s(i.level)&&(t.level=_(i.level,{min:-1,max:6,integer:!0,...r("level",n)})),!t.title&&!t.file?p("export articles must specify file or part/chapter title",n):t}function hi(e){var n;return(n=e?.filter(i=>!!i.file))!==null&&n!==void 0?n:[]}function Ai(e){return hi(e)[0]}function Di(e,n){if(typeof e=="string"){let o,u;if(e.startsWith(".")?Object.entries(en).forEach(([d,f])=>{e===d&&(o=f)}):e.includes(".")&&(u=e),!o&&!u&&(o=se(e,n),!o))return;e={format:o,output:u}}let i=S(e,oe,{...n,suppressWarnings:!0,keepExtraKeys:!0});if(i===void 0)return;let t,a,c;if(i.template===null?c=null:s(i.template)&&(c=m(i.template,r("template",n))),s(i.output)){let o=r("output",n),u=m(i.output,o);if(u&&(Object.keys(en).forEach(d=>{u.endsWith(d)&&(a=u)}),u.slice(1).includes(".")||(a=u),!a))return p(`unknown export output extension: ${u}`,o)}if(s(i.format)&&(t=se(i.format,r("format",n)),!t))return;if(!t&&!c&&!a)return p("export must specify one of: format, template, or output",n);let l={...i,format:t,output:a,template:c};if(s(i.id)&&(l.id=m(i.id,r("id",n))),s(i.zip)&&(l.zip=A(i.zip,r("zip",n))),s(i.articles)){let o=h(i.articles,{coerce:!0,...r("articles",n)},(d,f)=>gi(d,r(`articles.${f}`,n))),u=Ai(o);o?.length?u?o.length>1&&l.format&&!bi.includes(l.format)?(l.format===y.xml&&!s(i.sub_articles)?p("multiple articles are not supported for 'jats' export - instead specify one article with additional sub_articles",n):p("multiple articles are only supported for 'tex', 'typst', and 'pdf' exports",n),l.articles=[u]):l.articles=o:(p("no files found in export article list",n),l.articles=void 0):l.articles=void 0}if(s(i.top_level)&&(l.top_level=T(i.top_level||"sections",{...r("top_level",n),choices:["parts","chapters","sections"]})),s(i.sub_articles)&&(l.format!==y.xml?(p("sub_articles are only supported for 'jats' export",n),l.sub_articles=void 0):l.sub_articles=h(i.sub_articles,{coerce:!0,...r("sub_articles",n)},(o,u)=>m(o,r(`sub_articles.${u}`,n)))),s(i.toc)){let o=r("toc",n);l.articles||l.sub_articles?(p("export cannot define both toc and articles/sub_articles; ignoring toc",o),l.toc=void 0):typeof i.toc=="string"?(l.tocFile=i.toc,l.toc=void 0):l.toc=qe(i.toc,o)}return l}var Ni={required:[],optional:["title","url","id","filename","format","static"],alias:{ref:"id",file:"url"}};function Oi(e,n){typeof e=="string"&&(e={url:e});let i=S(e,Ni,n);if(i===void 0)return;let t={};return s(i.id)&&(t.id=m(i.id,r("id",n))),s(i.url)&&(t.url=m(i.url,r("url",n))),t.url&&t.id?p("download must define only one of id and file/url, not both",n):!t.url&&!t.id?p("download must define either id or file/url",n):(s(i.title)&&(t.title=m(i.title,r("title",n))),s(i.filename)&&(t.filename=m(i.filename,r("filename",n))),s(i.format)&&(t.format=se(i.format,r("format",n))),s(i.static)&&(t.static=A(i.static,r("static",n))),t)}function rn(e,n){if(e===void 0)return;let i={coerce:!0,...r("downloads",n)},t=h(e,i,(l,o)=>Oi(l,r(`downloads.${o}`,n)));if(!t)return;let a=new Set,c=new Set;return t.forEach((l,o)=>{l.id&&t.slice(o+1).map(({id:u})=>u).includes(l.id)&&a.add(l.id),l.url&&t.slice(o+1).map(({url:u})=>u).includes(l.url)&&c.add(l.url)}),a.size&&p(`duplicate download ids: ${[...a].join(", ")}`,i),c.size&&p(`duplicate download urls: ${[...c].join(", ")}`,i),t}var Nn=kn(gn(),1);var Yi={"0BSD":{name:"BSD Zero Clause License",osi:!0},"3D-Slicer-1.0":{name:"3D Slicer License v1.0"},AAL:{name:"Attribution Assurance License",osi:!0},Abstyles:{name:"Abstyles License"},"AdaCore-doc":{name:"AdaCore Doc License"},"Adobe-2006":{name:"Adobe Systems Incorporated Source Code License Agreement"},"Adobe-Display-PostScript":{name:"Adobe Display PostScript License"},"Adobe-Glyph":{name:"Adobe Glyph List License"},"Adobe-Utopia":{name:"Adobe Utopia Font License"},ADSL:{name:"Amazon Digital Services License"},"AFL-1.1":{name:"Academic Free License v1.1",osi:!0,free:!0},"AFL-1.2":{name:"Academic Free License v1.2",osi:!0,free:!0},"AFL-2.0":{name:"Academic Free License v2.0",osi:!0,free:!0},"AFL-2.1":{name:"Academic Free License v2.1",osi:!0,free:!0},"AFL-3.0":{name:"Academic Free License v3.0",osi:!0,free:!0},Afmparse:{name:"Afmparse License"},"AGPL-1.0-only":{name:"Affero General Public License v1.0 only"},"AGPL-1.0-or-later":{name:"Affero General Public License v1.0 or later"},"AGPL-3.0-only":{name:"GNU Affero General Public License v3.0 only",osi:!0,free:!0},"AGPL-3.0-or-later":{name:"GNU Affero General Public License v3.0 or later",osi:!0,free:!0},Aladdin:{name:"Aladdin Free Public License"},"AMD-newlib":{name:"AMD newlib License"},AMDPLPA:{name:"AMD's plpa_map.c License"},AML:{name:"Apple MIT License"},"AML-glslang":{name:"AML glslang variant License"},AMPAS:{name:"Academy of Motion Picture Arts and Sciences BSD"},"ANTLR-PD":{name:"ANTLR Software Rights Notice"},"ANTLR-PD-fallback":{name:"ANTLR Software Rights Notice with license fallback"},"any-OSI":{name:"Any OSI License"},"any-OSI-perl-modules":{name:"Any OSI License - Perl Modules"},"Apache-1.0":{name:"Apache License 1.0",free:!0},"Apache-1.1":{name:"Apache License 1.1",osi:!0,free:!0},"Apache-2.0":{name:"Apache License 2.0",osi:!0,free:!0},APAFML:{name:"Adobe Postscript AFM License"},"APL-1.0":{name:"Adaptive Public License 1.0",osi:!0},"App-s2p":{name:"App::s2p License"},"APSL-1.0":{name:"Apple Public Source License 1.0",osi:!0},"APSL-1.1":{name:"Apple Public Source License 1.1",osi:!0},"APSL-1.2":{name:"Apple Public Source License 1.2",osi:!0},"APSL-2.0":{name:"Apple Public Source License 2.0",osi:!0,free:!0},"Arphic-1999":{name:"Arphic Public License"},"Artistic-1.0":{name:"Artistic License 1.0",osi:!0},"Artistic-1.0-cl8":{name:"Artistic License 1.0 w/clause 8",osi:!0},"Artistic-1.0-Perl":{name:"Artistic License 1.0 (Perl)",osi:!0},"Artistic-2.0":{name:"Artistic License 2.0",osi:!0,free:!0},"Artistic-dist":{name:"Artistic License 1.0 (dist)"},"Aspell-RU":{name:"Aspell Russian License"},"ASWF-Digital-Assets-1.0":{name:"ASWF Digital Assets License version 1.0"},"ASWF-Digital-Assets-1.1":{name:"ASWF Digital Assets License 1.1"},Baekmuk:{name:"Baekmuk License"},Bahyph:{name:"Bahyph License"},Barr:{name:"Barr License"},"bcrypt-Solar-Designer":{name:"bcrypt Solar Designer License"},Beerware:{name:"Beerware License"},"Bitstream-Charter":{name:"Bitstream Charter Font License"},"Bitstream-Vera":{name:"Bitstream Vera Font License"},"BitTorrent-1.0":{name:"BitTorrent Open Source License v1.0"},"BitTorrent-1.1":{name:"BitTorrent Open Source License v1.1",free:!0},blessing:{name:"SQLite Blessing"},"BlueOak-1.0.0":{name:"Blue Oak Model License 1.0.0",osi:!0},"Boehm-GC":{name:"Boehm-Demers-Weiser GC License"},"Boehm-GC-without-fee":{name:"Boehm-Demers-Weiser GC License (without fee)"},Borceux:{name:"Borceux license"},"Brian-Gladman-2-Clause":{name:"Brian Gladman 2-Clause License"},"Brian-Gladman-3-Clause":{name:"Brian Gladman 3-Clause License"},"BSD-1-Clause":{name:"BSD 1-Clause License",osi:!0},"BSD-2-Clause":{name:'BSD 2-Clause "Simplified" License',osi:!0,free:!0},"BSD-2-Clause-Darwin":{name:"BSD 2-Clause - Ian Darwin variant"},"BSD-2-Clause-first-lines":{name:"BSD 2-Clause - first lines requirement"},"BSD-2-Clause-Patent":{name:"BSD-2-Clause Plus Patent License",osi:!0},"BSD-2-Clause-pkgconf-disclaimer":{name:"BSD 2-Clause pkgconf disclaimer variant"},"BSD-2-Clause-Views":{name:"BSD 2-Clause with views sentence"},"BSD-3-Clause":{name:'BSD 3-Clause "New" or "Revised" License',osi:!0,free:!0},"BSD-3-Clause-acpica":{name:"BSD 3-Clause acpica variant"},"BSD-3-Clause-Attribution":{name:"BSD with attribution"},"BSD-3-Clause-Clear":{name:"BSD 3-Clause Clear License",free:!0},"BSD-3-Clause-flex":{name:"BSD 3-Clause Flex variant"},"BSD-3-Clause-HP":{name:"Hewlett-Packard BSD variant license"},"BSD-3-Clause-LBNL":{name:"Lawrence Berkeley National Labs BSD variant license",osi:!0},"BSD-3-Clause-Modification":{name:"BSD 3-Clause Modification"},"BSD-3-Clause-No-Military-License":{name:"BSD 3-Clause No Military License"},"BSD-3-Clause-No-Nuclear-License":{name:"BSD 3-Clause No Nuclear License"},"BSD-3-Clause-No-Nuclear-License-2014":{name:"BSD 3-Clause No Nuclear License 2014"},"BSD-3-Clause-No-Nuclear-Warranty":{name:"BSD 3-Clause No Nuclear Warranty"},"BSD-3-Clause-Open-MPI":{name:"BSD 3-Clause Open MPI variant"},"BSD-3-Clause-Sun":{name:"BSD 3-Clause Sun Microsystems"},"BSD-4-Clause":{name:'BSD 4-Clause "Original" or "Old" License',free:!0},"BSD-4-Clause-Shortened":{name:"BSD 4 Clause Shortened"},"BSD-4-Clause-UC":{name:"BSD-4-Clause (University of California-Specific)"},"BSD-4.3RENO":{name:"BSD 4.3 RENO License"},"BSD-4.3TAHOE":{name:"BSD 4.3 TAHOE License"},"BSD-Advertising-Acknowledgement":{name:"BSD Advertising Acknowledgement License"},"BSD-Attribution-HPND-disclaimer":{name:"BSD with Attribution and HPND disclaimer"},"BSD-Inferno-Nettverk":{name:"BSD-Inferno-Nettverk"},"BSD-Protection":{name:"BSD Protection License"},"BSD-Source-beginning-file":{name:"BSD Source Code Attribution - beginning of file variant"},"BSD-Source-Code":{name:"BSD Source Code Attribution"},"BSD-Systemics":{name:"Systemics BSD variant license"},"BSD-Systemics-W3Works":{name:"Systemics W3Works BSD variant license"},"BSL-1.0":{name:"Boost Software License 1.0",osi:!0,free:!0},"BUSL-1.1":{name:"Business Source License 1.1"},"bzip2-1.0.6":{name:"bzip2 and libbzip2 License v1.0.6"},"C-UDA-1.0":{name:"Computational Use of Data Agreement v1.0"},"CAL-1.0":{name:"Cryptographic Autonomy License 1.0",osi:!0},"CAL-1.0-Combined-Work-Exception":{name:"Cryptographic Autonomy License 1.0 (Combined Work Exception)",osi:!0},Caldera:{name:"Caldera License"},"Caldera-no-preamble":{name:"Caldera License (without preamble)"},Catharon:{name:"Catharon License"},"CATOSL-1.1":{name:"Computer Associates Trusted Open Source License 1.1",osi:!0},"CC-BY-1.0":{name:"Creative Commons Attribution 1.0 Generic",CC:!0},"CC-BY-2.0":{name:"Creative Commons Attribution 2.0 Generic",CC:!0},"CC-BY-2.5":{name:"Creative Commons Attribution 2.5 Generic",CC:!0},"CC-BY-2.5-AU":{name:"Creative Commons Attribution 2.5 Australia",CC:!0},"CC-BY-3.0":{name:"Creative Commons Attribution 3.0 Unported",CC:!0},"CC-BY-3.0-AT":{name:"Creative Commons Attribution 3.0 Austria",CC:!0},"CC-BY-3.0-AU":{name:"Creative Commons Attribution 3.0 Australia",CC:!0},"CC-BY-3.0-DE":{name:"Creative Commons Attribution 3.0 Germany",CC:!0},"CC-BY-3.0-IGO":{name:"Creative Commons Attribution 3.0 IGO",CC:!0},"CC-BY-3.0-NL":{name:"Creative Commons Attribution 3.0 Netherlands",CC:!0},"CC-BY-3.0-US":{name:"Creative Commons Attribution 3.0 United States",CC:!0},"CC-BY-4.0":{name:"Creative Commons Attribution 4.0 International",free:!0,CC:!0},"CC-BY-NC-1.0":{name:"Creative Commons Attribution Non Commercial 1.0 Generic",CC:!0},"CC-BY-NC-2.0":{name:"Creative Commons Attribution Non Commercial 2.0 Generic",CC:!0},"CC-BY-NC-2.5":{name:"Creative Commons Attribution Non Commercial 2.5 Generic",CC:!0},"CC-BY-NC-3.0":{name:"Creative Commons Attribution Non Commercial 3.0 Unported",CC:!0},"CC-BY-NC-3.0-DE":{name:"Creative Commons Attribution Non Commercial 3.0 Germany",CC:!0},"CC-BY-NC-4.0":{name:"Creative Commons Attribution Non Commercial 4.0 International",CC:!0},"CC-BY-NC-ND-1.0":{name:"Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic",CC:!0},"CC-BY-NC-ND-2.0":{name:"Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic",CC:!0},"CC-BY-NC-ND-2.5":{name:"Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic",CC:!0},"CC-BY-NC-ND-3.0":{name:"Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported",CC:!0},"CC-BY-NC-ND-3.0-DE":{name:"Creative Commons Attribution Non Commercial No Derivatives 3.0 Germany",CC:!0},"CC-BY-NC-ND-3.0-IGO":{name:"Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO",CC:!0},"CC-BY-NC-ND-4.0":{name:"Creative Commons Attribution Non Commercial No Derivatives 4.0 International",CC:!0},"CC-BY-NC-SA-1.0":{name:"Creative Commons Attribution Non Commercial Share Alike 1.0 Generic",CC:!0},"CC-BY-NC-SA-2.0":{name:"Creative Commons Attribution Non Commercial Share Alike 2.0 Generic",CC:!0},"CC-BY-NC-SA-2.0-DE":{name:"Creative Commons Attribution Non Commercial Share Alike 2.0 Germany",CC:!0},"CC-BY-NC-SA-2.0-FR":{name:"Creative Commons Attribution-NonCommercial-ShareAlike 2.0 France",CC:!0},"CC-BY-NC-SA-2.0-UK":{name:"Creative Commons Attribution Non Commercial Share Alike 2.0 England and Wales",CC:!0},"CC-BY-NC-SA-2.5":{name:"Creative Commons Attribution Non Commercial Share Alike 2.5 Generic",CC:!0},"CC-BY-NC-SA-3.0":{name:"Creative Commons Attribution Non Commercial Share Alike 3.0 Unported",CC:!0},"CC-BY-NC-SA-3.0-DE":{name:"Creative Commons Attribution Non Commercial Share Alike 3.0 Germany",CC:!0},"CC-BY-NC-SA-3.0-IGO":{name:"Creative Commons Attribution Non Commercial Share Alike 3.0 IGO",CC:!0},"CC-BY-NC-SA-4.0":{name:"Creative Commons Attribution Non Commercial Share Alike 4.0 International",CC:!0},"CC-BY-ND-1.0":{name:"Creative Commons Attribution No Derivatives 1.0 Generic",CC:!0},"CC-BY-ND-2.0":{name:"Creative Commons Attribution No Derivatives 2.0 Generic",CC:!0},"CC-BY-ND-2.5":{name:"Creative Commons Attribution No Derivatives 2.5 Generic",CC:!0},"CC-BY-ND-3.0":{name:"Creative Commons Attribution No Derivatives 3.0 Unported",CC:!0},"CC-BY-ND-3.0-DE":{name:"Creative Commons Attribution No Derivatives 3.0 Germany",CC:!0},"CC-BY-ND-4.0":{name:"Creative Commons Attribution No Derivatives 4.0 International",CC:!0},"CC-BY-SA-1.0":{name:"Creative Commons Attribution Share Alike 1.0 Generic",CC:!0},"CC-BY-SA-2.0":{name:"Creative Commons Attribution Share Alike 2.0 Generic",CC:!0},"CC-BY-SA-2.0-UK":{name:"Creative Commons Attribution Share Alike 2.0 England and Wales",CC:!0},"CC-BY-SA-2.1-JP":{name:"Creative Commons Attribution Share Alike 2.1 Japan",CC:!0},"CC-BY-SA-2.5":{name:"Creative Commons Attribution Share Alike 2.5 Generic",CC:!0},"CC-BY-SA-3.0":{name:"Creative Commons Attribution Share Alike 3.0 Unported",CC:!0},"CC-BY-SA-3.0-AT":{name:"Creative Commons Attribution Share Alike 3.0 Austria",CC:!0},"CC-BY-SA-3.0-DE":{name:"Creative Commons Attribution Share Alike 3.0 Germany",CC:!0},"CC-BY-SA-3.0-IGO":{name:"Creative Commons Attribution-ShareAlike 3.0 IGO",CC:!0},"CC-BY-SA-4.0":{name:"Creative Commons Attribution Share Alike 4.0 International",free:!0,CC:!0},"CC-PDDC":{name:"Creative Commons Public Domain Dedication and Certification",CC:!0},"CC-PDM-1.0":{name:"Creative Commons Public Domain Mark 1.0 Universal",CC:!0},"CC-SA-1.0":{name:"Creative Commons Share Alike 1.0 Generic",CC:!0},"CC0-1.0":{name:"Creative Commons Zero v1.0 Universal",free:!0,CC:!0},"CDDL-1.0":{name:"Common Development and Distribution License 1.0",osi:!0,free:!0},"CDDL-1.1":{name:"Common Development and Distribution License 1.1"},"CDL-1.0":{name:"Common Documentation License 1.0"},"CDLA-Permissive-1.0":{name:"Community Data License Agreement Permissive 1.0"},"CDLA-Permissive-2.0":{name:"Community Data License Agreement Permissive 2.0"},"CDLA-Sharing-1.0":{name:"Community Data License Agreement Sharing 1.0"},"CECILL-1.0":{name:"CeCILL Free Software License Agreement v1.0"},"CECILL-1.1":{name:"CeCILL Free Software License Agreement v1.1"},"CECILL-2.0":{name:"CeCILL Free Software License Agreement v2.0",free:!0},"CECILL-2.1":{name:"CeCILL Free Software License Agreement v2.1",osi:!0},"CECILL-B":{name:"CeCILL-B Free Software License Agreement",free:!0},"CECILL-C":{name:"CeCILL-C Free Software License Agreement",free:!0},"CERN-OHL-1.1":{name:"CERN Open Hardware Licence v1.1"},"CERN-OHL-1.2":{name:"CERN Open Hardware Licence v1.2"},"CERN-OHL-P-2.0":{name:"CERN Open Hardware Licence Version 2 - Permissive",osi:!0},"CERN-OHL-S-2.0":{name:"CERN Open Hardware Licence Version 2 - Strongly Reciprocal",osi:!0},"CERN-OHL-W-2.0":{name:"CERN Open Hardware Licence Version 2 - Weakly Reciprocal",osi:!0},CFITSIO:{name:"CFITSIO License"},"check-cvs":{name:"check-cvs License"},checkmk:{name:"Checkmk License"},ClArtistic:{name:"Clarified Artistic License",free:!0},Clips:{name:"Clips License"},"CMU-Mach":{name:"CMU Mach License"},"CMU-Mach-nodoc":{name:"CMU Mach - no notices-in-documentation variant"},"CNRI-Jython":{name:"CNRI Jython License"},"CNRI-Python":{name:"CNRI Python License",osi:!0},"CNRI-Python-GPL-Compatible":{name:"CNRI Python Open Source GPL Compatible License Agreement"},"COIL-1.0":{name:"Copyfree Open Innovation License"},"Community-Spec-1.0":{name:"Community Specification License 1.0"},"Condor-1.1":{name:"Condor Public License v1.1",free:!0},"copyleft-next-0.3.0":{name:"copyleft-next 0.3.0"},"copyleft-next-0.3.1":{name:"copyleft-next 0.3.1"},"Cornell-Lossless-JPEG":{name:"Cornell Lossless JPEG License"},"CPAL-1.0":{name:"Common Public Attribution License 1.0",osi:!0,free:!0},"CPL-1.0":{name:"Common Public License 1.0",osi:!0,free:!0},"CPOL-1.02":{name:"Code Project Open License 1.02"},Cronyx:{name:"Cronyx License"},Crossword:{name:"Crossword License"},CryptoSwift:{name:"CryptoSwift License"},CrystalStacker:{name:"CrystalStacker License"},"CUA-OPL-1.0":{name:"CUA Office Public License v1.0",osi:!0},Cube:{name:"Cube License"},curl:{name:"curl License"},"cve-tou":{name:"Common Vulnerability Enumeration ToU License"},"D-FSL-1.0":{name:"Deutsche Freie Software Lizenz"},"DEC-3-Clause":{name:"DEC 3-Clause License"},diffmark:{name:"diffmark license"},"DL-DE-BY-2.0":{name:"Data licence Germany \u2013 attribution \u2013 version 2.0"},"DL-DE-ZERO-2.0":{name:"Data licence Germany \u2013 zero \u2013 version 2.0"},DOC:{name:"DOC License"},"DocBook-DTD":{name:"DocBook DTD License"},"DocBook-Schema":{name:"DocBook Schema License"},"DocBook-Stylesheet":{name:"DocBook Stylesheet License"},"DocBook-XML":{name:"DocBook XML License"},Dotseqn:{name:"Dotseqn License"},"DRL-1.0":{name:"Detection Rule License 1.0"},"DRL-1.1":{name:"Detection Rule License 1.1"},DSDP:{name:"DSDP License"},dtoa:{name:"David M. Gay dtoa License"},dvipdfm:{name:"dvipdfm License"},"ECL-1.0":{name:"Educational Community License v1.0",osi:!0},"ECL-2.0":{name:"Educational Community License v2.0",osi:!0,free:!0},"EFL-1.0":{name:"Eiffel Forum License v1.0",osi:!0},"EFL-2.0":{name:"Eiffel Forum License v2.0",osi:!0,free:!0},eGenix:{name:"eGenix.com Public License 1.1.0"},"Elastic-2.0":{name:"Elastic License 2.0"},Entessa:{name:"Entessa Public License v1.0",osi:!0},EPICS:{name:"EPICS Open License"},"EPL-1.0":{name:"Eclipse Public License 1.0",osi:!0,free:!0},"EPL-2.0":{name:"Eclipse Public License 2.0",osi:!0,free:!0},"ErlPL-1.1":{name:"Erlang Public License v1.1"},"etalab-2.0":{name:"Etalab Open License 2.0"},EUDatagrid:{name:"EU DataGrid Software License",osi:!0,free:!0},"EUPL-1.0":{name:"European Union Public License 1.0"},"EUPL-1.1":{name:"European Union Public License 1.1",osi:!0,free:!0},"EUPL-1.2":{name:"European Union Public License 1.2",osi:!0,free:!0},Eurosym:{name:"Eurosym License"},Fair:{name:"Fair License",osi:!0},FBM:{name:"Fuzzy Bitmap License"},"FDK-AAC":{name:"Fraunhofer FDK AAC Codec Library"},"Ferguson-Twofish":{name:"Ferguson Twofish License"},"Frameworx-1.0":{name:"Frameworx Open License 1.0",osi:!0},"FreeBSD-DOC":{name:"FreeBSD Documentation License"},FreeImage:{name:"FreeImage Public License v1.0"},FSFAP:{name:"FSF All Permissive License",free:!0},"FSFAP-no-warranty-disclaimer":{name:"FSF All Permissive License (without Warranty)"},FSFUL:{name:"FSF Unlimited License"},FSFULLR:{name:"FSF Unlimited License (with License Retention)"},FSFULLRSD:{name:"FSF Unlimited License (with License Retention and Short Disclaimer)"},FSFULLRWD:{name:"FSF Unlimited License (With License Retention and Warranty Disclaimer)"},"FSL-1.1-ALv2":{name:"Functional Source License, Version 1.1, ALv2 Future License"},"FSL-1.1-MIT":{name:"Functional Source License, Version 1.1, MIT Future License"},FTL:{name:"Freetype Project License",free:!0},Furuseth:{name:"Furuseth License"},fwlw:{name:"fwlw License"},"Game-Programming-Gems":{name:"Game Programming Gems License"},"GCR-docs":{name:"Gnome GCR Documentation License"},GD:{name:"GD License"},"generic-xts":{name:"Generic XTS License"},"GFDL-1.1-invariants-only":{name:"GNU Free Documentation License v1.1 only - invariants"},"GFDL-1.1-invariants-or-later":{name:"GNU Free Documentation License v1.1 or later - invariants"},"GFDL-1.1-no-invariants-only":{name:"GNU Free Documentation License v1.1 only - no invariants"},"GFDL-1.1-no-invariants-or-later":{name:"GNU Free Documentation License v1.1 or later - no invariants"},"GFDL-1.1-only":{name:"GNU Free Documentation License v1.1 only",free:!0},"GFDL-1.1-or-later":{name:"GNU Free Documentation License v1.1 or later",free:!0},"GFDL-1.2-invariants-only":{name:"GNU Free Documentation License v1.2 only - invariants"},"GFDL-1.2-invariants-or-later":{name:"GNU Free Documentation License v1.2 or later - invariants"},"GFDL-1.2-no-invariants-only":{name:"GNU Free Documentation License v1.2 only - no invariants"},"GFDL-1.2-no-invariants-or-later":{name:"GNU Free Documentation License v1.2 or later - no invariants"},"GFDL-1.2-only":{name:"GNU Free Documentation License v1.2 only",free:!0},"GFDL-1.2-or-later":{name:"GNU Free Documentation License v1.2 or later",free:!0},"GFDL-1.3-invariants-only":{name:"GNU Free Documentation License v1.3 only - invariants"},"GFDL-1.3-invariants-or-later":{name:"GNU Free Documentation License v1.3 or later - invariants"},"GFDL-1.3-no-invariants-only":{name:"GNU Free Documentation License v1.3 only - no invariants"},"GFDL-1.3-no-invariants-or-later":{name:"GNU Free Documentation License v1.3 or later - no invariants"},"GFDL-1.3-only":{name:"GNU Free Documentation License v1.3 only",free:!0},"GFDL-1.3-or-later":{name:"GNU Free Documentation License v1.3 or later",free:!0},Giftware:{name:"Giftware License"},GL2PS:{name:"GL2PS License"},Glide:{name:"3dfx Glide License"},Glulxe:{name:"Glulxe License"},GLWTPL:{name:"Good Luck With That Public License"},gnuplot:{name:"gnuplot License",free:!0},"GPL-1.0-only":{name:"GNU General Public License v1.0 only"},"GPL-1.0-or-later":{name:"GNU General Public License v1.0 or later"},"GPL-2.0-only":{name:"GNU General Public License v2.0 only",osi:!0,free:!0},"GPL-2.0-or-later":{name:"GNU General Public License v2.0 or later",osi:!0,free:!0},"GPL-3.0-only":{name:"GNU General Public License v3.0 only",osi:!0,free:!0},"GPL-3.0-or-later":{name:"GNU General Public License v3.0 or later",osi:!0,free:!0},"Graphics-Gems":{name:"Graphics Gems License"},"gSOAP-1.3b":{name:"gSOAP Public License v1.3b"},gtkbook:{name:"gtkbook License"},Gutmann:{name:"Gutmann License"},HaskellReport:{name:"Haskell Language Report License"},HDF5:{name:"HDF5 License"},hdparm:{name:"hdparm License"},HIDAPI:{name:"HIDAPI License"},"Hippocratic-2.1":{name:"Hippocratic License 2.1"},"HP-1986":{name:"Hewlett-Packard 1986 License"},"HP-1989":{name:"Hewlett-Packard 1989 License"},HPND:{name:"Historical Permission Notice and Disclaimer",osi:!0,free:!0},"HPND-DEC":{name:"Historical Permission Notice and Disclaimer - DEC variant"},"HPND-doc":{name:"Historical Permission Notice and Disclaimer - documentation variant"},"HPND-doc-sell":{name:"Historical Permission Notice and Disclaimer - documentation sell variant"},"HPND-export-US":{name:"HPND with US Government export control warning"},"HPND-export-US-acknowledgement":{name:"HPND with US Government export control warning and acknowledgment"},"HPND-export-US-modify":{name:"HPND with US Government export control warning and modification rqmt"},"HPND-export2-US":{name:"HPND with US Government export control and 2 disclaimers"},"HPND-Fenneberg-Livingston":{name:"Historical Permission Notice and Disclaimer - Fenneberg-Livingston variant"},"HPND-INRIA-IMAG":{name:"Historical Permission Notice and Disclaimer - INRIA-IMAG variant"},"HPND-Intel":{name:"Historical Permission Notice and Disclaimer - Intel variant"},"HPND-Kevlin-Henney":{name:"Historical Permission Notice and Disclaimer - Kevlin Henney variant"},"HPND-Markus-Kuhn":{name:"Historical Permission Notice and Disclaimer - Markus Kuhn variant"},"HPND-merchantability-variant":{name:"Historical Permission Notice and Disclaimer - merchantability variant"},"HPND-MIT-disclaimer":{name:"Historical Permission Notice and Disclaimer with MIT disclaimer"},"HPND-Netrek":{name:"Historical Permission Notice and Disclaimer - Netrek variant"},"HPND-Pbmplus":{name:"Historical Permission Notice and Disclaimer - Pbmplus variant"},"HPND-sell-MIT-disclaimer-xserver":{name:"Historical Permission Notice and Disclaimer - sell xserver variant with MIT disclaimer"},"HPND-sell-regexpr":{name:"Historical Permission Notice and Disclaimer - sell regexpr variant"},"HPND-sell-variant":{name:"Historical Permission Notice and Disclaimer - sell variant"},"HPND-sell-variant-MIT-disclaimer":{name:"HPND sell variant with MIT disclaimer"},"HPND-sell-variant-MIT-disclaimer-rev":{name:"HPND sell variant with MIT disclaimer - reverse"},"HPND-UC":{name:"Historical Permission Notice and Disclaimer - University of California variant"},"HPND-UC-export-US":{name:"Historical Permission Notice and Disclaimer - University of California, US export warning"},HTMLTIDY:{name:"HTML Tidy License"},"IBM-pibs":{name:"IBM PowerPC Initialization and Boot Software"},ICU:{name:"ICU License",osi:!0},"IEC-Code-Components-EULA":{name:"IEC Code Components End-user licence agreement"},IJG:{name:"Independent JPEG Group License",free:!0},"IJG-short":{name:"Independent JPEG Group License - short"},ImageMagick:{name:"ImageMagick License"},iMatix:{name:"iMatix Standard Function Library Agreement",free:!0},Imlib2:{name:"Imlib2 License",free:!0},"Info-ZIP":{name:"Info-ZIP License"},"Inner-Net-2.0":{name:"Inner Net License v2.0"},InnoSetup:{name:"Inno Setup License"},Intel:{name:"Intel Open Source License",osi:!0,free:!0},"Intel-ACPI":{name:"Intel ACPI Software License Agreement"},"Interbase-1.0":{name:"Interbase Public License v1.0"},IPA:{name:"IPA Font License",osi:!0,free:!0},"IPL-1.0":{name:"IBM Public License v1.0",osi:!0,free:!0},ISC:{name:"ISC License",osi:!0,free:!0},"ISC-Veillard":{name:"ISC Veillard variant"},Jam:{name:"Jam License",osi:!0},"JasPer-2.0":{name:"JasPer License"},jove:{name:"Jove License"},"JPL-image":{name:"JPL Image Use Policy"},JPNIC:{name:"Japan Network Information Center License"},JSON:{name:"JSON License"},Kastrup:{name:"Kastrup License"},Kazlib:{name:"Kazlib License"},"Knuth-CTAN":{name:"Knuth CTAN License"},"LAL-1.2":{name:"Licence Art Libre 1.2"},"LAL-1.3":{name:"Licence Art Libre 1.3"},Latex2e:{name:"Latex2e License"},"Latex2e-translated-notice":{name:"Latex2e with translated notice permission"},Leptonica:{name:"Leptonica License"},"LGPL-2.0-only":{name:"GNU Library General Public License v2 only",osi:!0},"LGPL-2.0-or-later":{name:"GNU Library General Public License v2 or later",osi:!0},"LGPL-2.1-only":{name:"GNU Lesser General Public License v2.1 only",osi:!0,free:!0},"LGPL-2.1-or-later":{name:"GNU Lesser General Public License v2.1 or later",osi:!0,free:!0},"LGPL-3.0-only":{name:"GNU Lesser General Public License v3.0 only",osi:!0,free:!0},"LGPL-3.0-or-later":{name:"GNU Lesser General Public License v3.0 or later",osi:!0,free:!0},LGPLLR:{name:"Lesser General Public License For Linguistic Resources"},Libpng:{name:"libpng License"},"libpng-1.6.35":{name:"PNG Reference Library License v1 (for libpng 0.5 through 1.6.35)"},"libpng-2.0":{name:"PNG Reference Library version 2"},"libselinux-1.0":{name:"libselinux public domain notice"},libtiff:{name:"libtiff License"},"libutil-David-Nugent":{name:"libutil David Nugent License"},"LiLiQ-P-1.1":{name:"Licence Libre du Qu\xE9bec \u2013 Permissive version 1.1",osi:!0},"LiLiQ-R-1.1":{name:"Licence Libre du Qu\xE9bec \u2013 R\xE9ciprocit\xE9 version 1.1",osi:!0},"LiLiQ-Rplus-1.1":{name:"Licence Libre du Qu\xE9bec \u2013 R\xE9ciprocit\xE9 forte version 1.1",osi:!0},"Linux-man-pages-1-para":{name:"Linux man-pages - 1 paragraph"},"Linux-man-pages-copyleft":{name:"Linux man-pages Copyleft"},"Linux-man-pages-copyleft-2-para":{name:"Linux man-pages Copyleft - 2 paragraphs"},"Linux-man-pages-copyleft-var":{name:"Linux man-pages Copyleft Variant"},"Linux-OpenIB":{name:"Linux Kernel Variant of OpenIB.org license"},LOOP:{name:"Common Lisp LOOP License"},"LPD-document":{name:"LPD Documentation License"},"LPL-1.0":{name:"Lucent Public License Version 1.0",osi:!0},"LPL-1.02":{name:"Lucent Public License v1.02",osi:!0,free:!0},"LPPL-1.0":{name:"LaTeX Project Public License v1.0"},"LPPL-1.1":{name:"LaTeX Project Public License v1.1"},"LPPL-1.2":{name:"LaTeX Project Public License v1.2",free:!0},"LPPL-1.3a":{name:"LaTeX Project Public License v1.3a",free:!0},"LPPL-1.3c":{name:"LaTeX Project Public License v1.3c",osi:!0},lsof:{name:"lsof License"},"Lucida-Bitmap-Fonts":{name:"Lucida Bitmap Fonts License"},"LZMA-SDK-9.11-to-9.20":{name:"LZMA SDK License (versions 9.11 to 9.20)"},"LZMA-SDK-9.22":{name:"LZMA SDK License (versions 9.22 and beyond)"},"Mackerras-3-Clause":{name:"Mackerras 3-Clause License"},"Mackerras-3-Clause-acknowledgment":{name:"Mackerras 3-Clause - acknowledgment variant"},magaz:{name:"magaz License"},mailprio:{name:"mailprio License"},MakeIndex:{name:"MakeIndex License"},man2html:{name:"man2html License"},"Martin-Birgmeier":{name:"Martin Birgmeier License"},"McPhee-slideshow":{name:"McPhee Slideshow License"},metamail:{name:"metamail License"},Minpack:{name:"Minpack License"},MIPS:{name:"MIPS License"},MirOS:{name:"The MirOS Licence",osi:!0},MIT:{name:"MIT License",osi:!0,free:!0},"MIT-0":{name:"MIT No Attribution",osi:!0},"MIT-advertising":{name:"Enlightenment License (e16)"},"MIT-Click":{name:"MIT Click License"},"MIT-CMU":{name:"CMU License"},"MIT-enna":{name:"enna License"},"MIT-feh":{name:"feh License"},"MIT-Festival":{name:"MIT Festival Variant"},"MIT-Khronos-old":{name:"MIT Khronos - old variant"},"MIT-Modern-Variant":{name:"MIT License Modern Variant",osi:!0},"MIT-open-group":{name:"MIT Open Group variant"},"MIT-testregex":{name:"MIT testregex Variant"},"MIT-Wu":{name:"MIT Tom Wu Variant"},MITNFA:{name:"MIT +no-false-attribs license"},MMIXware:{name:"MMIXware License"},Motosoto:{name:"Motosoto License",osi:!0},"MPEG-SSG":{name:"MPEG Software Simulation"},"mpi-permissive":{name:"mpi Permissive License"},mpich2:{name:"mpich2 License"},"MPL-1.0":{name:"Mozilla Public License 1.0",osi:!0},"MPL-1.1":{name:"Mozilla Public License 1.1",osi:!0,free:!0},"MPL-2.0":{name:"Mozilla Public License 2.0",osi:!0,free:!0},"MPL-2.0-no-copyleft-exception":{name:"Mozilla Public License 2.0 (no copyleft exception)",osi:!0},mplus:{name:"mplus Font License"},"MS-LPL":{name:"Microsoft Limited Public License"},"MS-PL":{name:"Microsoft Public License",osi:!0,free:!0},"MS-RL":{name:"Microsoft Reciprocal License",osi:!0,free:!0},MTLL:{name:"Matrix Template Library License"},"MulanPSL-1.0":{name:"Mulan Permissive Software License, Version 1"},"MulanPSL-2.0":{name:"Mulan Permissive Software License, Version 2",osi:!0},Multics:{name:"Multics License",osi:!0},Mup:{name:"Mup License"},"NAIST-2003":{name:"Nara Institute of Science and Technology License (2003)"},"NASA-1.3":{name:"NASA Open Source Agreement 1.3",osi:!0},Naumen:{name:"Naumen Public License",osi:!0},"NBPL-1.0":{name:"Net Boolean Public License v1"},"NCBI-PD":{name:"NCBI Public Domain Notice"},"NCGL-UK-2.0":{name:"Non-Commercial Government Licence"},NCL:{name:"NCL Source Code License"},NCSA:{name:"University of Illinois/NCSA Open Source License",osi:!0,free:!0},NetCDF:{name:"NetCDF license"},Newsletr:{name:"Newsletr License"},NGPL:{name:"Nethack General Public License",osi:!0},ngrep:{name:"ngrep License"},"NICTA-1.0":{name:"NICTA Public Software License, Version 1.0"},"NIST-PD":{name:"NIST Public Domain Notice"},"NIST-PD-fallback":{name:"NIST Public Domain Notice with license fallback"},"NIST-Software":{name:"NIST Software License"},"NLOD-1.0":{name:"Norwegian Licence for Open Government Data (NLOD) 1.0"},"NLOD-2.0":{name:"Norwegian Licence for Open Government Data (NLOD) 2.0"},NLPL:{name:"No Limit Public License"},Nokia:{name:"Nokia Open Source License",osi:!0,free:!0},NOSL:{name:"Netizen Open Source License",free:!0},Noweb:{name:"Noweb License"},"NPL-1.0":{name:"Netscape Public License v1.0",free:!0},"NPL-1.1":{name:"Netscape Public License v1.1",free:!0},"NPOSL-3.0":{name:"Non-Profit Open Software License 3.0",osi:!0},NRL:{name:"NRL License"},"NTIA-PD":{name:"NTIA Public Domain Notice"},NTP:{name:"NTP License",osi:!0},"NTP-0":{name:"NTP No Attribution"},"O-UDA-1.0":{name:"Open Use of Data Agreement v1.0"},OAR:{name:"OAR License"},"OCCT-PL":{name:"Open CASCADE Technology Public License"},"OCLC-2.0":{name:"OCLC Research Public License 2.0",osi:!0},"ODbL-1.0":{name:"Open Data Commons Open Database License v1.0",free:!0},"ODC-By-1.0":{name:"Open Data Commons Attribution License v1.0"},OFFIS:{name:"OFFIS License"},"OFL-1.0":{name:"SIL Open Font License 1.0",free:!0},"OFL-1.0-no-RFN":{name:"SIL Open Font License 1.0 with no Reserved Font Name"},"OFL-1.0-RFN":{name:"SIL Open Font License 1.0 with Reserved Font Name"},"OFL-1.1":{name:"SIL Open Font License 1.1",osi:!0,free:!0},"OFL-1.1-no-RFN":{name:"SIL Open Font License 1.1 with no Reserved Font Name",osi:!0},"OFL-1.1-RFN":{name:"SIL Open Font License 1.1 with Reserved Font Name",osi:!0},"OGC-1.0":{name:"OGC Software License, Version 1.0"},"OGDL-Taiwan-1.0":{name:"Taiwan Open Government Data License, version 1.0"},"OGL-Canada-2.0":{name:"Open Government Licence - Canada"},"OGL-UK-1.0":{name:"Open Government Licence v1.0"},"OGL-UK-2.0":{name:"Open Government Licence v2.0"},"OGL-UK-3.0":{name:"Open Government Licence v3.0"},OGTSL:{name:"Open Group Test Suite License",osi:!0},"OLDAP-1.1":{name:"Open LDAP Public License v1.1"},"OLDAP-1.2":{name:"Open LDAP Public License v1.2"},"OLDAP-1.3":{name:"Open LDAP Public License v1.3"},"OLDAP-1.4":{name:"Open LDAP Public License v1.4"},"OLDAP-2.0":{name:"Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)"},"OLDAP-2.0.1":{name:"Open LDAP Public License v2.0.1"},"OLDAP-2.1":{name:"Open LDAP Public License v2.1"},"OLDAP-2.2":{name:"Open LDAP Public License v2.2"},"OLDAP-2.2.1":{name:"Open LDAP Public License v2.2.1"},"OLDAP-2.2.2":{name:"Open LDAP Public License 2.2.2"},"OLDAP-2.3":{name:"Open LDAP Public License v2.3",free:!0},"OLDAP-2.4":{name:"Open LDAP Public License v2.4"},"OLDAP-2.5":{name:"Open LDAP Public License v2.5"},"OLDAP-2.6":{name:"Open LDAP Public License v2.6"},"OLDAP-2.7":{name:"Open LDAP Public License v2.7",free:!0},"OLDAP-2.8":{name:"Open LDAP Public License v2.8",osi:!0},"OLFL-1.3":{name:"Open Logistics Foundation License Version 1.3",osi:!0},OML:{name:"Open Market License"},"OpenPBS-2.3":{name:"OpenPBS v2.3 Software License"},OpenSSL:{name:"OpenSSL License",free:!0},"OpenSSL-standalone":{name:"OpenSSL License - standalone"},OpenVision:{name:"OpenVision License"},"OPL-1.0":{name:"Open Public License v1.0"},"OPL-UK-3.0":{name:"United Kingdom Open Parliament Licence v3.0"},"OPUBL-1.0":{name:"Open Publication License v1.0"},"OSET-PL-2.1":{name:"OSET Public License version 2.1",osi:!0},"OSL-1.0":{name:"Open Software License 1.0",osi:!0,free:!0},"OSL-1.1":{name:"Open Software License 1.1",free:!0},"OSL-2.0":{name:"Open Software License 2.0",osi:!0,free:!0},"OSL-2.1":{name:"Open Software License 2.1",osi:!0,free:!0},"OSL-3.0":{name:"Open Software License 3.0",osi:!0,free:!0},PADL:{name:"PADL License"},"Parity-6.0.0":{name:"The Parity Public License 6.0.0"},"Parity-7.0.0":{name:"The Parity Public License 7.0.0"},"PDDL-1.0":{name:"Open Data Commons Public Domain Dedication & License 1.0"},"PHP-3.0":{name:"PHP License v3.0",osi:!0},"PHP-3.01":{name:"PHP License v3.01",osi:!0,free:!0},Pixar:{name:"Pixar License"},pkgconf:{name:"pkgconf License"},Plexus:{name:"Plexus Classworlds License"},pnmstitch:{name:"pnmstitch License"},"PolyForm-Noncommercial-1.0.0":{name:"PolyForm Noncommercial License 1.0.0"},"PolyForm-Small-Business-1.0.0":{name:"PolyForm Small Business License 1.0.0"},PostgreSQL:{name:"PostgreSQL License",osi:!0},PPL:{name:"Peer Production License"},"PSF-2.0":{name:"Python Software Foundation License 2.0"},psfrag:{name:"psfrag License"},psutils:{name:"psutils License"},"Python-2.0":{name:"Python License 2.0",osi:!0,free:!0},"Python-2.0.1":{name:"Python License 2.0.1"},"python-ldap":{name:"Python ldap License"},Qhull:{name:"Qhull License"},"QPL-1.0":{name:"Q Public License 1.0",osi:!0,free:!0},"QPL-1.0-INRIA-2004":{name:"Q Public License 1.0 - INRIA 2004 variant"},radvd:{name:"radvd License"},Rdisc:{name:"Rdisc License"},"RHeCos-1.1":{name:"Red Hat eCos Public License v1.1"},"RPL-1.1":{name:"Reciprocal Public License 1.1",osi:!0},"RPL-1.5":{name:"Reciprocal Public License 1.5",osi:!0},"RPSL-1.0":{name:"RealNetworks Public Source License v1.0",osi:!0,free:!0},"RSA-MD":{name:"RSA Message-Digest License"},RSCPL:{name:"Ricoh Source Code Public License",osi:!0},Ruby:{name:"Ruby License",free:!0},"Ruby-pty":{name:"Ruby pty extension license"},"SAX-PD":{name:"Sax Public Domain Notice"},"SAX-PD-2.0":{name:"Sax Public Domain Notice 2.0"},Saxpath:{name:"Saxpath License"},SCEA:{name:"SCEA Shared Source License"},SchemeReport:{name:"Scheme Language Report License"},Sendmail:{name:"Sendmail License"},"Sendmail-8.23":{name:"Sendmail License 8.23"},"Sendmail-Open-Source-1.1":{name:"Sendmail Open Source License v1.1"},"SGI-B-1.0":{name:"SGI Free Software License B v1.0"},"SGI-B-1.1":{name:"SGI Free Software License B v1.1"},"SGI-B-2.0":{name:"SGI Free Software License B v2.0",free:!0},"SGI-OpenGL":{name:"SGI OpenGL License"},SGP4:{name:"SGP4 Permission Notice"},"SHL-0.5":{name:"Solderpad Hardware License v0.5"},"SHL-0.51":{name:"Solderpad Hardware License, Version 0.51"},"SimPL-2.0":{name:"Simple Public License 2.0",osi:!0},SISSL:{name:"Sun Industry Standards Source License v1.1",osi:!0,free:!0},"SISSL-1.2":{name:"Sun Industry Standards Source License v1.2"},SL:{name:"SL License"},Sleepycat:{name:"Sleepycat License",osi:!0,free:!0},"SMAIL-GPL":{name:"SMAIL General Public License"},SMLNJ:{name:"Standard ML of New Jersey License",free:!0},SMPPL:{name:"Secure Messaging Protocol Public License"},SNIA:{name:"SNIA Public License 1.1"},snprintf:{name:"snprintf License"},SOFA:{name:"SOFA Software License"},softSurfer:{name:"softSurfer License"},Soundex:{name:"Soundex License"},"Spencer-86":{name:"Spencer License 86"},"Spencer-94":{name:"Spencer License 94"},"Spencer-99":{name:"Spencer License 99"},"SPL-1.0":{name:"Sun Public License v1.0",osi:!0,free:!0},"ssh-keyscan":{name:"ssh-keyscan License"},"SSH-OpenSSH":{name:"SSH OpenSSH license"},"SSH-short":{name:"SSH short notice"},"SSLeay-standalone":{name:"SSLeay License - standalone"},"SSPL-1.0":{name:"Server Side Public License, v 1"},"SugarCRM-1.1.3":{name:"SugarCRM Public License v1.1.3"},"SUL-1.0":{name:"Sustainable Use License v1.0"},"Sun-PPP":{name:"Sun PPP License"},"Sun-PPP-2000":{name:"Sun PPP License (2000)"},SunPro:{name:"SunPro License"},SWL:{name:"Scheme Widget Library (SWL) Software License Agreement"},swrule:{name:"swrule License"},Symlinks:{name:"Symlinks License"},"TAPR-OHL-1.0":{name:"TAPR Open Hardware License v1.0"},TCL:{name:"TCL/TK License"},"TCP-wrappers":{name:"TCP Wrappers License"},TermReadKey:{name:"TermReadKey License"},"TGPPL-1.0":{name:"Transitive Grace Period Public Licence 1.0"},ThirdEye:{name:"ThirdEye License"},threeparttable:{name:"threeparttable License"},TMate:{name:"TMate Open Source License"},"TORQUE-1.1":{name:"TORQUE v2.5+ Software License v1.1"},TOSL:{name:"Trusster Open Source License"},TPDL:{name:"Time::ParseDate License"},"TPL-1.0":{name:"THOR Public License 1.0"},TrustedQSL:{name:"TrustedQSL License"},TTWL:{name:"Text-Tabs+Wrap License"},TTYP0:{name:"TTYP0 License"},"TU-Berlin-1.0":{name:"Technische Universitaet Berlin License 1.0"},"TU-Berlin-2.0":{name:"Technische Universitaet Berlin License 2.0"},"Ubuntu-font-1.0":{name:"Ubuntu Font Licence v1.0"},UCAR:{name:"UCAR License"},"UCL-1.0":{name:"Upstream Compatibility License v1.0",osi:!0},ulem:{name:"ulem License"},"UMich-Merit":{name:"Michigan/Merit Networks License"},"Unicode-3.0":{name:"Unicode License v3",osi:!0},"Unicode-DFS-2015":{name:"Unicode License Agreement - Data Files and Software (2015)"},"Unicode-DFS-2016":{name:"Unicode License Agreement - Data Files and Software (2016)",osi:!0},"Unicode-TOU":{name:"Unicode Terms of Use"},UnixCrypt:{name:"UnixCrypt License"},Unlicense:{name:"The Unlicense",osi:!0,free:!0},"Unlicense-libtelnet":{name:"Unlicense - libtelnet variant"},"Unlicense-libwhirlpool":{name:"Unlicense - libwhirlpool variant"},"UPL-1.0":{name:"Universal Permissive License v1.0",osi:!0,free:!0},"URT-RLE":{name:"Utah Raster Toolkit Run Length Encoded License"},Vim:{name:"Vim License",free:!0},VOSTROM:{name:"VOSTROM Public License for Open Source"},"VSL-1.0":{name:"Vovida Software License v1.0",osi:!0},W3C:{name:"W3C Software Notice and License (2002-12-31)",osi:!0,free:!0},"W3C-19980720":{name:"W3C Software Notice and License (1998-07-20)"},"W3C-20150513":{name:"W3C Software Notice and Document License (2015-05-13)",osi:!0},w3m:{name:"w3m License"},"Watcom-1.0":{name:"Sybase Open Watcom Public License 1.0",osi:!0},"Widget-Workshop":{name:"Widget Workshop License"},Wsuipa:{name:"Wsuipa License"},WTFPL:{name:"Do What The F*ck You Want To Public License",free:!0},wwl:{name:"WWL License"},X11:{name:"X11 License",free:!0},"X11-distribute-modifications-variant":{name:"X11 License Distribution Modification Variant"},"X11-swapped":{name:"X11 swapped final paragraphs"},"Xdebug-1.03":{name:"Xdebug License v 1.03"},Xerox:{name:"Xerox License"},Xfig:{name:"Xfig License"},"XFree86-1.1":{name:"XFree86 License 1.1",free:!0},xinetd:{name:"xinetd License",free:!0},"xkeyboard-config-Zinoviev":{name:"xkeyboard-config Zinoviev License"},xlock:{name:"xlock License"},Xnet:{name:"X.Net License",osi:!0},xpp:{name:"XPP License"},XSkat:{name:"XSkat License"},xzoom:{name:"xzoom License"},"YPL-1.0":{name:"Yahoo! Public License v1.0"},"YPL-1.1":{name:"Yahoo! Public License v1.1",free:!0},Zed:{name:"Zed License"},Zeeff:{name:"Zeeff License"},"Zend-2.0":{name:"Zend License v2.0",free:!0},"Zimbra-1.3":{name:"Zimbra Public License v1.3",free:!0},"Zimbra-1.4":{name:"Zimbra Public License v1.4"},Zlib:{name:"zlib License",osi:!0,free:!0},"zlib-acknowledgement":{name:"zlib/libpng License with Acknowledgement"},"ZPL-1.1":{name:"Zope Public License 1.1"},"ZPL-2.0":{name:"Zope Public License 2.0",osi:!0,free:!0},"ZPL-2.1":{name:"Zope Public License 2.1",osi:!0,free:!0}},hn=Yi;function An(e){if(!e)return;let n=(0,Nn.default)(e);if(n)return n;if(e.toUpperCase()==="CC-BY")return"CC-BY-4.0"}function Hi(e,n,i){var t,a;if(n){let c=/^([CBYSAND0ZEROPDM-]+)(?:(?:-)([0-9].[0-9]))?(?:(?:-)([A-Z]{2,3}))?$/.exec(e);if(!c)throw new Error("Creative Commons license not found");let l=c[1].toUpperCase(),o=(t=c[2])!==null&&t!==void 0?t:"4.0",u=(a=c[3])!==null&&a!==void 0?a:"",d="";switch(l){case"CC-BY":d=`/by/${o}/`;break;case"CC-BY-SA":d=`/by-sa/${o}/`;break;case"CC-BY-NC":d=`/by-nc/${o}/`;break;case"CC-BY-NC-SA":d=`/by-nc-sa/${o}/`;break;case"CC-BY-ND":d=`/by-nd/${o}/`;break;case"CC-BY-NC-ND":d=`/by-nc-nd/${o}/`;break;case"CC-ZERO":case"CC-0":case"CC0":d="/zero/1.0/";break;case"CC-PDDC":d="/publicdomain/";break;case"CC-PDM":d="/publicdomain/mark/1.0/";break;default:break}return u&&(d+=`${u}/`),`https://creativecommons.org/licenses${d}`}return i?`https://opensource.org/licenses/${e.replace(/(-or-later)|(-only)$/,"")}`:`https://spdx.org/licenses/${e}`}function $(e){return e.replace(/^http:/,"https:").replace(/\/$/,"")}function ji(e){try{return new URL(e).protocol.includes("http")}catch{return!1}}var Ge=Object.fromEntries(Object.entries(hn).map(([e,n])=>[e,{id:e,...n,url:Hi(e,n.CC,n.osi)}])),Ee=Object.fromEntries(Object.values(Ge).filter(e=>!!e.url&&!!e.id).map(e=>[$(e.url),e.id]));function Dn(e,n){var i;if(typeof e=="string"){let l=m(e,n);if(l===void 0)return;let o=l.length<15?An(l):void 0;Ee[$(l)]?e={id:Ee[$(l)]}:ji(l)?e={url:l}:o?e={id:l}:l.match(/^[^\s]*$/)?e={id:l}:l.length<100?e={name:l}:e={note:l}}let t=S(e,{optional:["id","name","url","note","free","CC","osi"],alias:{cc:"CC"}},n);if(!t)return;let a={};if(t.id!=null){let l=m(t.id,r("id",n)),o=An(l);o?o!==l&&b(`The SPDX ID for the license is "${o}". Corrected from "${l}".`,n):b(`unknown license ID "${l}" - using a SPDX license ID is recommended, see https://spdx.org/licenses/`,n),a.id=o??l}else{if(t.url){let l=(i=N(t.url,{property:"",messages:{}}))!==null&&i!==void 0?i:"",o=Ee[$(l)];o&&(a.id=o,t.url=Ge[o].url)}a.id||b("no license ID - using a SPDX license ID is recommended, see https://spdx.org/licenses/",n)}let c=a.id?Ge[a.id]:void 0;if(t.url!=null){let l=r("url",n),o=N(t.url,l);o&&c?.url&&$(o)!==$(c.url)&&b(`incorrect URL for SPDX license ${c.id} - "${o}"`,l),a.url=o}else c?.url&&(a.url=c.url);if(t.name!=null){let l=r("name",n),o=m(t.name,l);o&&c?.name&&o!==c.name&&b(`incorrect name for SPDX license ${c.id} - "${o}"`,l),a.name=o}else c?.name&&(a.name=c.name);if(t.note!=null&&(a.note=m(t.note,r("note",n))),t.free!=null){let l=r("free",n),o=A(t.free,l);o&&!c?.free?b('only SPDX licenses may specify they are "free" as listed by the FSF',l):a.free=o}else c?.free!=null&&(a.free=c.free);if(t.CC!=null){let l=r("CC",n),o=A(t.CC,l);o&&!(c?.CC||a.url&&new URL(a.url).host==="creativecommons.org")?b('only licenses that link to creativecommons.org may specify that they are "CC"',l):a.CC=o}else c?.CC!=null&&(a.CC=c.CC);if(t.osi!=null){let l=r("osi",n),o=A(t.osi,l);o&&!c?.osi?b('only SPDX licenses may specify they are "OSI approved"',l):a.osi=o}else c?.osi!=null&&(a.osi=c.osi);if(Object.keys(a).length!==0)return a}function On(e,n){let i;typeof e=="string"||typeof e=="object"&&e.content==null&&e.code==null?(e={content:e},i=n):i=r("content",n);let t=S(e,{optional:["content","code"]},n);if(t===void 0)return;let a={};if(s(t.content)){let c=Dn(t.content,i);c&&(a.content=c)}if(s(t.code)&&t.code!==t.content){let c=Dn(t.code,r("code",n));c&&(a.code=c)}if(Object.keys(a).length!==0)return a}var Y=["url","github","bluesky","mastodon","linkedin","threads","twitter","youtube","discourse","discord","slack","facebook","telegram"],H={website:"url",x:"twitter",bsky:"bluesky",instagram:"threads"};var Wi=/^@?([a-zA-Z0-9_]+)@([^@]+\.[^@]*[^.])$/,Ki=/^@?([^/:]+\..*[^.])$/,zi=/^https:\/\/bsky\.app\/profile\/@?(.+\..*[^.])$/,Xi=/^@?([a-zA-Z0-9.]+)$/,Vi=/^[a-zA-Z0-9_.]+$/,Zi=/^@?([a-zA-Z0-9_]{4,15})$/,Ji=/^https:\/\/(?:twitter\.com|x\.com)\/@?([a-zA-Z0-9_]{4,15})$/,qi=/^@?([a-zA-Z0-9_.-]+)$/,Qi=/^https:\/\/github\.com\/orgs\/[a-zA-Z0-9_.-]+$/,et=/^@?([a-zA-Z0-9_]{5,})$/,nt=/^https:\/\/(?:t\.me|telegram\.me)\/?([a-zA-Z0-9_]{5,})$/;function it(e,n){let i=m(e,n);if(i===void 0)return;let t=i.match(Wi);if(t===null)return p("must be a user ID of the form @username@server e.g. @mystmarkdown@fosstodon.org",n);let a=t[1],c=j(t[2],n);if(c!==void 0)return`@${a}@${c}`}function tt(e,n){let i=m(e,n);if(i===void 0)return;let t;if(t=i.match(Ki)){let a=j(t[1],n);return a===void 0?void 0:`@${a}`}else{let a=N(i,n);if(a===void 0)return;if(t=a.match(zi),t===null)return p(`Bluesky profile URL must be a valid URL starting with https://bsky.app/profile/: ${i}`,n);let c=j(t[1],n);return c===void 0?void 0:`@${c}`}}function rt(e,n){let i=m(e,n);if(i===void 0)return;let t;return(t=i.match(Ji))||(t=i.match(Zi))?t[1]:p(`Twitter social identity must be a valid URL starting with https://twitter.com/, https://x.com/, or a valid username: ${i}`,n)}function at(e,n){let i=m(e,n);if(i===void 0)return;let t;return(t=i.match(nt))||(t=i.match(et))?t[1]:p(`Telegram social identity must be a valid URL starting with either https://t.me/ or https://telegram.me/, or a valid username: ${i}`,n)}function ot(e,n){let i=m(e,n);if(i===void 0)return;if(/^https?:\/\//.test(i))return N(e,{...n,includes:"youtube.com"});let t;return(t=i.match(Xi))?t[1]:p(`YouTube social identity must be a valid URL starting with https://youtube.com/ or a valid handle: ${i}`,n)}function st(e,n){let i=m(e,n);if(i===void 0)return;let t;return(t=i.match(qi))?t[1]:(t=i.match(Ae))||(t=i.match(Qi))?t[0]:p(`GitHub social identity must be a valid username, org/repo, or org URL: ${i}`,n)}function le(e,n,i){let t=i?e:S(e,{optional:Y,alias:H},n);if(t===void 0)return;let a=i??{};return s(t.url)&&(a.url=N(t.url,r("url",n))),s(t.github)&&(a.github=st(t.github,r("github",n))),s(t.bluesky)&&(a.bluesky=tt(t.bluesky,r("bluesky",n))),s(t.mastodon)&&(a.mastodon=it(t.mastodon,r("mastodon",n))),s(t.linkedin)&&(a.linkedin=N(t.linkedin,{...r("linkedin",n),includes:"linkedin.com"})),s(t.threads)&&(a.threads=m(t.threads,{...r("threads",n),regex:Vi})),s(t.twitter)&&(a.twitter=rt(t.twitter,r("twitter",n))),s(t.telegram)&&(a.telegram=at(t.telegram,r("telegram",n))),s(t.youtube)&&(a.youtube=ot(t.youtube,r("youtube",n))),s(t.discourse)&&(a.discourse=N(t.discourse,r("discourse",n))),s(t.discord)&&(a.discord=N(t.discord,{...r("discord",n),includes:"discord"})),s(t.slack)&&(a.slack=N(t.slack,{...r("slack",n),includes:"slack.com"})),s(t.facebook)&&(a.facebook=N(t.facebook,{...r("facebook",n),includes:"facebook.com"})),a}var Ie=["id","address","city","state","postal_code","country","name","department","collaboration","isni","ringgold","ror","doi","email","phone","fax",...Y],_e={ref:"id",region:"state",province:"state",zipcode:"postal_code",zip_code:"postal_code",institution:"name",...H};function U(e,n){typeof e=="string"&&(e=ee(e));let i=S(e,{optional:Ie,alias:_e},n);if(i===void 0)return;Object.keys(i).length===1&&i.id&&(i.name=i.id);let t={};return s(i.id)&&(t.id=m(i.id,r("id",n))),s(i.name)?t.name=m(i.name,r("name",n)):b("affiliation should include name/institution",n),s(i.department)&&(t.department=m(i.department,r("department",n))),s(i.address)&&(t.address=m(i.address,r("address",n))),s(i.city)&&(t.city=m(i.city,r("city",n))),s(i.state)&&(t.state=m(i.state,r("state",n))),s(i.postal_code)&&(t.postal_code=m(i.postal_code,{coerceNumber:!0,...r("postal_code",n)})),s(i.country)&&(t.country=m(i.country,r("country",n))),s(i.isni)&&(t.isni=m(i.isni,r("isni",n))),s(i.ror)&&(t.ror=m(i.ror,r("ror",n))),s(i.ringgold)&&(t.ringgold=_(i.ringgold,{min:1e3,max:999999,...r("ringgold",n)})),s(i.doi)&&(t.doi=B(i.doi,r("doi",n))),s(i.collaboration)&&(t.collaboration=A(i.collaboration,r("collaboration",n))),s(i.email)&&(t.email=W(i.email,r("email",n))),le(i,n,t),s(i.phone)&&(t.phone=m(i.phone,r("phone",n))),s(i.fax)&&(t.fax=m(i.fax,r("fax",n))),t}function K(e){for(let n of e)if(n.toLowerCase()!==n.toUpperCase())return n===n.toUpperCase();return!0}function ue(e){var n,i;let t=e.split(",");if(t.length===1)return{literal:e,...lt(e)};let a=(n=t.pop())===null||n===void 0?void 0:n.trim(),c=ct(a);if(t.length===1)return{literal:e,...c,...yn(t[0])};let l=(i=t.pop())===null||i===void 0?void 0:i.trim(),o=yn(t.join(","));return l?{literal:e,...c,...o,suffix:l}:{literal:e,...c,...o}}function ct(e){let n=e?.trim().split(/\s+/);if(!n?.length)return{};let i=n.shift();if(!i)return{};for(;n.length&&K(n[0]);)i=`${i} ${n.shift()}`;return n.length?{given:i,dropping_particle:n.join(" ")}:{given:i}}function yn(e){let n=e.trim().split(/\s+/);if(!n.length)return{};let i=n.pop();if(!i)return{};if(n.length&&K(n[0]))return{family:[...n,i].join(" ")};for(;n.length&&K(n[n.length-1]);)i=`${n.pop()} ${i}`;return n.length?{non_dropping_particle:n.join(" "),family:i}:{family:i}}function lt(e){let n=e.trim().split(/\s+/);if(!n.length)return{};let i=n.pop();if(!i)return{};if(!n.length)return{family:i};let t=n.shift();for(;n.length&&K(n[0]);)t=`${t} ${n.shift()}`;for(;n.length&&K(n[n.length-1]);)i=`${n.pop()} ${i}`;return n.length?{given:t,non_dropping_particle:n.join(" "),family:i}:{given:t,family:i}}function xn(e,n=!1){let{literal:i,given:t,dropping_particle:a,non_dropping_particle:c,family:l,suffix:o}=e;if(i)return i;let u=[t,a,c,l,o].join("").includes(",");if(!n&&!u&&!a&&!o){let f=[t,c,l].filter(Boolean).join(" "),P=ue(f);delete P.literal;let D=JSON.stringify(Object.entries(P).sort()),v=JSON.stringify(Object.entries(e).sort());if(D===v)return f}let d=",";return(o||u)&&(d=`${d}${o?" ":""}${o??""},`),t&&(d=`${d} ${t}`),l&&(d=`${l}${d}`),a&&(d=`${d} ${a}`),c&&(d=`${c} ${d}`),d===","?"":d}var ut=["id","userId","name","nameParsed","orcid","corresponding","equal_contributor","deceased","email","roles","affiliations","collaborations","note","phone","fax",...Y],mt={ref:"id",role:"roles","equal-contributor":"equal_contributor",affiliation:"affiliations",...H},dt=["literal","given","family","suffix","non_dropping_particle","dropping_particle"],ft={surname:"family",last:"family",forename:"given",first:"given",particle:"non_dropping_particle","non-dropping-particle":"non_dropping_particle","dropping-particle":"dropping_particle"};function En(e,n){let i,t=!1;if(typeof e=="string")i=ue(e),t=!0;else{let a=S(e,{optional:dt,alias:ft},n);if(a===void 0)return;i={},s(a.literal)&&(i.literal=m(a.literal,r("literal",n))),s(a.given)&&(i.given=m(a.given,r("given",n))),s(a.non_dropping_particle)&&(i.non_dropping_particle=m(a.non_dropping_particle,r("non_dropping_particle",n))),s(a.dropping_particle)&&(i.dropping_particle=m(a.dropping_particle,r("dropping_particle",n))),s(a.family)&&(i.family=m(a.family,r("family",n))),s(a.suffix)&&(i.suffix=m(a.suffix,r("suffix",n))),Object.keys(i).length===1&&i.literal?(i={...i,...ue(i.literal)},t=!0):i.literal||(i.literal=xn(i),i.literal.startsWith(",")&&b(`unexpected comma at beginning of name: ${i.literal} - you may need to define 'name.literal' explicitly`,n))}if(t){let a=(c,l)=>{c&&c.includes(",")&&b(`unexpected comma in name part: ${c} - you may need to define 'name' explicitly as an object`,l)};a(i.given,r("given",n)),a(i.family,r("family",n)),a(i.non_dropping_particle,r("non_dropping_particle",n)),a(i.dropping_particle,r("dropping_particle",n)),a(i.suffix,r("suffix",n))}return i}function R(e,n,i){var t,a,c;let l=S(e,{optional:Ie,alias:_e},{...i,suppressErrors:!0,suppressWarnings:!0});if(l?.collaboration===!0)return U(e,i);typeof e=="string"&&(e=ee(e));let o=S(e,{optional:ut,alias:mt},i);if(o===void 0)return;l&&Object.keys(l).length>Object.keys(o).length&&b('contributor may be a collaboration, not a person - if so, add "collaboration: true"',i),Object.keys(o).length===1&&o.id&&(o.name=o.id);let u={};if(s(o.id)&&(u.id=m(o.id,r("id",i))),s(o.userId)&&(u.userId=m(o.userId,r("userId",i))),s(o.nameParsed)?(u.nameParsed=En(o.nameParsed,r("nameParsed",i)),u.name=o.name?m(o.name,r("name",i)):(t=u.nameParsed)===null||t===void 0?void 0:t.literal,u.name!==((a=u.nameParsed)===null||a===void 0?void 0:a.literal)&&b('"name" and "parsedName.literal" should match',i)):s(o.name)?(u.nameParsed=En(o.name,r("name",i)),u.name=(c=u.nameParsed)===null||c===void 0?void 0:c.literal):b("contributor should include name",i),s(o.orcid)){let f=r("orcid",i),P=ze.normalize(o.orcid);P?u.orcid=P:p(`ORCID "${o.orcid}" is not valid, try an ID of the form "0000-0000-0000-0000"`,f)}if(s(o.corresponding)){let f=r("corresponding",i);u.corresponding=A(o.corresponding,f),o.corresponding&&!s(o.email)&&(p("must include email for corresponding author",f),u.corresponding=!1)}if(s(o.equal_contributor)&&(u.equal_contributor=A(o.equal_contributor,r("equal_contributor",i))),s(o.deceased)&&(u.deceased=A(o.deceased,r("deceased",i))),s(o.email)&&(u.email=W(o.email,r("email",i))),s(o.roles)){let f=r("roles",i),P=o.roles;typeof P=="string"&&(P=P.split(/[,;]/)),u.roles=h(P,f,D=>{let v=m(D,f);if(v===void 0)return;let L=je.normalize(v);return L||(b(`unknown value "${v}" - should be a CRediT role - see https://credit.niso.org/`,f),v.trim())})}if(s(o.collaborations)&&p('collaborations must be defined in frontmatter as affiliations with "collaboration: true"',r("collaborations",i)),s(o.affiliations)){let f=r("affiliations",i),P=o.affiliations;typeof P=="string"&&(P=P.split(";").map(D=>D.trim())),Array.isArray(P)||(P=[P]),u.affiliations=h(P,f,D=>G(D,n,"affiliations",U,f))}if(le(o,i,u),s(o.phone)&&(u.phone=m(o.phone,r("phone",i))),s(o.fax)&&(u.fax=m(o.fax,r("fax",i))),s(o.note)&&(u.note=m(o.note,r("note",i))),Q(u)||!u.nameParsed||o.nameParsed||o.name&&typeof o.name!="string")return u;let d=" - if this is intended, you may define 'name' explicitly as an object";return u.nameParsed.given||b(`No given name for name '${u.nameParsed.literal}'${d}`,i),u.nameParsed.family||b(`No family name for name '${u.nameParsed.literal}'${d}`,i),u}var me=["id","name","description","sources","recipients","investigators"],de={source:"sources",recipient:"recipients",investigator:"investigators"},Te=["statement","open_access","awards"],Be={award:"awards"};function Lt(e,n,i){let t=S(e,{optional:me,alias:de},i);if(t===void 0)return;let a={};return s(t.id)&&(a.id=m(t.id,{...r("id",i),coerceNumber:!0})),s(t.name)&&(a.name=m(t.name,r("name",i))),s(t.description)&&(a.description=m(t.description,r("description",i))),s(t.sources)&&(a.sources=h(t.sources,{coerce:!0,...r("sources",i)},(c,l)=>G(c,n,"affiliations",U,r(`sources.${l}`,i)))),s(t.recipients)&&(a.recipients=h(t.recipients,{coerce:!0,...r("recipients",i)},(c,l)=>G(c,n,"contributors",(o,u)=>R(o,n,u),r(`recipients.${l}`,i)))),s(t.investigators)&&(a.investigators=h(t.investigators,{coerce:!0,...r("investigators",i)},(c,l)=>G(c,n,"contributors",(o,u)=>R(o,n,u),r(`investigators.${l}`,i)))),a}function Gn(e,n,i){typeof e=="string"&&(e={statement:e});let t=E(e,i);if(t===void 0)return;let a=k(t,{optional:Te,alias:Be},{...i,suppressErrors:!0,suppressWarnings:!0});if(a===void 0)return;if(a.awards)k(t,{optional:Te,alias:Be},i);else{k(t,{optional:[...Te,...me],alias:{...Be,...de}},i);let l=S(e,{optional:me,alias:de},{...i,suppressErrors:!0,suppressWarnings:!0});l&&Object.keys(l).length>0&&(a.awards=[S(e,{optional:me,alias:de},{...i,suppressErrors:!0,suppressWarnings:!0})])}let c={};return s(a.statement)&&(c.statement=m(a.statement,r("statement",i))),s(a.open_access)&&(c.open_access=m(a.open_access,r("open_access",i))),s(a.awards)&&(c.awards=h(a.awards,{coerce:!0,...r("awards",i)},(l,o)=>Lt(l,n,r(`awards.${o}`,i)))),c}function In(e,n){let i;typeof e=="string"?(e={title:e},i=n):i=r("title",n);let t=S(e,{optional:["title","short_title","url","doi","number","location","date","series","issn","publisher"]},n);if(t===void 0)return;let a={};return s(t.title)&&(a.title=m(t.title,i)),s(t.short_title)&&(a.short_title=m(t.short_title,r("short_title",n))),s(t.url)&&(a.url=N(t.url,r("url",n))),s(t.doi)&&(a.doi=B(t.doi,r("doi",n))),s(t.number)&&(a.number=F(t.number,r("number",n))),s(t.location)&&(a.location=m(t.location,r("location",n))),s(t.date)&&(a.date=m(t.date,r("date",n))),s(t.series)&&(a.series=m(t.series,r("series",n))),s(t.issn)&&(a.issn=m(t.issn,r("issn",n))),s(t.publisher)&&(a.publisher=m(t.publisher,r("publisher",n))),a}function _n(e,n){var i,t,a,c,l;let o={};s(e.title)&&(o.title=m(e.title,r("title",n))),s(e.description)&&(o.description=m(e.description,r("description",n))),s(e.short_title)&&(o.short_title=m(e.short_title,r("short_title",n))),s(e.subtitle)&&(o.subtitle=m(e.subtitle,r("subtitle",n))),e.banner===null?o.banner=null:s(e.banner)&&(o.banner=m(e.banner,r("banner",n))),s(e.bannerOptimized)&&(o.bannerOptimized=e.bannerOptimized),s(e.tags)&&(o.tags=h(e.tags,r("tags",n),(v,L)=>m(v,r(`tags.${L}`,n))));let u={};if(s(e.affiliations)){let v=r("affiliations",n),L=e.affiliations;typeof L=="string"&&(L=L.split(";").map(C=>C.trim())),h(L,v,C=>G(C,u,"affiliations",U,v))}if(s(e.authors)&&(u.authorIds=h(e.authors,{coerce:!0,...r("authors",n)},(v,L)=>G(v,u,"contributors",(C,g)=>R(C,u,g),r(`authors.${L}`,n)))),s(e.contributors)&&h(e.contributors,{coerce:!0,...r("contributors",n)},(v,L)=>G(v,u,"contributors",(C,g)=>R(C,u,g),r(`contributors.${L}`,n))),s(e.reviewers)&&(o.reviewers=h(e.reviewers,{coerce:!0,...r("reviewers",n)},(v,L)=>G(v,u,"contributors",(C,g)=>R(C,u,g),r(`reviewers.${L}`,n)))),s(e.editors)&&(o.editors=h(e.editors,{coerce:!0,...r("editors",n)},(v,L)=>G(v,u,"contributors",(C,g)=>R(C,u,g),r(`editors.${L}`,n)))),s(e.venue)&&(o.venue=In(e.venue,r("venue",n))),s(e.github)&&(o.github=Qe(e.github,r("github",n))),s(e.keywords)){let v=e.keywords;typeof v=="string"&&(v=v.split(/[,;]/).map(L=>L.trim())),o.keywords=h(v,r("keywords",n),(L,C)=>m(L,r(`keywords.${C}`,n)))}if(s(e.funding)&&(o.funding=h(e.funding,{coerce:!0,...r("funding",n)},(v,L)=>Gn(v,u,r(`funding.${L}`,n)))),s(e.copyright)&&(o.copyright=m(e.copyright,r("copyright",n))),s(e.options)){let v=r("options",n),L=E(e.options,v);L&&Object.entries(L).forEach(([C,g])=>{var x;nn.includes(C)?p(`options cannot include reserved key ${C}`,v):((x=o.options)!==null&&x!==void 0?x:o.options={})[C]=g})}let d=r("parts",n),f;if(s(e.parts)&&(f=S(e.parts,{optional:Le,alias:M},{keepExtraKeys:!0,suppressWarnings:!0,...d})),Le.forEach(v=>{s(e[v])&&(f??(f={}),f[v]?p(`duplicate value for part ${v}`,d):f[v]=e[v])}),f){let v=Object.entries(f).map(([L,C])=>[L,h(C,{coerce:!0,...r(L,d)},(g,x)=>m(g,r(`${L}.${x}`,d)))]).filter(L=>{var C;return!!(!((C=L[1])===null||C===void 0)&&C.length)});v.length>0&&(o.parts=Object.fromEntries(v))}let P=(i=u.contributors)===null||i===void 0?void 0:i.filter(v=>{var L;return(L=u.authorIds)===null||L===void 0?void 0:L.includes(v.id)}),D=(t=u.contributors)===null||t===void 0?void 0:t.filter(v=>{var L;return!(!((L=u.authorIds)===null||L===void 0)&&L.includes(v.id))});if(P?.length){o.authors=P;let v=(a=o.authors)===null||a===void 0?void 0:a.find(C=>C.corresponding),L=(c=o.authors)===null||c===void 0?void 0:c.find(C=>C.email&&!C.collaboration&&C.corresponding===void 0);!v&&L&&(L.corresponding=!0)}return D?.length&&(o.contributors=D),!((l=u.affiliations)===null||l===void 0)&&l.length&&(o.affiliations=u.affiliations),o}var pt=["codeStyle","beamer"],Ct={code_style:"codeStyle"};function Tn(e,n){let i={},t=S(e,{optional:pt,alias:Ct},n);if(t){if(s(t.codeStyle)){let a=T(t.codeStyle,{...r("codeStyle",n),choices:["verbatim","minted","listings"]});a&&(i.codeStyle=a)}if(s(t.beamer)){let a=A(t.beamer,r("beamer",n));a!=null&&(i.beamer=a)}if(Object.keys(i).length!==0)return i}}var Fe=["show","remove","remove-warn","remove-error","warn","error"],St=["output_stderr","output_stdout","output_matplotlib_strings","myst_to_tex"],vt={stderr_output:"output_stderr",stdout_output:"output_stdout",mystToTex:"myst_to_tex",tex:"myst_to_tex"};function Bn(e,n){let i={},t=S(e,{optional:St,alias:vt},n);if(t){if(s(t.output_stderr)){let a=T(t.output_stderr,{...r("output_stderr",n),choices:Fe});a&&(i.output_stderr=a)}if(s(t.output_stdout)){let a=T(t.output_stdout,{...r("output_stdout",n),choices:Fe});a&&(i.output_stdout=a)}if(s(t.output_matplotlib_strings)){let a=T(t.output_matplotlib_strings,{...r("output_matplotlib_strings",n),choices:Fe});a&&(i.output_matplotlib_strings=a)}if(s(t.myst_to_tex)){let a=Tn(t.myst_to_tex,r("myst_to_tex",n));a&&(i.myst_to_tex=a)}if(Object.keys(i).length!==0)return i}}function Pt(e,n){typeof e=="string"&&(e={macro:e});let i=S(e,{required:["macro"],optional:["title","description"]},n);if(!i)return;let t=m(i.macro,r("macro",n));if(!t)return;let a={macro:t};return s(i.title)&&(a.title=m(i.title,r("title",n))),s(i.description)&&(a.description=m(i.description,r("description",n))),a}function Fn(e,n){let i=E(e,n);if(!i)return;let t=Object.entries(i).map(([a,c])=>{let l=Pt(c,r(a,n));return l?[a,l]:!1}).filter(a=>!!a);return Object.fromEntries(t)}function bt(e){return e==="arxiv"?(n,i)=>N(n,{...r("arxiv",i),includes:"arxiv.org"}):e==="pmid"?(n,i)=>_(n,{...r("pmid",i),integer:!0,min:1}):e==="pmcid"?(n,i)=>m(n,{...r("pmcid",i),regex:"^PMC[0-9]+$"}):e==="zenodo"?(n,i)=>N(n,{...r("zenodo",i),includes:"zenodo.org"}):(n,i)=>F(n,r(e,i))}function Rn(e,n){var i;let t=_n(e,n);s(e.date)&&(t.date=Z(e.date,r("date",n)));let a=r("identifiers",n),c;if(s(e.identifiers)&&(c=S(e.identifiers,{optional:re},{keepExtraKeys:!0,suppressWarnings:!0,...a})),re.forEach(l=>{s(e[l])&&(c??(c={}),c[l]?p(`duplicate value for identifier ${l}`,a):c[l]=e[l])}),c?.doi&&(s(e.doi)?p("duplicate value for DOI",a):(e.doi=c.doi,b("DOI should be defined directly on the project frontmatter, not under 'identifiers'",a)),delete c.doi),c){let l=Object.entries(c).map(([o,u])=>{let d=bt(o);return[o,d(u,a)]}).filter(o=>o[1]!=null);l.length>0&&(t.identifiers=Object.fromEntries(l))}if(s(e.doi)&&(t.doi=B(e.doi,r("doi",n))),s(e.open_access)&&(t.open_access=A(e.open_access,r("open_access",n))),s(e.license)&&(t.license=On(e.license,r("license",n))),s(e.binder)&&(t.binder=N(e.binder,r("binder",n))),s(e.source)&&(t.source=N(e.source,r("source",n))),s(e.subject)&&(t.subject=m(e.subject,{...r("subject",n),maxLength:40})),s(e.bibliography)&&(t.bibliography=h(e.bibliography,{coerce:!0,...r("bibliography",n)},(l,o)=>m(l,r(`bibliography.${o}`,n)))),s(e.volume)&&(t.volume=De(e.volume,r("volume",n))),s(e.issue)&&(t.issue=De(e.issue,r("issue",n))),s(e.first_page)&&(t.first_page=F(e.first_page,r("first_page",n))),s(e.last_page)&&(t.last_page=F(e.last_page,r("last_page",n))),s(e.oxa)&&(t.oxa=m(e.oxa,r("oxa",n))),s(e.numbering)&&(t.numbering=Je(e.numbering,r("numbering",n))),s(e.math)&&(t.math=Fn(e.math,r("math",n))),s(e.abbreviations)){let l=r("abbreviations",n),o=Object.fromEntries(Object.entries((i=E(e.abbreviations,l))!==null&&i!==void 0?i:{}).map(([u,d])=>{if(d===null||d===!1)return[u,null];let f=m(d,r(u,l));return m(u,{...r(u,l),minLength:2})&&f?[u,f]:null}).filter(u=>!!u));o&&Object.keys(o).length>0&&(t.abbreviations=o)}if(s(e.exports)){let l=tn(e.exports,n);l&&(t.exports=l)}if(s(e.downloads)){let l=rn(e.downloads,n);l&&(t.downloads=l)}if(e.thumbnail===null?t.thumbnail=null:s(e.thumbnail)&&(t.thumbnail=m(e.thumbnail,r("thumbnail",n))),s(e.thumbnailOptimized)&&(t.thumbnailOptimized=e.thumbnailOptimized),e.banner===null?t.banner=null:s(e.banner)&&(t.banner=m(e.banner,r("banner",n))),s(e.bannerOptimized)&&(t.bannerOptimized=e.bannerOptimized),s(e.settings)){let l=Bn(e.settings,r("settings",n));l&&(t.settings=l)}return e.edit_url===null?t.edit_url=null:s(e.edit_url)&&(t.edit_url=N(e.edit_url,r("edit_url",n))),e.source_url===null?t.source_url=null:s(e.source_url)&&(t.source_url=N(e.source_url,r("source_url",n))),t}var gt=["name","display_name","language","argv","env"];function wn(e,n){let i=S(e,{optional:gt},n);if(i===void 0)return;let t;if(s(i.name)){let l=m(i.name,r("name",n));if(l===void 0)return;t=l}else t="python3",b(`"name" key is required; using '${t}' as placeholder value`,n);let a;if(s(i.display_name)){let l=m(i.display_name,r("display_name",n));if(l===void 0)return;a=l}else a=`${t} Kernel`,b(`"display_name" key is required; using '${a}' as placeholder value`,n);let c={name:t,display_name:a};return s(i.language)&&(c.language=m(i.language,r("language",n))),s(i.env)&&(c.env=E(i.env,r("env",n))),s(i.argv)&&(c.argv=h(i.argv,r("argv",n),(l,o)=>m(l,r(`argv.${o}`,n)))),c}var ht=["skip","depends_on_env","cache"];function Mn(e,n){let i=S(e,{optional:ht},n);if(i===void 0)return;let t={};return s(i.skip)&&(t.skip=A(i.skip,r("skip",n))),s(i.depends_on_env)&&(t.depends_on_env=h(i.depends_on_env,r("depends_on_env",n),(a,c)=>m(a,r(`depends_on_env.${c}`,n)))),s(i.cache)&&(t.cache=A(i.cache,r("cache",n))),t}var At=["extension","format_name","format_version","jupytext_version"],Dt=["formats","text_representation"];function Nt(e,n){let i=S(e,{optional:At},n);if(i===void 0)return;let t={};if(s(i.extension)&&(t.extension=m(i.extension,r("extension",n))),s(i.format_name)&&(t.format_name=m(i.format_name,r("format_name",n))),s(i.format_version)){let a=typeof i.format_version=="number"?String(i.format_version):i.format_version;t.format_version=m(a,r("format_version",n))}return s(i.jupytext_version)&&(t.jupytext_version=m(i.jupytext_version,r("jupytext_version",n))),t}function Un(e,n){let i=S(e,{optional:Dt},n);if(i===void 0)return;let t={};return s(i.formats)&&(t.formats=m(i.formats,r("formats",n))),s(i.text_representation)&&(t.text_representation=Nt(i.text_representation,r("text_representation",n))),t}function Ot(e,n){var i;let t=Rn(e,n);return s(e.label)&&(t.label=m(e.label,r("label",n))),s(e.kernelspec)&&(t.kernelspec=wn(e.kernelspec,r("kernelspec",n))),s(e.jupytext)&&(t.jupytext=Un(e.jupytext,r("jupytext",n))),s(e.execute)&&(t.execute=Mn(e.execute,r("execute",n))),s(e.skip_execution)&&((i=t.execute)!==null&&i!==void 0||(t.execute={}),s(t.execute.skip)?b("both execute.skip and deprecated skip_execution are defined, taking execute.skip",n):(b("skip_execution is deprecated in favour of execute.skip",n),t.execute.skip=A(e.skip_execution,r("skip_execution",n)))),s(e.enumerator)&&(t.enumerator=m(e.enumerator,r("enumerator",n))),s(e.content_includes_title)&&(t.content_includes_title=A(e.content_includes_title,r("content_includes_title",n))),s(e.site)&&(t.site=E(e.site,r("site",n))),t}function ja(e,n){let i=S(e,{optional:ae,alias:{...M,name:"label"}},n)||{};return Ot(i,n)}export{r as a,b,Pe as c,q as d,ee as e,Q as f,$e as g,Jn as h,pe as i,ni as j,ii as k,ze as l,$t as m,ja as n}; diff --git a/build/_shared/chunk-7NE7WJTS.js b/build/_shared/chunk-7NE7WJTS.js new file mode 100644 index 00000000..40942f44 --- /dev/null +++ b/build/_shared/chunk-7NE7WJTS.js @@ -0,0 +1 @@ +import{a as n}from"/numpy-tutorials/build/_shared/chunk-CBDDV5MN.js";import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var o=a((u,r)=>{var i=n();r.exports=t;t.displayName="hlsl";t.aliases=[];function t(e){e.register(i),e.languages.hlsl=e.languages.extend("c",{"class-name":[e.languages.c["class-name"],/\b(?:AppendStructuredBuffer|BlendState|Buffer|ByteAddressBuffer|CompileShader|ComputeShader|ConsumeStructuredBuffer|DepthStencilState|DepthStencilView|DomainShader|GeometryShader|Hullshader|InputPatch|LineStream|OutputPatch|PixelShader|PointStream|RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture(?:1D|1DArray|2D|2DArray|3D)|RasterizerState|RenderTargetView|SamplerComparisonState|SamplerState|StructuredBuffer|Texture(?:1D|1DArray|2D|2DArray|2DMS|2DMSArray|3D|Cube|CubeArray)|TriangleStream|VertexShader)\b/],keyword:[/\b(?:asm|asm_fragment|auto|break|case|catch|cbuffer|centroid|char|class|column_major|compile|compile_fragment|const|const_cast|continue|default|delete|discard|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|fxgroup|goto|groupshared|if|in|inline|inout|interface|line|lineadj|linear|long|matrix|mutable|namespace|new|nointerpolation|noperspective|operator|out|packoffset|pass|pixelfragment|point|precise|private|protected|public|register|reinterpret_cast|return|row_major|sample|sampler|shared|short|signed|sizeof|snorm|stateblock|stateblock_state|static|static_cast|string|struct|switch|tbuffer|technique|technique10|technique11|template|texture|this|throw|triangle|triangleadj|try|typedef|typename|uniform|union|unorm|unsigned|using|vector|vertexfragment|virtual|void|volatile|while)\b/,/\b(?:bool|double|dword|float|half|int|min(?:10float|12int|16(?:float|int|uint))|uint)(?:[1-4](?:x[1-4])?)?\b/],number:/(?:(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?|\b0x[\da-fA-F]+)[fFhHlLuU]?\b/,boolean:/\b(?:false|true)\b/})}});export{o as a}; diff --git a/build/_shared/chunk-7PIOE6Z5.js b/build/_shared/chunk-7PIOE6Z5.js new file mode 100644 index 00000000..427fe556 --- /dev/null +++ b/build/_shared/chunk-7PIOE6Z5.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var n=a((r,o)=>{o.exports=t;t.displayName="peoplecode";t.aliases=["pcode"];function t(e){e.languages.peoplecode={comment:RegExp([/\/\*[\s\S]*?\*\//.source,/\bREM[^;]*;/.source,/<\*(?:[^<*]|\*(?!>)|<(?!\*)|<\*(?:(?!\*>)[\s\S])*\*>)*\*>/.source,/\/\+[\s\S]*?\+\//.source].join("|")),string:{pattern:/'(?:''|[^'\r\n])*'(?!')|"(?:""|[^"\r\n])*"(?!")/,greedy:!0},variable:/%\w+/,"function-definition":{pattern:/((?:^|[^\w-])(?:function|method)\s+)\w+/i,lookbehind:!0,alias:"function"},"class-name":{pattern:/((?:^|[^-\w])(?:as|catch|class|component|create|extends|global|implements|instance|local|of|property|returns)\s+)\w+(?::\w+)*/i,lookbehind:!0,inside:{punctuation:/:/}},keyword:/\b(?:abstract|alias|as|catch|class|component|constant|create|declare|else|end-(?:class|evaluate|for|function|get|if|method|set|try|while)|evaluate|extends|for|function|get|global|if|implements|import|instance|library|local|method|null|of|out|peopleCode|private|program|property|protected|readonly|ref|repeat|returns?|set|step|then|throw|to|try|until|value|when(?:-other)?|while)\b/i,"operator-keyword":{pattern:/\b(?:and|not|or)\b/i,alias:"operator"},function:/[_a-z]\w*(?=\s*\()/i,boolean:/\b(?:false|true)\b/i,number:/\b\d+(?:\.\d+)?\b/,operator:/<>|[<>]=?|!=|\*\*|[-+*/|=@]/,punctuation:/[:.;,()[\]]/},e.languages.pcode=e.languages.peoplecode}});export{n as a}; diff --git a/build/_shared/chunk-7PW5CTCW.js b/build/_shared/chunk-7PW5CTCW.js new file mode 100644 index 00000000..4766685c --- /dev/null +++ b/build/_shared/chunk-7PW5CTCW.js @@ -0,0 +1 @@ +import{c as d}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var g=d((p,n)=>{n.exports=a;a.displayName="dot";a.aliases=["gv"];function a(u){(function(e){var o="(?:"+[/[a-zA-Z_\x80-\uFFFF][\w\x80-\uFFFF]*/.source,/-?(?:\.\d+|\d+(?:\.\d*)?)/.source,/"[^"\\]*(?:\\[\s\S][^"\\]*)*"/.source,/<(?:[^<>]|(?!)*>/.source].join("|")+")",r={markup:{pattern:/(^<)[\s\S]+(?=>$)/,lookbehind:!0,alias:["language-markup","language-html","language-xml"],inside:e.languages.markup}};function t(i,s){return RegExp(i.replace(//g,function(){return o}),s)}e.languages.dot={comment:{pattern:/\/\/.*|\/\*[\s\S]*?\*\/|^#.*/m,greedy:!0},"graph-name":{pattern:t(/(\b(?:digraph|graph|subgraph)[ \t\r\n]+)/.source,"i"),lookbehind:!0,greedy:!0,alias:"class-name",inside:r},"attr-value":{pattern:t(/(=[ \t\r\n]*)/.source),lookbehind:!0,greedy:!0,inside:r},"attr-name":{pattern:t(/([\[;, \t\r\n])(?=[ \t\r\n]*=)/.source),lookbehind:!0,greedy:!0,inside:r},keyword:/\b(?:digraph|edge|graph|node|strict|subgraph)\b/i,"compass-point":{pattern:/(:[ \t\r\n]*)(?:[ewc_]|[ns][ew]?)(?![\w\x80-\uFFFF])/,lookbehind:!0,alias:"builtin"},node:{pattern:t(/(^|[^-.\w\x80-\uFFFF\\])/.source),lookbehind:!0,greedy:!0,inside:r},operator:/[=:]|-[->]/,punctuation:/[\[\]{};,]/},e.languages.gv=e.languages.dot})(u)}});export{g as a}; diff --git a/build/_shared/chunk-7SAO57PG.js b/build/_shared/chunk-7SAO57PG.js new file mode 100644 index 00000000..9d750883 --- /dev/null +++ b/build/_shared/chunk-7SAO57PG.js @@ -0,0 +1 @@ +import{a as ee,b as F}from"/numpy-tutorials/build/_shared/chunk-O4VQNZ62.js";import{c as v,f as _}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var H=v((fe,G)=>{"use strict";var S=Object.prototype.hasOwnProperty,q=Object.prototype.toString,N=Object.defineProperty,D=Object.getOwnPropertyDescriptor,L=function(e){return typeof Array.isArray=="function"?Array.isArray(e):q.call(e)==="[object Array]"},B=function(e){if(!e||q.call(e)!=="[object Object]")return!1;var o=S.call(e,"constructor"),l=e.constructor&&e.constructor.prototype&&S.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!o&&!l)return!1;var i;for(i in e);return typeof i>"u"||S.call(e,i)},U=function(e,o){N&&o.name==="__proto__"?N(e,o.name,{enumerable:!0,configurable:!0,value:o.newValue,writable:!0}):e[o.name]=o.newValue},Y=function(e,o){if(o==="__proto__")if(S.call(e,o)){if(D)return D(e,o).value}else return;return e[o]};G.exports=function t(){var e,o,l,i,n,a,u=arguments[0],y=1,g=arguments.length,w=!1;for(typeof u=="boolean"&&(w=u,u=arguments[1]||{},y=2),(u==null||typeof u!="object"&&typeof u!="function")&&(u={});ya.length,y;u&&a.push(i);try{y=t.apply(this,a)}catch(g){let w=g;if(u&&o)throw w;return i(w)}u||(y&&y.then&&typeof y.then=="function"?y.then(n,i):y instanceof Error?i(y):n(y))}function i(a,...u){o||(o=!0,e(a,...u))}function n(a){i(null,a)}}var te=X().freeze(),W={}.hasOwnProperty;function X(){let t=z(),e=[],o={},l,i=-1;return n.data=a,n.Parser=void 0,n.Compiler=void 0,n.freeze=u,n.attachers=e,n.use=y,n.parse=g,n.stringify=w,n.run=b,n.runSync=Z,n.process=$,n.processSync=k,n;function n(){let r=X(),f=-1;for(;++f{if(c||!p||!h)x(c);else{let P=n.stringify(p,h);P==null||(oe(P)?h.value=P:h.result=P),x(c,h)}});function x(c,p){c||!p?m(c):d?d(p):f(null,p)}}}function k(r){let f;n.freeze(),j("processSync",n.Parser),T("processSync",n.Compiler);let s=A(r);return n.process(s,d),Q("processSync","process",f),s;function d(m){f=!0,C(m)}}}function K(t,e){return typeof t=="function"&&t.prototype&&(ne(t.prototype)||e in t.prototype)}function ne(t){let e;for(e in t)if(W.call(t,e))return!0;return!1}function j(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `Parser`")}function T(t,e){if(typeof e!="function")throw new TypeError("Cannot `"+t+"` without `Compiler`")}function I(t,e){if(e)throw new Error("Cannot call `"+t+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function M(t){if(!E(t)||typeof t.type!="string")throw new TypeError("Expected node, got `"+t+"`")}function Q(t,e,o){if(!o)throw new Error("`"+t+"` finished async. Use `"+e+"` instead")}function A(t){return re(t)?t:new F(t)}function re(t){return Boolean(t&&typeof t=="object"&&"message"in t&&"messages"in t)}function oe(t){return typeof t=="string"||(0,R.default)(t)}export{H as a,te as b}; diff --git a/build/_shared/chunk-A3U6M24Q.js b/build/_shared/chunk-A3U6M24Q.js new file mode 100644 index 00000000..612e3bbe --- /dev/null +++ b/build/_shared/chunk-A3U6M24Q.js @@ -0,0 +1 @@ +import{c as g}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var p=g((m,l)=>{l.exports=r;r.displayName="icuMessageFormat";r.aliases=[];function r(d){(function(e){function t(o,u){return u<=0?/[]/.source:o.replace(//g,function(){return t(o,u-1)})}var n=/'[{}:=,](?:[^']|'')*'(?!')/,a={pattern:/''/,greedy:!0,alias:"operator"},c={pattern:n,greedy:!0,inside:{escape:a}},i=t(/\{(?:[^{}']|'(?![{},'])|''||)*\}/.source.replace(//g,function(){return n.source}),8),s={pattern:RegExp(i),inside:{message:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:null},"message-delimiter":{pattern:/./,alias:"punctuation"}}};e.languages["icu-message-format"]={argument:{pattern:RegExp(i),greedy:!0,inside:{content:{pattern:/^(\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:{"argument-name":{pattern:/^(\s*)[^{}:=,\s]+/,lookbehind:!0},"choice-style":{pattern:/^(\s*,\s*choice\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{punctuation:/\|/,range:{pattern:/^(\s*)[+-]?(?:\d+(?:\.\d*)?|\u221e)\s*[<#\u2264]/,lookbehind:!0,inside:{operator:/[<#\u2264]/,number:/\S+/}},rest:null}},"plural-style":{pattern:/^(\s*,\s*(?:plural|selectordinal)\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{offset:/^offset:\s*\d+/,"nested-message":s,selector:{pattern:/=\d+|[^{}:=,\s]+/,inside:{keyword:/^(?:few|many|one|other|two|zero)$/}}}},"select-style":{pattern:/^(\s*,\s*select\s*,\s*)\S(?:[\s\S]*\S)?/,lookbehind:!0,inside:{"nested-message":s,selector:{pattern:/[^{}:=,\s]+/,inside:{keyword:/^other$/}}}},keyword:/\b(?:choice|plural|select|selectordinal)\b/,"arg-type":{pattern:/\b(?:date|duration|number|ordinal|spellout|time)\b/,alias:"keyword"},"arg-skeleton":{pattern:/(,\s*)::[^{}:=,\s]+/,lookbehind:!0},"arg-style":{pattern:/(,\s*)(?:currency|full|integer|long|medium|percent|short)(?=\s*$)/,lookbehind:!0},"arg-style-text":{pattern:RegExp(/(^\s*,\s*(?=\S))/.source+t(/(?:[^{}']|'[^']*'|\{(?:)?\})+/.source,8)+"$"),lookbehind:!0,alias:"string"},punctuation:/,/}},"argument-delimiter":{pattern:/./,alias:"operator"}}},escape:a,string:c},s.inside.message.inside=e.languages["icu-message-format"],e.languages["icu-message-format"].argument.inside.content.inside["choice-style"].inside.rest=e.languages["icu-message-format"]})(d)}});export{p as a}; diff --git a/build/_shared/chunk-A55BGU3W.js b/build/_shared/chunk-A55BGU3W.js new file mode 100644 index 00000000..850e38d5 --- /dev/null +++ b/build/_shared/chunk-A55BGU3W.js @@ -0,0 +1 @@ +import{c as m}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var h=m((M,d)=>{d.exports=s;s.displayName="textile";s.aliases=[];function s(l){(function(a){var p=/\([^|()\n]+\)|\[[^\]\n]+\]|\{[^}\n]+\}/.source,c=/\)|\((?![^|()\n]+\))/.source;function e(k,b){return RegExp(k.replace(//g,function(){return"(?:"+p+")"}).replace(//g,function(){return"(?:"+c+")"}),b||"")}var i={css:{pattern:/\{[^{}]+\}/,inside:{rest:a.languages.css}},"class-id":{pattern:/(\()[^()]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\[\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/},u=a.languages.textile=a.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:e(/^[a-z]\w*(?:||[<>=])*\./.source),inside:{modifier:{pattern:e(/(^[a-z]\w*)(?:||[<>=])+(?=\.)/.source),lookbehind:!0,inside:i},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:e(/^[*#]+*\s+\S.*/.source,"m"),inside:{modifier:{pattern:e(/(^[*#]+)+/.source),lookbehind:!0,inside:i},punctuation:/^[*#]+/}},table:{pattern:e(/^(?:(?:||[<>=^~])+\.\s*)?(?:\|(?:(?:||[<>=^~_]|[\\/]\d+)+\.|(?!(?:||[<>=^~_]|[\\/]\d+)+\.))[^|]*)+\|/.source,"m"),inside:{modifier:{pattern:e(/(^|\|(?:\r?\n|\r)?)(?:||[<>=^~_]|[\\/]\d+)+(?=\.)/.source),lookbehind:!0,inside:i},punctuation:/\||^\./}},inline:{pattern:e(/(^|[^a-zA-Z\d])(\*\*|__|\?\?|[*_%@+\-^~])*.+?\2(?![a-zA-Z\d])/.source),lookbehind:!0,inside:{bold:{pattern:e(/(^(\*\*?)*).+?(?=\2)/.source),lookbehind:!0},italic:{pattern:e(/(^(__?)*).+?(?=\2)/.source),lookbehind:!0},cite:{pattern:e(/(^\?\?*).+?(?=\?\?)/.source),lookbehind:!0,alias:"string"},code:{pattern:e(/(^@*).+?(?=@)/.source),lookbehind:!0,alias:"keyword"},inserted:{pattern:e(/(^\+*).+?(?=\+)/.source),lookbehind:!0},deleted:{pattern:e(/(^-*).+?(?=-)/.source),lookbehind:!0},span:{pattern:e(/(^%*).+?(?=%)/.source),lookbehind:!0},modifier:{pattern:e(/(^\*\*|__|\?\?|[*_%@+\-^~])+/.source),lookbehind:!0,inside:i},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(^\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:e(/"*[^"]+":.+?(?=[^\w/]?(?:\s|$))/.source),inside:{text:{pattern:e(/(^"*)[^"]+(?=")/.source),lookbehind:!0},modifier:{pattern:e(/(^")+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:e(/!(?:||[<>=])*(?![<>=])[^!\s()]+(?:\([^)]+\))?!(?::.+?(?=[^\w/]?(?:\s|$)))?/.source),inside:{source:{pattern:e(/(^!(?:||[<>=])*)(?![<>=])[^!\s()]+(?:\([^)]+\))?(?=!)/.source),lookbehind:!0,alias:"url"},modifier:{pattern:e(/(^!)(?:||[<>=])+/.source),lookbehind:!0,inside:i},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^()]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:C|R|TM)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}}),t=u.phrase.inside,n={inline:t.inline,link:t.link,image:t.image,footnote:t.footnote,acronym:t.acronym,mark:t.mark};u.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i;var o=t.inline.inside;o.bold.inside=n,o.italic.inside=n,o.inserted.inside=n,o.deleted.inside=n,o.span.inside=n;var r=t.table.inside;r.inline=n.inline,r.link=n.link,r.image=n.image,r.footnote=n.footnote,r.acronym=n.acronym,r.mark=n.mark})(l)}});export{h as a}; diff --git a/build/_shared/chunk-A6ZDX4OZ.js b/build/_shared/chunk-A6ZDX4OZ.js new file mode 100644 index 00000000..e99deb7d --- /dev/null +++ b/build/_shared/chunk-A6ZDX4OZ.js @@ -0,0 +1 @@ +import{c as l}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=l((o,a)=>{a.exports=n;n.displayName="kotlin";n.aliases=["kt","kts"];function n(i){(function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin})(i)}});export{r as a}; diff --git a/build/_shared/chunk-AHSZ7MKH.js b/build/_shared/chunk-AHSZ7MKH.js new file mode 100644 index 00000000..5b9913f6 --- /dev/null +++ b/build/_shared/chunk-AHSZ7MKH.js @@ -0,0 +1,15 @@ +import{b as e}from"/numpy-tutorials/build/_shared/chunk-7DW7L33J.js";var l=e(()=>` + /* Font Awesome icon styling - consolidated */ + .label-icon { + display: inline-block; + height: 1em; + overflow: visible; + vertical-align: -0.125em; + } + + .node .label-icon path { + fill: currentColor; + stroke: revert; + stroke-width: revert; + } +`,"getIconStyles");export{l as a}; diff --git a/build/_shared/chunk-AL5C7WAB.js b/build/_shared/chunk-AL5C7WAB.js new file mode 100644 index 00000000..08475dac --- /dev/null +++ b/build/_shared/chunk-AL5C7WAB.js @@ -0,0 +1 @@ +import{c as n}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=n((i,t)=>{t.exports=e;e.displayName="matlab";e.aliases=[];function e(a){a.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:NaN|break|case|catch|continue|else|elseif|end|for|function|if|inf|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/\b(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/}}});export{r as a}; diff --git a/build/_shared/chunk-AMSYD6KQ.js b/build/_shared/chunk-AMSYD6KQ.js new file mode 100644 index 00000000..d5d79465 --- /dev/null +++ b/build/_shared/chunk-AMSYD6KQ.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var n=r((d,a)=>{a.exports=e;e.displayName="j";e.aliases=[];function e(t){t.languages.j={comment:{pattern:/\bNB\..*/,greedy:!0},string:{pattern:/'(?:''|[^'\r\n])*'/,greedy:!0},keyword:/\b(?:(?:CR|LF|adverb|conjunction|def|define|dyad|monad|noun|verb)\b|(?:assert|break|case|catch[dt]?|continue|do|else|elseif|end|fcase|for|for_\w+|goto_\w+|if|label_\w+|return|select|throw|try|while|whilst)\.)/,verb:{pattern:/(?!\^:|;\.|[=!][.:])(?:\{(?:\.|::?)?|p(?:\.\.?|:)|[=!\]]|[<>+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:ad|ar|[ejpx])_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_\b(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/}}});export{n as a}; diff --git a/build/_shared/chunk-AOSFOWX6.js b/build/_shared/chunk-AOSFOWX6.js new file mode 100644 index 00000000..5bd23b56 --- /dev/null +++ b/build/_shared/chunk-AOSFOWX6.js @@ -0,0 +1 @@ +import{c as r}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=r((a,o)=>{o.exports=t;t.displayName="mel";t.aliases=[];function t(e){e.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+(?:\.\d*)?|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\b\w+(?=\()|\b(?:CBG|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|Mayatomr|about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},e.languages.mel.code.inside.rest=e.languages.mel}});export{i as a}; diff --git a/build/_shared/chunk-AQ2CODAG.js b/build/_shared/chunk-AQ2CODAG.js new file mode 100644 index 00000000..d5d2974a --- /dev/null +++ b/build/_shared/chunk-AQ2CODAG.js @@ -0,0 +1,238 @@ +import{a as Le}from"/numpy-tutorials/build/_shared/chunk-JJXTQVMA.js";import{b as Jt,f as Ce}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";function T(){return T=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u")throw new Error(t)}function je(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function la(){return Math.random().toString(36).substr(2,8)}function kr(e,t){return{usr:e.state,key:e.key,idx:t}}function qe(e,t,r,n){return r===void 0&&(r=null),T({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Z(t):t,{state:r,key:t&&t.key||n||la()})}function ie(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&r!=="?"&&(t+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Z(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function sa(e,t,r,n){n===void 0&&(n={});let{window:a=document.defaultView,v5Compat:i=!1}=n,o=a.history,l=$.Pop,s=null,u=c();u==null&&(u=0,o.replaceState(T({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function d(){l=$.Pop;let w=c(),x=w==null?null:w-u;u=w,s&&s({action:l,location:S.location,delta:x})}function g(w,x){l=$.Push;let D=qe(S.location,w,x);r&&r(D,w),u=c()+1;let M=kr(D,u),f=S.createHref(D);try{o.pushState(M,"",f)}catch(O){if(O instanceof DOMException&&O.name==="DataCloneError")throw O;a.location.assign(f)}i&&s&&s({action:l,location:S.location,delta:1})}function b(w,x){l=$.Replace;let D=qe(S.location,w,x);r&&r(D,w),u=c();let M=kr(D,u),f=S.createHref(D);o.replaceState(M,"",f),i&&s&&s({action:l,location:S.location,delta:0})}function R(w){let x=a.location.origin!=="null"?a.location.origin:a.location.href,D=typeof w=="string"?w:ie(w);return N(x,"No window.location.(origin|href) available to create URL for href: "+D),new URL(D,x)}let S={get action(){return l},get location(){return e(a,o)},listen(w){if(s)throw new Error("A history only accepts one active listener");return a.addEventListener(Ur,d),s=w,()=>{a.removeEventListener(Ur,d),s=null}},createHref(w){return t(a,w)},createURL:R,encodeLocation(w){let x=R(w);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:g,replace:b,go(w){return o.go(w)}};return S}function ca(e){return e.index===!0}function Xt(e,t,r,n){return r===void 0&&(r=[]),n===void 0&&(n={}),e.map((a,i)=>{let o=[...r,i],l=typeof a.id=="string"?a.id:o.join("-");if(N(a.index!==!0||!a.children,"Cannot specify children on an index route"),N(!n[l],'Found a route id collision on id "'+l+`". Route id's must be globally unique within Data Router usages`),ca(a)){let s=T({},a,t(a),{id:l});return n[l]=s,s}else{let s=T({},a,t(a),{id:l,children:void 0});return n[l]=s,a.children&&(s.children=Xt(a.children,t,o,n)),s}})}function te(e,t,r){r===void 0&&(r="/");let n=typeof t=="string"?Z(t):t,a=de(n.pathname||"/",r);if(a==null)return null;let i=Gr(e);da(i);let o=null;for(let l=0;o==null&&l{let s={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};s.relativePath.startsWith("/")&&(N(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+n+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(n.length));let u=re([n,s.relativePath]),c=r.concat(s);i.children&&i.children.length>0&&(N(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Gr(i.children,t,c,u)),!(i.path==null&&!i.index)&&t.push({path:u,score:ya(u,i.index),routesMeta:c})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))a(i,o);else for(let s of Qr(i.path))a(i,o,s)}),t}function Qr(e){let t=e.split("/");if(t.length===0)return[];let[r,...n]=t,a=r.endsWith("?"),i=r.replace(/\?$/,"");if(n.length===0)return a?[i,""]:[i];let o=Qr(n.join("/")),l=[];return l.push(...o.map(s=>s===""?i:[i,s].join("/"))),a&&l.push(...o),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function da(e){e.sort((t,r)=>t.score!==r.score?r.score-t.score:Ra(t.routesMeta.map(n=>n.childrenIndex),r.routesMeta.map(n=>n.childrenIndex)))}function ya(e,t){let r=e.split("/"),n=r.length;return r.some(Tr)&&(n+=va),t&&(n+=ma),r.filter(a=>!Tr(a)).reduce((a,i)=>a+(fa.test(i)?ha:i===""?pa:ga),n)}function Ra(e,t){return e.length===t.length&&e.slice(0,-1).every((n,a)=>n===t[a])?e[e.length-1]-t[t.length-1]:0}function Ea(e,t){let{routesMeta:r}=e,n={},a="/",i=[];for(let o=0;o{if(c==="*"){let g=l[d]||"";o=i.slice(0,i.length-g.length).replace(/(.)\/+$/,"$1")}return u[c]=xa(l[d]||"",c),u},{}),pathname:i,pathnameBase:o,pattern:e}}function wa(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!0),je(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/\/:(\w+)/g,(o,l)=>(n.push(l),"/([^\\/]+)"));return e.endsWith("*")?(n.push("*"),a+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":e!==""&&e!=="/"&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}function ba(e){try{return decodeURI(e)}catch(t){return je(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function xa(e,t){try{return decodeURIComponent(e)}catch(r){return je(!1,'The value for the URL param "'+t+'" will not be decoded because'+(' the string "'+e+'" is a malformed URL segment. This is probably')+(" due to a bad percent encoding ("+r+").")),e}}function de(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&n!=="/"?null:e.slice(r)||"/"}function Zt(e,t){t===void 0&&(t="/");let{pathname:r,search:n="",hash:a=""}=typeof e=="string"?Z(e):e;return{pathname:r?r.startsWith("/")?r:Sa(r,t):t,search:Na(n),hash:Da(a)}}function Sa(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(a=>{a===".."?r.length>1&&r.pop():a!=="."&&r.push(a)}),r.length>1?r.join("/"):"/"}function Kt(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the ")+("`to."+r+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function et(e){return e.filter((t,r)=>r===0||t.route.path&&t.route.path.length>0)}function gt(e,t,r,n){n===void 0&&(n=!1);let a;typeof e=="string"?a=Z(e):(a=T({},e),N(!a.pathname||!a.pathname.includes("?"),Kt("?","pathname","search",a)),N(!a.pathname||!a.pathname.includes("#"),Kt("#","pathname","hash",a)),N(!a.search||!a.search.includes("#"),Kt("#","search","hash",a)));let i=e===""||a.pathname==="",o=i?"/":a.pathname,l;if(n||o==null)l=r;else{let d=t.length-1;if(o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),d-=1;a.pathname=g.join("/")}l=d>=0?t[d]:"/"}let s=Zt(a,l),u=o&&o!=="/"&&o.endsWith("/"),c=(i||o===".")&&r.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}function Ca(e){return e instanceof Promise&&e._tracked===!0}function La(e){if(!Ca(e))return e;if(e._error)throw e._error;return e._data}function fe(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function qt(e){let t=e.window?e.window:typeof window<"u"?window:void 0,r=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",n=!r;N(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let a;if(e.mapRouteProperties)a=e.mapRouteProperties;else if(e.detectErrorBoundary){let h=e.detectErrorBoundary;a=m=>({hasErrorBoundary:h(m)})}else a=ka;let i={},o=Xt(e.routes,a,void 0,i),l,s=e.basename||"/",u=T({v7_normalizeFormMethod:!1,v7_prependBasename:!1},e.future),c=null,d=new Set,g=null,b=null,R=null,S=e.hydrationData!=null,w=te(o,e.history.location,s),x=null;if(w==null){let h=oe(404,{pathname:e.history.location.pathname}),{matches:m,route:p}=Wr(o);w=m,x={[p.id]:h}}let D=!w.some(h=>h.route.lazy)&&(!w.some(h=>h.route.loader)||e.hydrationData!=null),M,f={historyAction:e.history.action,location:e.history.location,matches:w,initialized:D,navigation:Yt,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||x,fetchers:new Map,blockers:new Map},O=$.Pop,I=!1,j,pe=!1,ge=!1,st=[],ut=[],z=new Map,_r=0,Ut=-1,Oe=new Map,We=new Set,Ue=new Map,De=new Map,we=new Map,kt=!1;function Kn(){return c=e.history.listen(h=>{let{action:m,location:p,delta:E}=h;if(kt){kt=!1;return}je(we.size===0||E!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let C=Mr({currentLocation:f.location,nextLocation:p,historyAction:m});if(C&&E!=null){kt=!0,e.history.go(E*-1),ct(C,{state:"blocked",location:p,proceed(){ct(C,{state:"proceeding",proceed:void 0,reset:void 0,location:p}),e.history.go(E)},reset(){Ye(C),X({blockers:new Map(M.state.blockers)})}});return}return be(m,p)}),f.initialized||be($.Pop,f.location),M}function Yn(){c&&c(),d.clear(),j&&j.abort(),f.fetchers.forEach((h,m)=>Bt(m)),f.blockers.forEach((h,m)=>Ye(m))}function Xn(h){return d.add(h),()=>d.delete(h)}function X(h){f=T({},f,h),d.forEach(m=>m(f))}function Je(h,m){var p,E;let C=f.actionData!=null&&f.navigation.formMethod!=null&&ye(f.navigation.formMethod)&&f.navigation.state==="loading"&&((p=h.state)==null?void 0:p._isRedirect)!==!0,L;m.actionData?Object.keys(m.actionData).length>0?L=m.actionData:L=null:C?L=f.actionData:L=null;let P=m.loaderData?zr(f.loaderData,m.loaderData,m.matches||[],m.errors):f.loaderData;for(let[_]of we)Ye(_);let A=I===!0||f.navigation.formMethod!=null&&ye(f.navigation.formMethod)&&((E=h.state)==null?void 0:E._isRedirect)!==!0;l&&(o=l,l=void 0),X(T({},m,{actionData:L,loaderData:P,historyAction:O,location:h,initialized:!0,navigation:Yt,revalidation:"idle",restoreScrollPosition:Fr(h,m.matches||f.matches),preventScrollReset:A,blockers:new Map(f.blockers)})),pe||O===$.Pop||(O===$.Push?e.history.push(h,h.state):O===$.Replace&&e.history.replace(h,h.state)),O=$.Pop,I=!1,pe=!1,ge=!1,st=[],ut=[]}async function Nr(h,m){if(typeof h=="number"){e.history.go(h);return}let p=Gt(f.location,f.matches,s,u.v7_prependBasename,h,m?.fromRouteId,m?.relative),{path:E,submission:C,error:L}=Br(u.v7_normalizeFormMethod,!1,p,m),P=f.location,A=qe(f.location,E,m&&m.state);A=T({},A,e.history.encodeLocation(A));let _=m&&m.replace!=null?m.replace:void 0,k=$.Push;_===!0?k=$.Replace:_===!1||C!=null&&ye(C.formMethod)&&C.formAction===f.location.pathname+f.location.search&&(k=$.Replace);let B=m&&"preventScrollReset"in m?m.preventScrollReset===!0:void 0,G=Mr({currentLocation:P,nextLocation:A,historyAction:k});if(G){ct(G,{state:"blocked",location:A,proceed(){ct(G,{state:"proceeding",proceed:void 0,reset:void 0,location:A}),Nr(h,m)},reset(){Ye(G),X({blockers:new Map(f.blockers)})}});return}return await be(k,A,{submission:C,pendingError:L,preventScrollReset:B,replace:m&&m.replace})}function Gn(){if(Tt(),X({revalidation:"loading"}),f.navigation.state!=="submitting"){if(f.navigation.state==="idle"){be(f.historyAction,f.location,{startUninterruptedRevalidation:!0});return}be(O||f.historyAction,f.navigation.location,{overrideNavigation:f.navigation})}}async function be(h,m,p){j&&j.abort(),j=null,O=h,pe=(p&&p.startUninterruptedRevalidation)===!0,aa(f.location,f.matches),I=(p&&p.preventScrollReset)===!0;let E=l||o,C=p&&p.overrideNavigation,L=te(E,m,s);if(!L){let W=oe(404,{pathname:m.pathname}),{matches:K,route:ue}=Wr(E);jt(),Je(m,{matches:K,loaderData:{},errors:{[ue.id]:W}});return}if(f.initialized&&!ge&&Ha(f.location,m)&&!(p&&p.submission&&ye(p.submission.formMethod))){Je(m,{matches:L});return}j=new AbortController;let P=Qe(e.history,m,j.signal,p&&p.submission),A,_;if(p&&p.pendingError)_={[Ie(L).route.id]:p.pendingError};else if(p&&p.submission&&ye(p.submission.formMethod)){let W=await Qn(P,m,p.submission,L,{replace:p.replace});if(W.shortCircuited)return;A=W.pendingActionData,_=W.pendingActionError,C=T({state:"loading",location:m},p.submission),P=new Request(P.url,{signal:P.signal})}let{shortCircuited:k,loaderData:B,errors:G}=await Zn(P,m,L,C,p&&p.submission,p&&p.fetcherSubmission,p&&p.replace,A,_);k||(j=null,Je(m,T({matches:L},A?{actionData:A}:{},{loaderData:B,errors:G})))}async function Qn(h,m,p,E,C){Tt();let L=T({state:"submitting",location:m},p);X({navigation:L});let P,A=Qt(E,m);if(!A.route.action&&!A.route.lazy)P={type:V.error,error:oe(405,{method:h.method,pathname:m.pathname,routeId:A.route.id})};else if(P=await Ge("action",h,A,E,i,a,s),h.signal.aborted)return{shortCircuited:!0};if(Be(P)){let _;return C&&C.replace!=null?_=C.replace:_=P.location===f.location.pathname+f.location.search,await Ke(f,P,{submission:p,replace:_}),{shortCircuited:!0}}if(Ze(P)){let _=Ie(E,A.route.id);return(C&&C.replace)!==!0&&(O=$.Push),{pendingActionData:{},pendingActionError:{[_.route.id]:P.error}}}if(Pe(P))throw oe(400,{type:"defer-action"});return{pendingActionData:{[A.route.id]:P.data}}}async function Zn(h,m,p,E,C,L,P,A,_){let k=E;k||(k=T({state:"loading",location:m,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},C));let B=C||L?C||L:k.formMethod&&k.formAction&&k.formData&&k.formEncType?{formMethod:k.formMethod,formAction:k.formAction,formData:k.formData,formEncType:k.formEncType}:void 0,G=l||o,[W,K]=jr(e.history,f,p,B,m,ge,st,ut,Ue,G,s,A,_);if(jt(H=>!(p&&p.some(ee=>ee.route.id===H))||W&&W.some(ee=>ee.route.id===H)),W.length===0&&K.length===0){let H=Pr();return Je(m,T({matches:p,loaderData:{},errors:_||null},A?{actionData:A}:{},H?{fetchers:new Map(f.fetchers)}:{})),{shortCircuited:!0}}if(!pe){K.forEach(ee=>{let Te=f.fetchers.get(ee.key),Y={state:"loading",data:Te&&Te.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};f.fetchers.set(ee.key,Y)});let H=A||f.actionData;X(T({navigation:k},H?Object.keys(H).length===0?{actionData:null}:{actionData:H}:{},K.length>0?{fetchers:new Map(f.fetchers)}:{}))}Ut=++_r,K.forEach(H=>{H.controller&&z.set(H.key,H.controller)});let ue=()=>K.forEach(H=>ke(H.key));j&&j.signal.addEventListener("abort",ue);let{results:Xe,loaderResults:Ht,fetcherResults:dt}=await Cr(f.matches,p,W,K,h);if(h.signal.aborted)return{shortCircuited:!0};j&&j.signal.removeEventListener("abort",ue),K.forEach(H=>z.delete(H.key));let ve=Jr(Xe);if(ve)return await Ke(f,ve,{replace:P}),{shortCircuited:!0};let{loaderData:ft,errors:$t}=Vr(f,p,W,Ht,_,K,dt,De);De.forEach((H,ee)=>{H.subscribe(Te=>{(Te||H.done)&&De.delete(ee)})});let Vt=Pr(),zt=Ar(Ut),ht=Vt||zt||K.length>0;return T({loaderData:ft,errors:$t},ht?{fetchers:new Map(f.fetchers)}:{})}function Dr(h){return f.fetchers.get(h)||Ua}function qn(h,m,p,E){if(n)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");z.has(h)&&ke(h);let C=l||o,L=Gt(f.location,f.matches,s,u.v7_prependBasename,p,m,E?.relative),P=te(C,L,s);if(!P){It(h,m,oe(404,{pathname:L}));return}let{path:A,submission:_}=Br(u.v7_normalizeFormMethod,!0,L,E),k=Qt(P,A);if(I=(E&&E.preventScrollReset)===!0,_&&ye(_.formMethod)){ea(h,m,A,k,P,_);return}Ue.set(h,{routeId:m,path:A}),ta(h,m,A,k,P,_)}async function ea(h,m,p,E,C,L){if(Tt(),Ue.delete(h),!E.route.action&&!E.route.lazy){let Y=oe(405,{method:L.formMethod,pathname:p,routeId:m});It(h,m,Y);return}let P=f.fetchers.get(h),A=T({state:"submitting"},L,{data:P&&P.data," _hasFetcherDoneAnything ":!0});f.fetchers.set(h,A),X({fetchers:new Map(f.fetchers)});let _=new AbortController,k=Qe(e.history,p,_.signal,L);z.set(h,_);let B=await Ge("action",k,E,C,i,a,s);if(k.signal.aborted){z.get(h)===_&&z.delete(h);return}if(Be(B)){z.delete(h),We.add(h);let Y=T({state:"loading"},L,{data:void 0," _hasFetcherDoneAnything ":!0});return f.fetchers.set(h,Y),X({fetchers:new Map(f.fetchers)}),Ke(f,B,{submission:L,isFetchActionRedirect:!0})}if(Ze(B)){It(h,m,B.error);return}if(Pe(B))throw oe(400,{type:"defer-action"});let G=f.navigation.location||f.location,W=Qe(e.history,G,_.signal),K=l||o,ue=f.navigation.state!=="idle"?te(K,f.navigation.location,s):f.matches;N(ue,"Didn't find any matches after fetcher action");let Xe=++_r;Oe.set(h,Xe);let Ht=T({state:"loading",data:B.data},L,{" _hasFetcherDoneAnything ":!0});f.fetchers.set(h,Ht);let[dt,ve]=jr(e.history,f,ue,L,G,ge,st,ut,Ue,K,s,{[E.route.id]:B.data},void 0);ve.filter(Y=>Y.key!==h).forEach(Y=>{let Wt=Y.key,Or=f.fetchers.get(Wt),ia={state:"loading",data:Or&&Or.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};f.fetchers.set(Wt,ia),Y.controller&&z.set(Wt,Y.controller)}),X({fetchers:new Map(f.fetchers)});let ft=()=>ve.forEach(Y=>ke(Y.key));_.signal.addEventListener("abort",ft);let{results:$t,loaderResults:Vt,fetcherResults:zt}=await Cr(f.matches,ue,dt,ve,W);if(_.signal.aborted)return;_.signal.removeEventListener("abort",ft),Oe.delete(h),z.delete(h),ve.forEach(Y=>z.delete(Y.key));let ht=Jr($t);if(ht)return Ke(f,ht);let{loaderData:H,errors:ee}=Vr(f,f.matches,dt,Vt,void 0,ve,zt,De);if(f.fetchers.has(h)){let Y={state:"idle",data:B.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};f.fetchers.set(h,Y)}let Te=Ar(Xe);f.navigation.state==="loading"&&Xe>Ut?(N(O,"Expected pending action"),j&&j.abort(),Je(f.navigation.location,{matches:ue,loaderData:H,errors:ee,fetchers:new Map(f.fetchers)})):(X(T({errors:ee,loaderData:zr(f.loaderData,H,ue,ee)},Te||ve.length>0?{fetchers:new Map(f.fetchers)}:{})),ge=!1)}async function ta(h,m,p,E,C,L){let P=f.fetchers.get(h),A=T({state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},L,{data:P&&P.data," _hasFetcherDoneAnything ":!0});f.fetchers.set(h,A),X({fetchers:new Map(f.fetchers)});let _=new AbortController,k=Qe(e.history,p,_.signal);z.set(h,_);let B=await Ge("loader",k,E,C,i,a,s);if(Pe(B)&&(B=await nn(B,k.signal,!0)||B),z.get(h)===_&&z.delete(h),k.signal.aborted)return;if(Be(B)){We.add(h),await Ke(f,B);return}if(Ze(B)){let W=Ie(f.matches,m);f.fetchers.delete(h),X({fetchers:new Map(f.fetchers),errors:{[W.route.id]:B.error}});return}N(!Pe(B),"Unhandled fetcher deferred data");let G={state:"idle",data:B.data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};f.fetchers.set(h,G),X({fetchers:new Map(f.fetchers)})}async function Ke(h,m,p){let{submission:E,replace:C,isFetchActionRedirect:L}=p===void 0?{}:p;m.revalidate&&(ge=!0);let P=qe(h.location,m.location,T({_isRedirect:!0},L?{_isFetchActionRedirect:!0}:{}));if(N(P,"Expected a location on the redirect navigation"),qr.test(m.location)&&r){let W=e.history.createURL(m.location),K=de(W.pathname,s)==null;if(t.location.origin!==W.origin||K){C?t.location.replace(m.location):t.location.assign(m.location);return}}j=null;let A=C===!0?$.Replace:$.Push,{formMethod:_,formAction:k,formEncType:B,formData:G}=h.navigation;!E&&_&&k&&G&&B&&(E={formMethod:_,formAction:k,formEncType:B,formData:G}),Oa.has(m.status)&&E&&ye(E.formMethod)?await be(A,P,{submission:T({},E,{formAction:m.location}),preventScrollReset:I}):L?await be(A,P,{overrideNavigation:{state:"loading",location:P,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},fetcherSubmission:E,preventScrollReset:I}):await be(A,P,{overrideNavigation:{state:"loading",location:P,formMethod:E?E.formMethod:void 0,formAction:E?E.formAction:void 0,formEncType:E?E.formEncType:void 0,formData:E?E.formData:void 0},preventScrollReset:I})}async function Cr(h,m,p,E,C){let L=await Promise.all([...p.map(_=>Ge("loader",C,_,m,i,a,s)),...E.map(_=>_.matches&&_.match&&_.controller?Ge("loader",Qe(e.history,_.path,_.controller.signal),_.match,_.matches,i,a,s):{type:V.error,error:oe(404,{pathname:_.path})})]),P=L.slice(0,p.length),A=L.slice(p.length);return await Promise.all([Kr(h,p,P,P.map(()=>C.signal),!1,f.loaderData),Kr(h,E.map(_=>_.match),A,E.map(_=>_.controller?_.controller.signal:null),!0)]),{results:L,loaderResults:P,fetcherResults:A}}function Tt(){ge=!0,st.push(...jt()),Ue.forEach((h,m)=>{z.has(m)&&(ut.push(m),ke(m))})}function It(h,m,p){let E=Ie(f.matches,m);Bt(h),X({errors:{[E.route.id]:p},fetchers:new Map(f.fetchers)})}function Bt(h){let m=f.fetchers.get(h);z.has(h)&&!(m&&m.state==="loading"&&Oe.has(h))&&ke(h),Ue.delete(h),Oe.delete(h),We.delete(h),f.fetchers.delete(h)}function ke(h){let m=z.get(h);N(m,"Expected fetch controller: "+h),m.abort(),z.delete(h)}function Lr(h){for(let m of h){let E={state:"idle",data:Dr(m).data,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0," _hasFetcherDoneAnything ":!0};f.fetchers.set(m,E)}}function Pr(){let h=[],m=!1;for(let p of We){let E=f.fetchers.get(p);N(E,"Expected fetcher: "+p),E.state==="loading"&&(We.delete(p),h.push(p),m=!0)}return Lr(h),m}function Ar(h){let m=[];for(let[p,E]of Oe)if(E0}function ra(h,m){let p=f.blockers.get(h)||Ir;return we.get(h)!==m&&we.set(h,m),p}function Ye(h){f.blockers.delete(h),we.delete(h)}function ct(h,m){let p=f.blockers.get(h)||Ir;N(p.state==="unblocked"&&m.state==="blocked"||p.state==="blocked"&&m.state==="blocked"||p.state==="blocked"&&m.state==="proceeding"||p.state==="blocked"&&m.state==="unblocked"||p.state==="proceeding"&&m.state==="unblocked","Invalid blocker state transition: "+p.state+" -> "+m.state),f.blockers.set(h,m),X({blockers:new Map(f.blockers)})}function Mr(h){let{currentLocation:m,nextLocation:p,historyAction:E}=h;if(we.size===0)return;we.size>1&&je(!1,"A router only supports one blocker at a time");let C=Array.from(we.entries()),[L,P]=C[C.length-1],A=f.blockers.get(L);if(!(A&&A.state==="proceeding")&&P({currentLocation:m,nextLocation:p,historyAction:E}))return L}function jt(h){let m=[];return De.forEach((p,E)=>{(!h||h(E))&&(p.cancel(),m.push(E),De.delete(E))}),m}function na(h,m,p){if(g=h,R=m,b=p||(E=>E.key),!S&&f.navigation===Yt){S=!0;let E=Fr(f.location,f.matches);E!=null&&X({restoreScrollPosition:E})}return()=>{g=null,R=null,b=null}}function aa(h,m){if(g&&b&&R){let p=m.map(C=>Yr(C,f.loaderData)),E=b(h,p)||h.key;g[E]=R()}}function Fr(h,m){if(g&&b&&R){let p=m.map(L=>Yr(L,f.loaderData)),E=b(h,p)||h.key,C=g[E];if(typeof C=="number")return C}return null}function oa(h){i={},l=Xt(h,a,void 0,i)}return M={get basename(){return s},get state(){return f},get routes(){return o},initialize:Kn,subscribe:Xn,enableScrollRestoration:na,navigate:Nr,fetch:qn,revalidate:Gn,createHref:h=>e.history.createHref(h),encodeLocation:h=>e.history.encodeLocation(h),getFetcher:Dr,deleteFetcher:Bt,dispose:Yn,getBlocker:ra,deleteBlocker:Ye,_internalFetchControllers:z,_internalActiveDeferreds:De,_internalSetRoutes:oa},M}function Ta(e){return e!=null&&"formData"in e}function Gt(e,t,r,n,a,i,o){let l,s;if(i!=null&&o!=="path"){l=[];for(let c of t)if(l.push(c),c.route.id===i){s=c;break}}else l=t,s=t[t.length-1];let u=gt(a||".",et(l).map(c=>c.pathnameBase),de(e.pathname,r)||e.pathname,o==="path");return a==null&&(u.search=e.search,u.hash=e.hash),(a==null||a===""||a===".")&&s&&s.route.index&&!er(u.search)&&(u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index"),n&&r!=="/"&&(u.pathname=u.pathname==="/"?r:re([r,u.pathname])),ie(u)}function Br(e,t,r,n){if(!n||!Ta(n))return{path:r};if(n.formMethod&&!za(n.formMethod))return{path:r,error:oe(405,{method:n.formMethod})};let a;if(n.formData){let l=n.formMethod||"get";if(a={formMethod:e?l.toUpperCase():l.toLowerCase(),formAction:rn(r),formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:n.formData},ye(a.formMethod))return{path:r,submission:a}}let i=Z(r),o=tn(n.formData);return t&&i.search&&er(i.search)&&o.append("index",""),i.search="?"+o,{path:ie(i),submission:a}}function Ia(e,t){let r=e;if(t){let n=e.findIndex(a=>a.route.id===t);n>=0&&(r=e.slice(0,n))}return r}function jr(e,t,r,n,a,i,o,l,s,u,c,d,g){let b=g?Object.values(g)[0]:d?Object.values(d)[0]:void 0,R=e.createURL(t.location),S=e.createURL(a),w=g?Object.keys(g)[0]:void 0,D=Ia(r,w).filter((f,O)=>{if(f.route.lazy)return!0;if(f.route.loader==null)return!1;if(Ba(t.loaderData,t.matches[O],f)||o.some(pe=>pe===f.route.id))return!0;let I=t.matches[O],j=f;return Hr(f,T({currentUrl:R,currentParams:I.params,nextUrl:S,nextParams:j.params},n,{actionResult:b,defaultShouldRevalidate:i||R.pathname+R.search===S.pathname+S.search||R.search!==S.search||en(I,j)}))}),M=[];return s.forEach((f,O)=>{if(!r.some(ge=>ge.route.id===f.routeId))return;let I=te(u,f.path,c);if(!I){M.push({key:O,routeId:f.routeId,path:f.path,matches:null,match:null,controller:null});return}let j=Qt(I,f.path);if(l.includes(O)){M.push({key:O,routeId:f.routeId,path:f.path,matches:I,match:j,controller:new AbortController});return}Hr(j,T({currentUrl:R,currentParams:t.matches[t.matches.length-1].params,nextUrl:S,nextParams:r[r.length-1].params},n,{actionResult:b,defaultShouldRevalidate:i}))&&M.push({key:O,routeId:f.routeId,path:f.path,matches:I,match:j,controller:new AbortController})}),[D,M]}function Ba(e,t,r){let n=!t||r.route.id!==t.route.id,a=e[r.route.id]===void 0;return n||a}function en(e,t){let r=e.route.path;return e.pathname!==t.pathname||r!=null&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function Hr(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if(typeof r=="boolean")return r}return t.defaultShouldRevalidate}async function $r(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];N(a,"No route found in manifest");let i={};for(let o in n){let s=a[o]!==void 0&&o!=="hasErrorBoundary";je(!s,'Route "'+a.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!s&&!ua.has(o)&&(i[o]=n[o])}Object.assign(a,i),Object.assign(a,T({},t(a),{lazy:void 0}))}async function Ge(e,t,r,n,a,i,o,l,s,u){l===void 0&&(l=!1),s===void 0&&(s=!1);let c,d,g,b=w=>{let x,D=new Promise((M,f)=>x=f);return g=()=>x(),t.signal.addEventListener("abort",g),Promise.race([w({request:t,params:r.params,context:u}),D])};try{let w=r.route[e];if(r.route.lazy)if(w)d=(await Promise.all([b(w),$r(r.route,i,a)]))[0];else if(await $r(r.route,i,a),w=r.route[e],w)d=await b(w);else if(e==="action"){let x=new URL(t.url),D=x.pathname+x.search;throw oe(405,{method:t.method,pathname:D,routeId:r.route.id})}else return{type:V.data,data:void 0};else if(w)d=await b(w);else{let x=new URL(t.url),D=x.pathname+x.search;throw oe(404,{pathname:D})}N(d!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+r.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(w){c=V.error,d=w}finally{g&&t.signal.removeEventListener("abort",g)}if(Va(d)){let w=d.status;if(Fa.has(w)){let M=d.headers.get("Location");if(N(M,"Redirects returned/thrown from loaders/actions must have a Location header"),!qr.test(M))M=Gt(new URL(t.url),n.slice(0,n.indexOf(r)+1),o,!0,M);else if(!l){let f=new URL(t.url),O=M.startsWith("//")?new URL(f.protocol+M):new URL(M),I=de(O.pathname,o)!=null;O.origin===f.origin&&I&&(M=O.pathname+O.search+O.hash)}if(l)throw d.headers.set("Location",M),d;return{type:V.redirect,status:w,location:M,revalidate:d.headers.get("X-Remix-Revalidate")!==null}}if(s)throw{type:c||V.data,response:d};let x,D=d.headers.get("Content-Type");return D&&/\bapplication\/json\b/.test(D)?x=await d.json():x=await d.text(),c===V.error?{type:c,error:new xe(w,d.statusText,x),headers:d.headers}:{type:V.data,data:x,statusCode:d.status,headers:d.headers}}if(c===V.error)return{type:c,error:d};if($a(d)){var R,S;return{type:V.deferred,deferredData:d,statusCode:(R=d.init)==null?void 0:R.status,headers:((S=d.init)==null?void 0:S.headers)&&new Headers(d.init.headers)}}return{type:V.data,data:d}}function Qe(e,t,r,n){let a=e.createURL(rn(t)).toString(),i={signal:r};if(n&&ye(n.formMethod)){let{formMethod:o,formEncType:l,formData:s}=n;i.method=o.toUpperCase(),i.body=l==="application/x-www-form-urlencoded"?tn(s):s}return new Request(a,i)}function tn(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,n instanceof File?n.name:n);return t}function ja(e,t,r,n,a){let i={},o=null,l,s=!1,u={};return r.forEach((c,d)=>{let g=t[d].route.id;if(N(!Be(c),"Cannot handle redirect results in processLoaderData"),Ze(c)){let b=Ie(e,g),R=c.error;n&&(R=Object.values(n)[0],n=void 0),o=o||{},o[b.route.id]==null&&(o[b.route.id]=R),i[g]=void 0,s||(s=!0,l=fe(c.error)?c.error.status:500),c.headers&&(u[g]=c.headers)}else Pe(c)?(a.set(g,c.deferredData),i[g]=c.deferredData.data):i[g]=c.data,c.statusCode!=null&&c.statusCode!==200&&!s&&(l=c.statusCode),c.headers&&(u[g]=c.headers)}),n&&(o=n,i[Object.keys(n)[0]]=void 0),{loaderData:i,errors:o,statusCode:l||200,loaderHeaders:u}}function Vr(e,t,r,n,a,i,o,l){let{loaderData:s,errors:u}=ja(t,r,n,a,l);for(let c=0;cn.route.id===t)+1):[...e]).reverse().find(n=>n.route.hasErrorBoundary===!0)||e[0]}function Wr(e){let t=e.find(r=>r.index||!r.path||r.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function oe(e,t){let{pathname:r,routeId:n,method:a,type:i}=t===void 0?{}:t,o="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(o="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but '+('did not provide a `loader` for route "'+n+'", ')+"so there is no way to handle the request.":i==="defer-action"&&(l="defer() is not supported in actions")):e===403?(o="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):e===404?(o="Not Found",l='No route matches URL "'+r+'"'):e===405&&(o="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but '+('did not provide an `action` for route "'+n+'", ')+"so there is no way to handle the request.":a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new xe(e||500,o,new Error(l),!0)}function Jr(e){for(let t=e.length-1;t>=0;t--){let r=e[t];if(Be(r))return r}}function rn(e){let t=typeof e=="string"?Z(e):e;return ie(T({},t,{hash:""}))}function Ha(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Pe(e){return e.type===V.deferred}function Ze(e){return e.type===V.error}function Be(e){return(e&&e.type)===V.redirect}function $a(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function Va(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function za(e){return Ma.has(e.toLowerCase())}function ye(e){return Pa.has(e.toLowerCase())}async function Kr(e,t,r,n,a,i){for(let o=0;od.route.id===s.route.id),c=u!=null&&!en(u,s)&&(i&&i[s.route.id])!==void 0;if(Pe(l)&&(a||c)){let d=n[o];N(d,"Expected an AbortSignal for revalidating fetcher deferred result"),await nn(l,d,a).then(g=>{g&&(r[o]=g||r[o])})}}}async function nn(e,t,r){if(r===void 0&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:V.data,data:e.deferredData.unwrappedData}}catch(a){return{type:V.error,error:a}}return{type:V.data,data:e.deferredData.data}}}function er(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function Yr(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function Qt(e,t){let r=typeof t=="string"?Z(t).search:t.search;if(e[e.length-1].route.index&&er(r||""))return e[e.length-1];let n=et(e);return n[n.length-1]}var $,Ur,V,ua,fa,ha,ma,pa,ga,va,Tr,re,_a,Na,Da,ce,mt,vt,xe,Zr,Pa,Aa,Ma,Fa,Oa,Yt,Ua,Ir,qr,ka,pi,He=Jt(()=>{(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})($||($={}));Ur="popstate";(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(V||(V={}));ua=new Set(["lazy","caseSensitive","path","id","index","children"]);fa=/^:\w+$/,ha=3,ma=2,pa=1,ga=10,va=-2,Tr=e=>e==="*";re=e=>e.join("/").replace(/\/\/+/g,"/"),_a=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Na=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Da=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,ce=class extends Error{},mt=class{constructor(t,r){this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],N(t&&typeof t=="object"&&!Array.isArray(t),"defer() only accepts plain objects");let n;this.abortPromise=new Promise((i,o)=>n=o),this.controller=new AbortController;let a=()=>n(new ce("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",a),this.controller.signal.addEventListener("abort",a),this.data=Object.entries(t).reduce((i,o)=>{let[l,s]=o;return Object.assign(i,{[l]:this.trackPromise(l,s)})},{}),this.done&&this.unlistenAbortSignal(),this.init=r}trackPromise(t,r){if(!(r instanceof Promise))return r;this.deferredKeys.push(t),this.pendingKeysSet.add(t);let n=Promise.race([r,this.abortPromise]).then(a=>this.onSettle(n,t,null,a),a=>this.onSettle(n,t,a));return n.catch(()=>{}),Object.defineProperty(n,"_tracked",{get:()=>!0}),n}onSettle(t,r,n,a){return this.controller.signal.aborted&&n instanceof ce?(this.unlistenAbortSignal(),Object.defineProperty(t,"_error",{get:()=>n}),Promise.reject(n)):(this.pendingKeysSet.delete(r),this.done&&this.unlistenAbortSignal(),n?(Object.defineProperty(t,"_error",{get:()=>n}),this.emit(!1,r),Promise.reject(n)):(Object.defineProperty(t,"_data",{get:()=>a}),this.emit(!1,r),a))}emit(t,r){this.subscribers.forEach(n=>n(t,r))}subscribe(t){return this.subscribers.add(t),()=>this.subscribers.delete(t)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach((t,r)=>this.pendingKeysSet.delete(r)),this.emit(!0)}async resolveData(t){let r=!1;if(!this.done){let n=()=>this.cancel();t.addEventListener("abort",n),r=await new Promise(a=>{this.subscribe(i=>{t.removeEventListener("abort",n),(i||this.done)&&a(i)})})}return r}get done(){return this.pendingKeysSet.size===0}get unwrappedData(){return N(this.data!==null&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce((t,r)=>{let[n,a]=r;return Object.assign(t,{[n]:La(a)})},{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}};vt=function(t,r){r===void 0&&(r=302);let n=r;typeof n=="number"?n={status:n}:typeof n.status>"u"&&(n.status=302);let a=new Headers(n.headers);return a.set("Location",t),new Response(null,T({},n,{headers:a}))},xe=class{constructor(t,r,n,a){a===void 0&&(a=!1),this.status=t,this.statusText=r||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};Zr=["post","put","patch","delete"],Pa=new Set(Zr),Aa=["get",...Zr],Ma=new Set(Aa),Fa=new Set([301,302,303,307,308]),Oa=new Set([307,308]),Yt={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},Ua={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0},Ir={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},qr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ka=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)});pi=Symbol("deferred")});function yt(){return yt=Object.assign?Object.assign.bind():function(e){for(var t=1;ts.pathnameBase)),o=y.useRef(!1);return on(()=>{o.current=!0}),y.useCallback(function(s,u){if(u===void 0&&(u={}),!o.current)return;if(typeof s=="number"){r.go(s);return}let c=gt(s,JSON.parse(i),a,u.relative==="path");e==null&&t!=="/"&&(c.pathname=c.pathname==="/"?t:re([t,c.pathname])),(u.replace?r.replace:r.push)(c,u.state,u)},[t,r,i,a,e])}function or(e){let t=y.useContext(ne).outlet;return t&&y.createElement(Ga.Provider,{value:e},t)}function Me(e,t){let{relative:r}=t===void 0?{}:t,{matches:n}=y.useContext(ne),{pathname:a}=Q(),i=JSON.stringify(et(n).map(o=>o.pathnameBase));return y.useMemo(()=>gt(e,JSON.parse(i),a,r==="path"),[e,i,a,r])}function Qa(e,t,r){$e()||N(!1);let{navigator:n}=y.useContext(le),{matches:a}=y.useContext(ne),i=a[a.length-1],o=i?i.params:{},l=i?i.pathname:"/",s=i?i.pathnameBase:"/",u=i&&i.route,c=Q(),d;if(t){var g;let x=typeof t=="string"?Z(t):t;s==="/"||(g=x.pathname)!=null&&g.startsWith(s)||N(!1),d=x}else d=c;let b=d.pathname||"/",R=s==="/"?b:b.slice(s.length)||"/",S=te(e,{pathname:R}),w=to(S&&S.map(x=>Object.assign({},x,{params:Object.assign({},o,x.params),pathname:re([s,n.encodeLocation?n.encodeLocation(x.pathname).pathname:x.pathname]),pathnameBase:x.pathnameBase==="/"?s:re([s,n.encodeLocation?n.encodeLocation(x.pathnameBase).pathname:x.pathnameBase])})),a,r);return t&&w?y.createElement(tt.Provider,{value:{location:yt({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:$.Pop}},w):w}function Za(){let e=Fe(),t=fe(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n="rgba(200,200,200, 0.5)",a={padding:"0.5rem",backgroundColor:n},i={padding:"2px 4px",backgroundColor:n};return y.createElement(y.Fragment,null,y.createElement("h2",null,"Unexpected Application Error!"),y.createElement("h3",{style:{fontStyle:"italic"}},t),r?y.createElement("pre",{style:a},r):null,null)}function eo(e){let{routeContext:t,match:r,children:n}=e,a=y.useContext(Re);return a&&a.static&&a.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=r.route.id),y.createElement(ne.Provider,{value:t},n)}function to(e,t,r){var n;if(t===void 0&&(t=[]),r===void 0&&(r=null),e==null){var a;if((a=r)!=null&&a.errors)e=r.matches;else return null}let i=e,o=(n=r)==null?void 0:n.errors;if(o!=null){let l=i.findIndex(s=>s.route.id&&o?.[s.route.id]);l>=0||N(!1),i=i.slice(0,Math.min(i.length,l+1))}return i.reduceRight((l,s,u)=>{let c=s.route.id?o?.[s.route.id]:null,d=null;r&&(d=s.route.errorElement||qa);let g=t.concat(i.slice(0,u+1)),b=()=>{let R;return c?R=d:s.route.Component?R=y.createElement(s.route.Component,null):s.route.element?R=s.route.element:R=l,y.createElement(eo,{match:s,routeContext:{outlet:l,matches:g,isDataRoute:r!=null},children:R})};return r&&(s.route.ErrorBoundary||s.route.errorElement||u===0)?y.createElement(rr,{location:r.location,revalidation:r.revalidation,component:d,error:c,children:b(),routeContext:{outlet:null,matches:g,isDataRoute:!0}}):b()},null)}function ro(e){let t=y.useContext(Re);return t||N(!1),t}function wt(e){let t=y.useContext(Se);return t||N(!1),t}function no(e){let t=y.useContext(ne);return t||N(!1),t}function bt(e){let t=no(e),r=t.matches[t.matches.length-1];return r.route.id||N(!1),r.route.id}function ir(){return bt(he.UseRouteId)}function Ve(){return wt(he.UseNavigation).navigation}function rt(){let{matches:e,loaderData:t}=wt(he.UseMatches);return y.useMemo(()=>e.map(r=>{let{pathname:n,params:a}=r;return{id:r.route.id,pathname:n,params:a,data:t[r.route.id],handle:r.route.handle}}),[e,t])}function lr(){let e=wt(he.UseLoaderData),t=bt(he.UseLoaderData);if(e.errors&&e.errors[t]!=null){console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")");return}return e.loaderData[t]}function Fe(){var e;let t=y.useContext(an),r=wt(he.UseRouteError),n=bt(he.UseRouteError);return t||((e=r.errors)==null?void 0:e[n])}function sr(){let e=y.useContext(Rt);return e?._data}function xt(){let e=y.useContext(Rt);return e?._error}function ao(){let{router:e}=ro(nr.UseNavigateStable),t=bt(he.UseNavigateStable),r=y.useRef(!1);return on(()=>{r.current=!0}),y.useCallback(function(a,i){i===void 0&&(i={}),r.current&&(typeof a=="number"?e.navigate(a):e.navigate(a,yt({fromRouteId:t},i)))},[e,t])}function ur(e){let{fallbackElement:t,router:r,future:n}=e,[a,i]=y.useState(r.state),{v7_startTransition:o}=n||{},l=y.useCallback(d=>{o&&tr?tr(()=>i(d)):i(d)},[i,o]);y.useLayoutEffect(()=>r.subscribe(l),[r,l]);let s=y.useMemo(()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:d=>r.navigate(d),push:(d,g,b)=>r.navigate(d,{state:g,preventScrollReset:b?.preventScrollReset}),replace:(d,g,b)=>r.navigate(d,{replace:!0,state:g,preventScrollReset:b?.preventScrollReset})}),[r]),u=r.basename||"/",c=y.useMemo(()=>({router:r,navigator:s,static:!1,basename:u}),[r,s,u]);return y.createElement(y.Fragment,null,y.createElement(Re.Provider,{value:c},y.createElement(Se.Provider,{value:a},y.createElement(cr,{basename:u,location:a.location,navigationType:a.historyAction,navigator:s},a.initialized?y.createElement(oo,{routes:r.routes,state:a}):t))),null)}function oo(e){let{routes:t,state:r}=e;return Qa(t,void 0,r)}function St(e){return or(e.context)}function cr(e){let{basename:t="/",children:r=null,location:n,navigationType:a=$.Pop,navigator:i,static:o=!1}=e;$e()&&N(!1);let l=t.replace(/^\/*/,"/"),s=y.useMemo(()=>({basename:l,navigator:i,static:o}),[l,i,o]);typeof n=="string"&&(n=Z(n));let{pathname:u="/",search:c="",hash:d="",state:g=null,key:b="default"}=n,R=y.useMemo(()=>{let S=de(u,l);return S==null?null:{location:{pathname:S,search:c,hash:d,state:g,key:b},navigationType:a}},[l,u,c,d,g,b,a]);return R==null?null:y.createElement(le.Provider,{value:s},y.createElement(tt.Provider,{children:r,value:R}))}function dr(e){let{children:t,errorElement:r,resolve:n}=e;return y.createElement(ar,{resolve:n,errorElement:r},y.createElement(lo,null,t))}function lo(e){let{children:t}=e,r=sr(),n=typeof t=="function"?t(r):t;return y.createElement(y.Fragment,null,n)}function ln(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:y.createElement(e.Component),Component:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:y.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}var y,Ya,tr,Re,Se,Rt,le,tt,ne,an,Ga,qa,rr,nr,he,q,io,ar,fr=Jt(()=>{y=Ce(Le());He();He();Ya="startTransition",tr=y[Ya],Re=y.createContext(null),Se=y.createContext(null),Rt=y.createContext(null),le=y.createContext(null),tt=y.createContext(null),ne=y.createContext({outlet:null,matches:[],isDataRoute:!1}),an=y.createContext(null);Ga=y.createContext(null);qa=y.createElement(Za,null),rr=class extends y.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,r){return r.location!==t.location||r.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error||r.error,location:r.location,revalidation:t.revalidation||r.revalidation}}componentDidCatch(t,r){console.error("React Router caught the following error during render",t,r)}render(){return this.state.error?y.createElement(ne.Provider,{value:this.props.routeContext},y.createElement(an.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};(function(e){e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate"})(nr||(nr={}));(function(e){e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId"})(he||(he={}));(function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"})(q||(q={}));io=new Promise(()=>{}),ar=class extends y.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(t,r){console.error(" caught the following error during render",t,r)}render(){let{children:t,errorElement:r,resolve:n}=this.props,a=null,i=q.pending;if(!(n instanceof Promise))i=q.success,a=Promise.resolve(),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_data",{get:()=>n});else if(this.state.error){i=q.error;let o=this.state.error;a=Promise.reject().catch(()=>{}),Object.defineProperty(a,"_tracked",{get:()=>!0}),Object.defineProperty(a,"_error",{get:()=>o})}else n._tracked?(a=n,i=a._error!==void 0?q.error:a._data!==void 0?q.success:q.pending):(i=q.pending,Object.defineProperty(n,"_tracked",{get:()=>!0}),a=n.then(o=>Object.defineProperty(n,"_data",{get:()=>o}),o=>Object.defineProperty(n,"_error",{get:()=>o})));if(i===q.error&&a._error instanceof ce)throw io;if(i===q.error&&!r)throw a._error;if(i===q.error)return y.createElement(Rt.Provider,{value:a,children:r});if(i===q.success)return y.createElement(Rt.Provider,{value:a,children:t});throw a}}});function se(){return se=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(r[a]=e[a]);return r}function Dt(e){return e!=null&&typeof e.tagName=="string"}function vo(e){return Dt(e)&&e.tagName.toLowerCase()==="button"}function yo(e){return Dt(e)&&e.tagName.toLowerCase()==="form"}function Ro(e){return Dt(e)&&e.tagName.toLowerCase()==="input"}function Eo(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function wo(e,t){return e.button===0&&(!t||t==="_self")&&!Eo(e)}function bo(e,t,r){let n,a=null,i,o;if(yo(e)){let l=t.submissionTrigger;if(t.action)a=t.action;else{let s=e.getAttribute("action");a=s?de(s,r):null}n=t.method||e.getAttribute("method")||Nt,i=t.encType||e.getAttribute("enctype")||hr,o=new FormData(e),l&&l.name&&o.append(l.name,l.value)}else if(vo(e)||Ro(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a +`});function vi(i){let e=class extends i{constructor(...t){super(...t),this.dirtyValue=!1,this.disabled=!1,this.proxyEventsToBlock=["change","click"],this.proxyInitialized=!1,this.required=!1,this.initialValue=this.initialValue||"",this.elementInternals||(this.formResetCallback=this.formResetCallback.bind(this))}static get formAssociated(){return uj}get validity(){return this.elementInternals?this.elementInternals.validity:this.proxy.validity}get form(){return this.elementInternals?this.elementInternals.form:this.proxy.form}get validationMessage(){return this.elementInternals?this.elementInternals.validationMessage:this.proxy.validationMessage}get willValidate(){return this.elementInternals?this.elementInternals.willValidate:this.proxy.willValidate}get labels(){if(this.elementInternals)return Object.freeze(Array.from(this.elementInternals.labels));if(this.proxy instanceof HTMLElement&&this.proxy.ownerDocument&&this.id){let t=this.proxy.labels,r=Array.from(this.proxy.getRootNode().querySelectorAll(`[for='${this.id}']`)),n=t?r.concat(Array.from(t)):r;return Object.freeze(n)}else return ss}valueChanged(t,r){this.dirtyValue=!0,this.proxy instanceof HTMLElement&&(this.proxy.value=this.value),this.currentValue=this.value,this.setFormValue(this.value),this.validate()}currentValueChanged(){this.value=this.currentValue}initialValueChanged(t,r){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}disabledChanged(t,r){this.proxy instanceof HTMLElement&&(this.proxy.disabled=this.disabled),ce.queueUpdate(()=>this.classList.toggle("disabled",this.disabled))}nameChanged(t,r){this.proxy instanceof HTMLElement&&(this.proxy.name=this.name)}requiredChanged(t,r){this.proxy instanceof HTMLElement&&(this.proxy.required=this.required),ce.queueUpdate(()=>this.classList.toggle("required",this.required)),this.validate()}get elementInternals(){if(!uj)return null;let t=cj.get(this);return t||(t=this.attachInternals(),cj.set(this,t)),t}connectedCallback(){super.connectedCallback(),this.addEventListener("keypress",this._keypressHandler),this.value||(this.value=this.initialValue,this.dirtyValue=!1),this.elementInternals||(this.attachProxy(),this.form&&this.form.addEventListener("reset",this.formResetCallback))}disconnectedCallback(){super.disconnectedCallback(),this.proxyEventsToBlock.forEach(t=>this.proxy.removeEventListener(t,this.stopPropagation)),!this.elementInternals&&this.form&&this.form.removeEventListener("reset",this.formResetCallback)}checkValidity(){return this.elementInternals?this.elementInternals.checkValidity():this.proxy.checkValidity()}reportValidity(){return this.elementInternals?this.elementInternals.reportValidity():this.proxy.reportValidity()}setValidity(t,r,n){this.elementInternals?this.elementInternals.setValidity(t,r,n):typeof r=="string"&&this.proxy.setCustomValidity(r)}formDisabledCallback(t){this.disabled=t}formResetCallback(){this.value=this.initialValue,this.dirtyValue=!1}attachProxy(){var t;this.proxyInitialized||(this.proxyInitialized=!0,this.proxy.style.display="none",this.proxyEventsToBlock.forEach(r=>this.proxy.addEventListener(r,this.stopPropagation)),this.proxy.disabled=this.disabled,this.proxy.required=this.required,typeof this.name=="string"&&(this.proxy.name=this.name),typeof this.value=="string"&&(this.proxy.value=this.value),this.proxy.setAttribute("slot",aj),this.proxySlot=document.createElement("slot"),this.proxySlot.setAttribute("name",aj)),(t=this.shadowRoot)===null||t===void 0||t.appendChild(this.proxySlot),this.appendChild(this.proxy)}detachProxy(){var t;this.removeChild(this.proxy),(t=this.shadowRoot)===null||t===void 0||t.removeChild(this.proxySlot)}validate(t){this.proxy instanceof HTMLElement&&this.setValidity(this.proxy.validity,this.proxy.validationMessage,t)}setFormValue(t,r){this.elementInternals&&this.elementInternals.setFormValue(t,r||t)}_keypressHandler(t){switch(t.key){case ni:if(this.form instanceof HTMLFormElement){let r=this.form.querySelector("[type=submit]");r?.click()}break}}stopPropagation(t){t.stopPropagation()}};return A({mode:"boolean"})(e.prototype,"disabled"),A({mode:"fromView",attribute:"value"})(e.prototype,"initialValue"),A({attribute:"current-value"})(e.prototype,"currentValue"),A(e.prototype,"name"),A({mode:"boolean"})(e.prototype,"required"),P(e.prototype,"value"),e}function ch(i){class e extends vi(i){}class t extends e{constructor(...n){super(n),this.dirtyChecked=!1,this.checkedAttribute=!1,this.checked=!1,this.dirtyChecked=!1}checkedAttributeChanged(){this.defaultChecked=this.checkedAttribute}defaultCheckedChanged(){this.dirtyChecked||(this.checked=this.defaultChecked,this.dirtyChecked=!1)}checkedChanged(n,s){this.dirtyChecked||(this.dirtyChecked=!0),this.currentChecked=this.checked,this.updateForm(),this.proxy instanceof HTMLInputElement&&(this.proxy.checked=this.checked),n!==void 0&&this.$emit("change"),this.validate()}currentCheckedChanged(n,s){this.checked=this.currentChecked}updateForm(){let n=this.checked?this.value:null;this.setFormValue(n,n)}connectedCallback(){super.connectedCallback(),this.updateForm()}formResetCallback(){super.formResetCallback(),this.checked=!!this.checkedAttribute,this.dirtyChecked=!1}}return A({attribute:"checked",mode:"boolean"})(t.prototype,"checkedAttribute"),A({attribute:"current-checked",converter:Oc})(t.prototype,"currentChecked"),P(t.prototype,"defaultChecked"),P(t.prototype,"checked"),t}var aj,lj,uj,cj,fn=b(()=>{B();ye();aj="form-associated-proxy",lj="ElementInternals",uj=lj in window&&"setFormValue"in window[lj].prototype,cj=new WeakMap});var l3,Qb,dj=b(()=>{fn();Pe();l3=class extends ee{},Qb=class extends vi(l3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Xr,dh,hj=b(()=>{Le();B();Nc();Xi();dj();Xr=class extends Qb{constructor(){super(...arguments),this.handleClick=e=>{var t;this.disabled&&((t=this.defaultSlottedContent)===null||t===void 0?void 0:t.length)<=1&&e.stopPropagation()},this.handleSubmission=()=>{if(!this.form)return;let e=this.proxy.isConnected;e||this.attachProxy(),typeof this.form.requestSubmit=="function"?this.form.requestSubmit(this.proxy):this.proxy.click(),e||this.detachProxy()},this.handleFormReset=()=>{var e;(e=this.form)===null||e===void 0||e.reset()},this.handleUnsupportedDelegatesFocus=()=>{var e;window.ShadowRoot&&!window.ShadowRoot.prototype.hasOwnProperty("delegatesFocus")&&(!((e=this.$fastController.definition.shadowOptions)===null||e===void 0)&&e.delegatesFocus)&&(this.focus=()=>{this.control.focus()})}}formactionChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formAction=this.formaction)}formenctypeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formEnctype=this.formenctype)}formmethodChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formMethod=this.formmethod)}formnovalidateChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formNoValidate=this.formnovalidate)}formtargetChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.formTarget=this.formtarget)}typeChanged(e,t){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type),t==="submit"&&this.addEventListener("click",this.handleSubmission),e==="submit"&&this.removeEventListener("click",this.handleSubmission),t==="reset"&&this.addEventListener("click",this.handleFormReset),e==="reset"&&this.removeEventListener("click",this.handleFormReset)}validate(){super.validate(this.control)}connectedCallback(){var e;super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.handleUnsupportedDelegatesFocus();let t=Array.from((e=this.control)===null||e===void 0?void 0:e.children);t&&t.forEach(r=>{r.addEventListener("click",this.handleClick)})}disconnectedCallback(){var e;super.disconnectedCallback();let t=Array.from((e=this.control)===null||e===void 0?void 0:e.children);t&&t.forEach(r=>{r.removeEventListener("click",this.handleClick)})}};T([A({mode:"boolean"})],Xr.prototype,"autofocus",void 0);T([A({attribute:"form"})],Xr.prototype,"formId",void 0);T([A],Xr.prototype,"formaction",void 0);T([A],Xr.prototype,"formenctype",void 0);T([A],Xr.prototype,"formmethod",void 0);T([A({mode:"boolean"})],Xr.prototype,"formnovalidate",void 0);T([A],Xr.prototype,"formtarget",void 0);T([A],Xr.prototype,"type",void 0);T([P],Xr.prototype,"defaultSlottedContent",void 0);dh=class{};T([A({attribute:"aria-expanded"})],dh.prototype,"ariaExpanded",void 0);T([A({attribute:"aria-pressed"})],dh.prototype,"ariaPressed",void 0);He(dh,at);He(Xr,ht,dh)});var fj=b(()=>{oj();hj()});var e1,u3=b(()=>{e1=class{constructor(e){if(this.dayFormat="numeric",this.weekdayFormat="long",this.monthFormat="long",this.yearFormat="numeric",this.date=new Date,e)for(let t in e){let r=e[t];t==="date"?this.date=this.getDateObject(r):this[t]=r}}getDateObject(e){if(typeof e=="string"){let t=e.split(/[/-]/);return t.length<3?new Date:new Date(parseInt(t[2],10),parseInt(t[0],10)-1,parseInt(t[1],10))}else if("day"in e&&"month"in e&&"year"in e){let{day:t,month:r,year:n}=e;return new Date(n,r-1,t)}return e}getDate(e=this.date,t={weekday:this.weekdayFormat,month:this.monthFormat,day:this.dayFormat,year:this.yearFormat},r=this.locale){let n=this.getDateObject(e);if(!n.getTime())return"";let s=Object.assign({timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone},t);return new Intl.DateTimeFormat(r,s).format(n)}getDay(e=this.date.getDate(),t=this.dayFormat,r=this.locale){return this.getDate({month:1,day:e,year:2020},{day:t},r)}getMonth(e=this.date.getMonth()+1,t=this.monthFormat,r=this.locale){return this.getDate({month:e,day:2,year:2020},{month:t},r)}getYear(e=this.date.getFullYear(),t=this.yearFormat,r=this.locale){return this.getDate({month:2,day:2,year:e},{year:t},r)}getWeekday(e=0,t=this.weekdayFormat,r=this.locale){let n=`1-${e+1}-2017`;return this.getDate(n,{weekday:t},r)}getWeekdays(e=this.weekdayFormat,t=this.locale){return Array(7).fill(null).map((r,n)=>this.getWeekday(n,e,t))}}});var $n,pj=b(()=>{Le();B();ye();Pe();u3();$n=class extends ee{constructor(){super(...arguments),this.dateFormatter=new e1,this.readonly=!1,this.locale="en-US",this.month=new Date().getMonth()+1,this.year=new Date().getFullYear(),this.dayFormat="numeric",this.weekdayFormat="short",this.monthFormat="long",this.yearFormat="numeric",this.minWeeks=0,this.disabledDates="",this.selectedDates="",this.oneDayInMs=864e5}localeChanged(){this.dateFormatter.locale=this.locale}dayFormatChanged(){this.dateFormatter.dayFormat=this.dayFormat}weekdayFormatChanged(){this.dateFormatter.weekdayFormat=this.weekdayFormat}monthFormatChanged(){this.dateFormatter.monthFormat=this.monthFormat}yearFormatChanged(){this.dateFormatter.yearFormat=this.yearFormat}getMonthInfo(e=this.month,t=this.year){let r=l=>new Date(l.getFullYear(),l.getMonth(),1).getDay(),n=l=>{let u=new Date(l.getFullYear(),l.getMonth()+1,1);return new Date(u.getTime()-this.oneDayInMs).getDate()},s=new Date(t,e-1),o=new Date(t,e),a=new Date(t,e-2);return{length:n(s),month:e,start:r(s),year:t,previous:{length:n(a),month:a.getMonth()+1,start:r(a),year:a.getFullYear()},next:{length:n(o),month:o.getMonth()+1,start:r(o),year:o.getFullYear()}}}getDays(e=this.getMonthInfo(),t=this.minWeeks){t=t>10?10:t;let{start:r,length:n,previous:s,next:o}=e,a=[],l=1-r;for(;ln?o:e,d=l<1?s.length+l:l>n?l-n:l,h=`${u}-${d}-${c}`,f=this.dateInString(h,this.disabledDates),p=this.dateInString(h,this.selectedDates),g={day:d,month:u,year:c,disabled:f,selected:p},v=a[a.length-1];a.length===0||v.length%7===0?a.push([g]):v.push(g),l++}return a}dateInString(e,t){let r=t.split(",").map(n=>n.trim());return e=typeof e=="string"?e:`${e.getMonth()+1}-${e.getDate()}-${e.getFullYear()}`,r.some(n=>n===e)}getDayClassNames(e,t){let{day:r,month:n,year:s,disabled:o,selected:a}=e,l=t===`${n}-${r}-${s}`,u=this.month!==n;return["day",l&&"today",u&&"inactive",o&&"disabled",a&&"selected"].filter(Boolean).join(" ")}getWeekdayText(){let e=this.dateFormatter.getWeekdays().map(t=>({text:t}));if(this.weekdayFormat!=="long"){let t=this.dateFormatter.getWeekdays("long");e.forEach((r,n)=>{r.abbr=t[n]})}return e}handleDateSelect(e,t){e.preventDefault,this.$emit("dateselected",t)}handleKeydown(e,t){return e.key===ni&&this.handleDateSelect(e,t),!0}};T([A({mode:"boolean"})],$n.prototype,"readonly",void 0);T([A],$n.prototype,"locale",void 0);T([A({converter:me})],$n.prototype,"month",void 0);T([A({converter:me})],$n.prototype,"year",void 0);T([A({attribute:"day-format",mode:"fromView"})],$n.prototype,"dayFormat",void 0);T([A({attribute:"weekday-format",mode:"fromView"})],$n.prototype,"weekdayFormat",void 0);T([A({attribute:"month-format",mode:"fromView"})],$n.prototype,"monthFormat",void 0);T([A({attribute:"year-format",mode:"fromView"})],$n.prototype,"yearFormat",void 0);T([A({attribute:"min-weeks",converter:me})],$n.prototype,"minWeeks",void 0);T([A({attribute:"disabled-dates"})],$n.prototype,"disabledDates",void 0);T([A({attribute:"selected-dates"})],$n.prototype,"selectedDates",void 0)});var qp,da,zc,t1=b(()=>{qp={none:"none",default:"default",sticky:"sticky"},da={default:"default",columnHeader:"columnheader",rowHeader:"rowheader"},zc={default:"default",header:"header",stickyHeader:"sticky-header"}});var Ei,c3=b(()=>{Le();B();ye();Pe();t1();Ei=class extends ee{constructor(){super(...arguments),this.rowType=zc.default,this.rowData=null,this.columnDefinitions=null,this.isActiveRow=!1,this.cellsRepeatBehavior=null,this.cellsPlaceholder=null,this.focusColumnIndex=0,this.refocusOnLoad=!1,this.updateRowStyle=()=>{this.style.gridTemplateColumns=this.gridTemplateColumns}}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowStyle()}rowTypeChanged(){this.$fastController.isConnected&&this.updateItemTemplate()}rowDataChanged(){if(this.rowData!==null&&this.isActiveRow){this.refocusOnLoad=!0;return}}cellItemTemplateChanged(){this.updateItemTemplate()}headerCellItemTemplateChanged(){this.updateItemTemplate()}connectedCallback(){super.connectedCallback(),this.cellsRepeatBehavior===null&&(this.cellsPlaceholder=document.createComment(""),this.appendChild(this.cellsPlaceholder),this.updateItemTemplate(),this.cellsRepeatBehavior=new aa(e=>e.columnDefinitions,e=>e.activeCellItemTemplate,{positioning:!0}).createBehavior(this.cellsPlaceholder),this.$fastController.addBehaviors([this.cellsRepeatBehavior])),this.addEventListener("cell-focused",this.handleCellFocus),this.addEventListener(la,this.handleFocusout),this.addEventListener(ua,this.handleKeydown),this.updateRowStyle(),this.refocusOnLoad&&(this.refocusOnLoad=!1,this.cellElements.length>this.focusColumnIndex&&this.cellElements[this.focusColumnIndex].focus())}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("cell-focused",this.handleCellFocus),this.removeEventListener(la,this.handleFocusout),this.removeEventListener(ua,this.handleKeydown)}handleFocusout(e){this.contains(e.target)||(this.isActiveRow=!1,this.focusColumnIndex=0)}handleCellFocus(e){this.isActiveRow=!0,this.focusColumnIndex=this.cellElements.indexOf(e.target),this.$emit("row-focused",this)}handleKeydown(e){if(e.defaultPrevented)return;let t=0;switch(e.key){case Er:t=Math.max(0,this.focusColumnIndex-1),this.cellElements[t].focus(),e.preventDefault();break;case kr:t=Math.min(this.cellElements.length-1,this.focusColumnIndex+1),this.cellElements[t].focus(),e.preventDefault();break;case Ci:e.ctrlKey||(this.cellElements[0].focus(),e.preventDefault());break;case Ii:e.ctrlKey||(this.cellElements[this.cellElements.length-1].focus(),e.preventDefault());break}}updateItemTemplate(){this.activeCellItemTemplate=this.rowType===zc.default&&this.cellItemTemplate!==void 0?this.cellItemTemplate:this.rowType===zc.default&&this.cellItemTemplate===void 0?this.defaultCellItemTemplate:this.headerCellItemTemplate!==void 0?this.headerCellItemTemplate:this.defaultHeaderCellItemTemplate}};T([A({attribute:"grid-template-columns"})],Ei.prototype,"gridTemplateColumns",void 0);T([A({attribute:"row-type"})],Ei.prototype,"rowType",void 0);T([P],Ei.prototype,"rowData",void 0);T([P],Ei.prototype,"columnDefinitions",void 0);T([P],Ei.prototype,"cellItemTemplate",void 0);T([P],Ei.prototype,"headerCellItemTemplate",void 0);T([P],Ei.prototype,"rowIndex",void 0);T([P],Ei.prototype,"isActiveRow",void 0);T([P],Ei.prototype,"activeCellItemTemplate",void 0);T([P],Ei.prototype,"defaultCellItemTemplate",void 0);T([P],Ei.prototype,"defaultHeaderCellItemTemplate",void 0);T([P],Ei.prototype,"cellElements",void 0)});function S3e(i){let e=i.tagFor(Ei);return H` + <${e} + :rowData="${t=>t}" + :cellItemTemplate="${(t,r)=>r.parent.cellItemTemplate}" + :headerCellItemTemplate="${(t,r)=>r.parent.headerCellItemTemplate}" + > +`}var mj,gj=b(()=>{B();c3();mj=(i,e)=>{let t=S3e(i),r=i.tagFor(Ei);return H` + + `}});var si,bj=b(()=>{Le();B();ye();Pe();t1();si=class extends ee{constructor(){super(),this.noTabbing=!1,this.generateHeader=qp.default,this.rowsData=[],this.columnDefinitions=null,this.focusRowIndex=0,this.focusColumnIndex=0,this.rowsPlaceholder=null,this.generatedHeader=null,this.isUpdatingFocus=!1,this.pendingFocusUpdate=!1,this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!0,this.generatedGridTemplateColumns="",this.focusOnCell=(e,t,r)=>{if(this.rowElements.length===0){this.focusRowIndex=0,this.focusColumnIndex=0;return}let n=Math.max(0,Math.min(this.rowElements.length-1,e)),o=this.rowElements[n].querySelectorAll('[role="cell"], [role="gridcell"], [role="columnheader"], [role="rowheader"]'),a=Math.max(0,Math.min(o.length-1,t)),l=o[a];r&&this.scrollHeight!==this.clientHeight&&(n0||n>this.focusRowIndex&&this.scrollTop{e&&e.length&&(e.forEach(r=>{r.addedNodes.forEach(n=>{n.nodeType===1&&n.getAttribute("role")==="row"&&(n.columnDefinitions=this.columnDefinitions)})}),this.queueRowIndexUpdate())},this.queueRowIndexUpdate=()=>{this.rowindexUpdateQueued||(this.rowindexUpdateQueued=!0,ce.queueUpdate(this.updateRowIndexes))},this.updateRowIndexes=()=>{let e=this.gridTemplateColumns;if(e===void 0){if(this.generatedGridTemplateColumns===""&&this.rowElements.length>0){let t=this.rowElements[0];this.generatedGridTemplateColumns=new Array(t.cellElements.length).fill("1fr").join(" ")}e=this.generatedGridTemplateColumns}this.rowElements.forEach((t,r)=>{let n=t;n.rowIndex=r,n.gridTemplateColumns=e,this.columnDefinitionsStale&&(n.columnDefinitions=this.columnDefinitions)}),this.rowindexUpdateQueued=!1,this.columnDefinitionsStale=!1}}static generateTemplateColumns(e){let t="";return e.forEach(r=>{t=`${t}${t===""?"":" "}1fr`}),t}noTabbingChanged(){this.$fastController.isConnected&&(this.noTabbing?this.setAttribute("tabIndex","-1"):this.setAttribute("tabIndex",this.contains(document.activeElement)||this===document.activeElement?"-1":"0"))}generateHeaderChanged(){this.$fastController.isConnected&&this.toggleGeneratedHeader()}gridTemplateColumnsChanged(){this.$fastController.isConnected&&this.updateRowIndexes()}rowsDataChanged(){this.columnDefinitions===null&&this.rowsData.length>0&&(this.columnDefinitions=si.generateColumns(this.rowsData[0])),this.$fastController.isConnected&&this.toggleGeneratedHeader()}columnDefinitionsChanged(){if(this.columnDefinitions===null){this.generatedGridTemplateColumns="";return}this.generatedGridTemplateColumns=si.generateTemplateColumns(this.columnDefinitions),this.$fastController.isConnected&&(this.columnDefinitionsStale=!0,this.queueRowIndexUpdate())}headerCellItemTemplateChanged(){this.$fastController.isConnected&&this.generatedHeader!==null&&(this.generatedHeader.headerCellItemTemplate=this.headerCellItemTemplate)}focusRowIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}focusColumnIndexChanged(){this.$fastController.isConnected&&this.queueFocusUpdate()}connectedCallback(){super.connectedCallback(),this.rowItemTemplate===void 0&&(this.rowItemTemplate=this.defaultRowItemTemplate),this.rowsPlaceholder=document.createComment(""),this.appendChild(this.rowsPlaceholder),this.toggleGeneratedHeader(),this.rowsRepeatBehavior=new aa(e=>e.rowsData,e=>e.rowItemTemplate,{positioning:!0}).createBehavior(this.rowsPlaceholder),this.$fastController.addBehaviors([this.rowsRepeatBehavior]),this.addEventListener("row-focused",this.handleRowFocus),this.addEventListener(K2,this.handleFocus),this.addEventListener(ua,this.handleKeydown),this.addEventListener(la,this.handleFocusOut),this.observer=new MutationObserver(this.onChildListChange),this.observer.observe(this,{childList:!0}),this.noTabbing&&this.setAttribute("tabindex","-1"),ce.queueUpdate(this.queueRowIndexUpdate)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("row-focused",this.handleRowFocus),this.removeEventListener(K2,this.handleFocus),this.removeEventListener(ua,this.handleKeydown),this.removeEventListener(la,this.handleFocusOut),this.observer.disconnect(),this.rowsPlaceholder=null,this.generatedHeader=null}handleRowFocus(e){this.isUpdatingFocus=!0;let t=e.target;this.focusRowIndex=this.rowElements.indexOf(t),this.focusColumnIndex=t.focusColumnIndex,this.setAttribute("tabIndex","-1"),this.isUpdatingFocus=!1}handleFocus(e){this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}handleFocusOut(e){(e.relatedTarget===null||!this.contains(e.relatedTarget))&&this.setAttribute("tabIndex",this.noTabbing?"-1":"0")}handleKeydown(e){if(e.defaultPrevented)return;let t,r=this.rowElements.length-1,n=this.offsetHeight+this.scrollTop,s=this.rowElements[r];switch(e.key){case Ot:e.preventDefault(),this.focusOnCell(this.focusRowIndex-1,this.focusColumnIndex,!0);break;case Dt:e.preventDefault(),this.focusOnCell(this.focusRowIndex+1,this.focusColumnIndex,!0);break;case CH:if(e.preventDefault(),this.rowElements.length===0){this.focusOnCell(0,0,!1);break}if(this.focusRowIndex===0){this.focusOnCell(0,this.focusColumnIndex,!1);return}for(t=this.focusRowIndex-1,t;t>=0;t--){let o=this.rowElements[t];if(o.offsetTop=r||s.offsetTop+s.offsetHeight<=n){this.focusOnCell(r,this.focusColumnIndex,!1);return}for(t=this.focusRowIndex+1,t;t<=r;t++){let o=this.rowElements[t];if(o.offsetTop+o.offsetHeight>n){let a=0;this.generateHeader===qp.sticky&&this.generatedHeader!==null&&(a=this.generatedHeader.clientHeight),this.scrollTop=o.offsetTop-a;break}}this.focusOnCell(t,this.focusColumnIndex,!1);break;case Ci:e.ctrlKey&&(e.preventDefault(),this.focusOnCell(0,0,!0));break;case Ii:e.ctrlKey&&this.columnDefinitions!==null&&(e.preventDefault(),this.focusOnCell(this.rowElements.length-1,this.columnDefinitions.length-1,!0));break}}queueFocusUpdate(){this.isUpdatingFocus&&(this.contains(document.activeElement)||this===document.activeElement)||this.pendingFocusUpdate===!1&&(this.pendingFocusUpdate=!0,ce.queueUpdate(()=>this.updateFocus()))}updateFocus(){this.pendingFocusUpdate=!1,this.focusOnCell(this.focusRowIndex,this.focusColumnIndex,!0)}toggleGeneratedHeader(){if(this.generatedHeader!==null&&(this.removeChild(this.generatedHeader),this.generatedHeader=null),this.generateHeader!==qp.none&&this.rowsData.length>0){let e=document.createElement(this.rowElementTag);this.generatedHeader=e,this.generatedHeader.columnDefinitions=this.columnDefinitions,this.generatedHeader.gridTemplateColumns=this.gridTemplateColumns,this.generatedHeader.rowType=this.generateHeader===qp.sticky?zc.stickyHeader:zc.header,(this.firstChild!==null||this.rowsPlaceholder!==null)&&this.insertBefore(e,this.firstChild!==null?this.firstChild:this.rowsPlaceholder);return}}};si.generateColumns=i=>Object.getOwnPropertyNames(i).map((e,t)=>({columnDataKey:e,gridColumn:`${t}`}));T([A({attribute:"no-tabbing",mode:"boolean"})],si.prototype,"noTabbing",void 0);T([A({attribute:"generate-header"})],si.prototype,"generateHeader",void 0);T([A({attribute:"grid-template-columns"})],si.prototype,"gridTemplateColumns",void 0);T([P],si.prototype,"rowsData",void 0);T([P],si.prototype,"columnDefinitions",void 0);T([P],si.prototype,"rowItemTemplate",void 0);T([P],si.prototype,"cellItemTemplate",void 0);T([P],si.prototype,"headerCellItemTemplate",void 0);T([P],si.prototype,"focusRowIndex",void 0);T([P],si.prototype,"focusColumnIndex",void 0);T([P],si.prototype,"defaultRowItemTemplate",void 0);T([P],si.prototype,"rowElementTag",void 0);T([P],si.prototype,"rowElements",void 0)});var C3e,I3e,cs,d3=b(()=>{Le();B();ye();Pe();t1();C3e=H` + +`,I3e=H` + +`,cs=class extends ee{constructor(){super(...arguments),this.cellType=da.default,this.rowData=null,this.columnDefinition=null,this.isActiveCell=!1,this.customCellView=null,this.updateCellStyle=()=>{this.style.gridColumn=this.gridColumn}}cellTypeChanged(){this.$fastController.isConnected&&this.updateCellView()}gridColumnChanged(){this.$fastController.isConnected&&this.updateCellStyle()}columnDefinitionChanged(e,t){this.$fastController.isConnected&&this.updateCellView()}connectedCallback(){var e;super.connectedCallback(),this.addEventListener(Y2,this.handleFocusin),this.addEventListener(la,this.handleFocusout),this.addEventListener(ua,this.handleKeydown),this.style.gridColumn=`${((e=this.columnDefinition)===null||e===void 0?void 0:e.gridColumn)===void 0?0:this.columnDefinition.gridColumn}`,this.updateCellView(),this.updateCellStyle()}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener(Y2,this.handleFocusin),this.removeEventListener(la,this.handleFocusout),this.removeEventListener(ua,this.handleKeydown),this.disconnectCellView()}handleFocusin(e){if(!this.isActiveCell){switch(this.isActiveCell=!0,this.cellType){case da.columnHeader:if(this.columnDefinition!==null&&this.columnDefinition.headerCellInternalFocusQueue!==!0&&typeof this.columnDefinition.headerCellFocusTargetCallback=="function"){let t=this.columnDefinition.headerCellFocusTargetCallback(this);t!==null&&t.focus()}break;default:if(this.columnDefinition!==null&&this.columnDefinition.cellInternalFocusQueue!==!0&&typeof this.columnDefinition.cellFocusTargetCallback=="function"){let t=this.columnDefinition.cellFocusTargetCallback(this);t!==null&&t.focus()}break}this.$emit("cell-focused",this)}}handleFocusout(e){this!==document.activeElement&&!this.contains(document.activeElement)&&(this.isActiveCell=!1)}handleKeydown(e){if(!(e.defaultPrevented||this.columnDefinition===null||this.cellType===da.default&&this.columnDefinition.cellInternalFocusQueue!==!0||this.cellType===da.columnHeader&&this.columnDefinition.headerCellInternalFocusQueue!==!0))switch(e.key){case ni:case wH:if(this.contains(document.activeElement)&&document.activeElement!==this)return;switch(this.cellType){case da.columnHeader:if(this.columnDefinition.headerCellFocusTargetCallback!==void 0){let t=this.columnDefinition.headerCellFocusTargetCallback(this);t!==null&&t.focus(),e.preventDefault()}break;default:if(this.columnDefinition.cellFocusTargetCallback!==void 0){let t=this.columnDefinition.cellFocusTargetCallback(this);t!==null&&t.focus(),e.preventDefault()}break}break;case cn:this.contains(document.activeElement)&&document.activeElement!==this&&(this.focus(),e.preventDefault());break}}updateCellView(){if(this.disconnectCellView(),this.columnDefinition!==null)switch(this.cellType){case da.columnHeader:this.columnDefinition.headerCellTemplate!==void 0?this.customCellView=this.columnDefinition.headerCellTemplate.render(this,this):this.customCellView=I3e.render(this,this);break;case void 0:case da.rowHeader:case da.default:this.columnDefinition.cellTemplate!==void 0?this.customCellView=this.columnDefinition.cellTemplate.render(this,this):this.customCellView=C3e.render(this,this);break}}disconnectCellView(){this.customCellView!==null&&(this.customCellView.dispose(),this.customCellView=null)}};T([A({attribute:"cell-type"})],cs.prototype,"cellType",void 0);T([A({attribute:"grid-column"})],cs.prototype,"gridColumn",void 0);T([P],cs.prototype,"rowData",void 0);T([P],cs.prototype,"columnDefinition",void 0)});function E3e(i){let e=i.tagFor(cs);return H` + <${e} + cell-type="${t=>t.isRowHeader?"rowheader":void 0}" + grid-column="${(t,r)=>r.index+1}" + :rowData="${(t,r)=>r.parent.rowData}" + :columnDefinition="${t=>t}" + > +`}function k3e(i){let e=i.tagFor(cs);return H` + <${e} + cell-type="columnheader" + grid-column="${(t,r)=>r.index+1}" + :columnDefinition="${t=>t}" + > +`}var vj,_j=b(()=>{B();d3();vj=(i,e)=>{let t=E3e(i),r=k3e(i);return H` + + `}});var yj,xj=b(()=>{B();yj=(i,e)=>H` + + `});var wj=b(()=>{gj();bj();_j();c3();xj();d3()});var GZe,Sj=b(()=>{B();GZe=H` +
+ + ${i=>i.dateFormatter.getMonth(i.month)} + + ${i=>i.dateFormatter.getYear(i.year)} +
+`});var Cj=b(()=>{pj();Sj();u3()});var Ij,Ej=b(()=>{B();Ij=(i,e)=>H` + +`});var Hp,kj=b(()=>{Pe();Hp=class extends ee{}});var Tj=b(()=>{Ej();kj()});var Aj=b(()=>{});var h3,i1,Mj=b(()=>{fn();Pe();h3=class extends ee{},i1=class extends ch(h3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var El,Rj=b(()=>{Le();B();ye();Mj();El=class extends i1{constructor(){super(),this.initialValue="on",this.indeterminate=!1,this.keypressHandler=e=>{if(!this.readOnly)switch(e.key){case dn:this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked;break}},this.clickHandler=e=>{!this.disabled&&!this.readOnly&&(this.indeterminate&&(this.indeterminate=!1),this.checked=!this.checked)},this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}};T([A({attribute:"readonly",mode:"boolean"})],El.prototype,"readOnly",void 0);T([P],El.prototype,"defaultSlottedNodes",void 0);T([P],El.prototype,"indeterminate",void 0)});var Dj=b(()=>{Aj();Rj()});function f3(i){return vo(i)&&(i.getAttribute("role")==="option"||i instanceof HTMLOptionElement)}var dr,kl,p3=b(()=>{Le();B();ye();Pe();Bp();Ht();Xi();dr=class extends ee{constructor(e,t,r,n){super(),this.defaultSelected=!1,this.dirtySelected=!1,this.selected=this.defaultSelected,this.dirtyValue=!1,e&&(this.textContent=e),t&&(this.initialValue=t),r&&(this.defaultSelected=r),n&&(this.selected=n),this.proxy=new Option(`${this.textContent}`,this.initialValue,this.defaultSelected,this.selected),this.proxy.disabled=this.disabled}checkedChanged(e,t){if(typeof t=="boolean"){this.ariaChecked=t?"true":"false";return}this.ariaChecked=null}contentChanged(e,t){this.proxy instanceof HTMLOptionElement&&(this.proxy.textContent=this.textContent),this.$emit("contentchange",null,{bubbles:!0})}defaultSelectedChanged(){this.dirtySelected||(this.selected=this.defaultSelected,this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.defaultSelected))}disabledChanged(e,t){this.ariaDisabled=this.disabled?"true":"false",this.proxy instanceof HTMLOptionElement&&(this.proxy.disabled=this.disabled)}selectedAttributeChanged(){this.defaultSelected=this.selectedAttribute,this.proxy instanceof HTMLOptionElement&&(this.proxy.defaultSelected=this.defaultSelected)}selectedChanged(){this.ariaSelected=this.selected?"true":"false",this.dirtySelected||(this.dirtySelected=!0),this.proxy instanceof HTMLOptionElement&&(this.proxy.selected=this.selected)}initialValueChanged(e,t){this.dirtyValue||(this.value=this.initialValue,this.dirtyValue=!1)}get label(){var e;return(e=this.value)!==null&&e!==void 0?e:this.text}get text(){var e,t;return(t=(e=this.textContent)===null||e===void 0?void 0:e.replace(/\s+/g," ").trim())!==null&&t!==void 0?t:""}set value(e){let t=`${e??""}`;this._value=t,this.dirtyValue=!0,this.proxy instanceof HTMLOptionElement&&(this.proxy.value=t),_e.notify(this,"value")}get value(){var e;return _e.track(this,"value"),(e=this._value)!==null&&e!==void 0?e:this.text}get form(){return this.proxy?this.proxy.form:null}};T([P],dr.prototype,"checked",void 0);T([P],dr.prototype,"content",void 0);T([P],dr.prototype,"defaultSelected",void 0);T([A({mode:"boolean"})],dr.prototype,"disabled",void 0);T([A({attribute:"selected",mode:"boolean"})],dr.prototype,"selectedAttribute",void 0);T([P],dr.prototype,"selected",void 0);T([A({attribute:"value",mode:"fromView"})],dr.prototype,"initialValue",void 0);kl=class{};T([P],kl.prototype,"ariaChecked",void 0);T([P],kl.prototype,"ariaPosInSet",void 0);T([P],kl.prototype,"ariaSelected",void 0);T([P],kl.prototype,"ariaSetSize",void 0);He(kl,at);He(dr,ht,kl)});var Ut,ds,Tl=b(()=>{Le();B();ye();Pe();p3();Bp();Xi();Ut=class extends ee{constructor(){super(...arguments),this._options=[],this.selectedIndex=-1,this.selectedOptions=[],this.shouldSkipFocus=!1,this.typeaheadBuffer="",this.typeaheadExpired=!0,this.typeaheadTimeout=-1}get firstSelectedOption(){var e;return(e=this.selectedOptions[0])!==null&&e!==void 0?e:null}get hasSelectableOptions(){return this.options.length>0&&!this.options.every(e=>e.disabled)}get length(){var e,t;return(t=(e=this.options)===null||e===void 0?void 0:e.length)!==null&&t!==void 0?t:0}get options(){return _e.track(this,"options"),this._options}set options(e){this._options=e,_e.notify(this,"options")}get typeAheadExpired(){return this.typeaheadExpired}set typeAheadExpired(e){this.typeaheadExpired=e}clickHandler(e){let t=e.target.closest("option,[role=option]");if(t&&!t.disabled)return this.selectedIndex=this.options.indexOf(t),!0}focusAndScrollOptionIntoView(e=this.firstSelectedOption){this.contains(document.activeElement)&&e!==null&&(e.focus(),requestAnimationFrame(()=>{e.scrollIntoView({block:"nearest"})}))}focusinHandler(e){!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}getTypeaheadMatches(){let e=this.typeaheadBuffer.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&"),t=new RegExp(`^${e}`,"gi");return this.options.filter(r=>r.text.trim().match(t))}getSelectableIndex(e=this.selectedIndex,t){let r=e>t?-1:e!o&&!a.disabled&&l!o&&!a.disabled&&l>n?a:o,s);break}}return this.options.indexOf(s)}handleChange(e,t){switch(t){case"selected":{Ut.slottedOptionFilter(e)&&(this.selectedIndex=this.options.indexOf(e)),this.setSelectedOptions();break}}}handleTypeAhead(e){this.typeaheadTimeout&&window.clearTimeout(this.typeaheadTimeout),this.typeaheadTimeout=window.setTimeout(()=>this.typeaheadExpired=!0,Ut.TYPE_AHEAD_TIMEOUT_MS),!(e.length>1)&&(this.typeaheadBuffer=`${this.typeaheadExpired?"":this.typeaheadBuffer}${e}`)}keydownHandler(e){if(this.disabled)return!0;this.shouldSkipFocus=!1;let t=e.key;switch(t){case Ci:{e.shiftKey||(e.preventDefault(),this.selectFirstOption());break}case Dt:{e.shiftKey||(e.preventDefault(),this.selectNextOption());break}case Ot:{e.shiftKey||(e.preventDefault(),this.selectPreviousOption());break}case Ii:{e.preventDefault(),this.selectLastOption();break}case Cl:return this.focusAndScrollOptionIntoView(),!0;case ni:case cn:return!0;case dn:if(this.typeaheadExpired)return!0;default:return t.length===1&&this.handleTypeAhead(`${t}`),!0}}mousedownHandler(e){return this.shouldSkipFocus=!this.contains(document.activeElement),!0}multipleChanged(e,t){this.ariaMultiSelectable=t?"true":null}selectedIndexChanged(e,t){var r;if(!this.hasSelectableOptions){this.selectedIndex=-1;return}if(!((r=this.options[this.selectedIndex])===null||r===void 0)&&r.disabled&&typeof e=="number"){let n=this.getSelectableIndex(e,t),s=n>-1?n:e;this.selectedIndex=s,t===s&&this.selectedIndexChanged(t,s);return}this.setSelectedOptions()}selectedOptionsChanged(e,t){var r;let n=t.filter(Ut.slottedOptionFilter);(r=this.options)===null||r===void 0||r.forEach(s=>{let o=_e.getNotifier(s);o.unsubscribe(this,"selected"),s.selected=n.includes(s),o.subscribe(this,"selected")})}selectFirstOption(){var e,t;this.disabled||(this.selectedIndex=(t=(e=this.options)===null||e===void 0?void 0:e.findIndex(r=>!r.disabled))!==null&&t!==void 0?t:-1)}selectLastOption(){this.disabled||(this.selectedIndex=uH(this.options,e=>!e.disabled))}selectNextOption(){!this.disabled&&this.selectedIndex0&&(this.selectedIndex=this.selectedIndex-1)}setDefaultSelectedOption(){var e,t;this.selectedIndex=(t=(e=this.options)===null||e===void 0?void 0:e.findIndex(r=>r.defaultSelected))!==null&&t!==void 0?t:-1}setSelectedOptions(){var e,t,r;!((e=this.options)===null||e===void 0)&&e.length&&(this.selectedOptions=[this.options[this.selectedIndex]],this.ariaActiveDescendant=(r=(t=this.firstSelectedOption)===null||t===void 0?void 0:t.id)!==null&&r!==void 0?r:"",this.focusAndScrollOptionIntoView())}slottedOptionsChanged(e,t){this.options=t.reduce((n,s)=>(f3(s)&&n.push(s),n),[]);let r=`${this.options.length}`;this.options.forEach((n,s)=>{n.id||(n.id=Ln("option-")),n.ariaPosInSet=`${s+1}`,n.ariaSetSize=r}),this.$fastController.isConnected&&(this.setSelectedOptions(),this.setDefaultSelectedOption())}typeaheadBufferChanged(e,t){if(this.$fastController.isConnected){let r=this.getTypeaheadMatches();if(r.length){let n=this.options.indexOf(r[0]);n>-1&&(this.selectedIndex=n)}this.typeaheadExpired=!1}}};Ut.slottedOptionFilter=i=>f3(i)&&!i.hidden;Ut.TYPE_AHEAD_TIMEOUT_MS=1e3;T([A({mode:"boolean"})],Ut.prototype,"disabled",void 0);T([P],Ut.prototype,"selectedIndex",void 0);T([P],Ut.prototype,"selectedOptions",void 0);T([P],Ut.prototype,"slottedOptions",void 0);T([P],Ut.prototype,"typeaheadBuffer",void 0);ds=class{};T([P],ds.prototype,"ariaActiveDescendant",void 0);T([P],ds.prototype,"ariaDisabled",void 0);T([P],ds.prototype,"ariaExpanded",void 0);T([P],ds.prototype,"ariaMultiSelectable",void 0);He(ds,at);He(Ut,ds)});var Al,r1=b(()=>{Al={above:"above",below:"below"}});var m3,n1,Oj=b(()=>{fn();Tl();m3=class extends Ut{},n1=class extends vi(m3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var jp,g3=b(()=>{jp={inline:"inline",list:"list",both:"both",none:"none"}});var hs,hh,Lj=b(()=>{Le();B();ye();Tl();Ht();r1();Xi();Oj();g3();hs=class extends n1{constructor(){super(...arguments),this._value="",this.filteredOptions=[],this.filter="",this.forcedPosition=!1,this.listboxId=Ln("listbox-"),this.maxHeight=0,this.open=!1}formResetCallback(){super.formResetCallback(),this.setDefaultSelectedOption(),this.updateValue()}validate(){super.validate(this.control)}get isAutocompleteInline(){return this.autocomplete===jp.inline||this.isAutocompleteBoth}get isAutocompleteList(){return this.autocomplete===jp.list||this.isAutocompleteBoth}get isAutocompleteBoth(){return this.autocomplete===jp.both}openChanged(){if(this.open){this.ariaControls=this.listboxId,this.ariaExpanded="true",this.setPositioning(),this.focusAndScrollOptionIntoView(),ce.queueUpdate(()=>this.focus());return}this.ariaControls="",this.ariaExpanded="false"}get options(){return _e.track(this,"options"),this.filteredOptions.length?this.filteredOptions:this._options}set options(e){this._options=e,_e.notify(this,"options")}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}positionChanged(e,t){this.positionAttribute=t,this.setPositioning()}get value(){return _e.track(this,"value"),this._value}set value(e){var t,r,n;let s=`${this._value}`;if(this.$fastController.isConnected&&this.options){let o=this.options.findIndex(u=>u.text.toLowerCase()===e.toLowerCase()),a=(t=this.options[this.selectedIndex])===null||t===void 0?void 0:t.text,l=(r=this.options[o])===null||r===void 0?void 0:r.text;this.selectedIndex=a!==l?o:this.selectedIndex,e=((n=this.firstSelectedOption)===null||n===void 0?void 0:n.text)||e}s!==e&&(this._value=e,super.valueChanged(s,e),_e.notify(this,"value"))}clickHandler(e){let t=e.target.closest("option,[role=option]");if(!(this.disabled||t?.disabled)){if(this.open){if(e.composedPath()[0]===this.control)return;t&&(this.selectedOptions=[t],this.control.value=t.text,this.clearSelectionRange(),this.updateValue(!0))}return this.open=!this.open,this.open&&this.control.focus(),!0}}connectedCallback(){super.connectedCallback(),this.forcedPosition=!!this.positionAttribute,this.value&&(this.initialValue=this.value)}disabledChanged(e,t){super.disabledChanged&&super.disabledChanged(e,t),this.ariaDisabled=this.disabled?"true":"false"}filterOptions(){(!this.autocomplete||this.autocomplete===jp.none)&&(this.filter="");let e=this.filter.toLowerCase();this.filteredOptions=this._options.filter(t=>t.text.toLowerCase().startsWith(this.filter.toLowerCase())),this.isAutocompleteList&&(!this.filteredOptions.length&&!e&&(this.filteredOptions=this._options),this._options.forEach(t=>{t.hidden=!this.filteredOptions.includes(t)}))}focusAndScrollOptionIntoView(){this.contains(document.activeElement)&&(this.control.focus(),this.firstSelectedOption&&requestAnimationFrame(()=>{var e;(e=this.firstSelectedOption)===null||e===void 0||e.scrollIntoView({block:"nearest"})}))}focusoutHandler(e){if(this.syncValue(),!this.open)return!0;let t=e.relatedTarget;if(this.isSameNode(t)){this.focus();return}(!this.options||!this.options.includes(t))&&(this.open=!1)}inputHandler(e){if(this.filter=this.control.value,this.filterOptions(),this.isAutocompleteInline||(this.selectedIndex=this.options.map(t=>t.text).indexOf(this.control.value)),e.inputType.includes("deleteContent")||!this.filter.length)return!0;this.isAutocompleteList&&!this.open&&(this.open=!0),this.isAutocompleteInline&&(this.filteredOptions.length?(this.selectedOptions=[this.filteredOptions[0]],this.selectedIndex=this.options.indexOf(this.firstSelectedOption),this.setInlineSelection()):this.selectedIndex=-1)}keydownHandler(e){let t=e.key;if(e.ctrlKey||e.shiftKey)return!0;switch(t){case"Enter":{this.syncValue(),this.isAutocompleteInline&&(this.filter=this.value),this.open=!1,this.clearSelectionRange();break}case"Escape":{if(this.isAutocompleteInline||(this.selectedIndex=-1),this.open){this.open=!1;break}this.value="",this.control.value="",this.filter="",this.filterOptions();break}case"Tab":{if(this.setInputToSelection(),!this.open)return!0;e.preventDefault(),this.open=!1;break}case"ArrowUp":case"ArrowDown":{if(this.filterOptions(),!this.open){this.open=!0;break}this.filteredOptions.length>0&&super.keydownHandler(e),this.isAutocompleteInline&&this.setInlineSelection();break}default:return!0}}keyupHandler(e){switch(e.key){case"ArrowLeft":case"ArrowRight":case"Backspace":case"Delete":case"Home":case"End":{this.filter=this.control.value,this.selectedIndex=-1,this.filterOptions();break}}}selectedIndexChanged(e,t){if(this.$fastController.isConnected){if(t=_o(-1,this.options.length-1,t),t!==this.selectedIndex){this.selectedIndex=t;return}super.selectedIndexChanged(e,t)}}selectPreviousOption(){!this.disabled&&this.selectedIndex>=0&&(this.selectedIndex=this.selectedIndex-1)}setDefaultSelectedOption(){if(this.$fastController.isConnected&&this.options){let e=this.options.findIndex(t=>t.getAttribute("selected")!==null||t.selected);this.selectedIndex=e,!this.dirtyValue&&this.firstSelectedOption&&(this.value=this.firstSelectedOption.text),this.setSelectedOptions()}}setInputToSelection(){this.firstSelectedOption&&(this.control.value=this.firstSelectedOption.text,this.control.focus())}setInlineSelection(){this.firstSelectedOption&&(this.setInputToSelection(),this.control.setSelectionRange(this.filter.length,this.control.value.length,"backward"))}syncValue(){var e;let t=this.selectedIndex>-1?(e=this.firstSelectedOption)===null||e===void 0?void 0:e.text:this.control.value;this.updateValue(this.value!==t)}setPositioning(){let e=this.getBoundingClientRect(),r=window.innerHeight-e.bottom;this.position=this.forcedPosition?this.positionAttribute:e.top>r?Al.above:Al.below,this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position,this.maxHeight=this.position===Al.above?~~e.top:~~r}selectedOptionsChanged(e,t){this.$fastController.isConnected&&this._options.forEach(r=>{r.selected=t.includes(r)})}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t),this.updateValue()}updateValue(e){var t;this.$fastController.isConnected&&(this.value=((t=this.firstSelectedOption)===null||t===void 0?void 0:t.text)||this.control.value,this.control.value=this.value),e&&this.$emit("change")}clearSelectionRange(){let e=this.control.value.length;this.control.setSelectionRange(e,e)}};T([A({attribute:"autocomplete",mode:"fromView"})],hs.prototype,"autocomplete",void 0);T([P],hs.prototype,"maxHeight",void 0);T([A({attribute:"open",mode:"boolean"})],hs.prototype,"open",void 0);T([A],hs.prototype,"placeholder",void 0);T([A({attribute:"position"})],hs.prototype,"positionAttribute",void 0);T([P],hs.prototype,"position",void 0);hh=class{};T([P],hh.prototype,"ariaAutoComplete",void 0);T([P],hh.prototype,"ariaControls",void 0);He(hh,ds);He(hs,ht,hh)});var $j,Pj=b(()=>{B();Tl();Ht();$j=(i,e)=>H` + +`});var Fj=b(()=>{Lj();g3();Pj()});function ha(i){let e=i.parentElement;if(e)return e;{let t=i.getRootNode();if(t.host instanceof HTMLElement)return t.host}return null}var s1=b(()=>{});function Nj(i,e){let t=e;for(;t!==null;){if(t===i)return!0;t=ha(t)}return!1}var Bj=b(()=>{s1()});function T3e(i){return i instanceof xl}var xo,Vp,v3,_3,y3,o1,x3,_i,b3,A3e,qc,w3=b(()=>{Le();B();xo=document.createElement("div");Vp=class{setProperty(e,t){ce.queueUpdate(()=>this.target.setProperty(e,t))}removeProperty(e){ce.queueUpdate(()=>this.target.removeProperty(e))}},v3=class extends Vp{constructor(e){super();let t=new CSSStyleSheet;t[Fb]=!0,this.target=t.cssRules[t.insertRule(":host{}")].style,e.$fastController.addStyles(ri.create([t]))}},_3=class extends Vp{constructor(){super();let e=new CSSStyleSheet;this.target=e.cssRules[e.insertRule(":root{}")].style,document.adoptedStyleSheets=[...document.adoptedStyleSheets,e]}},y3=class extends Vp{constructor(){super(),this.style=document.createElement("style"),document.head.appendChild(this.style);let{sheet:e}=this.style;if(e){let t=e.insertRule(":root{}",e.cssRules.length);this.target=e.cssRules[t].style}}},o1=class{constructor(e){this.store=new Map,this.target=null;let t=e.$fastController;this.style=document.createElement("style"),t.addStyles(this.style),_e.getNotifier(t).subscribe(this,"isConnected"),this.handleChange(t,"isConnected")}targetChanged(){if(this.target!==null)for(let[e,t]of this.store.entries())this.target.setProperty(e,t)}setProperty(e,t){this.store.set(e,t),ce.queueUpdate(()=>{this.target!==null&&this.target.setProperty(e,t)})}removeProperty(e){this.store.delete(e),ce.queueUpdate(()=>{this.target!==null&&this.target.removeProperty(e)})}handleChange(e,t){let{sheet:r}=this.style;if(r){let n=r.insertRule(":host{}",r.cssRules.length);this.target=r.cssRules[n].style}else this.target=null}};T([P],o1.prototype,"target",void 0);x3=class{constructor(e){this.target=e.style}setProperty(e,t){ce.queueUpdate(()=>this.target.setProperty(e,t))}removeProperty(e){ce.queueUpdate(()=>this.target.removeProperty(e))}},_i=class{setProperty(e,t){_i.properties[e]=t;for(let r of _i.roots.values())qc.getOrCreate(_i.normalizeRoot(r)).setProperty(e,t)}removeProperty(e){delete _i.properties[e];for(let t of _i.roots.values())qc.getOrCreate(_i.normalizeRoot(t)).removeProperty(e)}static registerRoot(e){let{roots:t}=_i;if(!t.has(e)){t.add(e);let r=qc.getOrCreate(this.normalizeRoot(e));for(let n in _i.properties)r.setProperty(n,_i.properties[n])}}static unregisterRoot(e){let{roots:t}=_i;if(t.has(e)){t.delete(e);let r=qc.getOrCreate(_i.normalizeRoot(e));for(let n in _i.properties)r.removeProperty(n)}}static normalizeRoot(e){return e===xo?document:e}};_i.roots=new Set;_i.properties={};b3=new WeakMap,A3e=ce.supportsAdoptedStyleSheets?v3:o1,qc=Object.freeze({getOrCreate(i){if(b3.has(i))return b3.get(i);let e;return i===xo?e=new _i:i instanceof Document?e=ce.supportsAdoptedStyleSheets?new _3:new y3:T3e(i)?e=new A3e(i):e=new x3(i),b3.set(i,e),e}})});function M3e(i){return hr.from(i)}var hr,S3,C3,I3,Up,Wp,Jt,Pn,E3=b(()=>{Le();B();s1();Bj();w3();w3();hr=class extends wl{constructor(e){super(),this.subscribers=new WeakMap,this._appliedTo=new Set,this.name=e.name,e.cssCustomPropertyName!==null&&(this.cssCustomProperty=`--${e.cssCustomPropertyName}`,this.cssVar=`var(${this.cssCustomProperty})`),this.id=hr.uniqueId(),hr.tokensById.set(this.id,this)}get appliedTo(){return[...this._appliedTo]}static from(e){return new hr({name:typeof e=="string"?e:e.name,cssCustomPropertyName:typeof e=="string"?e:e.cssCustomPropertyName===void 0?e.name:e.cssCustomPropertyName})}static isCSSDesignToken(e){return typeof e.cssCustomProperty=="string"}static isDerivedDesignTokenValue(e){return typeof e=="function"}static getTokenById(e){return hr.tokensById.get(e)}getOrCreateSubscriberSet(e=this){return this.subscribers.get(e)||this.subscribers.set(e,new Set)&&this.subscribers.get(e)}createCSS(){return this.cssVar||""}getValueFor(e){let t=Jt.getOrCreate(e).get(this);if(t!==void 0)return t;throw new Error(`Value could not be retrieved for token named "${this.name}". Ensure the value is set for ${e} or an ancestor of ${e}.`)}setValueFor(e,t){return this._appliedTo.add(e),t instanceof hr&&(t=this.alias(t)),Jt.getOrCreate(e).set(this,t),this}deleteValueFor(e){return this._appliedTo.delete(e),Jt.existsFor(e)&&Jt.getOrCreate(e).delete(this),this}withDefault(e){return this.setValueFor(xo,e),this}subscribe(e,t){let r=this.getOrCreateSubscriberSet(t);t&&!Jt.existsFor(t)&&Jt.getOrCreate(t),r.has(e)||r.add(e)}unsubscribe(e,t){let r=this.subscribers.get(t||this);r&&r.has(e)&&r.delete(e)}notify(e){let t=Object.freeze({token:this,target:e});this.subscribers.has(this)&&this.subscribers.get(this).forEach(r=>r.handleChange(t)),this.subscribers.has(e)&&this.subscribers.get(e).forEach(r=>r.handleChange(t))}alias(e){return t=>e.getValueFor(t)}};hr.uniqueId=(()=>{let i=0;return()=>(i++,i.toString(16))})();hr.tokensById=new Map;S3=class{startReflection(e,t){e.subscribe(this,t),this.handleChange({token:e,target:t})}stopReflection(e,t){e.unsubscribe(this,t),this.remove(e,t)}handleChange(e){let{token:t,target:r}=e;this.add(t,r)}add(e,t){qc.getOrCreate(t).setProperty(e.cssCustomProperty,this.resolveCSSValue(Jt.getOrCreate(t).get(e)))}remove(e,t){qc.getOrCreate(t).removeProperty(e.cssCustomProperty)}resolveCSSValue(e){return e&&typeof e.createCSS=="function"?e.createCSS():e}},C3=class{constructor(e,t,r){this.source=e,this.token=t,this.node=r,this.dependencies=new Set,this.observer=_e.binding(e,this,!1),this.observer.handleChange=this.observer.call,this.handleChange()}disconnect(){this.observer.disconnect()}handleChange(){try{this.node.store.set(this.token,this.observer.observe(this.node.target,bl))}catch(e){console.error(e)}}},I3=class{constructor(){this.values=new Map}set(e,t){this.values.get(e)!==t&&(this.values.set(e,t),_e.getNotifier(this).notify(e.id))}get(e){return _e.track(this,e.id),this.values.get(e)}delete(e){this.values.delete(e),_e.getNotifier(this).notify(e.id)}all(){return this.values.entries()}},Up=new WeakMap,Wp=new WeakMap,Jt=class{constructor(e){this.target=e,this.store=new I3,this.children=[],this.assignedValues=new Map,this.reflecting=new Set,this.bindingObservers=new Map,this.tokenValueChangeHandler={handleChange:(t,r)=>{let n=hr.getTokenById(r);n&&(n.notify(this.target),this.updateCSSTokenReflection(t,n))}},Up.set(e,this),_e.getNotifier(this.store).subscribe(this.tokenValueChangeHandler),e instanceof xl?e.$fastController.addBehaviors([this]):e.isConnected&&this.bind()}static getOrCreate(e){return Up.get(e)||new Jt(e)}static existsFor(e){return Up.has(e)}static findParent(e){if(xo!==e.target){let t=ha(e.target);for(;t!==null;){if(Up.has(t))return Up.get(t);t=ha(t)}return Jt.getOrCreate(xo)}return null}static findClosestAssignedNode(e,t){let r=t;do{if(r.has(e))return r;r=r.parent?r.parent:r.target!==xo?Jt.getOrCreate(xo):null}while(r!==null);return null}get parent(){return Wp.get(this)||null}updateCSSTokenReflection(e,t){if(hr.isCSSDesignToken(t)){let r=this.parent,n=this.isReflecting(t);if(r){let s=r.get(t),o=e.get(t);s!==o&&!n?this.reflectToCSS(t):s===o&&n&&this.stopReflectToCSS(t)}else n||this.reflectToCSS(t)}}has(e){return this.assignedValues.has(e)}get(e){let t=this.store.get(e);if(t!==void 0)return t;let r=this.getRaw(e);if(r!==void 0)return this.hydrate(e,r),this.get(e)}getRaw(e){var t;return this.assignedValues.has(e)?this.assignedValues.get(e):(t=Jt.findClosestAssignedNode(e,this))===null||t===void 0?void 0:t.getRaw(e)}set(e,t){hr.isDerivedDesignTokenValue(this.assignedValues.get(e))&&this.tearDownBindingObserver(e),this.assignedValues.set(e,t),hr.isDerivedDesignTokenValue(t)?this.setupBindingObserver(e,t):this.store.set(e,t)}delete(e){this.assignedValues.delete(e),this.tearDownBindingObserver(e);let t=this.getRaw(e);t?this.hydrate(e,t):this.store.delete(e)}bind(){let e=Jt.findParent(this);e&&e.appendChild(this);for(let t of this.assignedValues.keys())t.notify(this.target)}unbind(){this.parent&&Wp.get(this).removeChild(this);for(let e of this.bindingObservers.keys())this.tearDownBindingObserver(e)}appendChild(e){e.parent&&Wp.get(e).removeChild(e);let t=this.children.filter(r=>e.contains(r));Wp.set(e,this),this.children.push(e),t.forEach(r=>e.appendChild(r)),_e.getNotifier(this.store).subscribe(e);for(let[r,n]of this.store.all())e.hydrate(r,this.bindingObservers.has(r)?this.getRaw(r):n),e.updateCSSTokenReflection(e.store,r)}removeChild(e){let t=this.children.indexOf(e);if(t!==-1&&this.children.splice(t,1),_e.getNotifier(this.store).unsubscribe(e),e.parent!==this)return!1;let r=Wp.delete(e);for(let[n]of this.store.all())e.hydrate(n,e.getRaw(n)),e.updateCSSTokenReflection(e.store,n);return r}contains(e){return Nj(this.target,e.target)}reflectToCSS(e){this.isReflecting(e)||(this.reflecting.add(e),Jt.cssCustomPropertyReflector.startReflection(e,this.target))}stopReflectToCSS(e){this.isReflecting(e)&&(this.reflecting.delete(e),Jt.cssCustomPropertyReflector.stopReflection(e,this.target))}isReflecting(e){return this.reflecting.has(e)}handleChange(e,t){let r=hr.getTokenById(t);r&&(this.hydrate(r,this.getRaw(r)),this.updateCSSTokenReflection(this.store,r))}hydrate(e,t){if(!this.has(e)){let r=this.bindingObservers.get(e);hr.isDerivedDesignTokenValue(t)?r?r.source!==t&&(this.tearDownBindingObserver(e),this.setupBindingObserver(e,t)):this.setupBindingObserver(e,t):(r&&this.tearDownBindingObserver(e),this.store.set(e,t))}}setupBindingObserver(e,t){let r=new C3(t,e,this);return this.bindingObservers.set(e,r),r}tearDownBindingObserver(e){return this.bindingObservers.has(e)?(this.bindingObservers.get(e).disconnect(),this.bindingObservers.delete(e),!0):!1}};Jt.cssCustomPropertyReflector=new S3;T([P],Jt.prototype,"children",void 0);Pn=Object.freeze({create:M3e,notifyConnection(i){return!i.isConnected||!Jt.existsFor(i)?!1:(Jt.getOrCreate(i).bind(),!0)},notifyDisconnection(i){return i.isConnected||!Jt.existsFor(i)?!1:(Jt.getOrCreate(i).unbind(),!0)},registerRoot(i=xo){_i.registerRoot(i)},unregisterRoot(i=xo){_i.unregisterRoot(i)}})});function R3e(i,e,t){return typeof i=="string"?{name:i,type:e,callback:t}:i}var k3,T3,a1,fh,Gp,M3,l1,A3,zj=b(()=>{B();Pe();Ub();E3();Yb();k3=Object.freeze({definitionCallbackOnly:null,ignoreDuplicate:Symbol()}),T3=new Map,a1=new Map,fh=null,Gp=kt.createInterface(i=>i.cachedCallback(e=>(fh===null&&(fh=new l1(null,e)),fh))),M3=Object.freeze({tagFor(i){return a1.get(i)},responsibleFor(i){let e=i.$$designSystem$$;return e||kt.findResponsibleContainer(i).get(Gp)},getOrCreate(i){if(!i)return fh===null&&(fh=kt.getOrCreateDOMContainer().get(Gp)),fh;let e=i.$$designSystem$$;if(e)return e;let t=kt.getOrCreateDOMContainer(i);if(t.has(Gp,!1))return t.get(Gp);{let r=new l1(i,t);return t.register($c.instance(Gp,r)),r}}});l1=class{constructor(e,t){this.owner=e,this.container=t,this.designTokensInitialized=!1,this.prefix="fast",this.shadowRootMode=void 0,this.disambiguate=()=>k3.definitionCallbackOnly,e!==null&&(e.$$designSystem$$=this)}withPrefix(e){return this.prefix=e,this}withShadowRootMode(e){return this.shadowRootMode=e,this}withElementDisambiguation(e){return this.disambiguate=e,this}withDesignTokenRoot(e){return this.designTokenRoot=e,this}register(...e){let t=this.container,r=[],n=this.disambiguate,s=this.shadowRootMode,o={elementPrefix:this.prefix,tryDefineElement(a,l,u){let c=R3e(a,l,u),{name:d,callback:h,baseClass:f}=c,{type:p}=c,g=d,v=T3.get(g),_=!0;for(;v;){let x=n(g,p,v);switch(x){case k3.ignoreDuplicate:return;case k3.definitionCallbackOnly:_=!1,v=void 0;break;default:g=x,v=T3.get(g);break}}_&&((a1.has(p)||p===ee)&&(p=class extends p{}),T3.set(g,p),a1.set(p,g),f&&a1.set(f,g)),r.push(new A3(t,g,p,s,h,_))}};this.designTokensInitialized||(this.designTokensInitialized=!0,this.designTokenRoot!==null&&Pn.registerRoot(this.designTokenRoot)),t.registerWithContext(o,...e);for(let a of r)a.callback(a),a.willDefine&&a.definition!==null&&a.definition.define();return this}},A3=class{constructor(e,t,r,n,s,o){this.container=e,this.name=t,this.type=r,this.shadowRootMode=n,this.callback=s,this.willDefine=o,this.definition=null}definePresentation(e){Kb.define(this.name,e,this.container)}defineElement(e){this.definition=new bo(this.type,Object.assign(Object.assign({},e),{name:this.name}))}tagFor(e){return M3.tagFor(e)}}});var qj=b(()=>{});var Hj=b(()=>{zj();Yb();qj()});var jj=b(()=>{Ub()});var Vj,Uj=b(()=>{B();Vj=(i,e)=>H` +
+ ${Xe(t=>t.modal,H` + + `)} + +
+`});var Gj,D3e,Kj,Kp,R3,O3e,Yj,L3e,$3e,P3e,F3e,N3e,B3e,Wj,z3e,q3e,Xj,H3e,D3,j3e,ph,u1=b(()=>{Gj=["input","select","textarea","a[href]","button","[tabindex]:not(slot)","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details"],D3e=Gj.join(","),Kj=typeof Element>"u",Kp=Kj?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,R3=!Kj&&Element.prototype.getRootNode?function(i){return i.getRootNode()}:function(i){return i.ownerDocument},O3e=function(e,t){return e.tabIndex<0&&(t||/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||e.isContentEditable)&&isNaN(parseInt(e.getAttribute("tabindex"),10))?0:e.tabIndex},Yj=function(e){return e.tagName==="INPUT"},L3e=function(e){return Yj(e)&&e.type==="hidden"},$3e=function(e){var t=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return t},P3e=function(e,t){for(var r=0;rsummary:first-of-type"),o=s?e.parentElement:e;if(Kp.call(o,"details:not([open]) *"))return!0;var a=R3(e).host,l=a?.ownerDocument.contains(a)||e.ownerDocument.contains(e);if(!r||r==="full"){if(typeof n=="function"){for(var u=e;e;){var c=e.parentElement,d=R3(e);if(c&&!c.shadowRoot&&n(c)===!0)return Wj(e);e.assignedSlot?e=e.assignedSlot:!c&&d!==e.ownerDocument?e=d.host:e=c}e=u}if(l)return!e.getClientRects().length}else if(r==="non-zero-area")return Wj(e);return!1},q3e=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if(t.tagName==="FIELDSET"&&t.disabled){for(var r=0;r{Le();B();ye();u1();Pe();Tr=class extends ee{constructor(){super(...arguments),this.modal=!0,this.hidden=!1,this.trapFocus=!0,this.trapFocusChanged=()=>{this.$fastController.isConnected&&this.updateTrapFocus()},this.isTrappingFocus=!1,this.handleDocumentKeydown=e=>{if(!e.defaultPrevented&&!this.hidden)switch(e.key){case cn:this.dismiss(),e.preventDefault();break;case Cl:this.handleTabKeyDown(e);break}},this.handleDocumentFocus=e=>{!e.defaultPrevented&&this.shouldForceFocus(e.target)&&(this.focusFirstElement(),e.preventDefault())},this.handleTabKeyDown=e=>{if(!this.trapFocus||this.hidden)return;let t=this.getTabQueueBounds();if(t.length!==0){if(t.length===1){t[0].focus(),e.preventDefault();return}e.shiftKey&&e.target===t[0]?(t[t.length-1].focus(),e.preventDefault()):!e.shiftKey&&e.target===t[t.length-1]&&(t[0].focus(),e.preventDefault())}},this.getTabQueueBounds=()=>{let e=[];return Tr.reduceTabbableItems(e,this)},this.focusFirstElement=()=>{let e=this.getTabQueueBounds();e.length>0?e[0].focus():this.dialog instanceof HTMLElement&&this.dialog.focus()},this.shouldForceFocus=e=>this.isTrappingFocus&&!this.contains(e),this.shouldTrapFocus=()=>this.trapFocus&&!this.hidden,this.updateTrapFocus=e=>{let t=e===void 0?this.shouldTrapFocus():e;t&&!this.isTrappingFocus?(this.isTrappingFocus=!0,document.addEventListener("focusin",this.handleDocumentFocus),ce.queueUpdate(()=>{this.shouldForceFocus(document.activeElement)&&this.focusFirstElement()})):!t&&this.isTrappingFocus&&(this.isTrappingFocus=!1,document.removeEventListener("focusin",this.handleDocumentFocus))}}dismiss(){this.$emit("dismiss"),this.$emit("cancel")}show(){this.hidden=!1}hide(){this.hidden=!0,this.$emit("close")}connectedCallback(){super.connectedCallback(),document.addEventListener("keydown",this.handleDocumentKeydown),this.notifier=_e.getNotifier(this),this.notifier.subscribe(this,"hidden"),this.updateTrapFocus()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("keydown",this.handleDocumentKeydown),this.updateTrapFocus(!1),this.notifier.unsubscribe(this,"hidden")}handleChange(e,t){switch(t){case"hidden":this.updateTrapFocus();break;default:break}}static reduceTabbableItems(e,t){return t.getAttribute("tabindex")==="-1"?e:D3(t)||Tr.isFocusableFastElement(t)&&Tr.hasTabbableShadow(t)?(e.push(t),e):t.childElementCount?e.concat(Array.from(t.children).reduce(Tr.reduceTabbableItems,[])):e}static isFocusableFastElement(e){var t,r;return!!(!((r=(t=e.$fastController)===null||t===void 0?void 0:t.definition.shadowOptions)===null||r===void 0)&&r.delegatesFocus)}static hasTabbableShadow(e){var t,r;return Array.from((r=(t=e.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("*"))!==null&&r!==void 0?r:[]).some(n=>D3(n))}};T([A({mode:"boolean"})],Tr.prototype,"modal",void 0);T([A({mode:"boolean"})],Tr.prototype,"hidden",void 0);T([A({attribute:"trap-focus",mode:"boolean"})],Tr.prototype,"trapFocus",void 0);T([A({attribute:"aria-describedby"})],Tr.prototype,"ariaDescribedby",void 0);T([A({attribute:"aria-labelledby"})],Tr.prototype,"ariaLabelledby",void 0);T([A({attribute:"aria-label"})],Tr.prototype,"ariaLabel",void 0)});var Zj=b(()=>{Uj();Jj()});var Qj,eV=b(()=>{B();Qj=(i,e)=>H` +
+ + + ${t=>t.title} + + +
+
+`});var Hc,tV=b(()=>{Le();B();Pe();Hc=class extends ee{connectedCallback(){super.connectedCallback(),this.setup()}disconnectedCallback(){super.disconnectedCallback(),this.details.removeEventListener("toggle",this.onToggle)}show(){this.details.open=!0}hide(){this.details.open=!1}toggle(){this.details.open=!this.details.open}setup(){this.onToggle=this.onToggle.bind(this),this.details.addEventListener("toggle",this.onToggle),this.expanded&&this.show()}onToggle(){this.expanded=this.details.open,this.$emit("toggle")}};T([A({mode:"boolean"})],Hc.prototype,"expanded",void 0);T([A],Hc.prototype,"title",void 0)});var iV=b(()=>{eV();tV()});var rV,nV=b(()=>{B();rV=(i,e)=>H` + +`});var sV,oV=b(()=>{sV={separator:"separator",presentation:"presentation"}});var jc,aV=b(()=>{Le();B();ye();Pe();oV();jc=class extends ee{constructor(){super(...arguments),this.role=sV.separator,this.orientation=it.horizontal}};T([A],jc.prototype,"role",void 0);T([A],jc.prototype,"orientation",void 0)});var lV=b(()=>{nV();aV()});var uV,cV=b(()=>{uV={next:"next",previous:"previous"}});var dV=b(()=>{});var Yp,hV=b(()=>{Le();B();Pe();cV();Yp=class extends ee{constructor(){super(...arguments),this.hiddenFromAT=!0,this.direction=uV.next}keyupHandler(e){if(!this.hiddenFromAT){let t=e.key;(t==="Enter"||t==="Space")&&this.$emit("click",e),t==="Escape"&&this.blur()}}};T([A({mode:"boolean"})],Yp.prototype,"disabled",void 0);T([A({attribute:"aria-hidden",converter:Oc})],Yp.prototype,"hiddenFromAT",void 0);T([A],Yp.prototype,"direction",void 0)});var fV=b(()=>{dV();hV()});var pV=b(()=>{fn()});var mV=b(()=>{Pe()});var gV,bV=b(()=>{B();Ht();gV=(i,e)=>H` + +`});var vV=b(()=>{p3();bV()});var pn,c1=b(()=>{Le();B();ye();Tl();pn=class extends Ut{constructor(){super(...arguments),this.activeIndex=-1,this.rangeStartIndex=-1}get activeOption(){return this.options[this.activeIndex]}get checkedOptions(){var e;return(e=this.options)===null||e===void 0?void 0:e.filter(t=>t.checked)}get firstSelectedOptionIndex(){return this.options.indexOf(this.firstSelectedOption)}activeIndexChanged(e,t){var r,n;this.ariaActiveDescendant=(n=(r=this.options[t])===null||r===void 0?void 0:r.id)!==null&&n!==void 0?n:"",this.focusAndScrollOptionIntoView()}checkActiveIndex(){if(!this.multiple)return;let e=this.activeOption;e&&(e.checked=!0)}checkFirstOption(e=!1){e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex+1),this.options.forEach((t,r)=>{t.checked=Np(r,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex=0,this.checkActiveIndex()}checkLastOption(e=!1){e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((t,r)=>{t.checked=Np(r,this.rangeStartIndex,this.options.length)})):this.uncheckAllOptions(),this.activeIndex=this.options.length-1,this.checkActiveIndex()}connectedCallback(){super.connectedCallback(),this.addEventListener("focusout",this.focusoutHandler)}disconnectedCallback(){this.removeEventListener("focusout",this.focusoutHandler),super.disconnectedCallback()}checkNextOption(e=!1){e?(this.rangeStartIndex===-1&&(this.rangeStartIndex=this.activeIndex),this.options.forEach((t,r)=>{t.checked=Np(r,this.rangeStartIndex,this.activeIndex+1)})):this.uncheckAllOptions(),this.activeIndex+=this.activeIndex{t.checked=Np(r,this.activeIndex,this.rangeStartIndex)})):this.uncheckAllOptions(),this.activeIndex-=this.activeIndex>0?1:0,this.checkActiveIndex()}clickHandler(e){var t;if(!this.multiple)return super.clickHandler(e);let r=(t=e.target)===null||t===void 0?void 0:t.closest("[role=option]");if(!(!r||r.disabled))return this.uncheckAllOptions(),this.activeIndex=this.options.indexOf(r),this.checkActiveIndex(),this.toggleSelectedForAllCheckedOptions(),!0}focusAndScrollOptionIntoView(){super.focusAndScrollOptionIntoView(this.activeOption)}focusinHandler(e){if(!this.multiple)return super.focusinHandler(e);!this.shouldSkipFocus&&e.target===e.currentTarget&&(this.uncheckAllOptions(),this.activeIndex===-1&&(this.activeIndex=this.firstSelectedOptionIndex!==-1?this.firstSelectedOptionIndex:0),this.checkActiveIndex(),this.setSelectedOptions(),this.focusAndScrollOptionIntoView()),this.shouldSkipFocus=!1}focusoutHandler(e){this.multiple&&this.uncheckAllOptions()}keydownHandler(e){if(!this.multiple)return super.keydownHandler(e);if(this.disabled)return!0;let{key:t,shiftKey:r}=e;switch(this.shouldSkipFocus=!1,t){case Ci:{this.checkFirstOption(r);return}case Dt:{this.checkNextOption(r);return}case Ot:{this.checkPreviousOption(r);return}case Ii:{this.checkLastOption(r);return}case Cl:return this.focusAndScrollOptionIntoView(),!0;case cn:return this.uncheckAllOptions(),this.checkActiveIndex(),!0;case dn:if(e.preventDefault(),this.typeAheadExpired){this.toggleSelectedForAllCheckedOptions();return}default:return t.length===1&&this.handleTypeAhead(`${t}`),!0}}mousedownHandler(e){if(e.offsetX>=0&&e.offsetX<=this.scrollWidth)return super.mousedownHandler(e)}multipleChanged(e,t){var r;this.ariaMultiSelectable=t?"true":null,(r=this.options)===null||r===void 0||r.forEach(n=>{n.checked=t?!1:void 0}),this.setSelectedOptions()}setSelectedOptions(){if(!this.multiple){super.setSelectedOptions();return}this.$fastController.isConnected&&this.options&&(this.selectedOptions=this.options.filter(e=>e.selected),this.focusAndScrollOptionIntoView())}sizeChanged(e,t){var r;let n=Math.max(0,parseInt((r=t?.toFixed())!==null&&r!==void 0?r:"",10));n!==t&&ce.queueUpdate(()=>{this.size=n})}toggleSelectedForAllCheckedOptions(){let e=this.checkedOptions.filter(r=>!r.disabled),t=!e.every(r=>r.selected);e.forEach(r=>r.selected=t),this.selectedIndex=this.options.indexOf(e[e.length-1]),this.setSelectedOptions()}typeaheadBufferChanged(e,t){if(!this.multiple){super.typeaheadBufferChanged(e,t);return}if(this.$fastController.isConnected){let r=this.getTypeaheadMatches(),n=this.options.indexOf(r[0]);n>-1&&(this.activeIndex=n,this.uncheckAllOptions(),this.checkActiveIndex()),this.typeAheadExpired=!1}}uncheckAllOptions(e=!1){this.options.forEach(t=>t.checked=this.multiple?!1:void 0),e||(this.rangeStartIndex=-1)}};T([P],pn.prototype,"activeIndex",void 0);T([A({mode:"boolean"})],pn.prototype,"multiple",void 0);T([A({converter:me})],pn.prototype,"size",void 0)});var _V,yV=b(()=>{B();c1();_V=(i,e)=>H` + +`});var xV=b(()=>{Tl();c1();yV()});var Ns,O3=b(()=>{Le();ye();B();Pe();Ns=class extends ee{constructor(){super(...arguments),this.optionElements=[]}menuElementsChanged(){this.updateOptions()}headerElementsChanged(){this.updateOptions()}footerElementsChanged(){this.updateOptions()}updateOptions(){this.optionElements.splice(0,this.optionElements.length),this.addSlottedListItems(this.headerElements),this.addSlottedListItems(this.menuElements),this.addSlottedListItems(this.footerElements),this.$emit("optionsupdated",{bubbles:!1})}addSlottedListItems(e){e!==void 0&&e.forEach(t=>{t.nodeType===1&&t.getAttribute("role")==="listitem"&&(t.id=t.id||Ln("option-"),this.optionElements.push(t))})}};T([P],Ns.prototype,"menuElements",void 0);T([P],Ns.prototype,"headerElements",void 0);T([P],Ns.prototype,"footerElements",void 0);T([P],Ns.prototype,"suggestionsAvailableText",void 0)});var V3e,Bs,d1=b(()=>{Le();B();Pe();V3e=H` + +`,Bs=class extends ee{contentsTemplateChanged(){this.$fastController.isConnected&&this.updateView()}connectedCallback(){super.connectedCallback(),this.updateView()}disconnectedCallback(){super.disconnectedCallback(),this.disconnectView()}handleClick(e){return e.defaultPrevented||this.handleInvoked(),!1}handleInvoked(){this.$emit("pickeroptioninvoked")}updateView(){var e,t;this.disconnectView(),this.customView=(t=(e=this.contentsTemplate)===null||e===void 0?void 0:e.render(this,this))!==null&&t!==void 0?t:V3e.render(this,this)}disconnectView(){var e;(e=this.customView)===null||e===void 0||e.dispose(),this.customView=void 0}};T([A({attribute:"value"})],Bs.prototype,"value",void 0);T([P],Bs.prototype,"contentsTemplate",void 0)});var Ml,L3=b(()=>{Pe();Ml=class extends ee{}});var U3e,zs,h1=b(()=>{Le();B();ye();Pe();U3e=H` + +`,zs=class extends ee{contentsTemplateChanged(){this.$fastController.isConnected&&this.updateView()}connectedCallback(){super.connectedCallback(),this.updateView()}disconnectedCallback(){this.disconnectView(),super.disconnectedCallback()}handleKeyDown(e){return e.defaultPrevented?!1:e.key===ni?(this.handleInvoke(),!1):!0}handleClick(e){return e.defaultPrevented||this.handleInvoke(),!1}handleInvoke(){this.$emit("pickeriteminvoked")}updateView(){var e,t;this.disconnectView(),this.customView=(t=(e=this.contentsTemplate)===null||e===void 0?void 0:e.render(this,this))!==null&&t!==void 0?t:U3e.render(this,this)}disconnectView(){var e;(e=this.customView)===null||e===void 0||e.dispose(),this.customView=void 0}};T([A({attribute:"value"})],zs.prototype,"value",void 0);T([P],zs.prototype,"contentsTemplate",void 0)});function W3e(i){let e=i.tagFor(zs);return H` + <${e} + value="${t=>t}" + :contentsTemplate="${(t,r)=>r.parent.listItemContentsTemplate}" + > + + `}function G3e(i){let e=i.tagFor(Bs);return H` + <${e} + value="${t=>t}" + :contentsTemplate="${(t,r)=>r.parent.menuOptionContentsTemplate}" + > + + `}var wV,SV=b(()=>{B();zp();O3();d1();L3();h1();wV=(i,e)=>{let t=i.tagFor(We),r=i.tagFor(Ns),n=i.tagFor(Ml),s=i.tagFor(Ml),o=W3e(i),a=G3e(i);return H` + + `}});var $3,f1,CV=b(()=>{fn();Pe();$3=class extends ee{},f1=class extends vi($3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var K3e,rt,IV=b(()=>{Le();B();ye();o3();d1();h1();CV();K3e=H` + +`,rt=class extends f1{constructor(){super(...arguments),this.selection="",this.filterSelected=!0,this.filterQuery=!0,this.noSuggestionsText="No suggestions available",this.suggestionsAvailableText="Suggestions available",this.loadingText="Loading suggestions",this.menuPlacement="bottom-fill",this.showLoading=!1,this.optionsList=[],this.filteredOptionsList=[],this.flyoutOpen=!1,this.menuFocusIndex=-1,this.showNoOptions=!1,this.selectedItems=[],this.inputElementView=null,this.handleTextInput=e=>{this.query=this.inputElement.value},this.handleInputClick=e=>{e.preventDefault(),this.toggleFlyout(!0)},this.setRegionProps=()=>{if(this.flyoutOpen){if(this.region===null||this.region===void 0){ce.queueUpdate(this.setRegionProps);return}this.region.anchorElement=this.inputElement}},this.configLookup={top:i3,bottom:r3,tallest:n3,"top-fill":qH,"bottom-fill":s3,"tallest-fill":HH}}selectionChanged(){this.$fastController.isConnected&&(this.handleSelectionChange(),this.proxy instanceof HTMLInputElement&&(this.proxy.value=this.selection,this.validate()))}optionsChanged(){this.optionsList=this.options.split(",").map(e=>e.trim()).filter(e=>e!=="")}menuPlacementChanged(){this.$fastController.isConnected&&this.updateMenuConfig()}showLoadingChanged(){this.$fastController.isConnected&&ce.queueUpdate(()=>{this.setFocusedOption(0)})}listItemTemplateChanged(){this.updateListItemTemplate()}defaultListItemTemplateChanged(){this.updateListItemTemplate()}menuOptionTemplateChanged(){this.updateOptionTemplate()}defaultMenuOptionTemplateChanged(){this.updateOptionTemplate()}optionsListChanged(){this.updateFilteredOptions()}queryChanged(){this.$fastController.isConnected&&(this.inputElement.value!==this.query&&(this.inputElement.value=this.query),this.updateFilteredOptions(),this.$emit("querychange",{bubbles:!1}))}filteredOptionsListChanged(){this.$fastController.isConnected&&(this.showNoOptions=this.filteredOptionsList.length===0&&this.menuElement.querySelectorAll('[role="listitem"]').length===0,this.setFocusedOption(this.showNoOptions?-1:0))}flyoutOpenChanged(){this.flyoutOpen?(ce.queueUpdate(this.setRegionProps),this.$emit("menuopening",{bubbles:!1})):this.$emit("menuclosing",{bubbles:!1})}showNoOptionsChanged(){this.$fastController.isConnected&&ce.queueUpdate(()=>{this.setFocusedOption(0)})}connectedCallback(){super.connectedCallback(),this.listElement=document.createElement(this.selectedListTag),this.appendChild(this.listElement),this.itemsPlaceholderElement=document.createComment(""),this.listElement.append(this.itemsPlaceholderElement),this.inputElementView=K3e.render(this,this.listElement);let e=this.menuTag.toUpperCase();this.menuElement=Array.from(this.children).find(t=>t.tagName===e),this.menuElement===void 0&&(this.menuElement=document.createElement(this.menuTag),this.appendChild(this.menuElement)),this.menuElement.id===""&&(this.menuElement.id=Ln("listbox-")),this.menuId=this.menuElement.id,this.optionsPlaceholder=document.createComment(""),this.menuElement.append(this.optionsPlaceholder),this.updateMenuConfig(),ce.queueUpdate(()=>this.initialize())}disconnectedCallback(){super.disconnectedCallback(),this.toggleFlyout(!1),this.inputElement.removeEventListener("input",this.handleTextInput),this.inputElement.removeEventListener("click",this.handleInputClick),this.inputElementView!==null&&(this.inputElementView.dispose(),this.inputElementView=null)}focus(){this.inputElement.focus()}initialize(){this.updateListItemTemplate(),this.updateOptionTemplate(),this.itemsRepeatBehavior=new aa(e=>e.selectedItems,e=>e.activeListItemTemplate,{positioning:!0}).createBehavior(this.itemsPlaceholderElement),this.inputElement.addEventListener("input",this.handleTextInput),this.inputElement.addEventListener("click",this.handleInputClick),this.$fastController.addBehaviors([this.itemsRepeatBehavior]),this.menuElement.suggestionsAvailableText=this.suggestionsAvailableText,this.menuElement.addEventListener("optionsupdated",this.handleMenuOptionsUpdated),this.optionsRepeatBehavior=new aa(e=>e.filteredOptionsList,e=>e.activeMenuOptionTemplate,{positioning:!0}).createBehavior(this.optionsPlaceholder),this.$fastController.addBehaviors([this.optionsRepeatBehavior]),this.handleSelectionChange()}toggleFlyout(e){if(this.flyoutOpen!==e){if(e&&document.activeElement===this.inputElement){this.flyoutOpen=e,ce.queueUpdate(()=>{this.menuElement!==void 0?this.setFocusedOption(0):this.disableMenu()});return}this.flyoutOpen=!1,this.disableMenu()}}handleMenuOptionsUpdated(e){e.preventDefault(),this.flyoutOpen&&this.setFocusedOption(0)}handleKeyDown(e){if(e.defaultPrevented)return!1;switch(e.key){case Dt:{if(!this.flyoutOpen)this.toggleFlyout(!0);else{let t=this.flyoutOpen?Math.min(this.menuFocusIndex+1,this.menuElement.optionElements.length-1):0;this.setFocusedOption(t)}return!1}case Ot:{if(!this.flyoutOpen)this.toggleFlyout(!0);else{let t=this.flyoutOpen?Math.max(this.menuFocusIndex-1,0):0;this.setFocusedOption(t)}return!1}case cn:return this.toggleFlyout(!1),!1;case ni:return this.menuFocusIndex!==-1&&this.menuElement.optionElements.length>this.menuFocusIndex&&this.menuElement.optionElements[this.menuFocusIndex].click(),!1;case kr:return document.activeElement!==this.inputElement?(this.incrementFocusedItem(1),!1):!0;case Er:return this.inputElement.selectionStart===0?(this.incrementFocusedItem(-1),!1):!0;case EH:case IH:{if(document.activeElement===null)return!0;if(document.activeElement===this.inputElement)return this.inputElement.selectionStart===0?(this.selection=this.selectedItems.slice(0,this.selectedItems.length-1).toString(),this.toggleFlyout(!1),!1):!0;let t=Array.from(this.listElement.children),r=t.indexOf(document.activeElement);return r>-1?(this.selection=this.selectedItems.splice(r,1).toString(),ce.queueUpdate(()=>{t[Math.min(t.length,r)].focus()}),!1):!0}}return this.toggleFlyout(!0),!0}handleFocusIn(e){return!1}handleFocusOut(e){return(this.menuElement===void 0||!this.menuElement.contains(e.relatedTarget))&&this.toggleFlyout(!1),!1}handleSelectionChange(){this.selectedItems.toString()!==this.selection&&(this.selectedItems=this.selection===""?[]:this.selection.split(","),this.updateFilteredOptions(),ce.queueUpdate(()=>{this.checkMaxItems()}),this.$emit("selectionchange",{bubbles:!1}))}handleRegionLoaded(e){ce.queueUpdate(()=>{this.setFocusedOption(0),this.$emit("menuloaded",{bubbles:!1})})}checkMaxItems(){if(this.inputElement!==void 0)if(this.maxSelected!==void 0&&this.selectedItems.length>=this.maxSelected){if(document.activeElement===this.inputElement){let e=Array.from(this.listElement.querySelectorAll("[role='listitem']"));e[e.length-1].focus()}this.inputElement.hidden=!0}else this.inputElement.hidden=!1}handleItemInvoke(e){if(e.defaultPrevented)return!1;if(e.target instanceof zs){let r=Array.from(this.listElement.querySelectorAll("[role='listitem']")).indexOf(e.target);if(r!==-1){let n=this.selectedItems.slice();n.splice(r,1),this.selection=n.toString(),ce.queueUpdate(()=>this.incrementFocusedItem(0))}return!1}return!0}handleOptionInvoke(e){return e.defaultPrevented?!1:e.target instanceof Bs?(e.target.value!==void 0&&(this.selection=`${this.selection}${this.selection===""?"":","}${e.target.value}`),this.inputElement.value="",this.query="",this.inputElement.focus(),this.toggleFlyout(!1),!1):!0}incrementFocusedItem(e){if(this.selectedItems.length===0){this.inputElement.focus();return}let t=Array.from(this.listElement.querySelectorAll("[role='listitem']"));if(document.activeElement!==null){let r=t.indexOf(document.activeElement);r===-1&&(r=t.length);let n=Math.min(t.length,Math.max(0,r+e));n===t.length?this.maxSelected!==void 0&&this.selectedItems.length>=this.maxSelected?t[n-1].focus():this.inputElement.focus():t[n].focus()}}disableMenu(){var e,t,r;this.menuFocusIndex=-1,this.menuFocusOptionId=void 0,(e=this.inputElement)===null||e===void 0||e.removeAttribute("aria-activedescendant"),(t=this.inputElement)===null||t===void 0||t.removeAttribute("aria-owns"),(r=this.inputElement)===null||r===void 0||r.removeAttribute("aria-expanded")}setFocusedOption(e){if(!this.flyoutOpen||e===-1||this.showNoOptions||this.showLoading){this.disableMenu();return}if(this.menuElement.optionElements.length===0)return;this.menuElement.optionElements.forEach(r=>{r.setAttribute("aria-selected","false")}),this.menuFocusIndex=e,this.menuFocusIndex>this.menuElement.optionElements.length-1&&(this.menuFocusIndex=this.menuElement.optionElements.length-1),this.menuFocusOptionId=this.menuElement.optionElements[this.menuFocusIndex].id,this.inputElement.setAttribute("aria-owns",this.menuId),this.inputElement.setAttribute("aria-expanded","true"),this.inputElement.setAttribute("aria-activedescendant",this.menuFocusOptionId);let t=this.menuElement.optionElements[this.menuFocusIndex];t.setAttribute("aria-selected","true"),this.menuElement.scrollTo(0,t.offsetTop)}updateListItemTemplate(){var e;this.activeListItemTemplate=(e=this.listItemTemplate)!==null&&e!==void 0?e:this.defaultListItemTemplate}updateOptionTemplate(){var e;this.activeMenuOptionTemplate=(e=this.menuOptionTemplate)!==null&&e!==void 0?e:this.defaultMenuOptionTemplate}updateFilteredOptions(){this.filteredOptionsList=this.optionsList.slice(0),this.filterSelected&&(this.filteredOptionsList=this.filteredOptionsList.filter(e=>this.selectedItems.indexOf(e)===-1)),this.filterQuery&&this.query!==""&&this.query!==void 0&&(this.filteredOptionsList=this.filteredOptionsList.filter(e=>e.indexOf(this.query)!==-1))}updateMenuConfig(){let e=this.configLookup[this.menuPlacement];e===null&&(e=s3),this.menuConfig=Object.assign(Object.assign({},e),{autoUpdateMode:"auto",fixedPlacement:!0,horizontalViewportLock:!1,verticalViewportLock:!1})}};T([A({attribute:"selection"})],rt.prototype,"selection",void 0);T([A({attribute:"options"})],rt.prototype,"options",void 0);T([A({attribute:"filter-selected",mode:"boolean"})],rt.prototype,"filterSelected",void 0);T([A({attribute:"filter-query",mode:"boolean"})],rt.prototype,"filterQuery",void 0);T([A({attribute:"max-selected"})],rt.prototype,"maxSelected",void 0);T([A({attribute:"no-suggestions-text"})],rt.prototype,"noSuggestionsText",void 0);T([A({attribute:"suggestions-available-text"})],rt.prototype,"suggestionsAvailableText",void 0);T([A({attribute:"loading-text"})],rt.prototype,"loadingText",void 0);T([A({attribute:"label"})],rt.prototype,"label",void 0);T([A({attribute:"labelledby"})],rt.prototype,"labelledBy",void 0);T([A({attribute:"placeholder"})],rt.prototype,"placeholder",void 0);T([A({attribute:"menu-placement"})],rt.prototype,"menuPlacement",void 0);T([P],rt.prototype,"showLoading",void 0);T([P],rt.prototype,"listItemTemplate",void 0);T([P],rt.prototype,"defaultListItemTemplate",void 0);T([P],rt.prototype,"activeListItemTemplate",void 0);T([P],rt.prototype,"menuOptionTemplate",void 0);T([P],rt.prototype,"defaultMenuOptionTemplate",void 0);T([P],rt.prototype,"activeMenuOptionTemplate",void 0);T([P],rt.prototype,"listItemContentsTemplate",void 0);T([P],rt.prototype,"menuOptionContentsTemplate",void 0);T([P],rt.prototype,"optionsList",void 0);T([P],rt.prototype,"query",void 0);T([P],rt.prototype,"filteredOptionsList",void 0);T([P],rt.prototype,"flyoutOpen",void 0);T([P],rt.prototype,"menuId",void 0);T([P],rt.prototype,"selectedListTag",void 0);T([P],rt.prototype,"menuTag",void 0);T([P],rt.prototype,"menuFocusIndex",void 0);T([P],rt.prototype,"menuFocusOptionId",void 0);T([P],rt.prototype,"showNoOptions",void 0);T([P],rt.prototype,"menuConfig",void 0);T([P],rt.prototype,"selectedItems",void 0)});var EV,kV=b(()=>{B();EV=(i,e)=>H` + + `});var TV,AV=b(()=>{B();TV=(i,e)=>H` + + `});var MV,RV=b(()=>{B();MV=(i,e)=>H` + + `});var DV,OV=b(()=>{B();DV=(i,e)=>H` + + `});var LV=b(()=>{SV();IV();kV();O3();AV();d1();RV();L3();OV();h1()});var Ji,P3,$V=b(()=>{Ji={menuitem:"menuitem",menuitemcheckbox:"menuitemcheckbox",menuitemradio:"menuitemradio"},P3={[Ji.menuitem]:"menuitem",[Ji.menuitemcheckbox]:"menuitemcheckbox",[Ji.menuitemradio]:"menuitemradio"}});var fr,F3=b(()=>{Le();B();ye();Pe();Ht();Il();Xi();$V();fr=class extends ee{constructor(){super(...arguments),this.role=Ji.menuitem,this.hasSubmenu=!1,this.currentDirection=je.ltr,this.focusSubmenuOnLoad=!1,this.handleMenuItemKeyDown=e=>{if(e.defaultPrevented)return!1;switch(e.key){case ni:case dn:return this.invoke(),!1;case kr:return this.expandAndFocus(),!1;case Er:if(this.expanded)return this.expanded=!1,this.focus(),!1}return!0},this.handleMenuItemClick=e=>(e.defaultPrevented||this.disabled||this.invoke(),!1),this.submenuLoaded=()=>{this.focusSubmenuOnLoad&&(this.focusSubmenuOnLoad=!1,this.hasSubmenu&&(this.submenu.focus(),this.setAttribute("tabindex","-1")))},this.handleMouseOver=e=>(this.disabled||!this.hasSubmenu||this.expanded||(this.expanded=!0),!1),this.handleMouseOut=e=>(!this.expanded||this.contains(document.activeElement)||(this.expanded=!1),!1),this.expandAndFocus=()=>{this.hasSubmenu&&(this.focusSubmenuOnLoad=!0,this.expanded=!0)},this.invoke=()=>{if(!this.disabled)switch(this.role){case Ji.menuitemcheckbox:this.checked=!this.checked;break;case Ji.menuitem:this.updateSubmenu(),this.hasSubmenu?this.expandAndFocus():this.$emit("change");break;case Ji.menuitemradio:this.checked||(this.checked=!0);break}},this.updateSubmenu=()=>{this.submenu=this.domChildren().find(e=>e.getAttribute("role")==="menu"),this.hasSubmenu=this.submenu!==void 0}}expandedChanged(e){if(this.$fastController.isConnected){if(this.submenu===void 0)return;this.expanded===!1?this.submenu.collapseExpandedItem():this.currentDirection=Yr(this),this.$emit("expanded-change",this,{bubbles:!1})}}checkedChanged(e,t){this.$fastController.isConnected&&this.$emit("change")}connectedCallback(){super.connectedCallback(),ce.queueUpdate(()=>{this.updateSubmenu()}),this.startColumnCount||(this.startColumnCount=1),this.observer=new MutationObserver(this.updateSubmenu)}disconnectedCallback(){super.disconnectedCallback(),this.submenu=void 0,this.observer!==void 0&&(this.observer.disconnect(),this.observer=void 0)}domChildren(){return Array.from(this.children).filter(e=>!e.hasAttribute("hidden"))}};T([A({mode:"boolean"})],fr.prototype,"disabled",void 0);T([A({mode:"boolean"})],fr.prototype,"expanded",void 0);T([P],fr.prototype,"startColumnCount",void 0);T([A],fr.prototype,"role",void 0);T([A({mode:"boolean"})],fr.prototype,"checked",void 0);T([P],fr.prototype,"submenuRegion",void 0);T([P],fr.prototype,"hasSubmenu",void 0);T([P],fr.prototype,"currentDirection",void 0);T([P],fr.prototype,"submenu",void 0);He(fr,ht)});var PV,FV=b(()=>{B();zp();Ht();F3();PV=(i,e)=>H` + +`});var N3=b(()=>{FV();F3()});var NV,BV=b(()=>{B();NV=(i,e)=>H` + +`});var fa,zV=b(()=>{Le();B();ye();N3();Pe();fa=class extends ee{constructor(){super(...arguments),this.expandedItem=null,this.focusIndex=-1,this.isNestedMenu=()=>this.parentElement!==null&&vo(this.parentElement)&&this.parentElement.getAttribute("role")==="menuitem",this.handleFocusOut=e=>{if(!this.contains(e.relatedTarget)&&this.menuItems!==void 0){this.collapseExpandedItem();let t=this.menuItems.findIndex(this.isFocusableElement);this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.menuItems[t].setAttribute("tabindex","0"),this.focusIndex=t}},this.handleItemFocus=e=>{let t=e.target;this.menuItems!==void 0&&t!==this.menuItems[this.focusIndex]&&(this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.focusIndex=this.menuItems.indexOf(t),t.setAttribute("tabindex","0"))},this.handleExpandedChanged=e=>{if(e.defaultPrevented||e.target===null||this.menuItems===void 0||this.menuItems.indexOf(e.target)<0)return;e.preventDefault();let t=e.target;if(this.expandedItem!==null&&t===this.expandedItem&&t.expanded===!1){this.expandedItem=null;return}t.expanded&&(this.expandedItem!==null&&this.expandedItem!==t&&(this.expandedItem.expanded=!1),this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.expandedItem=t,this.focusIndex=this.menuItems.indexOf(t),t.setAttribute("tabindex","0"))},this.removeItemListeners=()=>{this.menuItems!==void 0&&this.menuItems.forEach(e=>{e.removeEventListener("expanded-change",this.handleExpandedChanged),e.removeEventListener("focus",this.handleItemFocus)})},this.setItems=()=>{let e=this.domChildren();this.removeItemListeners(),this.menuItems=e;let t=this.menuItems.filter(this.isMenuItemElement);t.length&&(this.focusIndex=0);function r(s){let o=s.getAttribute("role"),a=s.querySelector("[slot=start]");return o!==Ji.menuitem&&a===null||o===Ji.menuitem&&a!==null?1:o!==Ji.menuitem&&a!==null?2:0}let n=t.reduce((s,o)=>{let a=r(o);return s>a?s:a},0);t.forEach((s,o)=>{s.setAttribute("tabindex",o===0?"0":"-1"),s.addEventListener("expanded-change",this.handleExpandedChanged),s.addEventListener("focus",this.handleItemFocus),(s instanceof fr||"startColumnCount"in s)&&(s.startColumnCount=n)})},this.changeHandler=e=>{if(this.menuItems===void 0)return;let t=e.target,r=this.menuItems.indexOf(t);if(r!==-1&&t.role==="menuitemradio"&&t.checked===!0){for(let s=r-1;s>=0;--s){let o=this.menuItems[s],a=o.getAttribute("role");if(a===Ji.menuitemradio&&(o.checked=!1),a==="separator")break}let n=this.menuItems.length-1;for(let s=r+1;s<=n;++s){let o=this.menuItems[s],a=o.getAttribute("role");if(a===Ji.menuitemradio&&(o.checked=!1),a==="separator")break}}},this.isMenuItemElement=e=>vo(e)&&fa.focusableElementRoles.hasOwnProperty(e.getAttribute("role")),this.isFocusableElement=e=>this.isMenuItemElement(e)}itemsChanged(e,t){this.$fastController.isConnected&&this.menuItems!==void 0&&this.setItems()}connectedCallback(){super.connectedCallback(),ce.queueUpdate(()=>{this.setItems()}),this.addEventListener("change",this.changeHandler)}disconnectedCallback(){super.disconnectedCallback(),this.removeItemListeners(),this.menuItems=void 0,this.removeEventListener("change",this.changeHandler)}focus(){this.setFocus(0,1)}collapseExpandedItem(){this.expandedItem!==null&&(this.expandedItem.expanded=!1,this.expandedItem=null)}handleMenuKeyDown(e){if(!(e.defaultPrevented||this.menuItems===void 0))switch(e.key){case Dt:this.setFocus(this.focusIndex+1,1);return;case Ot:this.setFocus(this.focusIndex-1,-1);return;case Ii:this.setFocus(this.menuItems.length-1,-1);return;case Ci:this.setFocus(0,1);return;default:return!0}}domChildren(){return Array.from(this.children).filter(e=>!e.hasAttribute("hidden"))}setFocus(e,t){if(this.menuItems!==void 0)for(;e>=0&&e-1&&this.menuItems.length>=this.focusIndex-1&&this.menuItems[this.focusIndex].setAttribute("tabindex","-1"),this.focusIndex=e,r.setAttribute("tabindex","0"),r.focus();break}e+=t}}};fa.focusableElementRoles=P3;T([P],fa.prototype,"items",void 0)});var qV=b(()=>{BV();zV()});var HV,jV=b(()=>{B();Ht();HV=(i,e)=>H` + +`});var B3,p1,VV=b(()=>{fn();Pe();B3=class extends ee{},p1=class extends vi(B3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var UV,WV=b(()=>{UV={email:"email",password:"password",tel:"tel",text:"text",url:"url"}});var pr,wo,m1=b(()=>{Le();B();Nc();Xi();VV();WV();pr=class extends p1{constructor(){super(...arguments),this.type=UV.text}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}typeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.type=this.type,this.validate())}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.maxLength=this.maxlength,this.validate())}minlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.minLength=this.minlength,this.validate())}patternChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.pattern=this.pattern,this.validate())}sizeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.size=this.size)}spellcheckChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.spellcheck=this.spellcheck)}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type",this.type),this.validate(),this.autofocus&&ce.queueUpdate(()=>{this.focus()})}select(){this.control.select(),this.$emit("select")}handleTextInput(){this.value=this.control.value}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};T([A({attribute:"readonly",mode:"boolean"})],pr.prototype,"readOnly",void 0);T([A({mode:"boolean"})],pr.prototype,"autofocus",void 0);T([A],pr.prototype,"placeholder",void 0);T([A],pr.prototype,"type",void 0);T([A],pr.prototype,"list",void 0);T([A({converter:me})],pr.prototype,"maxlength",void 0);T([A({converter:me})],pr.prototype,"minlength",void 0);T([A],pr.prototype,"pattern",void 0);T([A({converter:me})],pr.prototype,"size",void 0);T([A({mode:"boolean"})],pr.prototype,"spellcheck",void 0);T([P],pr.prototype,"defaultSlottedNodes",void 0);wo=class{};He(wo,at);He(pr,ht,wo)});var z3,g1,GV=b(()=>{fn();Pe();z3=class extends ee{},g1=class extends vi(z3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Zi,KV=b(()=>{Le();B();ye();Ht();Xi();m1();GV();Zi=class extends g1{constructor(){super(...arguments),this.hideStep=!1,this.step=1,this.isUserInput=!1}maxChanged(e,t){var r;this.max=Math.max(t,(r=this.min)!==null&&r!==void 0?r:t);let n=Math.min(this.min,this.max);this.min!==void 0&&this.min!==n&&(this.min=n),this.value=this.getValidValue(this.value)}minChanged(e,t){var r;this.min=Math.min(t,(r=this.max)!==null&&r!==void 0?r:t);let n=Math.max(this.min,this.max);this.max!==void 0&&this.max!==n&&(this.max=n),this.value=this.getValidValue(this.value)}get valueAsNumber(){return parseFloat(super.value)}set valueAsNumber(e){this.value=e.toString()}valueChanged(e,t){this.value=this.getValidValue(t),t===this.value&&(this.control&&!this.isUserInput&&(this.control.value=this.value),super.valueChanged(e,this.value),e!==void 0&&!this.isUserInput&&(this.$emit("input"),this.$emit("change")),this.isUserInput=!1)}validate(){super.validate(this.control)}getValidValue(e){var t,r;let n=parseFloat(parseFloat(e).toPrecision(12));return isNaN(n)?n="":(n=Math.min(n,(t=this.max)!==null&&t!==void 0?t:n),n=Math.max(n,(r=this.min)!==null&&r!==void 0?r:n).toString()),n}stepUp(){let e=parseFloat(this.value),t=isNaN(e)?this.min>0?this.min:this.max<0?this.max:this.min?0:this.step:e+this.step;this.value=t.toString()}stepDown(){let e=parseFloat(this.value),t=isNaN(e)?this.min>0?this.min:this.max<0?this.max:this.min?0:0-this.step:e-this.step;this.value=t.toString()}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type","number"),this.validate(),this.control.value=this.value,this.autofocus&&ce.queueUpdate(()=>{this.focus()})}select(){this.control.select(),this.$emit("select")}handleTextInput(){this.control.value=this.control.value.replace(/[^0-9\-+e.]/g,""),this.isUserInput=!0,this.value=this.control.value}handleChange(){this.$emit("change")}handleKeyDown(e){switch(e.key){case Ot:return this.stepUp(),!1;case Dt:return this.stepDown(),!1}return!0}handleBlur(){this.control.value=this.value}};T([A({attribute:"readonly",mode:"boolean"})],Zi.prototype,"readOnly",void 0);T([A({mode:"boolean"})],Zi.prototype,"autofocus",void 0);T([A({attribute:"hide-step",mode:"boolean"})],Zi.prototype,"hideStep",void 0);T([A],Zi.prototype,"placeholder",void 0);T([A],Zi.prototype,"list",void 0);T([A({converter:me})],Zi.prototype,"maxlength",void 0);T([A({converter:me})],Zi.prototype,"minlength",void 0);T([A({converter:me})],Zi.prototype,"size",void 0);T([A({converter:me})],Zi.prototype,"step",void 0);T([A({converter:me})],Zi.prototype,"max",void 0);T([A({converter:me})],Zi.prototype,"min",void 0);T([P],Zi.prototype,"defaultSlottedNodes",void 0);He(Zi,ht,wo)});var YV=b(()=>{jV();KV()});var XV,JV,ZV=b(()=>{B();XV=44,JV=(i,e)=>H` + +`});var QV=b(()=>{ZV()});var Fn,eU=b(()=>{Le();B();Pe();Fn=class extends ee{constructor(){super(...arguments),this.percentComplete=0}valueChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}minChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}maxChanged(){this.$fastController.isConnected&&this.updatePercentComplete()}connectedCallback(){super.connectedCallback(),this.updatePercentComplete()}updatePercentComplete(){let e=typeof this.min=="number"?this.min:0,t=typeof this.max=="number"?this.max:100,r=typeof this.value=="number"?this.value:0,n=t-e;this.percentComplete=n===0?0:Math.fround((r-e)/n*100)}};T([A({converter:me})],Fn.prototype,"value",void 0);T([A({converter:me})],Fn.prototype,"min",void 0);T([A({converter:me})],Fn.prototype,"max",void 0);T([A({mode:"boolean"})],Fn.prototype,"paused",void 0);T([P],Fn.prototype,"percentComplete",void 0)});var tU,iU=b(()=>{B();tU=(i,e)=>H` + +`});var rU=b(()=>{eU();iU()});var nU,sU=b(()=>{B();ye();nU=(i,e)=>H` + +`});var fs,oU=b(()=>{Le();B();ye();Il();Pe();fs=class extends ee{constructor(){super(...arguments),this.orientation=it.horizontal,this.radioChangeHandler=e=>{let t=e.target;t.checked&&(this.slottedRadioButtons.forEach(r=>{r!==t&&(r.checked=!1,this.isInsideFoundationToolbar||r.setAttribute("tabindex","-1"))}),this.selectedRadio=t,this.value=t.value,t.setAttribute("tabindex","0"),this.focusedRadio=t),e.stopPropagation()},this.moveToRadioByIndex=(e,t)=>{let r=e[t];this.isInsideToolbar||(r.setAttribute("tabindex","0"),r.readOnly?this.slottedRadioButtons.forEach(n=>{n!==r&&n.setAttribute("tabindex","-1")}):(r.checked=!0,this.selectedRadio=r)),this.focusedRadio=r,r.focus()},this.moveRightOffGroup=()=>{var e;(e=this.nextElementSibling)===null||e===void 0||e.focus()},this.moveLeftOffGroup=()=>{var e;(e=this.previousElementSibling)===null||e===void 0||e.focus()},this.focusOutHandler=e=>{let t=this.slottedRadioButtons,r=e.target,n=r!==null?t.indexOf(r):0,s=this.focusedRadio?t.indexOf(this.focusedRadio):-1;return(s===0&&n===s||s===t.length-1&&s===n)&&(this.selectedRadio?(this.focusedRadio=this.selectedRadio,this.isInsideFoundationToolbar||(this.selectedRadio.setAttribute("tabindex","0"),t.forEach(o=>{o!==this.selectedRadio&&o.setAttribute("tabindex","-1")}))):(this.focusedRadio=t[0],this.focusedRadio.setAttribute("tabindex","0"),t.forEach(o=>{o!==this.focusedRadio&&o.setAttribute("tabindex","-1")}))),!0},this.clickHandler=e=>{let t=e.target;if(t){let r=this.slottedRadioButtons;t.checked||r.indexOf(t)===0?(t.setAttribute("tabindex","0"),this.selectedRadio=t):(t.setAttribute("tabindex","-1"),this.selectedRadio=null),this.focusedRadio=t}e.preventDefault()},this.shouldMoveOffGroupToTheRight=(e,t,r)=>e===t.length&&this.isInsideToolbar&&r===kr,this.shouldMoveOffGroupToTheLeft=(e,t)=>(this.focusedRadio?e.indexOf(this.focusedRadio)-1:0)<0&&this.isInsideToolbar&&t===Er,this.checkFocusedRadio=()=>{this.focusedRadio!==null&&!this.focusedRadio.readOnly&&!this.focusedRadio.checked&&(this.focusedRadio.checked=!0,this.focusedRadio.setAttribute("tabindex","0"),this.focusedRadio.focus(),this.selectedRadio=this.focusedRadio)},this.moveRight=e=>{let t=this.slottedRadioButtons,r=0;if(r=this.focusedRadio?t.indexOf(this.focusedRadio)+1:1,this.shouldMoveOffGroupToTheRight(r,t,e.key)){this.moveRightOffGroup();return}else r===t.length&&(r=0);for(;r1;)if(t[r].disabled){if(this.focusedRadio&&r===t.indexOf(this.focusedRadio))break;if(r+1>=t.length){if(this.isInsideToolbar)break;r=0}else r+=1}else{this.moveToRadioByIndex(t,r);break}},this.moveLeft=e=>{let t=this.slottedRadioButtons,r=0;if(r=this.focusedRadio?t.indexOf(this.focusedRadio)-1:0,r=r<0?t.length-1:r,this.shouldMoveOffGroupToTheLeft(t,e.key)){this.moveLeftOffGroup();return}for(;r>=0&&t.length>1;)if(t[r].disabled){if(this.focusedRadio&&r===t.indexOf(this.focusedRadio))break;r-1<0?r=t.length-1:r-=1}else{this.moveToRadioByIndex(t,r);break}},this.keydownHandler=e=>{let t=e.key;if(t in hn&&this.isInsideFoundationToolbar)return!0;switch(t){case ni:{this.checkFocusedRadio();break}case kr:case Dt:{this.direction===je.ltr?this.moveRight(e):this.moveLeft(e);break}case Er:case Ot:{this.direction===je.ltr?this.moveLeft(e):this.moveRight(e);break}default:return!0}}}readOnlyChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(e=>{this.readOnly?e.readOnly=!0:e.readOnly=!1})}disabledChanged(){this.slottedRadioButtons!==void 0&&this.slottedRadioButtons.forEach(e=>{this.disabled?e.disabled=!0:e.disabled=!1})}nameChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(e=>{e.setAttribute("name",this.name)})}valueChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(e=>{e.value===this.value&&(e.checked=!0,this.selectedRadio=e)}),this.$emit("change")}slottedRadioButtonsChanged(e,t){this.slottedRadioButtons&&this.slottedRadioButtons.length>0&&this.setupRadioButtons()}get parentToolbar(){return this.closest('[role="toolbar"]')}get isInsideToolbar(){var e;return(e=this.parentToolbar)!==null&&e!==void 0?e:!1}get isInsideFoundationToolbar(){var e;return!!(!((e=this.parentToolbar)===null||e===void 0)&&e.$fastController)}connectedCallback(){super.connectedCallback(),this.direction=Yr(this),this.setupRadioButtons()}disconnectedCallback(){this.slottedRadioButtons.forEach(e=>{e.removeEventListener("change",this.radioChangeHandler)})}setupRadioButtons(){let e=this.slottedRadioButtons.filter(n=>n.hasAttribute("checked")),t=e?e.length:0;if(t>1){let n=e[t-1];n.checked=!0}let r=!1;if(this.slottedRadioButtons.forEach(n=>{this.name!==void 0&&n.setAttribute("name",this.name),this.disabled&&(n.disabled=!0),this.readOnly&&(n.readOnly=!0),this.value&&this.value===n.value?(this.selectedRadio=n,this.focusedRadio=n,n.checked=!0,n.setAttribute("tabindex","0"),r=!0):(this.isInsideFoundationToolbar||n.setAttribute("tabindex","-1"),n.checked=!1),n.addEventListener("change",this.radioChangeHandler)}),this.value===void 0&&this.slottedRadioButtons.length>0){let n=this.slottedRadioButtons.filter(o=>o.hasAttribute("checked")),s=n!==null?n.length:0;if(s>0&&!r){let o=n[s-1];o.checked=!0,this.focusedRadio=o,o.setAttribute("tabindex","0")}else this.slottedRadioButtons[0].setAttribute("tabindex","0"),this.focusedRadio=this.slottedRadioButtons[0]}}};T([A({attribute:"readonly",mode:"boolean"})],fs.prototype,"readOnly",void 0);T([A({attribute:"disabled",mode:"boolean"})],fs.prototype,"disabled",void 0);T([A],fs.prototype,"name",void 0);T([A],fs.prototype,"value",void 0);T([A],fs.prototype,"orientation",void 0);T([P],fs.prototype,"childItems",void 0);T([P],fs.prototype,"slottedRadioButtons",void 0)});var aU=b(()=>{sU();oU()});var lU=b(()=>{});var q3,b1,uU=b(()=>{fn();Pe();q3=class extends ee{},b1=class extends ch(q3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Rl,cU=b(()=>{Le();B();ye();uU();Rl=class extends b1{constructor(){super(),this.initialValue="on",this.keypressHandler=e=>{switch(e.key){case dn:!this.checked&&!this.readOnly&&(this.checked=!0);return}return!0},this.proxy.setAttribute("type","radio")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}defaultCheckedChanged(){var e;this.$fastController.isConnected&&!this.dirtyChecked&&(this.isInsideRadioGroup()||(this.checked=(e=this.defaultChecked)!==null&&e!==void 0?e:!1,this.dirtyChecked=!1))}connectedCallback(){var e,t;super.connectedCallback(),this.validate(),((e=this.parentElement)===null||e===void 0?void 0:e.getAttribute("role"))!=="radiogroup"&&this.getAttribute("tabindex")===null&&(this.disabled||this.setAttribute("tabindex","0")),this.checkedAttribute&&(this.dirtyChecked||this.isInsideRadioGroup()||(this.checked=(t=this.defaultChecked)!==null&&t!==void 0?t:!1,this.dirtyChecked=!1))}isInsideRadioGroup(){return this.closest("[role=radiogroup]")!==null}clickHandler(e){!this.disabled&&!this.readOnly&&!this.checked&&(this.checked=!0)}};T([A({attribute:"readonly",mode:"boolean"})],Rl.prototype,"readOnly",void 0);T([P],Rl.prototype,"name",void 0);T([P],Rl.prototype,"defaultSlottedNodes",void 0)});var dU=b(()=>{lU();cU()});var pa,hU=b(()=>{Le();B();Pe();pa=class extends ee{constructor(){super(...arguments),this.framesPerSecond=60,this.updatingItems=!1,this.speed=600,this.easing="ease-in-out",this.flippersHiddenFromAT=!1,this.scrolling=!1,this.resizeDetector=null}get frameTime(){return 1e3/this.framesPerSecond}scrollingChanged(e,t){if(this.scrollContainer){let r=this.scrolling==!0?"scrollstart":"scrollend";this.$emit(r,this.scrollContainer.scrollLeft)}}get isRtl(){return this.scrollItems.length>1&&this.scrollItems[0].offsetLeft>this.scrollItems[1].offsetLeft}connectedCallback(){super.connectedCallback(),this.initializeResizeDetector()}disconnectedCallback(){this.disconnectResizeDetector(),super.disconnectedCallback()}scrollItemsChanged(e,t){t&&!this.updatingItems&&ce.queueUpdate(()=>this.setStops())}disconnectResizeDetector(){this.resizeDetector&&(this.resizeDetector.disconnect(),this.resizeDetector=null)}initializeResizeDetector(){this.disconnectResizeDetector(),this.resizeDetector=new window.ResizeObserver(this.resized.bind(this)),this.resizeDetector.observe(this)}updateScrollStops(){this.updatingItems=!0;let e=this.scrollItems.reduce((t,r)=>r instanceof HTMLSlotElement?t.concat(r.assignedElements()):(t.push(r),t),[]);this.scrollItems=e,this.updatingItems=!1}setStops(){this.updateScrollStops();let{scrollContainer:e}=this,{scrollLeft:t}=e,{width:r,left:n}=e.getBoundingClientRect();this.width=r;let s=0,o=this.scrollItems.map((a,l)=>{let{left:u,width:c}=a.getBoundingClientRect(),d=Math.round(u+t-n),h=Math.round(d+c);return this.isRtl?-h:(s=h,l===0?0:d)}).concat(s);o=this.fixScrollMisalign(o),o.sort((a,l)=>Math.abs(a)-Math.abs(l)),this.scrollStops=o,this.setFlippers()}validateStops(e=!0){let t=()=>!!this.scrollStops.find(r=>r>0);return!t()&&e&&this.setStops(),t()}fixScrollMisalign(e){if(this.isRtl&&e.some(t=>t>0)){e.sort((r,n)=>n-r);let t=e[0];e=e.map(r=>r-t)}return e}setFlippers(){var e,t;let r=this.scrollContainer.scrollLeft;if((e=this.previousFlipperContainer)===null||e===void 0||e.classList.toggle("disabled",r===0),this.scrollStops){let n=Math.abs(this.scrollStops[this.scrollStops.length-1]);(t=this.nextFlipperContainer)===null||t===void 0||t.classList.toggle("disabled",this.validateStops(!1)&&Math.abs(r)+this.width>=n)}}scrollInView(e,t=0,r){var n;if(typeof e!="number"&&e&&(e=this.scrollItems.findIndex(s=>s===e||s.contains(e))),e!==void 0){r=r??t;let{scrollContainer:s,scrollStops:o,scrollItems:a}=this,{scrollLeft:l}=this.scrollContainer,{width:u}=s.getBoundingClientRect(),c=o[e],{width:d}=a[e].getBoundingClientRect(),h=c+d,f=l+t>c;if(f||l+u-rf?_-v:v-_).find(v=>f?v+th))!==null&&n!==void 0?n:0;this.scrollToPosition(g)}}}keyupHandler(e){switch(e.key){case"ArrowLeft":this.scrollToPrevious();break;case"ArrowRight":this.scrollToNext();break}}scrollToPrevious(){this.validateStops();let e=this.scrollContainer.scrollLeft,t=this.scrollStops.findIndex((s,o)=>s>=e&&(this.isRtl||o===this.scrollStops.length-1||this.scrollStops[o+1]>e)),r=Math.abs(this.scrollStops[t+1]),n=this.scrollStops.findIndex(s=>Math.abs(s)+this.width>r);(n>=t||n===-1)&&(n=t>0?t-1:0),this.scrollToPosition(this.scrollStops[n],e)}scrollToNext(){this.validateStops();let e=this.scrollContainer.scrollLeft,t=this.scrollStops.findIndex(s=>Math.abs(s)>=Math.abs(e)),r=this.scrollStops.findIndex(s=>Math.abs(e)+this.width<=Math.abs(s)),n=t;r>t+2?n=r-2:t{u&&u.target!==u.currentTarget||(this.content.style.setProperty("transition-duration","0s"),this.content.style.removeProperty("transform"),this.scrollContainer.style.setProperty("scroll-behavior","auto"),this.scrollContainer.scrollLeft=e,this.setFlippers(),this.content.removeEventListener("transitionend",o),this.scrolling=!1)};if(s===0){o();return}this.content.addEventListener("transitionend",o);let a=this.scrollContainer.scrollWidth-this.scrollContainer.clientWidth,l=this.scrollContainer.scrollLeft-Math.min(e,a);this.isRtl&&(l=this.scrollContainer.scrollLeft+Math.min(Math.abs(e),a)),this.content.style.setProperty("transition-property","transform"),this.content.style.setProperty("transition-timing-function",this.easing),this.content.style.setProperty("transform",`translateX(${l}px)`)}resized(){this.resizeTimeout&&(this.resizeTimeout=clearTimeout(this.resizeTimeout)),this.resizeTimeout=setTimeout(()=>{this.width=this.scrollContainer.offsetWidth,this.setFlippers()},this.frameTime)}scrolled(){this.scrollTimeout&&(this.scrollTimeout=clearTimeout(this.scrollTimeout)),this.scrollTimeout=setTimeout(()=>{this.setFlippers()},this.frameTime)}};T([A({converter:me})],pa.prototype,"speed",void 0);T([A],pa.prototype,"duration",void 0);T([A],pa.prototype,"easing",void 0);T([A({attribute:"flippers-hidden-from-at",converter:Oc})],pa.prototype,"flippersHiddenFromAT",void 0);T([P],pa.prototype,"scrolling",void 0);T([P],pa.prototype,"scrollItems",void 0);T([A({attribute:"view"})],pa.prototype,"view",void 0)});var fU=b(()=>{});var pU=b(()=>{hU();fU()});function mh(i,e,t){return i.nodeType!==Node.TEXT_NODE?!0:typeof i.nodeValue=="string"&&!!i.nodeValue.trim().length}var v1=b(()=>{});var mU,gU=b(()=>{B();Ht();v1();mU=(i,e)=>H` + +`});var H3,_1,bU=b(()=>{fn();Pe();H3=class extends ee{},_1=class extends vi(H3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Ar,y1,vU=b(()=>{Le();B();Nc();Xi();bU();Ar=class extends _1{readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}placeholderChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.maxLength=this.maxlength,this.validate())}minlengthChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.minLength=this.minlength,this.validate())}patternChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.pattern=this.pattern,this.validate())}sizeChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.size=this.size)}spellcheckChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.spellcheck=this.spellcheck)}connectedCallback(){super.connectedCallback(),this.validate(),this.autofocus&&ce.queueUpdate(()=>{this.focus()})}validate(){super.validate(this.control)}handleTextInput(){this.value=this.control.value}handleClearInput(){this.value="",this.control.focus(),this.handleChange()}handleChange(){this.$emit("change")}};T([A({attribute:"readonly",mode:"boolean"})],Ar.prototype,"readOnly",void 0);T([A({mode:"boolean"})],Ar.prototype,"autofocus",void 0);T([A],Ar.prototype,"placeholder",void 0);T([A],Ar.prototype,"list",void 0);T([A({converter:me})],Ar.prototype,"maxlength",void 0);T([A({converter:me})],Ar.prototype,"minlength",void 0);T([A],Ar.prototype,"pattern",void 0);T([A({converter:me})],Ar.prototype,"size",void 0);T([A({mode:"boolean"})],Ar.prototype,"spellcheck",void 0);T([P],Ar.prototype,"defaultSlottedNodes",void 0);y1=class{};He(y1,at);He(Ar,ht,y1)});var _U=b(()=>{gU();vU()});var j3,x1,yU=b(()=>{c1();fn();j3=class extends pn{},x1=class extends vi(j3){constructor(){super(...arguments),this.proxy=document.createElement("select")}}});var mn,Xp,xU=b(()=>{Le();B();ye();Tl();Ht();Xi();yU();r1();mn=class extends x1{constructor(){super(...arguments),this.open=!1,this.forcedPosition=!1,this.listboxId=Ln("listbox-"),this.maxHeight=0}openChanged(e,t){if(this.collapsible){if(this.open){this.ariaControls=this.listboxId,this.ariaExpanded="true",this.setPositioning(),this.focusAndScrollOptionIntoView(),this.indexWhenOpened=this.selectedIndex,ce.queueUpdate(()=>this.focus());return}this.ariaControls="",this.ariaExpanded="false"}}get collapsible(){return!(this.multiple||typeof this.size=="number")}get value(){return _e.track(this,"value"),this._value}set value(e){var t,r,n,s,o,a,l;let u=`${this._value}`;if(!((t=this._options)===null||t===void 0)&&t.length){let c=this._options.findIndex(f=>f.value===e),d=(n=(r=this._options[this.selectedIndex])===null||r===void 0?void 0:r.value)!==null&&n!==void 0?n:null,h=(o=(s=this._options[c])===null||s===void 0?void 0:s.value)!==null&&o!==void 0?o:null;(c===-1||d!==h)&&(e="",this.selectedIndex=c),e=(l=(a=this.firstSelectedOption)===null||a===void 0?void 0:a.value)!==null&&l!==void 0?l:e}u!==e&&(this._value=e,super.valueChanged(u,e),_e.notify(this,"value"),this.updateDisplayValue())}updateValue(e){var t,r;this.$fastController.isConnected&&(this.value=(r=(t=this.firstSelectedOption)===null||t===void 0?void 0:t.value)!==null&&r!==void 0?r:""),e&&(this.$emit("input"),this.$emit("change",this,{bubbles:!0,composed:void 0}))}selectedIndexChanged(e,t){super.selectedIndexChanged(e,t),this.updateValue()}positionChanged(e,t){this.positionAttribute=t,this.setPositioning()}setPositioning(){let e=this.getBoundingClientRect(),r=window.innerHeight-e.bottom;this.position=this.forcedPosition?this.positionAttribute:e.top>r?Al.above:Al.below,this.positionAttribute=this.forcedPosition?this.positionAttribute:this.position,this.maxHeight=this.position===Al.above?~~e.top:~~r}get displayValue(){var e,t;return _e.track(this,"displayValue"),(t=(e=this.firstSelectedOption)===null||e===void 0?void 0:e.text)!==null&&t!==void 0?t:""}disabledChanged(e,t){super.disabledChanged&&super.disabledChanged(e,t),this.ariaDisabled=this.disabled?"true":"false"}formResetCallback(){this.setProxyOptions(),super.setDefaultSelectedOption(),this.selectedIndex===-1&&(this.selectedIndex=0)}clickHandler(e){if(!this.disabled){if(this.open){let t=e.target.closest("option,[role=option]");if(t&&t.disabled)return}return super.clickHandler(e),this.open=this.collapsible&&!this.open,!this.open&&this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0),!0}}focusoutHandler(e){var t;if(super.focusoutHandler(e),!this.open)return!0;let r=e.relatedTarget;if(this.isSameNode(r)){this.focus();return}!((t=this.options)===null||t===void 0)&&t.includes(r)||(this.open=!1,this.indexWhenOpened!==this.selectedIndex&&this.updateValue(!0))}handleChange(e,t){super.handleChange(e,t),t==="value"&&this.updateValue()}slottedOptionsChanged(e,t){this.options.forEach(r=>{_e.getNotifier(r).unsubscribe(this,"value")}),super.slottedOptionsChanged(e,t),this.options.forEach(r=>{_e.getNotifier(r).subscribe(this,"value")}),this.setProxyOptions(),this.updateValue()}mousedownHandler(e){var t;return e.offsetX>=0&&e.offsetX<=((t=this.listbox)===null||t===void 0?void 0:t.scrollWidth)?super.mousedownHandler(e):this.collapsible}multipleChanged(e,t){super.multipleChanged(e,t),this.proxy&&(this.proxy.multiple=t)}selectedOptionsChanged(e,t){var r;super.selectedOptionsChanged(e,t),(r=this.options)===null||r===void 0||r.forEach((n,s)=>{var o;let a=(o=this.proxy)===null||o===void 0?void 0:o.options.item(s);a&&(a.selected=n.selected)})}setDefaultSelectedOption(){var e;let t=(e=this.options)!==null&&e!==void 0?e:Array.from(this.children).filter(Ut.slottedOptionFilter),r=t?.findIndex(n=>n.hasAttribute("selected")||n.selected||n.value===this.value);if(r!==-1){this.selectedIndex=r;return}this.selectedIndex=0}setProxyOptions(){this.proxy instanceof HTMLSelectElement&&this.options&&(this.proxy.options.length=0,this.options.forEach(e=>{let t=e.proxy||(e instanceof HTMLOptionElement?e.cloneNode():null);t&&this.proxy.options.add(t)}))}keydownHandler(e){super.keydownHandler(e);let t=e.key||e.key.charCodeAt(0);switch(t){case dn:{e.preventDefault(),this.collapsible&&this.typeAheadExpired&&(this.open=!this.open);break}case Ci:case Ii:{e.preventDefault();break}case ni:{e.preventDefault(),this.open=!this.open;break}case cn:{this.collapsible&&this.open&&(e.preventDefault(),this.open=!1);break}case Cl:return this.collapsible&&this.open&&(e.preventDefault(),this.open=!1),!0}return!this.open&&this.indexWhenOpened!==this.selectedIndex&&(this.updateValue(!0),this.indexWhenOpened=this.selectedIndex),!(t===Dt||t===Ot)}connectedCallback(){super.connectedCallback(),this.forcedPosition=!!this.positionAttribute,this.addEventListener("contentchange",this.updateDisplayValue)}disconnectedCallback(){this.removeEventListener("contentchange",this.updateDisplayValue),super.disconnectedCallback()}sizeChanged(e,t){super.sizeChanged(e,t),this.proxy&&(this.proxy.size=t)}updateDisplayValue(){this.collapsible&&_e.notify(this,"displayValue")}};T([A({attribute:"open",mode:"boolean"})],mn.prototype,"open",void 0);T([fq],mn.prototype,"collapsible",null);T([P],mn.prototype,"control",void 0);T([A({attribute:"position"})],mn.prototype,"positionAttribute",void 0);T([P],mn.prototype,"position",void 0);T([P],mn.prototype,"maxHeight",void 0);Xp=class{};T([P],Xp.prototype,"ariaControls",void 0);He(Xp,ds);He(mn,ht,Xp)});var wU,SU=b(()=>{B();Tl();Ht();wU=(i,e)=>H` + +`});var CU=b(()=>{xU();r1();SU()});var IU,EU=b(()=>{B();IU=(i,e)=>H` + +`});var ma,kU=b(()=>{Le();B();Pe();ma=class extends ee{constructor(){super(...arguments),this.shape="rect"}};T([A],ma.prototype,"fill",void 0);T([A],ma.prototype,"shape",void 0);T([A],ma.prototype,"pattern",void 0);T([A({mode:"boolean"})],ma.prototype,"shimmer",void 0)});var TU=b(()=>{EU();kU()});var AU,MU=b(()=>{B();ye();AU=(i,e)=>H` + +`});function Jp(i,e,t,r){let n=_o(0,1,(i-e)/(t-e));return r===je.rtl&&(n=1-n),n}var V3=b(()=>{ye()});var w1,Nn,RU=b(()=>{Le();B();ye();V3();Pe();w1={min:0,max:0,direction:je.ltr,orientation:it.horizontal,disabled:!1},Nn=class extends ee{constructor(){super(...arguments),this.hideMark=!1,this.sliderDirection=je.ltr,this.getSliderConfiguration=()=>{if(!this.isSliderConfig(this.parentNode))this.sliderDirection=w1.direction||je.ltr,this.sliderOrientation=w1.orientation||it.horizontal,this.sliderMaxPosition=w1.max,this.sliderMinPosition=w1.min;else{let e=this.parentNode,{min:t,max:r,direction:n,orientation:s,disabled:o}=e;o!==void 0&&(this.disabled=o),this.sliderDirection=n||je.ltr,this.sliderOrientation=s||it.horizontal,this.sliderMaxPosition=r,this.sliderMinPosition=t}},this.positionAsStyle=()=>{let e=this.sliderDirection?this.sliderDirection:je.ltr,t=Jp(Number(this.position),Number(this.sliderMinPosition),Number(this.sliderMaxPosition)),r=Math.round((1-t)*100),n=Math.round(t*100);return Number.isNaN(n)&&Number.isNaN(r)&&(r=50,n=50),this.sliderOrientation===it.horizontal?e===je.rtl?`right: ${n}%; left: ${r}%;`:`left: ${n}%; right: ${r}%;`:`top: ${n}%; bottom: ${r}%;`}}positionChanged(){this.positionStyle=this.positionAsStyle()}sliderOrientationChanged(){}connectedCallback(){super.connectedCallback(),this.getSliderConfiguration(),this.positionStyle=this.positionAsStyle(),this.notifier=_e.getNotifier(this.parentNode),this.notifier.subscribe(this,"orientation"),this.notifier.subscribe(this,"direction"),this.notifier.subscribe(this,"max"),this.notifier.subscribe(this,"min")}disconnectedCallback(){super.disconnectedCallback(),this.notifier.unsubscribe(this,"orientation"),this.notifier.unsubscribe(this,"direction"),this.notifier.unsubscribe(this,"max"),this.notifier.unsubscribe(this,"min")}handleChange(e,t){switch(t){case"direction":this.sliderDirection=e.direction;break;case"orientation":this.sliderOrientation=e.orientation;break;case"max":this.sliderMaxPosition=e.max;break;case"min":this.sliderMinPosition=e.min;break;default:break}this.positionStyle=this.positionAsStyle()}isSliderConfig(e){return e.max!==void 0&&e.min!==void 0}};T([P],Nn.prototype,"positionStyle",void 0);T([A],Nn.prototype,"position",void 0);T([A({attribute:"hide-mark",mode:"boolean"})],Nn.prototype,"hideMark",void 0);T([A({attribute:"disabled",mode:"boolean"})],Nn.prototype,"disabled",void 0);T([P],Nn.prototype,"sliderOrientation",void 0);T([P],Nn.prototype,"sliderMinPosition",void 0);T([P],Nn.prototype,"sliderMaxPosition",void 0);T([P],Nn.prototype,"sliderDirection",void 0)});var DU=b(()=>{MU();RU()});var OU,LU=b(()=>{B();ye();OU=(i,e)=>H` + +`});var U3,S1,$U=b(()=>{fn();Pe();U3=class extends ee{},S1=class extends vi(U3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Y3e,ki,PU=b(()=>{Le();B();ye();Il();V3();$U();Y3e={singleValue:"single-value"},ki=class extends S1{constructor(){super(...arguments),this.direction=je.ltr,this.isDragging=!1,this.trackWidth=0,this.trackMinWidth=0,this.trackHeight=0,this.trackLeft=0,this.trackMinHeight=0,this.valueTextFormatter=()=>null,this.min=0,this.max=10,this.step=1,this.orientation=it.horizontal,this.mode=Y3e.singleValue,this.keypressHandler=e=>{if(!this.readOnly){if(e.key===Ci)e.preventDefault(),this.value=`${this.min}`;else if(e.key===Ii)e.preventDefault(),this.value=`${this.max}`;else if(!e.shiftKey)switch(e.key){case kr:case Ot:e.preventDefault(),this.increment();break;case Er:case Dt:e.preventDefault(),this.decrement();break}}},this.setupTrackConstraints=()=>{let e=this.track.getBoundingClientRect();this.trackWidth=this.track.clientWidth,this.trackMinWidth=this.track.clientLeft,this.trackHeight=e.bottom,this.trackMinHeight=e.top,this.trackLeft=this.getBoundingClientRect().left,this.trackWidth===0&&(this.trackWidth=1)},this.setupListeners=(e=!1)=>{let t=`${e?"remove":"add"}EventListener`;this[t]("keydown",this.keypressHandler),this[t]("mousedown",this.handleMouseDown),this.thumb[t]("mousedown",this.handleThumbMouseDown,{passive:!0}),this.thumb[t]("touchstart",this.handleThumbMouseDown,{passive:!0}),e&&(this.handleMouseDown(null),this.handleThumbMouseDown(null))},this.initialValue="",this.handleThumbMouseDown=e=>{if(e){if(this.readOnly||this.disabled||e.defaultPrevented)return;e.target.focus()}let t=`${e!==null?"add":"remove"}EventListener`;window[t]("mouseup",this.handleWindowMouseUp),window[t]("mousemove",this.handleMouseMove,{passive:!0}),window[t]("touchmove",this.handleMouseMove,{passive:!0}),window[t]("touchend",this.handleWindowMouseUp),this.isDragging=e!==null},this.handleMouseMove=e=>{if(this.readOnly||this.disabled||e.defaultPrevented)return;let t=window.TouchEvent&&e instanceof TouchEvent?e.touches[0]:e,r=this.orientation===it.horizontal?t.pageX-document.documentElement.scrollLeft-this.trackLeft:t.pageY-document.documentElement.scrollTop;this.value=`${this.calculateNewValue(r)}`},this.calculateNewValue=e=>{let t=Jp(e,this.orientation===it.horizontal?this.trackMinWidth:this.trackMinHeight,this.orientation===it.horizontal?this.trackWidth:this.trackHeight,this.direction),r=(this.max-this.min)*t+this.min;return this.convertToConstrainedValue(r)},this.handleWindowMouseUp=e=>{this.stopDragging()},this.stopDragging=()=>{this.isDragging=!1,this.handleMouseDown(null),this.handleThumbMouseDown(null)},this.handleMouseDown=e=>{let t=`${e!==null?"add":"remove"}EventListener`;if((e===null||!this.disabled&&!this.readOnly)&&(window[t]("mouseup",this.handleWindowMouseUp),window.document[t]("mouseleave",this.handleWindowMouseUp),window[t]("mousemove",this.handleMouseMove),e)){e.preventDefault(),this.setupTrackConstraints(),e.target.focus();let r=this.orientation===it.horizontal?e.pageX-document.documentElement.scrollLeft-this.trackLeft:e.pageY-document.documentElement.scrollTop;this.value=`${this.calculateNewValue(r)}`}},this.convertToConstrainedValue=e=>{isNaN(e)&&(e=this.min);let t=e-this.min,r=Math.round(t/this.step),n=t-r*(this.stepMultiplier*this.step)/this.stepMultiplier;return t=n>=Number(this.step)/2?t-n+Number(this.step):t-n,t+this.min}}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly)}get valueAsNumber(){return parseFloat(super.value)}set valueAsNumber(e){this.value=e.toString()}valueChanged(e,t){super.valueChanged(e,t),this.$fastController.isConnected&&this.setThumbPositionForOrientation(this.direction),this.$emit("change")}minChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.min=`${this.min}`),this.validate()}maxChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.max=`${this.max}`),this.validate()}stepChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.step=`${this.step}`),this.updateStepMultiplier(),this.validate()}orientationChanged(){this.$fastController.isConnected&&this.setThumbPositionForOrientation(this.direction)}connectedCallback(){super.connectedCallback(),this.proxy.setAttribute("type","range"),this.direction=Yr(this),this.updateStepMultiplier(),this.setupTrackConstraints(),this.setupListeners(),this.setupDefaultValue(),this.setThumbPositionForOrientation(this.direction)}disconnectedCallback(){this.setupListeners(!0)}increment(){let e=this.direction!==je.rtl&&this.orientation!==it.vertical?Number(this.value)+Number(this.step):Number(this.value)-Number(this.step),t=this.convertToConstrainedValue(e),r=tNumber(this.min)?`${t}`:`${this.min}`;this.value=r}setThumbPositionForOrientation(e){let r=(1-Jp(Number(this.value),Number(this.min),Number(this.max),e))*100;this.orientation===it.horizontal?this.position=this.isDragging?`right: ${r}%; transition: none;`:`right: ${r}%; transition: all 0.2s ease;`:this.position=this.isDragging?`bottom: ${r}%; transition: none;`:`bottom: ${r}%; transition: all 0.2s ease;`}updateStepMultiplier(){let e=this.step+"",t=this.step%1?e.length-e.indexOf(".")-1:0;this.stepMultiplier=Math.pow(10,t)}get midpoint(){return`${this.convertToConstrainedValue((this.max+this.min)/2)}`}setupDefaultValue(){if(typeof this.value=="string")if(this.value.length===0)this.initialValue=this.midpoint;else{let e=parseFloat(this.value);!Number.isNaN(e)&&(ethis.max)&&(this.value=this.midpoint)}}};T([A({attribute:"readonly",mode:"boolean"})],ki.prototype,"readOnly",void 0);T([P],ki.prototype,"direction",void 0);T([P],ki.prototype,"isDragging",void 0);T([P],ki.prototype,"position",void 0);T([P],ki.prototype,"trackWidth",void 0);T([P],ki.prototype,"trackMinWidth",void 0);T([P],ki.prototype,"trackHeight",void 0);T([P],ki.prototype,"trackLeft",void 0);T([P],ki.prototype,"trackMinHeight",void 0);T([P],ki.prototype,"valueTextFormatter",void 0);T([A({converter:me})],ki.prototype,"min",void 0);T([A({converter:me})],ki.prototype,"max",void 0);T([A({converter:me})],ki.prototype,"step",void 0);T([A],ki.prototype,"orientation",void 0);T([A],ki.prototype,"mode",void 0)});var FU=b(()=>{LU();PU()});var NU,BU=b(()=>{B();NU=(i,e)=>H` + +`});var W3,C1,zU=b(()=>{fn();Pe();W3=class extends ee{},C1=class extends ch(W3){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var Vc,qU=b(()=>{Le();B();ye();zU();Vc=class extends C1{constructor(){super(),this.initialValue="on",this.keypressHandler=e=>{if(!this.readOnly)switch(e.key){case ni:case dn:this.checked=!this.checked;break}},this.clickHandler=e=>{!this.disabled&&!this.readOnly&&(this.checked=!this.checked)},this.proxy.setAttribute("type","checkbox")}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly),this.readOnly?this.classList.add("readonly"):this.classList.remove("readonly")}checkedChanged(e,t){super.checkedChanged(e,t),this.checked?this.classList.add("checked"):this.classList.remove("checked")}};T([A({attribute:"readonly",mode:"boolean"})],Vc.prototype,"readOnly",void 0);T([P],Vc.prototype,"defaultSlottedNodes",void 0)});var HU=b(()=>{BU();qU()});var jU,VU=b(()=>{B();jU=(i,e)=>H` + +`});var Zp,UU=b(()=>{Pe();Zp=class extends ee{}});var WU=b(()=>{VU();UU()});var GU,KU=b(()=>{B();GU=(i,e)=>H` + +`});var gh,YU=b(()=>{Le();B();Pe();gh=class extends ee{};T([A({mode:"boolean"})],gh.prototype,"disabled",void 0)});var XU=b(()=>{KU();YU()});var JU,ZU=b(()=>{B();Ht();JU=(i,e)=>H` + +`});var QU,Bn,eW=b(()=>{Le();B();ye();Ht();Xi();Pe();QU={vertical:"vertical",horizontal:"horizontal"},Bn=class extends ee{constructor(){super(...arguments),this.orientation=QU.horizontal,this.activeindicator=!0,this.showActiveIndicator=!0,this.prevActiveTabIndex=0,this.activeTabIndex=0,this.ticking=!1,this.change=()=>{this.$emit("change",this.activetab)},this.isDisabledElement=e=>e.getAttribute("aria-disabled")==="true",this.isHiddenElement=e=>e.hasAttribute("hidden"),this.isFocusableElement=e=>!this.isDisabledElement(e)&&!this.isHiddenElement(e),this.setTabs=()=>{let e="gridColumn",t="gridRow",r=this.isHorizontal()?e:t;this.activeTabIndex=this.getActiveIndex(),this.showActiveIndicator=!1,this.tabs.forEach((n,s)=>{if(n.slot==="tab"){let o=this.activeTabIndex===s&&this.isFocusableElement(n);this.activeindicator&&this.isFocusableElement(n)&&(this.showActiveIndicator=!0);let a=this.tabIds[s],l=this.tabpanelIds[s];n.setAttribute("id",a),n.setAttribute("aria-selected",o?"true":"false"),n.setAttribute("aria-controls",l),n.addEventListener("click",this.handleTabClick),n.addEventListener("keydown",this.handleTabKeyDown),n.setAttribute("tabindex",o?"0":"-1"),o&&(this.activetab=n,this.activeid=a)}n.style[e]="",n.style[t]="",n.style[r]=`${s+1}`,this.isHorizontal()?n.classList.remove("vertical"):n.classList.add("vertical")})},this.setTabPanels=()=>{this.tabpanels.forEach((e,t)=>{let r=this.tabIds[t],n=this.tabpanelIds[t];e.setAttribute("id",n),e.setAttribute("aria-labelledby",r),this.activeTabIndex!==t?e.setAttribute("hidden",""):e.removeAttribute("hidden")})},this.handleTabClick=e=>{let t=e.currentTarget;t.nodeType===1&&this.isFocusableElement(t)&&(this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=this.tabs.indexOf(t),this.setComponent())},this.handleTabKeyDown=e=>{if(this.isHorizontal())switch(e.key){case Er:e.preventDefault(),this.adjustBackward(e);break;case kr:e.preventDefault(),this.adjustForward(e);break}else switch(e.key){case Ot:e.preventDefault(),this.adjustBackward(e);break;case Dt:e.preventDefault(),this.adjustForward(e);break}switch(e.key){case Ci:e.preventDefault(),this.adjust(-this.activeTabIndex);break;case Ii:e.preventDefault(),this.adjust(this.tabs.length-this.activeTabIndex-1);break}},this.adjustForward=e=>{let t=this.tabs,r=0;for(r=this.activetab?t.indexOf(this.activetab)+1:1,r===t.length&&(r=0);r1;)if(this.isFocusableElement(t[r])){this.moveToTabByIndex(t,r);break}else{if(this.activetab&&r===t.indexOf(this.activetab))break;r+1>=t.length?r=0:r+=1}},this.adjustBackward=e=>{let t=this.tabs,r=0;for(r=this.activetab?t.indexOf(this.activetab)-1:0,r=r<0?t.length-1:r;r>=0&&t.length>1;)if(this.isFocusableElement(t[r])){this.moveToTabByIndex(t,r);break}else r-1<0?r=t.length-1:r-=1},this.moveToTabByIndex=(e,t)=>{let r=e[t];this.activetab=r,this.prevActiveTabIndex=this.activeTabIndex,this.activeTabIndex=t,r.focus(),this.setComponent()}}orientationChanged(){this.$fastController.isConnected&&(this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}activeidChanged(e,t){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.prevActiveTabIndex=this.tabs.findIndex(r=>r.id===e),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabsChanged(){this.$fastController.isConnected&&this.tabs.length<=this.tabpanels.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}tabpanelsChanged(){this.$fastController.isConnected&&this.tabpanels.length<=this.tabs.length&&(this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.setTabs(),this.setTabPanels(),this.handleActiveIndicatorPosition())}getActiveIndex(){return this.activeid!==void 0?this.tabIds.indexOf(this.activeid)===-1?0:this.tabIds.indexOf(this.activeid):0}getTabIds(){return this.tabs.map(e=>{var t;return(t=e.getAttribute("id"))!==null&&t!==void 0?t:`tab-${Ln()}`})}getTabPanelIds(){return this.tabpanels.map(e=>{var t;return(t=e.getAttribute("id"))!==null&&t!==void 0?t:`panel-${Ln()}`})}setComponent(){this.activeTabIndex!==this.prevActiveTabIndex&&(this.activeid=this.tabIds[this.activeTabIndex],this.focusTab(),this.change())}isHorizontal(){return this.orientation===QU.horizontal}handleActiveIndicatorPosition(){this.showActiveIndicator&&this.activeindicator&&this.activeTabIndex!==this.prevActiveTabIndex&&(this.ticking?this.ticking=!1:(this.ticking=!0,this.animateActiveIndicator()))}animateActiveIndicator(){this.ticking=!0;let e=this.isHorizontal()?"gridColumn":"gridRow",t=this.isHorizontal()?"translateX":"translateY",r=this.isHorizontal()?"offsetLeft":"offsetTop",n=this.activeIndicatorRef[r];this.activeIndicatorRef.style[e]=`${this.activeTabIndex+1}`;let s=this.activeIndicatorRef[r];this.activeIndicatorRef.style[e]=`${this.prevActiveTabIndex+1}`;let o=s-n;this.activeIndicatorRef.style.transform=`${t}(${o}px)`,this.activeIndicatorRef.classList.add("activeIndicatorTransition"),this.activeIndicatorRef.addEventListener("transitionend",()=>{this.ticking=!1,this.activeIndicatorRef.style[e]=`${this.activeTabIndex+1}`,this.activeIndicatorRef.style.transform=`${t}(0px)`,this.activeIndicatorRef.classList.remove("activeIndicatorTransition")})}adjust(e){let t=this.tabs.filter(o=>this.isFocusableElement(o)),r=t.indexOf(this.activetab),n=_o(0,t.length-1,r+e),s=this.tabs.indexOf(t[n]);s>-1&&this.moveToTabByIndex(this.tabs,s)}focusTab(){this.tabs[this.activeTabIndex].focus()}connectedCallback(){super.connectedCallback(),this.tabIds=this.getTabIds(),this.tabpanelIds=this.getTabPanelIds(),this.activeTabIndex=this.getActiveIndex()}};T([A],Bn.prototype,"orientation",void 0);T([A],Bn.prototype,"activeid",void 0);T([P],Bn.prototype,"tabs",void 0);T([P],Bn.prototype,"tabpanels",void 0);T([A({mode:"boolean"})],Bn.prototype,"activeindicator",void 0);T([P],Bn.prototype,"activeIndicatorRef",void 0);T([P],Bn.prototype,"showActiveIndicator",void 0);He(Bn,ht)});var tW=b(()=>{ZU();eW()});var G3,I1,iW=b(()=>{fn();Pe();G3=class extends ee{},I1=class extends vi(G3){constructor(){super(...arguments),this.proxy=document.createElement("textarea")}}});var E1,rW=b(()=>{E1={none:"none",both:"both",horizontal:"horizontal",vertical:"vertical"}});var Ni,K3=b(()=>{Le();B();m1();Xi();iW();rW();Ni=class extends I1{constructor(){super(...arguments),this.resize=E1.none,this.cols=20,this.handleTextInput=()=>{this.value=this.control.value}}readOnlyChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.readOnly=this.readOnly)}autofocusChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.autofocus=this.autofocus)}listChanged(){this.proxy instanceof HTMLTextAreaElement&&this.proxy.setAttribute("list",this.list)}maxlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.maxLength=this.maxlength)}minlengthChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.minLength=this.minlength)}spellcheckChanged(){this.proxy instanceof HTMLTextAreaElement&&(this.proxy.spellcheck=this.spellcheck)}select(){this.control.select(),this.$emit("select")}handleChange(){this.$emit("change")}validate(){super.validate(this.control)}};T([A({mode:"boolean"})],Ni.prototype,"readOnly",void 0);T([A],Ni.prototype,"resize",void 0);T([A({mode:"boolean"})],Ni.prototype,"autofocus",void 0);T([A({attribute:"form"})],Ni.prototype,"formId",void 0);T([A],Ni.prototype,"list",void 0);T([A({converter:me})],Ni.prototype,"maxlength",void 0);T([A({converter:me})],Ni.prototype,"minlength",void 0);T([A],Ni.prototype,"name",void 0);T([A],Ni.prototype,"placeholder",void 0);T([A({converter:me,mode:"fromView"})],Ni.prototype,"cols",void 0);T([A({converter:me,mode:"fromView"})],Ni.prototype,"rows",void 0);T([A({mode:"boolean"})],Ni.prototype,"spellcheck",void 0);T([P],Ni.prototype,"defaultSlottedNodes",void 0);He(Ni,wo)});var nW,sW=b(()=>{B();K3();nW=(i,e)=>H` + +`});var oW=b(()=>{sW();K3()});var aW,lW=b(()=>{B();Ht();v1();aW=(i,e)=>H` + +`});var uW=b(()=>{lW();m1()});var cW,dW=b(()=>{B();Ht();cW=(i,e)=>H` + +`});function hW(i){let e=i.getRootNode();return e instanceof ShadowRoot?e.activeElement:document.activeElement}var fW=b(()=>{});var pW,qs,bh,mW=b(()=>{Le();B();ye();u1();Pe();Bp();Ht();Xi();Il();fW();pW=Object.freeze({[hn.ArrowUp]:{[it.vertical]:-1},[hn.ArrowDown]:{[it.vertical]:1},[hn.ArrowLeft]:{[it.horizontal]:{[je.ltr]:-1,[je.rtl]:1}},[hn.ArrowRight]:{[it.horizontal]:{[je.ltr]:1,[je.rtl]:-1}}}),qs=class extends ee{constructor(){super(...arguments),this._activeIndex=0,this.direction=je.ltr,this.orientation=it.horizontal}get activeIndex(){return _e.track(this,"activeIndex"),this._activeIndex}set activeIndex(e){this.$fastController.isConnected&&(this._activeIndex=_o(0,this.focusableElements.length-1,e),_e.notify(this,"activeIndex"))}slottedItemsChanged(){this.$fastController.isConnected&&this.reduceFocusableElements()}mouseDownHandler(e){var t;let r=(t=this.focusableElements)===null||t===void 0?void 0:t.findIndex(n=>n.contains(e.target));return r>-1&&this.activeIndex!==r&&this.setFocusedElement(r),!0}childItemsChanged(e,t){this.$fastController.isConnected&&this.reduceFocusableElements()}connectedCallback(){super.connectedCallback(),this.direction=Yr(this)}focusinHandler(e){let t=e.relatedTarget;!t||this.contains(t)||this.setFocusedElement()}getDirectionalIncrementer(e){var t,r,n,s,o;return(o=(n=(r=(t=pW[e])===null||t===void 0?void 0:t[this.orientation])===null||r===void 0?void 0:r[this.direction])!==null&&n!==void 0?n:(s=pW[e])===null||s===void 0?void 0:s[this.orientation])!==null&&o!==void 0?o:0}keydownHandler(e){let t=e.key;if(!(t in hn)||e.defaultPrevented||e.shiftKey)return!0;let r=this.getDirectionalIncrementer(t);if(!r)return!e.target.closest("[role=radiogroup]");let n=this.activeIndex+r;return this.focusableElements[n]&&e.preventDefault(),this.setFocusedElement(n),!0}get allSlottedItems(){return[...this.start.assignedElements(),...this.slottedItems,...this.end.assignedElements()]}reduceFocusableElements(){var e;let t=(e=this.focusableElements)===null||e===void 0?void 0:e[this.activeIndex];this.focusableElements=this.allSlottedItems.reduce(qs.reduceFocusableItems,[]);let r=this.focusableElements.indexOf(t);this.activeIndex=Math.max(0,r),this.setFocusableElements()}setFocusedElement(e=this.activeIndex){this.activeIndex=e,this.setFocusableElements(),this.focusableElements[this.activeIndex]&&this.contains(hW(this))&&this.focusableElements[this.activeIndex].focus()}static reduceFocusableItems(e,t){var r,n,s,o;let a=t.getAttribute("role")==="radio",l=(n=(r=t.$fastController)===null||r===void 0?void 0:r.definition.shadowOptions)===null||n===void 0?void 0:n.delegatesFocus,u=Array.from((o=(s=t.shadowRoot)===null||s===void 0?void 0:s.querySelectorAll("*"))!==null&&o!==void 0?o:[]).some(c=>ph(c));return!t.hasAttribute("disabled")&&!t.hasAttribute("hidden")&&(ph(t)||a||l||u)?(e.push(t),e):t.childElementCount?e.concat(Array.from(t.children).reduce(qs.reduceFocusableItems,[])):e}setFocusableElements(){this.$fastController.isConnected&&this.focusableElements.length>0&&this.focusableElements.forEach((e,t)=>{e.tabIndex=this.activeIndex===t?0:-1})}};T([P],qs.prototype,"direction",void 0);T([A],qs.prototype,"orientation",void 0);T([P],qs.prototype,"slottedItems",void 0);T([P],qs.prototype,"slottedLabel",void 0);T([P],qs.prototype,"childItems",void 0);bh=class{};T([A({attribute:"aria-labelledby"})],bh.prototype,"ariaLabelledby",void 0);T([A({attribute:"aria-label"})],bh.prototype,"ariaLabel",void 0);He(bh,at);He(qs,ht,bh)});var gW=b(()=>{dW();mW()});var bW,vW=b(()=>{B();zp();bW=(i,e)=>H` + ${Xe(t=>t.tooltipVisible,H` + <${i.tagFor(We)} + fixed-placement="true" + auto-update-mode="${t=>t.autoUpdateMode}" + vertical-positioning-mode="${t=>t.verticalPositioningMode}" + vertical-default-position="${t=>t.verticalDefaultPosition}" + vertical-inset="${t=>t.verticalInset}" + vertical-scaling="${t=>t.verticalScaling}" + horizontal-positioning-mode="${t=>t.horizontalPositioningMode}" + horizontal-default-position="${t=>t.horizontalDefaultPosition}" + horizontal-scaling="${t=>t.horizontalScaling}" + horizontal-inset="${t=>t.horizontalInset}" + vertical-viewport-lock="${t=>t.horizontalViewportLock}" + horizontal-viewport-lock="${t=>t.verticalViewportLock}" + dir="${t=>t.currentDirection}" + ${Ae("region")} + > + + + `)} + `});var Jr,_W=b(()=>{Jr={top:"top",right:"right",bottom:"bottom",left:"left",start:"start",end:"end",topLeft:"top-left",topRight:"top-right",bottomLeft:"bottom-left",bottomRight:"bottom-right",topStart:"top-start",topEnd:"top-end",bottomStart:"bottom-start",bottomEnd:"bottom-end"}});var Wt,yW=b(()=>{Le();B();ye();Il();Pe();_W();Wt=class extends ee{constructor(){super(...arguments),this.anchor="",this.delay=300,this.autoUpdateMode="anchor",this.anchorElement=null,this.viewportElement=null,this.verticalPositioningMode="dynamic",this.horizontalPositioningMode="dynamic",this.horizontalInset="false",this.verticalInset="false",this.horizontalScaling="content",this.verticalScaling="content",this.verticalDefaultPosition=void 0,this.horizontalDefaultPosition=void 0,this.tooltipVisible=!1,this.currentDirection=je.ltr,this.showDelayTimer=null,this.hideDelayTimer=null,this.isAnchorHoveredFocused=!1,this.isRegionHovered=!1,this.handlePositionChange=e=>{this.classList.toggle("top",this.region.verticalPosition==="start"),this.classList.toggle("bottom",this.region.verticalPosition==="end"),this.classList.toggle("inset-top",this.region.verticalPosition==="insetStart"),this.classList.toggle("inset-bottom",this.region.verticalPosition==="insetEnd"),this.classList.toggle("center-vertical",this.region.verticalPosition==="center"),this.classList.toggle("left",this.region.horizontalPosition==="start"),this.classList.toggle("right",this.region.horizontalPosition==="end"),this.classList.toggle("inset-left",this.region.horizontalPosition==="insetStart"),this.classList.toggle("inset-right",this.region.horizontalPosition==="insetEnd"),this.classList.toggle("center-horizontal",this.region.horizontalPosition==="center")},this.handleRegionMouseOver=e=>{this.isRegionHovered=!0},this.handleRegionMouseOut=e=>{this.isRegionHovered=!1,this.startHideDelayTimer()},this.handleAnchorMouseOver=e=>{if(this.tooltipVisible){this.isAnchorHoveredFocused=!0;return}this.startShowDelayTimer()},this.handleAnchorMouseOut=e=>{this.isAnchorHoveredFocused=!1,this.clearShowDelayTimer(),this.startHideDelayTimer()},this.handleAnchorFocusIn=e=>{this.startShowDelayTimer()},this.handleAnchorFocusOut=e=>{this.isAnchorHoveredFocused=!1,this.clearShowDelayTimer(),this.startHideDelayTimer()},this.startHideDelayTimer=()=>{this.clearHideDelayTimer(),this.tooltipVisible&&(this.hideDelayTimer=window.setTimeout(()=>{this.updateTooltipVisibility()},60))},this.clearHideDelayTimer=()=>{this.hideDelayTimer!==null&&(clearTimeout(this.hideDelayTimer),this.hideDelayTimer=null)},this.startShowDelayTimer=()=>{if(!this.isAnchorHoveredFocused){if(this.delay>1){this.showDelayTimer===null&&(this.showDelayTimer=window.setTimeout(()=>{this.startHover()},this.delay));return}this.startHover()}},this.startHover=()=>{this.isAnchorHoveredFocused=!0,this.updateTooltipVisibility()},this.clearShowDelayTimer=()=>{this.showDelayTimer!==null&&(clearTimeout(this.showDelayTimer),this.showDelayTimer=null)},this.getAnchor=()=>{let e=this.getRootNode();return e instanceof ShadowRoot?e.getElementById(this.anchor):document.getElementById(this.anchor)},this.handleDocumentKeydown=e=>{if(!e.defaultPrevented&&this.tooltipVisible)switch(e.key){case cn:this.isAnchorHoveredFocused=!1,this.updateTooltipVisibility(),this.$emit("dismiss");break}},this.updateTooltipVisibility=()=>{if(this.visible===!1)this.hideTooltip();else if(this.visible===!0){this.showTooltip();return}else{if(this.isAnchorHoveredFocused||this.isRegionHovered){this.showTooltip();return}this.hideTooltip()}},this.showTooltip=()=>{this.tooltipVisible||(this.currentDirection=Yr(this),this.tooltipVisible=!0,document.addEventListener("keydown",this.handleDocumentKeydown),ce.queueUpdate(this.setRegionProps))},this.hideTooltip=()=>{this.tooltipVisible&&(this.clearHideDelayTimer(),this.region!==null&&this.region!==void 0&&(this.region.removeEventListener("positionchange",this.handlePositionChange),this.region.viewportElement=null,this.region.anchorElement=null,this.region.removeEventListener("mouseover",this.handleRegionMouseOver),this.region.removeEventListener("mouseout",this.handleRegionMouseOut)),document.removeEventListener("keydown",this.handleDocumentKeydown),this.tooltipVisible=!1)},this.setRegionProps=()=>{this.tooltipVisible&&(this.region.viewportElement=this.viewportElement,this.region.anchorElement=this.anchorElement,this.region.addEventListener("positionchange",this.handlePositionChange),this.region.addEventListener("mouseover",this.handleRegionMouseOver,{passive:!0}),this.region.addEventListener("mouseout",this.handleRegionMouseOut,{passive:!0}))}}visibleChanged(){this.$fastController.isConnected&&(this.updateTooltipVisibility(),this.updateLayout())}anchorChanged(){this.$fastController.isConnected&&(this.anchorElement=this.getAnchor())}positionChanged(){this.$fastController.isConnected&&this.updateLayout()}anchorElementChanged(e){if(this.$fastController.isConnected){if(e!=null&&(e.removeEventListener("mouseover",this.handleAnchorMouseOver),e.removeEventListener("mouseout",this.handleAnchorMouseOut),e.removeEventListener("focusin",this.handleAnchorFocusIn),e.removeEventListener("focusout",this.handleAnchorFocusOut)),this.anchorElement!==null&&this.anchorElement!==void 0){this.anchorElement.addEventListener("mouseover",this.handleAnchorMouseOver,{passive:!0}),this.anchorElement.addEventListener("mouseout",this.handleAnchorMouseOut,{passive:!0}),this.anchorElement.addEventListener("focusin",this.handleAnchorFocusIn,{passive:!0}),this.anchorElement.addEventListener("focusout",this.handleAnchorFocusOut,{passive:!0});let t=this.anchorElement.id;this.anchorElement.parentElement!==null&&this.anchorElement.parentElement.querySelectorAll(":hover").forEach(r=>{r.id===t&&this.startShowDelayTimer()})}this.region!==null&&this.region!==void 0&&this.tooltipVisible&&(this.region.anchorElement=this.anchorElement),this.updateLayout()}}viewportElementChanged(){this.region!==null&&this.region!==void 0&&(this.region.viewportElement=this.viewportElement),this.updateLayout()}connectedCallback(){super.connectedCallback(),this.anchorElement=this.getAnchor(),this.updateTooltipVisibility()}disconnectedCallback(){this.hideTooltip(),this.clearShowDelayTimer(),this.clearHideDelayTimer(),super.disconnectedCallback()}updateLayout(){switch(this.verticalPositioningMode="locktodefault",this.horizontalPositioningMode="locktodefault",this.position){case Jr.top:case Jr.bottom:this.verticalDefaultPosition=this.position,this.horizontalDefaultPosition="center";break;case Jr.right:case Jr.left:case Jr.start:case Jr.end:this.verticalDefaultPosition="center",this.horizontalDefaultPosition=this.position;break;case Jr.topLeft:this.verticalDefaultPosition="top",this.horizontalDefaultPosition="left";break;case Jr.topRight:this.verticalDefaultPosition="top",this.horizontalDefaultPosition="right";break;case Jr.bottomLeft:this.verticalDefaultPosition="bottom",this.horizontalDefaultPosition="left";break;case Jr.bottomRight:this.verticalDefaultPosition="bottom",this.horizontalDefaultPosition="right";break;case Jr.topStart:this.verticalDefaultPosition="top",this.horizontalDefaultPosition="start";break;case Jr.topEnd:this.verticalDefaultPosition="top",this.horizontalDefaultPosition="end";break;case Jr.bottomStart:this.verticalDefaultPosition="bottom",this.horizontalDefaultPosition="start";break;case Jr.bottomEnd:this.verticalDefaultPosition="bottom",this.horizontalDefaultPosition="end";break;default:this.verticalPositioningMode="dynamic",this.horizontalPositioningMode="dynamic",this.verticalDefaultPosition=void 0,this.horizontalDefaultPosition="center";break}}};T([A({mode:"boolean"})],Wt.prototype,"visible",void 0);T([A],Wt.prototype,"anchor",void 0);T([A],Wt.prototype,"delay",void 0);T([A],Wt.prototype,"position",void 0);T([A({attribute:"auto-update-mode"})],Wt.prototype,"autoUpdateMode",void 0);T([A({attribute:"horizontal-viewport-lock"})],Wt.prototype,"horizontalViewportLock",void 0);T([A({attribute:"vertical-viewport-lock"})],Wt.prototype,"verticalViewportLock",void 0);T([P],Wt.prototype,"anchorElement",void 0);T([P],Wt.prototype,"viewportElement",void 0);T([P],Wt.prototype,"verticalPositioningMode",void 0);T([P],Wt.prototype,"horizontalPositioningMode",void 0);T([P],Wt.prototype,"horizontalInset",void 0);T([P],Wt.prototype,"verticalInset",void 0);T([P],Wt.prototype,"horizontalScaling",void 0);T([P],Wt.prototype,"verticalScaling",void 0);T([P],Wt.prototype,"verticalDefaultPosition",void 0);T([P],Wt.prototype,"horizontalDefaultPosition",void 0);T([P],Wt.prototype,"tooltipVisible",void 0);T([P],Wt.prototype,"currentDirection",void 0)});var xW=b(()=>{vW();yW()});var wW,SW=b(()=>{B();Ht();wW=(i,e)=>H` + +`});function Hs(i){return vo(i)&&i.getAttribute("role")==="treeitem"}var Lt,Y3=b(()=>{Le();B();ye();Ht();Xi();Pe();Lt=class extends ee{constructor(){super(...arguments),this.expanded=!1,this.focusable=!1,this.isNestedItem=()=>Hs(this.parentElement),this.handleExpandCollapseButtonClick=e=>{!this.disabled&&!e.defaultPrevented&&(this.expanded=!this.expanded)},this.handleFocus=e=>{this.setAttribute("tabindex","0")},this.handleBlur=e=>{this.setAttribute("tabindex","-1")}}expandedChanged(){this.$fastController.isConnected&&this.$emit("expanded-change",this)}selectedChanged(){this.$fastController.isConnected&&this.$emit("selected-change",this)}itemsChanged(e,t){this.$fastController.isConnected&&this.items.forEach(r=>{Hs(r)&&(r.nested=!0)})}static focusItem(e){e.focusable=!0,e.focus()}childItemLength(){let e=this.childItems.filter(t=>Hs(t));return e?e.length:0}};T([A({mode:"boolean"})],Lt.prototype,"expanded",void 0);T([A({mode:"boolean"})],Lt.prototype,"selected",void 0);T([A({mode:"boolean"})],Lt.prototype,"disabled",void 0);T([P],Lt.prototype,"focusable",void 0);T([P],Lt.prototype,"childItems",void 0);T([P],Lt.prototype,"items",void 0);T([P],Lt.prototype,"nested",void 0);T([P],Lt.prototype,"renderCollapsedChildren",void 0);He(Lt,ht)});var CW=b(()=>{SW();Y3()});var IW,EW=b(()=>{B();IW=(i,e)=>H` + +`});var Dl,kW=b(()=>{Le();B();ye();Y3();Pe();Dl=class extends ee{constructor(){super(...arguments),this.currentFocused=null,this.handleFocus=e=>{if(!(this.slottedTreeItems.length<1)){if(e.target===this){this.currentFocused===null&&(this.currentFocused=this.getValidFocusableItem()),this.currentFocused!==null&&Lt.focusItem(this.currentFocused);return}this.contains(e.target)&&(this.setAttribute("tabindex","-1"),this.currentFocused=e.target)}},this.handleBlur=e=>{e.target instanceof HTMLElement&&(e.relatedTarget===null||!this.contains(e.relatedTarget))&&this.setAttribute("tabindex","0")},this.handleKeyDown=e=>{if(e.defaultPrevented)return;if(this.slottedTreeItems.length<1)return!0;let t=this.getVisibleNodes();switch(e.key){case Ci:t.length&&Lt.focusItem(t[0]);return;case Ii:t.length&&Lt.focusItem(t[t.length-1]);return;case Er:if(e.target&&this.isFocusableElement(e.target)){let r=e.target;r instanceof Lt&&r.childItemLength()>0&&r.expanded?r.expanded=!1:r instanceof Lt&&r.parentElement instanceof Lt&&Lt.focusItem(r.parentElement)}return!1;case kr:if(e.target&&this.isFocusableElement(e.target)){let r=e.target;r instanceof Lt&&r.childItemLength()>0&&!r.expanded?r.expanded=!0:r instanceof Lt&&r.childItemLength()>0&&this.focusNextNode(1,e.target)}return;case Dt:e.target&&this.isFocusableElement(e.target)&&this.focusNextNode(1,e.target);return;case Ot:e.target&&this.isFocusableElement(e.target)&&this.focusNextNode(-1,e.target);return;case ni:this.handleClick(e);return}return!0},this.handleSelectedChange=e=>{if(e.defaultPrevented)return;if(!(e.target instanceof Element)||!Hs(e.target))return!0;let t=e.target;t.selected?(this.currentSelected&&this.currentSelected!==t&&(this.currentSelected.selected=!1),this.currentSelected=t):!t.selected&&this.currentSelected===t&&(this.currentSelected=null)},this.setItems=()=>{let e=this.treeView.querySelector("[aria-selected='true']");this.currentSelected=e,(this.currentFocused===null||!this.contains(this.currentFocused))&&(this.currentFocused=this.getValidFocusableItem()),this.nested=this.checkForNestedItems(),this.getVisibleNodes().forEach(r=>{Hs(r)&&(r.nested=this.nested)})},this.isFocusableElement=e=>Hs(e),this.isSelectedElement=e=>e.selected}slottedTreeItemsChanged(){this.$fastController.isConnected&&this.setItems()}connectedCallback(){super.connectedCallback(),this.setAttribute("tabindex","0"),ce.queueUpdate(()=>{this.setItems()})}handleClick(e){if(e.defaultPrevented)return;if(!(e.target instanceof Element)||!Hs(e.target))return!0;let t=e.target;t.disabled||(t.selected=!t.selected)}focusNextNode(e,t){let r=this.getVisibleNodes();if(!r)return;let n=r[r.indexOf(t)+e];vo(n)&&Lt.focusItem(n)}getValidFocusableItem(){let e=this.getVisibleNodes(),t=e.findIndex(this.isSelectedElement);return t===-1&&(t=e.findIndex(this.isFocusableElement)),t!==-1?e[t]:null}checkForNestedItems(){return this.slottedTreeItems.some(e=>Hs(e)&&e.querySelector("[role='treeitem']"))}getVisibleNodes(){return gH(this,"[role='treeitem']")||[]}};T([A({attribute:"render-collapsed-nodes"})],Dl.prototype,"renderCollapsedNodes",void 0);T([P],Dl.prototype,"currentSelected",void 0);T([P],Dl.prototype,"slottedTreeItems",void 0)});var TW=b(()=>{EW();kW()});var X3,Uc,ve,blt,vlt,AW=b(()=>{X3=class{constructor(e){this.listenerCache=new WeakMap,this.query=e}bind(e){let{query:t}=this,r=this.constructListener(e);r.bind(t)(),t.addListener(r),this.listenerCache.set(e,r)}unbind(e){let t=this.listenerCache.get(e);t&&(this.query.removeListener(t),this.listenerCache.delete(e))}},Uc=class extends X3{constructor(e,t){super(e),this.styles=t}static with(e){return t=>new Uc(e,t)}constructListener(e){let t=!1,r=this.styles;return function(){let{matches:s}=this;s&&!t?(e.$fastController.addStyles(r),t=s):!s&&t&&(e.$fastController.removeStyles(r),t=s)}}unbind(e){super.unbind(e),e.$fastController.removeStyles(this.styles)}},ve=Uc.with(window.matchMedia("(forced-colors)")),blt=Uc.with(window.matchMedia("(prefers-color-scheme: dark)")),vlt=Uc.with(window.matchMedia("(prefers-color-scheme: light)"))});var k1,MW=b(()=>{B();k1=class{constructor(e,t,r){this.propertyName=e,this.value=t,this.styles=r}bind(e){_e.getNotifier(e).subscribe(this,this.propertyName),this.handleChange(e,this.propertyName)}unbind(e){_e.getNotifier(e).unsubscribe(this,this.propertyName),e.$fastController.removeStyles(this.styles)}handleChange(e,t){e[t]===this.value?e.$fastController.addStyles(this.styles):e.$fastController.removeStyles(this.styles)}}});var mt,RW=b(()=>{mt="not-allowed"});function we(i){return`${X3e}:host{display:${i}}`}var X3e,DW=b(()=>{X3e=":host([hidden]){display:none}"});var X,OW=b(()=>{ye();X=bH()?"focus-visible":"focus"});var LW=b(()=>{RW();DW();OW()});var $W=b(()=>{Xi();s1();AW();MW();LW();Il();v1()});var oe=b(()=>{sH();PH();FH();o3();GH();JH();ej();nj();fj();Cj();Tj();Dj();Fj();wj();Hj();E3();jj();Zj();iV();lV();fV();pV();mV();vV();xV();LV();N3();qV();YV();Nc();QV();rU();aU();dU();pU();_U();CU();TU();DU();FU();HU();WU();XU();tW();oW();uW();gW();xW();CW();TW();$W()});function T1(i,e,t=0,r=i.length-1){if(r===t)return i[t];let n=Math.floor((r-t)/2)+t;return e(i[n])?T1(i,e,t,n):T1(i,e,n+1,r)}var PW=b(()=>{});function gn(i){return rh(i)?-1:1}var Ol=b(()=>{Rb()});function J3e(i,e,t){return typeof i=="number"?vh.from(Fi.create(i,e,t)):vh.from(i)}function Z3e(i){return uq(i)?_h.from(i):_h.from(Fi.create(i.r,i.g,i.b))}var vh,_h,FW=b(()=>{eh();ih();PW();Ol();d2();vh=Object.freeze({create:J3e,from:Z3e}),_h=class{constructor(e,t){this.closestIndexCache=new Map,this.source=e,this.swatches=t,this.reversedSwatches=Object.freeze([...this.swatches].reverse()),this.lastIndex=this.swatches.length-1}colorContrast(e,t,r,n){r===void 0&&(r=this.closestIndexOf(e));let s=this.swatches,o=this.lastIndex,a=r;n===void 0&&(n=gn(e));let l=u=>Mb(e,u)>=t;return n===-1&&(s=this.reversedSwatches,a=o-a),T1(s,l,a,o)}get(e){return this.swatches[e]||this.swatches[rs(e,0,this.lastIndex)]}closestIndexOf(e){if(this.closestIndexCache.has(e.relativeLuminance))return this.closestIndexCache.get(e.relativeLuminance);let t=this.swatches.indexOf(e);if(t!==-1)return this.closestIndexCache.set(e.relativeLuminance,t),t;let r=this.swatches.reduce((n,s)=>Math.abs(s.relativeLuminance-e.relativeLuminance){let r=un(t.toStringHexRGB());return Fi.create(r.r,r.g,r.b)})))}}});function NW(i,e,t,r,n,s,o,a,l){let u=i.source,c=e.closestIndexOf(t),d=Math.max(o,a,l),h=c>=d?-1:1,p=i.closestIndexOf(u),g=p+h*-1*r,v=g+h*n,_=g+h*s;return{rest:i.get(g),hover:i.get(p),active:i.get(v),focus:i.get(_)}}var BW=b(()=>{});function zW(i,e,t,r,n,s,o){let a=i.source,l=i.closestIndexOf(a),u=gn(e),c=l+(u===1?Math.min(r,n):Math.max(u*r,u*n)),d=i.colorContrast(e,t,c,u),h=i.closestIndexOf(d),f=h+u*Math.abs(r-n),p=u===1?ru*n,g,v;return p?(g=h,v=f):(g=f,v=h),{rest:i.get(g),hover:i.get(v),active:i.get(g+u*s),focus:i.get(g+u*o)}}var qW=b(()=>{Ol()});var yh,A1,HW,jW,VW,M1=b(()=>{eh();ih();yh=Fi.create(1,1,1),A1=Fi.create(0,0,0),HW=Fi.from(un("#808080")),jW=Fi.from(un("#DA1A5F")),VW=Fi.from(un("#D32F2F"))});function UW(i,e){return i.contrast(yh)>=e?yh:A1}var WW=b(()=>{M1()});function GW(i,e,t,r,n,s){let o=i.closestIndexOf(e),a=Math.max(t,r,n,s),l=o>=a?-1:1;return{rest:i.get(o+l*t),hover:i.get(o+l*r),active:i.get(o+l*n),focus:i.get(o+l*s)}}var KW=b(()=>{});function YW(i,e,t,r,n,s){let o=gn(e),a=i.closestIndexOf(e);return{rest:i.get(a-o*t),hover:i.get(a-o*r),active:i.get(a-o*n),focus:i.get(a-o*s)}}var XW=b(()=>{Ol()});function JW(i,e,t){let r=i.closestIndexOf(e);return i.get(r-(r{});function QW(i,e,t,r,n,s,o,a,l,u){let c=Math.max(t,r,n,s,o,a,l,u),d=i.closestIndexOf(e),h=d>=c?-1:1;return{rest:i.get(d+h*t),hover:i.get(d+h*r),active:i.get(d+h*n),focus:i.get(d+h*s)}}var eG=b(()=>{});function tG(i,e,t,r,n,s){let o=gn(e),a=i.closestIndexOf(i.colorContrast(e,4.5)),l=a+o*Math.abs(t-r),u=o===1?to*r,c,d;return u?(c=a,d=l):(c=l,d=a),{rest:i.get(c),hover:i.get(d),active:i.get(c+o*n),focus:i.get(c+o*s)}}var iG=b(()=>{Ol()});function rG(i,e){return i.colorContrast(e,3.5)}function nG(i,e,t){return i.colorContrast(t,3.5,i.closestIndexOf(i.source),gn(e)*-1)}var sG=b(()=>{Ol()});function oG(i,e){return i.colorContrast(e,14)}var aG=b(()=>{});function lG(i,e){return i.colorContrast(e,4.5)}var uG=b(()=>{});function cG(i,e,t){return i.get(i.closestIndexOf(pl(e))+t)}var dG=b(()=>{Ac()});function hG(i,e,t){let r=i.closestIndexOf(pl(e))-t;return i.get(r-t)}var fG=b(()=>{Ac()});function pG(i,e){return i.get(i.closestIndexOf(pl(e)))}var mG=b(()=>{Ac()});function Qp(i,e,t,r,n,s){return Math.max(i.closestIndexOf(pl(e))+t,r,n,s)}function gG(i,e,t,r,n,s){return i.get(Qp(i,e,t,r,n,s))}var R1=b(()=>{Ac()});function bG(i,e,t,r,n,s){return i.get(Qp(i,e,t,r,n,s)+t)}var vG=b(()=>{R1()});function _G(i,e,t,r,n,s){return i.get(Qp(i,e,t,r,n,s)+t*2)}var yG=b(()=>{R1()});function xG(i,e,t,r,n,s){let o=i.closestIndexOf(e),a=gn(e),l=o+a*t,u=l+a*(r-t),c=l+a*(n-t),d=l+a*(s-t);return{rest:i.get(l),hover:i.get(u),active:i.get(c),focus:i.get(d)}}var wG=b(()=>{Ol()});function SG(i,e,t){return i.get(i.closestIndexOf(e)+gn(e)*t)}var CG=b(()=>{Ol()});function IG(i,e,t,r,n,s,o,a,l){let u=i.source,c=e.closestIndexOf(t),d=Math.max(o,a,l),h=c>=d?-1:1,p=i.closestIndexOf(u),g=p+h*-1*r,v=g+h*n,_=g+h*s;return{rest:i.get(g),hover:i.get(p),active:i.get(v),focus:i.get(_)}}function EG(i,e,t,r,n,s,o){let a=i.source,l=i.closestIndexOf(a),u=rh(e)?-1:1,c=l+(u===1?Math.min(r,n):Math.max(u*r,u*n)),d=i.colorContrast(e,t,c,u),h=i.closestIndexOf(d),f=h+u*Math.abs(r-n),p=u===1?ru*n,g,v;return p?(g=h,v=f):(g=f,v=h),{rest:i.get(g),hover:i.get(v),active:i.get(g+u*s),focus:i.get(g+u*o)}}var kG=b(()=>{Rb()});function TG(i,e){return i.contrast(yh)>=e?yh:A1}var AG=b(()=>{M1()});function Be(i){return Pn.create({name:i,cssCustomPropertyName:null})}var Q,Me,zn,MG,So,ge,_t,K,$l,xh,wt,de,be,ke,Fe,Pl,Fl,RG,DG,Nl,OG,LG,$G,PG,FG,NG,BG,zG,qG,HG,jG,VG,Wc,D1,O1,L1,$1,P1,F1,ga,ba,va,N1,J3,Z3,Q3,eS,tS,iS,rS,nS,Q3e,sS,oS,aS,Bl,lS,uS,cS,dS,hS,em,Qi,tm,fS,eSe,idt,tSe,wh,iSe,rSe,nSe,rdt,sSe,ndt,oSe,sdt,ze,Ll,B1,ut,Ti,Gt,qe,UG,z1,Ai,mr,Bi,WG,q1,odt,adt,ldt,udt,aSe,H1,oi,_a,Co,GG,ya,Tt,ps,zl,cdt,j1,bn,Mr,Io,ddt,Eo,Rr,vn,_n,Sh,V1,Ch,Ih,Eh,KG,im,hdt,lSe,zi,uSe,YG,cSe,xa,dSe,fe,U1,Dr,wa,kh,fdt,hSe,js,W1,rm,XG,G1,$t,ai,Mi,At,JG,K1,pdt,mdt,gdt,bdt,Y1,vdt,_dt,ydt,xdt,fSe,X1,wdt,Sdt,ZG,Cdt,Te=b(()=>{oe();ye();FW();BW();qW();WW();KW();XW();ZW();eG();iG();sG();aG();uG();dG();fG();mG();R1();vG();yG();wG();CG();Ac();M1();kG();AG();({create:Q}=Pn);Me=Q("body-font").withDefault('aktiv-grotesk, "Segoe UI", Arial, Helvetica, sans-serif'),zn=Q("base-height-multiplier").withDefault(10),MG=Q("base-horizontal-spacing-multiplier").withDefault(3),So=Q("base-layer-luminance").withDefault(Mp.DarkMode),ge=Q("control-corner-radius").withDefault(4),_t=Q("density").withDefault(0),K=Q("design-unit").withDefault(4),$l=Q("element-scale").withDefault(0),xh=Q("direction").withDefault(je.ltr),wt=Q("disabled-opacity").withDefault(.4),de=Q("stroke-width").withDefault(1),be=Q("focus-stroke-width").withDefault(2),ke=Q("type-ramp-base-font-size").withDefault("14px"),Fe=Q("type-ramp-base-line-height").withDefault("20px"),Pl=Q("type-ramp-minus-1-font-size").withDefault("12px"),Fl=Q("type-ramp-minus-1-line-height").withDefault("16px"),RG=Q("type-ramp-minus-2-font-size").withDefault("10px"),DG=Q("type-ramp-minus-2-line-height").withDefault("16px"),Nl=Q("type-ramp-plus-1-font-size").withDefault("16px"),OG=Q("type-ramp-plus-1-line-height").withDefault("24px"),LG=Q("type-ramp-plus-2-font-size").withDefault("20px"),$G=Q("type-ramp-plus-2-line-height").withDefault("28px"),PG=Q("type-ramp-plus-3-font-size").withDefault("28px"),FG=Q("type-ramp-plus-3-line-height").withDefault("36px"),NG=Q("type-ramp-plus-4-font-size").withDefault("34px"),BG=Q("type-ramp-plus-4-line-height").withDefault("44px"),zG=Q("type-ramp-plus-5-font-size").withDefault("46px"),qG=Q("type-ramp-plus-5-line-height").withDefault("56px"),HG=Q("type-ramp-plus-6-font-size").withDefault("60px"),jG=Q("type-ramp-plus-6-line-height").withDefault("72px"),VG=Be("accent-fill-rest-delta").withDefault(0),Wc=Be("accent-fill-hover-delta").withDefault(4),D1=Be("accent-fill-active-delta").withDefault(-5),O1=Be("accent-fill-focus-delta").withDefault(0),L1=Be("accent-foreground-rest-delta").withDefault(0),$1=Be("accent-foreground-hover-delta").withDefault(6),P1=Be("accent-foreground-active-delta").withDefault(-4),F1=Be("accent-foreground-focus-delta").withDefault(0),ga=Be("neutral-fill-rest-delta").withDefault(7),ba=Be("neutral-fill-hover-delta").withDefault(10),va=Be("neutral-fill-active-delta").withDefault(5),N1=Be("neutral-fill-focus-delta").withDefault(0),J3=Be("neutral-fill-input-rest-delta").withDefault(0),Z3=Be("neutral-fill-input-hover-delta").withDefault(0),Q3=Be("neutral-fill-input-active-delta").withDefault(0),eS=Be("neutral-fill-input-focus-delta").withDefault(0),tS=Be("neutral-fill-stealth-rest-delta").withDefault(0),iS=Be("neutral-fill-stealth-hover-delta").withDefault(5),rS=Be("neutral-fill-stealth-active-delta").withDefault(3),nS=Be("neutral-fill-stealth-focus-delta").withDefault(0),Q3e=Be("neutral-fill-strong-rest-delta").withDefault(0),sS=Be("neutral-fill-strong-hover-delta").withDefault(8),oS=Be("neutral-fill-strong-active-delta").withDefault(-5),aS=Be("neutral-fill-strong-focus-delta").withDefault(0),Bl=Be("neutral-fill-layer-rest-delta").withDefault(3),lS=Be("neutral-stroke-rest-delta").withDefault(25),uS=Be("neutral-stroke-hover-delta").withDefault(40),cS=Be("neutral-stroke-active-delta").withDefault(16),dS=Be("neutral-stroke-focus-delta").withDefault(25),hS=Be("neutral-stroke-divider-rest-delta").withDefault(8),em=Q("neutral-color").withDefault(HW),Qi=Be("neutral-palette").withDefault(i=>vh.from(em.getValueFor(i))),tm=Q("accent-color").withDefault(jW),fS=Be("accent-palette").withDefault(i=>vh.from(tm.getValueFor(i))),eSe=Be("neutral-layer-card-container-recipe").withDefault({evaluate:i=>cG(Qi.getValueFor(i),So.getValueFor(i),Bl.getValueFor(i))}),idt=Q("neutral-layer-card-container").withDefault(i=>eSe.getValueFor(i).evaluate(i)),tSe=Be("neutral-layer-floating-recipe").withDefault({evaluate:i=>hG(Qi.getValueFor(i),So.getValueFor(i),Bl.getValueFor(i))}),wh=Q("neutral-layer-floating").withDefault(i=>tSe.getValueFor(i).evaluate(i)),iSe=Be("neutral-layer-1-recipe").withDefault({evaluate:i=>pG(Qi.getValueFor(i),So.getValueFor(i))}),rSe=Q("neutral-layer-1").withDefault(i=>iSe.getValueFor(i).evaluate(i)),nSe=Be("neutral-layer-2-recipe").withDefault({evaluate:i=>gG(Qi.getValueFor(i),So.getValueFor(i),Bl.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i))}),rdt=Q("neutral-layer-2").withDefault(i=>nSe.getValueFor(i).evaluate(i)),sSe=Be("neutral-layer-3-recipe").withDefault({evaluate:i=>bG(Qi.getValueFor(i),So.getValueFor(i),Bl.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i))}),ndt=Q("neutral-layer-3").withDefault(i=>sSe.getValueFor(i).evaluate(i)),oSe=Be("neutral-layer-4-recipe").withDefault({evaluate:i=>_G(Qi.getValueFor(i),So.getValueFor(i),Bl.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i))}),sdt=Q("neutral-layer-4").withDefault(i=>oSe.getValueFor(i).evaluate(i)),ze=Q("fill-color").withDefault(i=>rSe.getValueFor(i));(function(i){i[i.normal=4.5]="normal",i[i.large=7]="large"})(Ll||(Ll={}));B1=Q({name:"accent-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>NW(fS.getValueFor(i),Qi.getValueFor(i),e||ze.getValueFor(i),Wc.getValueFor(i),D1.getValueFor(i),O1.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i))}),ut=Q("accent-fill-rest").withDefault(i=>B1.getValueFor(i).evaluate(i).rest),Ti=Q("accent-fill-hover").withDefault(i=>B1.getValueFor(i).evaluate(i).hover),Gt=Q("accent-fill-active").withDefault(i=>B1.getValueFor(i).evaluate(i).active),qe=Q("accent-fill-focus").withDefault(i=>B1.getValueFor(i).evaluate(i).focus),UG=i=>(e,t)=>UW(t||ut.getValueFor(e),i),z1=Be("foreground-on-accent-recipe").withDefault({evaluate:(i,e)=>UG(Ll.normal)(i,e)}),Ai=Q("foreground-on-accent-rest").withDefault(i=>z1.getValueFor(i).evaluate(i,ut.getValueFor(i))),mr=Q("foreground-on-accent-hover").withDefault(i=>z1.getValueFor(i).evaluate(i,Ti.getValueFor(i))),Bi=Q("foreground-on-accent-active").withDefault(i=>z1.getValueFor(i).evaluate(i,Gt.getValueFor(i))),WG=Q("foreground-on-accent-focus").withDefault(i=>z1.getValueFor(i).evaluate(i,qe.getValueFor(i))),q1=Be("foreground-on-accent-large-recipe").withDefault({evaluate:(i,e)=>UG(Ll.large)(i,e)}),odt=Q("foreground-on-accent-rest-large").withDefault(i=>q1.getValueFor(i).evaluate(i,ut.getValueFor(i))),adt=Q("foreground-on-accent-hover-large").withDefault(i=>q1.getValueFor(i).evaluate(i,Ti.getValueFor(i))),ldt=Q("foreground-on-accent-active-large").withDefault(i=>q1.getValueFor(i).evaluate(i,Gt.getValueFor(i))),udt=Q("foreground-on-accent-focus-large").withDefault(i=>q1.getValueFor(i).evaluate(i,qe.getValueFor(i))),aSe=i=>(e,t)=>zW(fS.getValueFor(e),t||ze.getValueFor(e),i,L1.getValueFor(e),$1.getValueFor(e),P1.getValueFor(e),F1.getValueFor(e)),H1=Q({name:"accent-foreground-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>aSe(Ll.normal)(i,e)}),oi=Q("accent-foreground-rest").withDefault(i=>H1.getValueFor(i).evaluate(i).rest),_a=Q("accent-foreground-hover").withDefault(i=>H1.getValueFor(i).evaluate(i).hover),Co=Q("accent-foreground-active").withDefault(i=>H1.getValueFor(i).evaluate(i).active),GG=Q("accent-foreground-focus").withDefault(i=>H1.getValueFor(i).evaluate(i).focus),ya=Q({name:"neutral-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>GW(Qi.getValueFor(i),e||ze.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i),N1.getValueFor(i))}),Tt=Q("neutral-fill-rest").withDefault(i=>ya.getValueFor(i).evaluate(i).rest),ps=Q("neutral-fill-hover").withDefault(i=>ya.getValueFor(i).evaluate(i).hover),zl=Q("neutral-fill-active").withDefault(i=>ya.getValueFor(i).evaluate(i).active),cdt=Q("neutral-fill-focus").withDefault(i=>ya.getValueFor(i).evaluate(i).focus),j1=Q({name:"neutral-fill-input-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>YW(Qi.getValueFor(i),e||ze.getValueFor(i),J3.getValueFor(i),Z3.getValueFor(i),Q3.getValueFor(i),eS.getValueFor(i))}),bn=Q("neutral-fill-input-rest").withDefault(i=>j1.getValueFor(i).evaluate(i).rest),Mr=Q("neutral-fill-input-hover").withDefault(i=>j1.getValueFor(i).evaluate(i).hover),Io=Q("neutral-fill-input-active").withDefault(i=>j1.getValueFor(i).evaluate(i).active),ddt=Q("neutral-fill-input-focus").withDefault(i=>j1.getValueFor(i).evaluate(i).focus),Eo=Q({name:"neutral-fill-stealth-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>QW(Qi.getValueFor(i),e||ze.getValueFor(i),tS.getValueFor(i),iS.getValueFor(i),rS.getValueFor(i),nS.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i),N1.getValueFor(i))}),Rr=Q("neutral-fill-stealth-rest").withDefault(i=>Eo.getValueFor(i).evaluate(i).rest),vn=Q("neutral-fill-stealth-hover").withDefault(i=>Eo.getValueFor(i).evaluate(i).hover),_n=Q("neutral-fill-stealth-active").withDefault(i=>Eo.getValueFor(i).evaluate(i).active),Sh=Q("neutral-fill-stealth-focus").withDefault(i=>Eo.getValueFor(i).evaluate(i).focus),V1=Q({name:"neutral-fill-strong-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>tG(Qi.getValueFor(i),e||ze.getValueFor(i),Q3e.getValueFor(i),sS.getValueFor(i),oS.getValueFor(i),aS.getValueFor(i))}),Ch=Q("neutral-fill-strong-rest").withDefault(i=>V1.getValueFor(i).evaluate(i).rest),Ih=Q("neutral-fill-strong-hover").withDefault(i=>V1.getValueFor(i).evaluate(i).hover),Eh=Q("neutral-fill-strong-active").withDefault(i=>V1.getValueFor(i).evaluate(i).active),KG=Q("neutral-fill-strong-focus").withDefault(i=>V1.getValueFor(i).evaluate(i).focus),im=Be("neutral-fill-layer-recipe").withDefault({evaluate:(i,e)=>JW(Qi.getValueFor(i),e||ze.getValueFor(i),Bl.getValueFor(i))}),hdt=Q("neutral-fill-layer-rest").withDefault(i=>im.getValueFor(i).evaluate(i)),lSe=Be("focus-stroke-outer-recipe").withDefault({evaluate:i=>rG(Qi.getValueFor(i),ze.getValueFor(i))}),zi=Q("focus-stroke-outer").withDefault(i=>lSe.getValueFor(i).evaluate(i)),uSe=Be("focus-stroke-inner-recipe").withDefault({evaluate:i=>nG(fS.getValueFor(i),ze.getValueFor(i),zi.getValueFor(i))}),YG=Q("focus-stroke-inner").withDefault(i=>uSe.getValueFor(i).evaluate(i)),cSe=Be("neutral-foreground-hint-recipe").withDefault({evaluate:i=>lG(Qi.getValueFor(i),ze.getValueFor(i))}),xa=Q("neutral-foreground-hint").withDefault(i=>cSe.getValueFor(i).evaluate(i)),dSe=Be("neutral-foreground-recipe").withDefault({evaluate:i=>oG(Qi.getValueFor(i),ze.getValueFor(i))}),fe=Q("neutral-foreground-rest").withDefault(i=>dSe.getValueFor(i).evaluate(i)),U1=Q({name:"neutral-stroke-recipe",cssCustomPropertyName:null}).withDefault({evaluate:i=>xG(Qi.getValueFor(i),ze.getValueFor(i),lS.getValueFor(i),uS.getValueFor(i),cS.getValueFor(i),dS.getValueFor(i))}),Dr=Q("neutral-stroke-rest").withDefault(i=>U1.getValueFor(i).evaluate(i).rest),wa=Q("neutral-stroke-hover").withDefault(i=>U1.getValueFor(i).evaluate(i).hover),kh=Q("neutral-stroke-active").withDefault(i=>U1.getValueFor(i).evaluate(i).active),fdt=Q("neutral-stroke-focus").withDefault(i=>U1.getValueFor(i).evaluate(i).focus),hSe=Be("neutral-stroke-divider-recipe").withDefault({evaluate:(i,e)=>SG(Qi.getValueFor(i),e||ze.getValueFor(i),hS.getValueFor(i))}),js=Q("neutral-stroke-divider-rest").withDefault(i=>hSe.getValueFor(i).evaluate(i)),W1=Pn.create({name:"height-number",cssCustomPropertyName:null}).withDefault(i=>(zn.getValueFor(i)+_t.getValueFor(i))*K.getValueFor(i)),rm=Q("error-color").withDefault(VW),XG=Be("error-palette").withDefault(i=>vh.from(rm.getValueFor(i))),G1=Q({name:"error-fill-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>IG(XG.getValueFor(i),Qi.getValueFor(i),e||ze.getValueFor(i),Wc.getValueFor(i),D1.getValueFor(i),O1.getValueFor(i),ga.getValueFor(i),ba.getValueFor(i),va.getValueFor(i))}),$t=Q("error-fill-rest").withDefault(i=>G1.getValueFor(i).evaluate(i).rest),ai=Q("error-fill-hover").withDefault(i=>G1.getValueFor(i).evaluate(i).hover),Mi=Q("error-fill-active").withDefault(i=>G1.getValueFor(i).evaluate(i).active),At=Q("error-fill-focus").withDefault(i=>G1.getValueFor(i).evaluate(i).focus),JG=i=>(e,t)=>TG(t||$t.getValueFor(e),i),K1=Q({name:"foreground-on-error-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>JG(Ll.normal)(i,e)}),pdt=Q("foreground-on-error-rest").withDefault(i=>K1.getValueFor(i).evaluate(i,$t.getValueFor(i))),mdt=Q("foreground-on-error-hover").withDefault(i=>K1.getValueFor(i).evaluate(i,ai.getValueFor(i))),gdt=Q("foreground-on-error-active").withDefault(i=>K1.getValueFor(i).evaluate(i,Mi.getValueFor(i))),bdt=Q("foreground-on-error-focus").withDefault(i=>K1.getValueFor(i).evaluate(i,At.getValueFor(i))),Y1=Q({name:"foreground-on-error-large-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>JG(Ll.large)(i,e)}),vdt=Q("foreground-on-error-rest-large").withDefault(i=>Y1.getValueFor(i).evaluate(i,$t.getValueFor(i))),_dt=Q("foreground-on-error-hover-large").withDefault(i=>Y1.getValueFor(i).evaluate(i,ai.getValueFor(i))),ydt=Q("foreground-on-error-active-large").withDefault(i=>Y1.getValueFor(i).evaluate(i,Mi.getValueFor(i))),xdt=Q("foreground-on-error-focus-large").withDefault(i=>Y1.getValueFor(i).evaluate(i,At.getValueFor(i))),fSe=i=>(e,t)=>EG(XG.getValueFor(e),t||ze.getValueFor(e),i,L1.getValueFor(e),$1.getValueFor(e),P1.getValueFor(e),F1.getValueFor(e)),X1=Q({name:"error-foreground-recipe",cssCustomPropertyName:null}).withDefault({evaluate:(i,e)=>fSe(Ll.normal)(i,e)}),wdt=Q("error-foreground-rest").withDefault(i=>X1.getValueFor(i).evaluate(i).rest),Sdt=Q("error-foreground-hover").withDefault(i=>X1.getValueFor(i).evaluate(i).hover),ZG=Q("error-foreground-active").withDefault(i=>X1.getValueFor(i).evaluate(i).active),Cdt=Q("error-foreground-focus").withDefault(i=>X1.getValueFor(i).evaluate(i).focus)});function gS(){QG||(QG=!0,gSe())}function gSe(){let i=()=>{new MutationObserver(()=>{mS()}).observe(document.body,{attributes:!0,attributeFilter:[pSe],childList:!1,characterData:!1}),mS()};document.readyState==="complete"?i():window.addEventListener("load",i)}function mS(){var i;let e=getComputedStyle(document.body),t=document.body.getAttribute(mSe),r=!1;if(t)r=t==="false";else{let n=e.getPropertyValue(pS).toString();if(n){let s=Ap(n);s&&(r=rh(Fi.create(s.r,s.g,s.b)),console.debug(`Theme is ${r?"dark":"light"} based on '${pS}' value: ${n}.`))}}So.setValueFor(document.body,r?Mp.DarkMode:Mp.LightMode);for(let n in tK){let s=tK[n],o=e.getPropertyValue(n).toString();if(document.body&&o!==""){let a=((i=s.converter)!==null&&i!==void 0?i:l=>l)(o.trim(),r);a!==null?s.token.setValueFor(document.body,a):console.error(`Fail to parse value '${o}' for '${n}' as FAST design token.`)}}}var pSe,mSe,pS,QG,eK,tK,iK=b(()=>{eh();ih();Ac();Rb();Te();pSe="data-jp-theme-name",mSe="data-jp-theme-light",pS="--jp-layout-color1",QG=!1;eK=i=>{let e=parseInt(i,10);return isNaN(e)?null:e},tK={"--jp-border-width":{converter:eK,token:de},"--jp-border-radius":{converter:eK,token:ge},[pS]:{converter:(i,e)=>{let t=Ap(i);if(t){let r=On(t),n=wr.fromObject({h:r.h,s:r.s,l:.5}),s=mo(n);return Fi.create(s.r,s.g,s.b)}else return null},token:em},"--jp-brand-color1":{converter:(i,e)=>{let t=Ap(i);if(t){let r=On(t),n=e?1:-1,s=wr.fromObject({h:r.h,s:r.s,l:r.l+n*Wc.getValueFor(document.body)/94}),o=mo(s);return Fi.create(o.r,o.g,o.b)}else return null},token:tm},"--jp-error-color1":{converter:(i,e)=>{let t=Ap(i);if(t){let r=On(t),n=e?1:-1,s=wr.fromObject({h:r.h,s:r.s,l:r.l+n*Wc.getValueFor(document.body)/94}),o=mo(s);return Fi.create(o.r,o.g,o.b)}else return null},token:rm},"--jp-ui-font-family":{token:Me},"--jp-ui-font-size1":{token:ke}}});var rK,nK=b(()=>{B();oe();Te();rK=(i,e)=>F` + ${we("flex")} :host { + box-sizing: border-box; + flex-direction: column; + font-family: ${Me}; + font-size: ${Pl}; + line-height: ${Fl}; + color: ${fe}; + border-top: calc(${de} * 1px) solid ${js}; + } +`});var xe,ko=b(()=>{B();Te();xe=$p`(${zn} + ${_t} + ${$l}) * ${K}`});var sK,oK=b(()=>{B();oe();ye();Te();ko();sK=(i,e)=>F` + ${we("flex")} :host { + box-sizing: border-box; + font-family: ${Me}; + flex-direction: column; + font-size: ${Pl}; + line-height: ${Fl}; + border-bottom: calc(${de} * 1px) solid + ${js}; + } + + .region { + display: none; + padding: calc((6 + (${K} * 2 * ${_t})) * 1px); + } + + div.heading { + display: grid; + position: relative; + grid-template-columns: calc(${xe} * 1px) auto 1fr auto; + color: ${fe}; + } + + .button { + appearance: none; + border: none; + background: none; + grid-column: 3; + outline: none; + padding: 0 calc((6 + (${K} * 2 * ${_t})) * 1px); + text-align: left; + height: calc(${xe} * 1px); + color: currentcolor; + cursor: pointer; + font-family: inherit; + } + + .button:hover { + color: currentcolor; + } + + .button:active { + color: currentcolor; + } + + .button::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + cursor: pointer; + } + + /* prettier-ignore */ + .button:${X}::before { + outline: none; + border: calc(${be} * 1px) solid ${qe}; + border-radius: calc(${ge} * 1px); + } + + :host([expanded]) .region { + display: block; + } + + .icon { + display: flex; + align-items: center; + justify-content: center; + grid-column: 1; + grid-row: 1; + pointer-events: none; + position: relative; + } + + slot[name='expanded-icon'], + slot[name='collapsed-icon'] { + fill: currentcolor; + } + + slot[name='collapsed-icon'] { + display: flex; + } + + :host([expanded]) slot[name='collapsed-icon'] { + display: none; + } + + slot[name='expanded-icon'] { + display: none; + } + + :host([expanded]) slot[name='expanded-icon'] { + display: flex; + } + + .start { + display: flex; + align-items: center; + padding-inline-start: calc(${K} * 1px); + justify-content: center; + grid-column: 2; + position: relative; + } + + .end { + display: flex; + align-items: center; + justify-content: center; + grid-column: 4; + position: relative; + } + `.withBehaviors(ve(F` + /* prettier-ignore */ + .button:${X}::before { + border-color: ${D.Highlight}; + } + :host slot[name='collapsed-icon'], + :host([expanded]) slot[name='expanded-icon'] { + fill: ${D.ButtonText}; + } + `))});var bS,vS,_S=b(()=>{oe();oK();bS=class extends ls{},vS=bS.compose({baseName:"accordion-item",baseClass:ls,template:Vq,styles:sK,collapsedIcon:` + + + + `,expandedIcon:` + + + + `})});var yS,xS,wS=b(()=>{oe();nK();_S();yS=class extends Fc{},xS=yS.compose({baseName:"accordion",baseClass:Fc,template:oH,styles:rK})});var ySe={};ic(ySe,{__addDisposableResource:()=>MK,__assign:()=>J1,__asyncDelegator:()=>wK,__asyncGenerator:()=>xK,__asyncValues:()=>SK,__await:()=>Th,__awaiter:()=>mK,__classPrivateFieldGet:()=>kK,__classPrivateFieldIn:()=>AK,__classPrivateFieldSet:()=>TK,__createBinding:()=>Q1,__decorate:()=>Z,__disposeResources:()=>RK,__esDecorate:()=>cK,__exportStar:()=>bK,__extends:()=>aK,__generator:()=>gK,__importDefault:()=>EK,__importStar:()=>IK,__makeTemplateObject:()=>CK,__metadata:()=>pK,__param:()=>uK,__propKey:()=>hK,__read:()=>IS,__rest:()=>lK,__rewriteRelativeImportExtension:()=>DK,__runInitializers:()=>dK,__setFunctionName:()=>fK,__spread:()=>vK,__spreadArray:()=>yK,__spreadArrays:()=>_K,__values:()=>Z1,default:()=>_Se});function aK(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");SS(i,e);function t(){this.constructor=i}i.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}function lK(i,e){var t={};for(var r in i)Object.prototype.hasOwnProperty.call(i,r)&&e.indexOf(r)<0&&(t[r]=i[r]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,r=Object.getOwnPropertySymbols(i);n=0;a--)(o=i[a])&&(s=(n<3?o(s):n>3?o(e,t,s):o(e,t))||s);return n>3&&s&&Object.defineProperty(e,t,s),s}function uK(i,e){return function(t,r){e(t,r,i)}}function cK(i,e,t,r,n,s){function o(_){if(_!==void 0&&typeof _!="function")throw new TypeError("Function expected");return _}for(var a=r.kind,l=a==="getter"?"get":a==="setter"?"set":"value",u=!e&&i?r.static?i:i.prototype:null,c=e||(u?Object.getOwnPropertyDescriptor(u,r.name):{}),d,h=!1,f=t.length-1;f>=0;f--){var p={};for(var g in r)p[g]=g==="access"?{}:r[g];for(var g in r.access)p.access[g]=r.access[g];p.addInitializer=function(_){if(h)throw new TypeError("Cannot add initializers after decoration has completed");s.push(o(_||null))};var v=(0,t[f])(a==="accessor"?{get:c.get,set:c.set}:c[l],p);if(a==="accessor"){if(v===void 0)continue;if(v===null||typeof v!="object")throw new TypeError("Object expected");(d=o(v.get))&&(c.get=d),(d=o(v.set))&&(c.set=d),(d=o(v.init))&&n.unshift(d)}else(d=o(v))&&(a==="field"?n.unshift(d):c[l]=d)}u&&Object.defineProperty(u,r.name,c),h=!0}function dK(i,e,t){for(var r=arguments.length>2,n=0;n0&&s[s.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]=i.length&&(i=void 0),{value:i&&i[r++],done:!i}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function IS(i,e){var t=typeof Symbol=="function"&&i[Symbol.iterator];if(!t)return i;var r=t.call(i),n,s=[],o;try{for(;(e===void 0||e-- >0)&&!(n=r.next()).done;)s.push(n.value)}catch(a){o={error:a}}finally{try{n&&!n.done&&(t=r.return)&&t.call(r)}finally{if(o)throw o.error}}return s}function vK(){for(var i=[],e=0;e1||l(f,g)})},p&&(n[f]=p(n[f])))}function l(f,p){try{u(r[f](p))}catch(g){h(s[0][3],g)}}function u(f){f.value instanceof Th?Promise.resolve(f.value.v).then(c,d):h(s[0][2],f)}function c(f){l("next",f)}function d(f){l("throw",f)}function h(f,p){f(p),s.shift(),s.length&&l(s[0][0],s[0][1])}}function wK(i){var e,t;return e={},r("next"),r("throw",function(n){throw n}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(n,s){e[n]=i[n]?function(o){return(t=!t)?{value:Th(i[n](o)),done:!1}:s?s(o):o}:s}}function SK(i){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=i[Symbol.asyncIterator],t;return e?e.call(i):(i=typeof Z1=="function"?Z1(i):i[Symbol.iterator](),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(s){t[s]=i[s]&&function(o){return new Promise(function(a,l){o=i[s](o),n(a,l,o.done,o.value)})}}function n(s,o,a,l){Promise.resolve(l).then(function(u){s({value:u,done:a})},o)}}function CK(i,e){return Object.defineProperty?Object.defineProperty(i,"raw",{value:e}):i.raw=e,i}function IK(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t=CS(i),r=0;r{SS=function(i,e){return SS=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])},SS(i,e)};J1=function(){return J1=Object.assign||function(e){for(var t,r=1,n=arguments.length;r{xSe="0 0 calc((var(--elevation) * 0.225px) + 2px) rgba(0, 0, 0, calc(.11 * (2 - var(--background-luminance, 1))))",wSe="0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgba(0, 0, 0, calc(.13 * (2 - var(--background-luminance, 1))))",Vs=`box-shadow: ${xSe}, ${wSe};`});var tv,iv,OK,LK,rv,nv,sv,ES=b(()=>{B();oe();ye();Te();ko();tv=F` + ${we("inline-flex")} :host { + font-family: ${Me}; + outline: none; + font-size: ${ke}; + line-height: ${Fe}; + height: calc(${xe} * 1px); + min-width: calc(${xe} * 1px); + background-color: ${Tt}; + color: ${fe}; + border-radius: calc(${ge} * 1px); + fill: currentcolor; + cursor: pointer; + margin: calc((${be} + 2) * 1px); + } + + .control { + background: transparent; + height: inherit; + flex-grow: 1; + box-sizing: border-box; + display: inline-flex; + justify-content: center; + align-items: center; + padding: 0 + max( + 1px, + calc((10 + (${K} * 2 * (${_t} + ${$l})))) * 1px + ); + white-space: nowrap; + outline: none; + text-decoration: none; + border: calc(${de} * 1px) solid transparent; + color: inherit; + border-radius: inherit; + fill: inherit; + cursor: inherit; + font-family: inherit; + font-size: inherit; + line-height: inherit; + } + + :host(:hover) { + background-color: ${ps}; + } + + :host(:active) { + background-color: ${zl}; + } + + :host([aria-pressed='true']) { + box-shadow: inset 0px 0px 2px 2px ${Eh}; + } + + :host([minimal]), + :host([scale='xsmall']) { + --element-scale: -4; + } + + :host([scale='small']) { + --element-scale: -2; + } + + :host([scale='medium']) { + --element-scale: 0; + } + + :host([scale='large']) { + --element-scale: 2; + } + + :host([scale='xlarge']) { + --element-scale: 4; + } + + /* prettier-ignore */ + .control:${X} { + outline: calc(${be} * 1px) solid ${KG}; + outline-offset: 2px; + -moz-outline-radius: 0px; + } + + .control::-moz-focus-inner { + border: 0; + } + + .start, + .end { + display: flex; + } + + .control.icon-only { + padding: 0; + line-height: 0; + } + + ::slotted(svg) { + ${""} width: 16px; + height: 16px; + pointer-events: none; + } + + .start { + margin-inline-end: 11px; + } + + .end { + margin-inline-start: 11px; + } +`.withBehaviors(ve(F` + :host .control { + background-color: ${D.ButtonFace}; + border-color: ${D.ButtonText}; + color: ${D.ButtonText}; + fill: currentColor; + } + + :host(:hover) .control { + forced-color-adjust: none; + background-color: ${D.Highlight}; + color: ${D.HighlightText}; + } + + /* prettier-ignore */ + .control:${X} { + forced-color-adjust: none; + background-color: ${D.Highlight}; + outline-color: ${D.ButtonText}; + color: ${D.HighlightText}; + } + + .control:hover, + :host([appearance='outline']) .control:hover { + border-color: ${D.ButtonText}; + } + + :host([href]) .control { + border-color: ${D.LinkText}; + color: ${D.LinkText}; + } + + :host([href]) .control:hover, + :host([href]) .control:${X} { + forced-color-adjust: none; + background: ${D.ButtonFace}; + outline-color: ${D.LinkText}; + color: ${D.LinkText}; + fill: currentColor; + } + `)),iv=F` + :host([appearance='accent']) { + background: ${ut}; + color: ${Ai}; + } + + :host([appearance='accent']:hover) { + background: ${Ti}; + color: ${mr}; + } + + :host([appearance='accent'][aria-pressed='true']) { + box-shadow: inset 0px 0px 2px 2px ${Co}; + } + + :host([appearance='accent']:active) .control:active { + background: ${Gt}; + color: ${Bi}; + } + + :host([appearance="accent"]) .control:${X} { + outline-color: ${qe}; + } +`.withBehaviors(ve(F` + :host([appearance='accent']) .control { + forced-color-adjust: none; + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([appearance='accent']) .control:hover, + :host([appearance='accent']:active) .control:active { + background: ${D.HighlightText}; + border-color: ${D.Highlight}; + color: ${D.Highlight}; + } + + :host([appearance="accent"]) .control:${X} { + outline-color: ${D.Highlight}; + } + + :host([appearance='accent'][href]) .control { + background: ${D.LinkText}; + color: ${D.HighlightText}; + } + + :host([appearance='accent'][href]) .control:hover { + background: ${D.ButtonFace}; + border-color: ${D.LinkText}; + box-shadow: none; + color: ${D.LinkText}; + fill: currentColor; + } + + :host([appearance="accent"][href]) .control:${X} { + outline-color: ${D.HighlightText}; + } + `)),OK=F` + :host([appearance='error']) { + background: ${$t}; + color: ${Ai}; + } + + :host([appearance='error']:hover) { + background: ${ai}; + color: ${mr}; + } + + :host([appearance='error'][aria-pressed='true']) { + box-shadow: inset 0px 0px 2px 2px ${ZG}; + } + + :host([appearance='error']:active) .control:active { + background: ${Mi}; + color: ${Bi}; + } + + :host([appearance="error"]) .control:${X} { + outline-color: ${At}; + } +`.withBehaviors(ve(F` + :host([appearance='error']) .control { + forced-color-adjust: none; + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([appearance='error']) .control:hover, + :host([appearance='error']:active) .control:active { + background: ${D.HighlightText}; + border-color: ${D.Highlight}; + color: ${D.Highlight}; + } + + :host([appearance="error"]) .control:${X} { + outline-color: ${D.Highlight}; + } + + :host([appearance='error'][href]) .control { + background: ${D.LinkText}; + color: ${D.HighlightText}; + } + + :host([appearance='error'][href]) .control:hover { + background: ${D.ButtonFace}; + border-color: ${D.LinkText}; + box-shadow: none; + color: ${D.LinkText}; + fill: currentColor; + } + + :host([appearance="error"][href]) .control:${X} { + outline-color: ${D.HighlightText}; + } + `)),LK=F` + :host([appearance='hypertext']) { + font-size: inherit; + line-height: inherit; + height: auto; + min-width: 0; + background: transparent; + } + + :host([appearance='hypertext']) .control { + display: inline; + padding: 0; + border: none; + box-shadow: none; + border-radius: 0; + line-height: 1; + } + + :host a.control:not(:link) { + background-color: transparent; + cursor: default; + } + :host([appearance='hypertext']) .control:link, + :host([appearance='hypertext']) .control:visited { + background: transparent; + color: ${oi}; + border-bottom: calc(${de} * 1px) solid ${oi}; + } + + :host([appearance='hypertext']:hover), + :host([appearance='hypertext']) .control:hover { + background: transparent; + border-bottom-color: ${_a}; + } + + :host([appearance='hypertext']:active), + :host([appearance='hypertext']) .control:active { + background: transparent; + border-bottom-color: ${Co}; + } + + :host([appearance="hypertext"]) .control:${X} { + outline-color: transparent; + border-bottom: calc(${be} * 1px) solid ${zi}; + margin-bottom: calc(calc(${de} - ${be}) * 1px); + } +`.withBehaviors(ve(F` + :host([appearance='hypertext']:hover) { + background-color: ${D.ButtonFace}; + color: ${D.ButtonText}; + } + :host([appearance="hypertext"][href]) .control:hover, + :host([appearance="hypertext"][href]) .control:active, + :host([appearance="hypertext"][href]) .control:${X} { + color: ${D.LinkText}; + border-bottom-color: ${D.LinkText}; + box-shadow: none; + } + `)),rv=F` + :host([appearance='lightweight']) { + background: transparent; + color: ${oi}; + } + + :host([appearance='lightweight']) .control { + padding: 0; + height: initial; + border: none; + box-shadow: none; + border-radius: 0; + } + + :host([appearance='lightweight']:hover) { + background: transparent; + color: ${_a}; + } + + :host([appearance='lightweight']:active) { + background: transparent; + color: ${Co}; + } + + :host([appearance='lightweight']) .content { + position: relative; + } + + :host([appearance='lightweight']) .content::before { + content: ''; + display: block; + height: calc(${de} * 1px); + position: absolute; + top: calc(1em + 4px); + width: 100%; + } + + :host([appearance='lightweight']:hover) .content::before { + background: ${_a}; + } + + :host([appearance='lightweight']:active) .content::before { + background: ${Co}; + } + + :host([appearance="lightweight"]) .control:${X} { + outline-color: transparent; + } + + :host([appearance="lightweight"]) .control:${X} .content::before { + background: ${fe}; + height: calc(${be} * 1px); + } +`.withBehaviors(ve(F` + :host([appearance="lightweight"]) .control:hover, + :host([appearance="lightweight"]) .control:${X} { + forced-color-adjust: none; + background: ${D.ButtonFace}; + color: ${D.Highlight}; + } + :host([appearance="lightweight"]) .control:hover .content::before, + :host([appearance="lightweight"]) .control:${X} .content::before { + background: ${D.Highlight}; + } + + :host([appearance="lightweight"][href]) .control:hover, + :host([appearance="lightweight"][href]) .control:${X} { + background: ${D.ButtonFace}; + box-shadow: none; + color: ${D.LinkText}; + } + + :host([appearance="lightweight"][href]) .control:hover .content::before, + :host([appearance="lightweight"][href]) .control:${X} .content::before { + background: ${D.LinkText}; + } + `)),nv=F` + :host([appearance='outline']) { + background: transparent; + border-color: ${ut}; + } + + :host([appearance='outline']:hover) { + border-color: ${Ti}; + } + + :host([appearance='outline']:active) { + border-color: ${Gt}; + } + + :host([appearance='outline']) .control { + border-color: inherit; + } + + :host([appearance="outline"]) .control:${X} { + outline-color: ${qe}; + } +`.withBehaviors(ve(F` + :host([appearance='outline']) .control { + border-color: ${D.ButtonText}; + } + :host([appearance="outline"]) .control:${X} { + forced-color-adjust: none; + background-color: ${D.Highlight}; + outline-color: ${D.ButtonText}; + color: ${D.HighlightText}; + fill: currentColor; + } + :host([appearance='outline'][href]) .control { + background: ${D.ButtonFace}; + border-color: ${D.LinkText}; + color: ${D.LinkText}; + fill: currentColor; + } + :host([appearance="outline"][href]) .control:hover, + :host([appearance="outline"][href]) .control:${X} { + forced-color-adjust: none; + outline-color: ${D.LinkText}; + } + `)),sv=F` + :host([appearance='stealth']), + :host([appearance='stealth'][disabled]:active), + :host([appearance='stealth'][disabled]:hover) { + background: transparent; + } + + :host([appearance='stealth']:hover) { + background: ${vn}; + } + + :host([appearance='stealth']:active) { + background: ${_n}; + } + + :host([appearance='stealth']) .control:${X} { + outline-color: ${qe}; + } + + /* Make the focus outline displayed within the button if + it is in a start or end slot; e.g. in a tree item + This will make the focus outline bounded within the container. + */ + :host([appearance='stealth'][slot="end"]) .control:${X}, + :host([appearance='stealth'][slot="start"]) .control:${X} { + outline-offset: -2px; + } +`.withBehaviors(ve(F` + :host([appearance='stealth']), + :host([appearance='stealth']) .control { + forced-color-adjust: none; + background: ${D.ButtonFace}; + border-color: transparent; + color: ${D.ButtonText}; + fill: currentColor; + } + + :host([appearance='stealth']:hover) .control { + background: ${D.Highlight}; + border-color: ${D.Highlight}; + color: ${D.HighlightText}; + fill: currentColor; + } + + :host([appearance="stealth"]:${X}) .control { + outline-color: ${D.Highlight}; + color: ${D.HighlightText}; + fill: currentColor; + } + + :host([appearance='stealth'][href]) .control { + color: ${D.LinkText}; + } + + :host([appearance="stealth"][href]:hover) .control, + :host([appearance="stealth"][href]:${X}) .control { + background: ${D.LinkText}; + border-color: ${D.LinkText}; + color: ${D.HighlightText}; + fill: currentColor; + } + + :host([appearance="stealth"][href]:${X}) .control { + forced-color-adjust: none; + box-shadow: 0 0 0 1px ${D.LinkText}; + } + `))});var ql,$K=b(()=>{B();oe();ye();Te();ko();ql=F` + ${we("inline-block")} :host { + font-family: ${Me}; + outline: none; + user-select: none; + /* Ensure to display focus highlight */ + margin: calc((${be} - ${de}) * 1px); + } + + .root { + box-sizing: border-box; + position: relative; + display: flex; + flex-direction: row; + color: ${fe}; + background: ${bn}; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${Ch}; + height: calc(${xe} * 1px); + } + + :host([aria-invalid='true']) .root { + border-color: ${$t}; + } + + .control { + -webkit-appearance: none; + font: inherit; + background: transparent; + border: 0; + color: inherit; + height: calc(100% - 4px); + width: 100%; + margin-top: auto; + margin-bottom: auto; + border: none; + padding: 0 calc(${K} * 2px + 1px); + font-size: ${ke}; + line-height: ${Fe}; + } + + .control:placeholder-shown { + text-overflow: ellipsis; + } + + .control:hover, + .control:${X}, + .control:disabled, + .control:active { + outline: none; + } + + .label { + display: block; + color: ${fe}; + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + margin-bottom: 4px; + } + + .label__hidden { + display: none; + visibility: hidden; + } + + .start, + .end { + margin: auto; + fill: currentcolor; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + } + + .start { + margin-inline-start: 11px; + } + + .end { + margin-inline-end: 11px; + } + + :host(:hover:not([disabled])) .root { + background: ${Mr}; + border-color: ${Ih}; + } + + :host([aria-invalid='true']:hover:not([disabled])) .root { + border-color: ${ai}; + } + + :host(:active:not([disabled])) .root { + background: ${Mr}; + border-color: ${Eh}; + } + + :host([aria-invalid='true']:active:not([disabled])) .root { + border-color: ${Mi}; + } + + :host(:focus-within:not([disabled])) .root { + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host([aria-invalid='true']:focus-within:not([disabled])) .root { + border-color: ${At}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${At}; + } + + :host([appearance='filled']) .root { + background: ${Tt}; + } + + :host([appearance='filled']:hover:not([disabled])) .root { + background: ${ps}; + } + + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${mt}; + } + + :host([disabled]) { + opacity: ${wt}; + } + + :host([disabled]) .control { + border-color: ${Dr}; + } +`.withBehaviors(ve(F` + .root, + :host([appearance='filled']) .root { + forced-color-adjust: none; + background: ${D.Field}; + border-color: ${D.FieldText}; + } + :host([aria-invalid='true']) .root { + border-style: dashed; + } + :host(:hover:not([disabled])) .root, + :host([appearance='filled']:hover:not([disabled])) .root, + :host([appearance='filled']:hover) .root { + background: ${D.Field}; + border-color: ${D.Highlight}; + } + .start, + .end { + fill: currentcolor; + } + :host([disabled]) { + opacity: 1; + } + :host([disabled]) .root, + :host([appearance='filled']:hover[disabled]) .root { + border-color: ${D.GrayText}; + background: ${D.Field}; + } + :host(:focus-within:enabled) .root { + border-color: ${D.Highlight}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${D.Highlight}; + } + input::placeholder { + color: ${D.GrayText}; + } + `))});var PK=b(()=>{ES();$K()});var ms,kS,ov=b(()=>{Te();ms=class{constructor(e,t){this.cache=new WeakMap,this.ltr=e,this.rtl=t}bind(e){this.attach(e)}unbind(e){let t=this.cache.get(e);t&&xh.unsubscribe(t)}attach(e){let t=this.cache.get(e)||new kS(this.ltr,this.rtl,e),r=xh.getValueFor(e);xh.subscribe(t),t.attach(r),this.cache.set(e,t)}},kS=class{constructor(e,t,r){this.ltr=e,this.rtl=t,this.source=r,this.attached=null}handleChange({target:e,token:t}){this.attach(t.getValueFor(e))}attach(e){this.attached!==this[e]&&(this.attached!==null&&this.source.$fastController.removeStyles(this.attached),this.attached=this[e],this.attached!==null&&this.source.$fastController.addStyles(this.attached))}}});var Kt=b(()=>{ev();PK();ko();ov()});function gs(i,e){return new k1("appearance",i,e)}var TS=b(()=>{oe()});var FK,NK=b(()=>{B();Kt();TS();FK=(i,e)=>F` + ${tv} + `.withBehaviors(gs("accent",iv),gs("hypertext",LK),gs("lightweight",rv),gs("outline",nv),gs("stealth",sv))});var av,AS,MS=b(()=>{yn();B();oe();NK();av=class extends cr{appearanceChanged(e,t){this.$fastController.isConnected&&(this.classList.remove(e),this.classList.add(t))}connectedCallback(){super.connectedCallback(),this.appearance||(this.appearance="neutral")}defaultSlottedContentChanged(e,t){let r=this.defaultSlottedContent.filter(n=>n.nodeType===Node.ELEMENT_NODE);r.length===1&&r[0]instanceof SVGElement?this.control.classList.add("icon-only"):this.control.classList.remove("icon-only")}};Z([A],av.prototype,"appearance",void 0);AS=av.compose({baseName:"anchor",baseClass:cr,template:Jb,styles:FK,shadowOptions:{delegatesFocus:!0}})});var BK,zK=b(()=>{B();BK=(i,e)=>F` + :host { + contain: layout; + display: block; + } +`});var RS,DS,OS=b(()=>{oe();zK();RS=class extends We{},DS=RS.compose({baseName:"anchored-region",baseClass:We,template:NH,styles:BK})});var SSe,CSe,qK,HK=b(()=>{B();oe();Te();ov();SSe=(i,e)=>F` + ::slotted(${i.tagFor(us)}) { + left: 0; + } +`,CSe=(i,e)=>F` + ::slotted(${i.tagFor(us)}) { + right: 0; + } +`,qK=(i,e)=>F` + ${we("flex")} :host { + position: relative; + height: var(--avatar-size, var(--avatar-size-default)); + width: var(--avatar-size, var(--avatar-size-default)); + --avatar-size-default: calc( + ( + (${zn} + ${_t}) * ${K} + + ((${K} * 8) - 40) + ) * 1px + ); + --avatar-text-size: ${ke}; + --avatar-text-ratio: ${K}; + } + + .link { + text-decoration: none; + color: ${fe}; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + min-width: 100%; + } + + .square { + border-radius: calc(${ge} * 1px); + min-width: 100%; + overflow: hidden; + } + + .circle { + border-radius: 100%; + min-width: 100%; + overflow: hidden; + } + + .backplate { + position: relative; + display: flex; + background-color: ${ut}; + } + + .media, + ::slotted(img) { + max-width: 100%; + position: absolute; + display: block; + } + + .content { + font-size: calc( + ( + var(--avatar-text-size) + + var(--avatar-size, var(--avatar-size-default)) + ) / var(--avatar-text-ratio) + ); + line-height: var(--avatar-size, var(--avatar-size-default)); + display: block; + min-height: var(--avatar-size, var(--avatar-size-default)); + } + + ::slotted(${i.tagFor(us)}) { + position: absolute; + display: block; + } + `.withBehaviors(new ms(CSe(i,e),SSe(i,e)))});var nm,ISe,LS,$S=b(()=>{yn();B();oe();HK();nm=class extends ca{};Z([A({attribute:"src"})],nm.prototype,"imgSrc",void 0);Z([A],nm.prototype,"alt",void 0);ISe=H` + ${Xe(i=>i.imgSrc,H` + ${i=>i.alt} + `)} +`,LS=nm.compose({baseName:"avatar",baseClass:ca,template:VH,styles:qK,media:ISe,shadowOptions:{delegatesFocus:!0}})});var jK,VK=b(()=>{B();oe();Te();Kt();jK=(i,e)=>F` + ${we("inline-block")} :host { + box-sizing: border-box; + font-family: ${Me}; + font-size: ${Pl}; + line-height: ${Fl}; + } + + .control { + border-radius: calc(${ge} * 1px); + padding: calc(((${K} * 0.5) - ${de}) * 1px) + calc((${K} - ${de}) * 1px); + color: ${fe}; + font-weight: 600; + border: calc(${de} * 1px) solid transparent; + background-color: ${Tt}; + } + + .control[style] { + font-weight: 400; + } + + :host([circular]) .control { + border-radius: 100px; + padding: 0 calc(${K} * 1px); + height: calc((${xe} - (${K} * 3)) * 1px); + min-width: calc((${xe} - (${K} * 3)) * 1px); + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; + } +`});var PS,FS,NS=b(()=>{oe();VK();PS=class extends us{},FS=PS.compose({baseName:"badge",baseClass:us,template:KH,styles:jK})});var UK,WK=b(()=>{B();oe();Te();UK=(i,e)=>F` + ${we("inline-block")} :host { + box-sizing: border-box; + font-family: ${Me}; + font-size: ${ke}; + line-height: ${Fe}; + } + + .list { + display: flex; + flex-wrap: wrap; + } +`});var BS,zS,qS=b(()=>{oe();WK();BS=class extends uh{},zS=BS.compose({baseName:"breadcrumb",baseClass:uh,template:tj,styles:UK})});var GK,KK=b(()=>{B();oe();ye();Te();Kt();GK=(i,e)=>F` + ${we("inline-flex")} :host { + background: transparent; + box-sizing: border-box; + font-family: ${Me}; + font-size: ${ke}; + fill: currentColor; + line-height: ${Fe}; + min-width: calc(${xe} * 1px); + outline: none; + color: ${fe} + } + + .listitem { + display: flex; + align-items: center; + width: max-content; + } + + .separator { + margin: 0 6px; + display: flex; + } + + .control { + align-items: center; + box-sizing: border-box; + color: ${oi}; + cursor: pointer; + display: flex; + fill: inherit; + outline: none; + text-decoration: none; + white-space: nowrap; + } + + .control:hover { + color: ${_a}; + } + + .control:active { + color: ${Co}; + } + + .control .content { + position: relative; + } + + .control .content::before { + content: ""; + display: block; + height: calc(${de} * 1px); + left: 0; + position: absolute; + right: 0; + top: calc(1em + 4px); + width: 100%; + } + + .control:hover .content::before { + background: ${_a}; + } + + .control:active .content::before { + background: ${Co}; + } + + .control:${X} .content::before { + background: ${GG}; + height: calc(${be} * 1px); + } + + .control:not([href]) { + color: ${fe}; + cursor: default; + } + + .control:not([href]) .content::before { + background: none; + } + + .start, + .end { + display: flex; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + } + + .start { + margin-inline-end: 6px; + } + + .end { + margin-inline-start: 6px; + } +`.withBehaviors(ve(F` + .control:hover .content::before, + .control:${X} .content::before { + background: ${D.LinkText}; + } + .start, + .end { + fill: ${D.ButtonText}; + } + `))});var HS,jS,VS=b(()=>{oe();KK();HS=class extends yo{},jS=HS.compose({baseName:"breadcrumb-item",baseClass:yo,template:ZH,styles:GK,separator:"/",shadowOptions:{delegatesFocus:!0}})});var YK,XK=b(()=>{B();oe();ye();Te();ES();TS();YK=(i,e)=>F` + :host([disabled]), + :host([disabled]:hover), + :host([disabled]:active) { + opacity: ${wt}; + background-color: ${Tt}; + cursor: ${mt}; + } + + ${tv} + `.withBehaviors(ve(F` + :host([disabled]), + :host([disabled]) .control, + :host([disabled]:hover), + :host([disabled]:active) { + forced-color-adjust: none; + background-color: ${D.ButtonFace}; + outline-color: ${D.GrayText}; + color: ${D.GrayText}; + cursor: ${mt}; + opacity: 1; + } + `),gs("accent",F` + :host([appearance='accent'][disabled]), + :host([appearance='accent'][disabled]:hover), + :host([appearance='accent'][disabled]:active) { + background: ${ut}; + } + + ${iv} + `.withBehaviors(ve(F` + :host([appearance='accent'][disabled]) .control, + :host([appearance='accent'][disabled]) .control:hover { + background: ${D.ButtonFace}; + border-color: ${D.GrayText}; + color: ${D.GrayText}; + } + `))),gs("error",F` + :host([appearance='error'][disabled]), + :host([appearance='error'][disabled]:hover), + :host([appearance='error'][disabled]:active) { + background: ${$t}; + } + + ${OK} + `.withBehaviors(ve(F` + :host([appearance='error'][disabled]) .control, + :host([appearance='error'][disabled]) .control:hover { + background: ${D.ButtonFace}; + border-color: ${D.GrayText}; + color: ${D.GrayText}; + } + `))),gs("lightweight",F` + :host([appearance='lightweight'][disabled]:hover), + :host([appearance='lightweight'][disabled]:active) { + background-color: transparent; + color: ${oi}; + } + + :host([appearance='lightweight'][disabled]) .content::before, + :host([appearance='lightweight'][disabled]:hover) .content::before, + :host([appearance='lightweight'][disabled]:active) .content::before { + background: transparent; + } + + ${rv} + `.withBehaviors(ve(F` + :host([appearance='lightweight'].disabled) .control { + forced-color-adjust: none; + color: ${D.GrayText}; + } + + :host([appearance='lightweight'].disabled) + .control:hover + .content::before { + background: none; + } + `))),gs("outline",F` + :host([appearance='outline'][disabled]), + :host([appearance='outline'][disabled]:hover), + :host([appearance='outline'][disabled]:active) { + background: transparent; + border-color: ${ut}; + } + + ${nv} + `.withBehaviors(ve(F` + :host([appearance='outline'][disabled]) .control { + border-color: ${D.GrayText}; + } + `))),gs("stealth",F` + ${sv} + `.withBehaviors(ve(F` + :host([appearance='stealth'][disabled]) { + background: ${D.ButtonFace}; + } + + :host([appearance='stealth'][disabled]) .control { + background: ${D.ButtonFace}; + border-color: transparent; + color: ${D.GrayText}; + } + `))))});var Ah,sm,US=b(()=>{yn();B();oe();XK();Ah=class extends Xr{constructor(){super(...arguments),this.appearance="neutral"}defaultSlottedContentChanged(e,t){let r=this.defaultSlottedContent.filter(n=>n.nodeType===Node.ELEMENT_NODE);r.length===1&&(r[0]instanceof SVGElement||r[0].classList.contains("fa")||r[0].classList.contains("fas"))?this.control.classList.add("icon-only"):this.control.classList.remove("icon-only")}};Z([A],Ah.prototype,"appearance",void 0);Z([A({attribute:"minimal",mode:"boolean"})],Ah.prototype,"minimal",void 0);Z([A],Ah.prototype,"scale",void 0);sm=Ah.compose({baseName:"button",baseClass:Xr,template:sj,styles:YK,shadowOptions:{delegatesFocus:!0}})});var JK,ZK=b(()=>{B();oe();ye();Te();Kt();JK=(i,e)=>F` + ${we("block")} :host { + --elevation: 4; + display: block; + contain: content; + height: var(--card-height, 100%); + width: var(--card-width, 100%); + box-sizing: border-box; + background: ${ze}; + border-radius: calc(${ge} * 1px); + ${Vs} + } + `.withBehaviors(ve(F` + :host { + forced-color-adjust: none; + background: ${D.Canvas}; + box-shadow: 0 0 0 1px ${D.CanvasText}; + } + `))});var WS,GS,KS=b(()=>{oe();Te();ZK();WS=class extends Hp{connectedCallback(){super.connectedCallback();let e=ha(this);e&&ze.setValueFor(this,t=>im.getValueFor(t).evaluate(t,ze.getValueFor(e)))}},GS=WS.compose({baseName:"card",baseClass:Hp,template:Ij,styles:JK})});var QK,eY=b(()=>{B();oe();ye();Te();Kt();QK=(i,e)=>F` + ${we("inline-flex")} :host { + align-items: center; + outline: none; + margin: calc(${K} * 1px) 0; + /* Chromium likes to select label text or the default slot when the checkbox is + clicked. Maybe there is a better solution here? */ + user-select: none; + } + + .control { + position: relative; + width: calc((${xe} / 2 + ${K}) * 1px); + height: calc((${xe} / 2 + ${K}) * 1px); + box-sizing: border-box; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${Dr}; + background: ${bn}; + outline: none; + cursor: pointer; + } + + :host([aria-invalid='true']) .control { + border-color: ${$t}; + } + + .label { + font-family: ${Me}; + color: ${fe}; + /* Need to discuss with Brian how HorizontalSpacingNumber can work. + https://github.com/microsoft/fast/issues/2766 */ + padding-inline-start: calc(${K} * 2px + 2px); + margin-inline-end: calc(${K} * 2px + 2px); + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + } + + .label__hidden { + display: none; + visibility: hidden; + } + + .checked-indicator { + width: 100%; + height: 100%; + display: block; + fill: ${Ai}; + opacity: 0; + pointer-events: none; + } + + .indeterminate-indicator { + border-radius: calc(${ge} * 1px); + background: ${Ai}; + position: absolute; + top: 50%; + left: 50%; + width: 50%; + height: 50%; + transform: translate(-50%, -50%); + opacity: 0; + } + + :host(:not([disabled])) .control:hover { + background: ${Mr}; + border-color: ${wa}; + } + + :host(:not([disabled])) .control:active { + background: ${Io}; + border-color: ${kh}; + } + + :host([aria-invalid='true']:not([disabled])) .control:hover { + border-color: ${ai}; + } + + :host([aria-invalid='true']:not([disabled])) .control:active { + border-color: ${Mi}; + } + + :host(:${X}) .control { + outline: calc(${be} * 1px) solid ${qe}; + outline-offset: 2px; + } + + :host([aria-invalid='true']:${X}) .control { + outline-color: ${At}; + } + + :host([aria-checked='true']) .control { + background: ${ut}; + border: calc(${de} * 1px) solid ${ut}; + } + + :host([aria-checked='true']:not([disabled])) .control:hover { + background: ${Ti}; + border: calc(${de} * 1px) solid ${Ti}; + } + + :host([aria-invalid='true'][aria-checked='true']) .control { + background-color: ${$t}; + border-color: ${$t}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .control:hover { + background-color: ${ai}; + border-color: ${ai}; + } + + :host([aria-checked='true']:not([disabled])) + .control:hover + .checked-indicator { + fill: ${mr}; + } + + :host([aria-checked='true']:not([disabled])) + .control:hover + .indeterminate-indicator { + background: ${mr}; + } + + :host([aria-checked='true']:not([disabled])) .control:active { + background: ${Gt}; + border: calc(${de} * 1px) solid ${Gt}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .control:active { + background-color: ${Mi}; + border-color: ${Mi}; + } + + :host([aria-checked='true']:not([disabled])) + .control:active + .checked-indicator { + fill: ${Bi}; + } + + :host([aria-checked='true']:not([disabled])) + .control:active + .indeterminate-indicator { + background: ${Bi}; + } + + :host([aria-checked="true"]:${X}:not([disabled])) .control { + outline: calc(${be} * 1px) solid ${qe}; + outline-offset: 2px; + } + + :host([aria-invalid='true'][aria-checked="true"]:${X}:not([disabled])) .control { + outline-color: ${At}; + } + + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${mt}; + } + + :host([aria-checked='true']:not(.indeterminate)) .checked-indicator, + :host(.indeterminate) .indeterminate-indicator { + opacity: 1; + } + + :host([disabled]) { + opacity: ${wt}; + } + `.withBehaviors(ve(F` + .control { + forced-color-adjust: none; + border-color: ${D.FieldText}; + background: ${D.Field}; + } + :host([aria-invalid='true']) .control { + border-style: dashed; + } + .checked-indicator { + fill: ${D.FieldText}; + } + .indeterminate-indicator { + background: ${D.FieldText}; + } + :host(:not([disabled])) .control:hover, + .control:active { + border-color: ${D.Highlight}; + background: ${D.Field}; + } + :host(:${X}) .control { + outline: calc(${be} * 1px) solid ${D.FieldText}; + outline-offset: 2px; + } + :host([aria-checked="true"]:${X}:not([disabled])) .control { + outline: calc(${be} * 1px) solid ${D.FieldText}; + outline-offset: 2px; + } + :host([aria-checked='true']) .control { + background: ${D.Highlight}; + border-color: ${D.Highlight}; + } + :host([aria-checked='true']:not([disabled])) .control:hover, + .control:active { + border-color: ${D.Highlight}; + background: ${D.HighlightText}; + } + :host([aria-checked='true']) .checked-indicator { + fill: ${D.HighlightText}; + } + :host([aria-checked='true']:not([disabled])) + .control:hover + .checked-indicator { + fill: ${D.Highlight}; + } + :host([aria-checked='true']) .indeterminate-indicator { + background: ${D.HighlightText}; + } + :host([aria-checked='true']) .control:hover .indeterminate-indicator { + background: ${D.Highlight}; + } + :host([disabled]) { + opacity: 1; + } + :host([disabled]) .control { + forced-color-adjust: none; + border-color: ${D.GrayText}; + background: ${D.Field}; + } + :host([disabled]) .indeterminate-indicator, + :host([aria-checked='true'][disabled]) + .control:hover + .indeterminate-indicator { + forced-color-adjust: none; + background: ${D.GrayText}; + } + :host([disabled]) .checked-indicator, + :host([aria-checked='true'][disabled]) .control:hover .checked-indicator { + forced-color-adjust: none; + fill: ${D.GrayText}; + } + `))});var ESe,YS,XS,JS=b(()=>{oe();eY();B();ESe=(i,e)=>H` + +`,YS=class extends El{indeterminateChanged(e,t){this.indeterminate?this.classList.add("indeterminate"):this.classList.remove("indeterminate")}},XS=YS.compose({baseName:"checkbox",baseClass:El,template:ESe,styles:QK,checkedIndicator:` + + + + `,indeterminateIndicator:` +
+ `})});var lv,ZS=b(()=>{B();oe();ye();Te();ko();lv=(i,e)=>{let t=i.tagFor(dr),r=i.name===i.tagFor(pn)?"":".listbox";return F` + ${r?"":we("inline-flex")} + + :host ${r} { + background: ${ze}; + border: calc(${de} * 1px) solid ${Dr}; + border-radius: calc(${ge} * 1px); + box-sizing: border-box; + flex-direction: column; + padding: calc(${K} * 1px) 0; + } + + ${r?"":F` +:host(:${X}:not([disabled])) { + outline: none; + } + + :host(:focus-within:not([disabled])) { + border-color: ${zi}; + box-shadow: 0 0 0 + calc((${be} - ${de}) * 1px) + ${zi} inset; + } + + :host([disabled]) ::slotted(*) { + cursor: ${mt}; + opacity: ${wt}; + pointer-events: none; + } + `} + + ${r||":host([size])"} { + max-height: calc( + (var(--size) * ${xe} + (${K} * ${de} * 2)) * 1px + ); + overflow-y: auto; + } + + :host([size="0"]) ${r} { + max-height: none; + } + `.withBehaviors(ve(F` + :host(:not([multiple]):${X}) ::slotted(${t}[aria-selected="true"]), + :host([multiple]:${X}) ::slotted(${t}[aria-checked="true"]) { + border-color: ${D.ButtonText}; + box-shadow: 0 0 0 calc(${be} * 1px) inset ${D.HighlightText}; + } + + :host(:not([multiple]):${X}) ::slotted(${t}[aria-selected="true"]) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + fill: currentcolor; + } + + ::slotted(${t}[aria-selected="true"]:not([aria-checked="true"])) { + background: ${D.Highlight}; + border-color: ${D.HighlightText}; + color: ${D.HighlightText}; + } + `))}});var uv,QS=b(()=>{B();oe();ye();Te();ZS();ev();ko();uv=(i,e)=>{let t=i.name===i.tagFor(mn);return F` + ${we("inline-flex")} + + :host { + --elevation: 14; + background: ${bn}; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${Ch}; + box-sizing: border-box; + color: ${fe}; + font-family: ${Me}; + height: calc(${xe} * 1px); + position: relative; + user-select: none; + min-width: 250px; + outline: none; + vertical-align: top; + } + + :host([aria-invalid='true']) { + border-color: ${$t}; + } + + :host(:not([autowidth])) { + min-width: 250px; + } + + ${t?F` + :host(:not([aria-haspopup])) { + --elevation: 0; + border: 0; + height: auto; + min-width: 0; + } + `:""} + + ${lv(i,e)} + + :host .listbox { + ${Vs} + border: none; + display: flex; + left: 0; + position: absolute; + width: 100%; + z-index: 1; + } + + .control + .listbox { + --stroke-size: calc(${K} * ${de} * 2); + max-height: calc( + (var(--listbox-max-height) * ${xe} + var(--stroke-size)) * 1px + ); + } + + ${t?F` + :host(:not([aria-haspopup])) .listbox { + left: auto; + position: static; + z-index: auto; + } + `:""} + + :host(:not([autowidth])) .listbox { + width: 100%; + } + + :host([autowidth]) ::slotted([role='option']), + :host([autowidth]) ::slotted(option) { + padding: 0 calc(1em + ${K} * 1.25px + 1px); + } + + .listbox[hidden] { + display: none; + } + + .control { + align-items: center; + box-sizing: border-box; + cursor: pointer; + display: flex; + font-size: ${ke}; + font-family: inherit; + line-height: ${Fe}; + min-height: 100%; + padding: 0 calc(${K} * 2.25px); + width: 100%; + } + + :host([minimal]), + :host([scale='xsmall']) { + --element-scale: -4; + } + + :host([scale='small']) { + --element-scale: -2; + } + + :host([scale='medium']) { + --element-scale: 0; + } + + :host([scale='large']) { + --element-scale: 2; + } + + :host([scale='xlarge']) { + --element-scale: 4; + } + + :host(:not([disabled]):hover) { + background: ${Mr}; + border-color: ${Ih}; + } + + :host([aria-invalid='true']:not([disabled]):hover) { + border-color: ${ai}; + } + + :host(:${X}) { + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host([aria-invalid='true']:${X}) { + border-color: ${At}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${At}; + } + + :host(:not([size]):not([multiple]):not([open]):${X}), + :host([multiple]:${X}), + :host([size]:${X}) { + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host([aria-invalid='true']:not([size]):not([multiple]):not([open]):${X}), + :host([aria-invalid='true'][multiple]:${X}), + :host([aria-invalid='true'][size]:${X}) { + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${At}; + } + + :host(:not([multiple]):not([size]):${X}) ::slotted(${i.tagFor(dr)}[aria-selected="true"]:not([disabled])) { + box-shadow: 0 0 0 calc(${be} * 1px) inset ${qe}; + border-color: ${qe}; + background: ${qe}; + color: ${WG}; + } + + :host([disabled]) { + cursor: ${mt}; + opacity: ${wt}; + } + + :host([disabled]) .control { + cursor: ${mt}; + user-select: none; + } + + :host([disabled]:hover) { + background: ${Rr}; + color: ${fe}; + fill: currentcolor; + } + + :host(:not([disabled])) .control:active { + background: ${Io}; + border-color: ${Gt}; + border-radius: calc(${ge} * 1px); + } + + :host([open][position="above"]) .listbox { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-bottom: 0; + bottom: calc(${xe} * 1px); + } + + :host([open][position="below"]) .listbox { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-top: 0; + top: calc(${xe} * 1px); + } + + .selected-value { + flex: 1 1 auto; + font-family: inherit; + overflow: hidden; + text-align: start; + text-overflow: ellipsis; + white-space: nowrap; + } + + .indicator { + flex: 0 0 auto; + margin-inline-start: 1em; + } + + slot[name="listbox"] { + display: none; + width: 100%; + } + + :host([open]) slot[name="listbox"] { + display: flex; + position: absolute; + ${Vs} + } + + .end { + margin-inline-start: auto; + } + + .start, + .end, + .indicator, + .select-indicator, + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + fill: currentcolor; + height: 1em; + min-height: calc(${K} * 4px); + min-width: calc(${K} * 4px); + width: 1em; + } + + ::slotted([role="option"]), + ::slotted(option) { + flex: 0 0 auto; + } + `.withBehaviors(ve(F` + :host(:not([disabled]):hover), + :host(:not([disabled]):active) { + border-color: ${D.Highlight}; + } + + :host([aria-invalid='true']) { + border-style: dashed; + } + + :host(:not([disabled]):${X}) { + background-color: ${D.ButtonFace}; + box-shadow: 0 0 0 calc(${be} * 1px) ${D.Highlight}; + color: ${D.ButtonText}; + fill: currentcolor; + forced-color-adjust: none; + } + + :host(:not([disabled]):${X}) .listbox { + background: ${D.ButtonFace}; + } + + :host([disabled]) { + border-color: ${D.GrayText}; + background-color: ${D.ButtonFace}; + color: ${D.GrayText}; + fill: currentcolor; + opacity: 1; + forced-color-adjust: none; + } + + :host([disabled]:hover) { + background: ${D.ButtonFace}; + } + + :host([disabled]) .control { + color: ${D.GrayText}; + border-color: ${D.GrayText}; + } + + :host([disabled]) .control .select-indicator { + fill: ${D.GrayText}; + } + + :host(:${X}) ::slotted([aria-selected="true"][role="option"]), + :host(:${X}) ::slotted(option[aria-selected="true"]), + :host(:${X}) ::slotted([aria-selected="true"][role="option"]:not([disabled])) { + background: ${D.Highlight}; + border-color: ${D.ButtonText}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${D.HighlightText}; + color: ${D.HighlightText}; + fill: currentcolor; + } + + .start, + .end, + .indicator, + .select-indicator, + ::slotted(svg) { + color: ${D.ButtonText}; + fill: currentcolor; + } + `))}});var tY,iY=b(()=>{B();oe();Te();QS();tY=(i,e)=>F` + ${uv(i,e)} + + :host(:empty) .listbox { + display: none; + } + + :host([disabled]) *, + :host([disabled]) { + cursor: ${mt}; + user-select: none; + } + + :host(:focus-within:not([disabled])) { + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host([aria-invalid='true']:focus-within:not([disabled])) { + border-color: ${At}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${At}; + } + + .selected-value { + -webkit-appearance: none; + background: transparent; + border: none; + color: inherit; + font-size: ${ke}; + line-height: ${Fe}; + height: calc(100% - (${de} * 1px)); + margin: auto 0; + width: 100%; + } + + .selected-value:hover, + .selected-value:${X}, + .selected-value:disabled, + .selected-value:active { + outline: none; + } +`});var Mh,eC,tC=b(()=>{yn();B();oe();Te();iY();Mh=class extends hs{connectedCallback(){super.connectedCallback(),this.setAutoWidth()}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t),this.setAutoWidth()}autoWidthChanged(e,t){t?this.setAutoWidth():this.style.removeProperty("width")}setAutoWidth(){if(!this.autoWidth||!this.isConnected)return;let e=this.listbox.getBoundingClientRect().width;e===0&&this.listbox.hidden&&(Object.assign(this.listbox.style,{visibility:"hidden"}),this.listbox.removeAttribute("hidden"),e=this.listbox.getBoundingClientRect().width,this.listbox.setAttribute("hidden",""),this.listbox.style.removeProperty("visibility")),e>0&&Object.assign(this.style,{width:`${e}px`})}maxHeightChanged(e,t){this.updateComputedStylesheet()}updateComputedStylesheet(){this.computedStylesheet&&this.$fastController.removeStyles(this.computedStylesheet);let e=Math.floor(this.maxHeight/W1.getValueFor(this)).toString();this.computedStylesheet=F` + :host { + --listbox-max-height: ${e}; + } + `,this.$fastController.addStyles(this.computedStylesheet)}};Z([A({attribute:"autowidth",mode:"boolean"})],Mh.prototype,"autoWidth",void 0);Z([A({attribute:"minimal",mode:"boolean"})],Mh.prototype,"minimal",void 0);Z([A],Mh.prototype,"scale",void 0);eC=Mh.compose({baseName:"combobox",baseClass:hs,template:$j,styles:tY,shadowOptions:{delegatesFocus:!0},indicator:` + + + + `})});var rY,nY=b(()=>{B();rY=(i,e)=>F` + :host { + display: flex; + position: relative; + flex-direction: column; + } +`});var sY,oY=b(()=>{B();Te();sY=(i,e)=>F` + :host { + display: grid; + padding: 1px 0; + box-sizing: border-box; + width: 100%; + border-bottom: calc(${de} * 1px) solid ${js}; + } + + :host(.header) { + } + + :host(.sticky-header) { + background: ${Tt}; + position: sticky; + top: 0; + } +`});var aY,lY=b(()=>{B();ye();oe();Te();aY=(i,e)=>F` + :host { + padding: calc(${K} * 1px) calc(${K} * 3px); + color: ${fe}; + box-sizing: border-box; + font-family: ${Me}; + font-size: ${ke}; + line-height: ${Fe}; + font-weight: 400; + border: transparent calc(${be} * 1px) solid; + overflow: hidden; + white-space: nowrap; + border-radius: calc(${ge} * 1px); + } + + :host(.column-header) { + font-weight: 600; + } + + :host(:${X}) { + outline: calc(${be} * 1px) solid ${qe}; + color: ${fe}; + } + `.withBehaviors(ve(F` + :host { + forced-color-adjust: none; + border-color: transparent; + background: ${D.Field}; + color: ${D.FieldText}; + } + + :host(:${X}) { + border-color: ${D.FieldText}; + box-shadow: 0 0 0 2px inset ${D.Field}; + color: ${D.FieldText}; + } + `))});var iC,sC,rC,oC,nC,aC,lC=b(()=>{oe();nY();oY();lY();iC=class extends cs{},sC=iC.compose({baseName:"data-grid-cell",baseClass:cs,template:yj,styles:aY}),rC=class extends Ei{},oC=rC.compose({baseName:"data-grid-row",baseClass:Ei,template:vj,styles:sY}),nC=class extends si{},aC=nC.compose({baseName:"data-grid",baseClass:si,template:mj,styles:rY})});var uC,cv,uY=b(()=>{oe();uC=class extends ee{},cv=class extends vi(uC){constructor(){super(...arguments),this.proxy=document.createElement("input")}}});var cC,cY=b(()=>{cC={toView(i){if(i==null)return null;let e=new Date(i);return e.toString()==="Invalid Date"?null:`${e.getFullYear().toString().padStart(4,"0")}-${(e.getMonth()+1).toString().padStart(2,"0")}-${e.getDate().toString().padStart(2,"0")}`},fromView(i){if(i==null)return null;let e=new Date(i);return e.toString()==="Invalid Date"?null:e}}});var dC,qn,hC=b(()=>{yn();B();ye();oe();uY();cY();dC="Invalid Date",qn=class extends cv{constructor(){super(...arguments),this.step=1,this.isUserInput=!1}readOnlyChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.readOnly=this.readOnly,this.validate())}autofocusChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.autofocus=this.autofocus,this.validate())}listChanged(){this.proxy instanceof HTMLInputElement&&(this.proxy.setAttribute("list",this.list),this.validate())}maxChanged(e,t){var r;this.max=t<((r=this.min)!==null&&r!==void 0?r:t)?this.min:t,this.value=this.getValidValue(this.value)}minChanged(e,t){var r;this.min=t>((r=this.max)!==null&&r!==void 0?r:t)?this.max:t,this.value=this.getValidValue(this.value)}get valueAsNumber(){return new Date(super.value).valueOf()}set valueAsNumber(e){this.value=new Date(e).toString()}get valueAsDate(){return new Date(super.value)}set valueAsDate(e){this.value=e.toString()}valueChanged(e,t){this.value=this.getValidValue(t),t===this.value&&(this.control&&!this.isUserInput&&(this.control.value=this.value),super.valueChanged(e,this.value),e!==void 0&&!this.isUserInput&&this.$emit("change"),this.isUserInput=!1)}getValidValue(e){var t,r;let n=new Date(e);return n.toString()===dC?n="":(n=n>((t=this.max)!==null&&t!==void 0?t:n)?this.max:n,n=n<((r=this.min)!==null&&r!==void 0?r:n)?this.min:n,n=`${n.getFullYear().toString().padStart(4,"0")}-${(n.getMonth()+1).toString().padStart(2,"0")}-${n.getDate().toString().padStart(2,"0")}`),n}stepUp(){let e=864e5*this.step,t=new Date(this.value);this.value=new Date(t.toString()!==dC?t.valueOf()+e:0).toString()}stepDown(){let e=864e5*this.step,t=new Date(this.value);this.value=new Date(t.toString()!==dC?Math.max(t.valueOf()-e,0):0).toString()}connectedCallback(){super.connectedCallback(),this.validate(),this.control.value=this.value,this.autofocus&&ce.queueUpdate(()=>{this.focus()}),this.appearance||(this.appearance="outline")}handleTextInput(){this.isUserInput=!0,this.value=this.control.value}handleChange(){this.$emit("change")}handleKeyDown(e){switch(e.key){case Ot:return this.stepUp(),!1;case Dt:return this.stepDown(),!1}return!0}handleBlur(){this.control.value=this.value}};Z([A],qn.prototype,"appearance",void 0);Z([A({attribute:"readonly",mode:"boolean"})],qn.prototype,"readOnly",void 0);Z([A({mode:"boolean"})],qn.prototype,"autofocus",void 0);Z([A],qn.prototype,"list",void 0);Z([A({converter:me})],qn.prototype,"step",void 0);Z([A({converter:cC})],qn.prototype,"max",void 0);Z([A({converter:cC})],qn.prototype,"min",void 0);Z([P],qn.prototype,"defaultSlottedNodes",void 0);He(qn,ht,wo)});var dY,hY=b(()=>{B();Kt();dY=(i,e)=>F` + ${ql} +`});var fY,fC=b(()=>{B();oe();fY=(i,e)=>H` + +`});var pC,mC=b(()=>{hC();hY();fC();hC();fC();pC=qn.compose({baseName:"date-field",styles:dY,template:fY,shadowOptions:{delegatesFocus:!0}})});function Ie(i){return(e,t)=>{e[t+"Changed"]=function(r,n){n!=null?i.setValueFor(this,n):i.deleteValueFor(this)}}}var dv,pY,Ce,kSe,TSe,cmt,gC=b(()=>{yn();eh();B();oe();ye();ih();Te();dv={toView(i){return i==null?null:i?.toColorString()},fromView(i){if(i==null)return null;let e=un(i);return e?Fi.create(e.r,e.g,e.b):null}},pY=F` + :host { + background-color: ${ze}; + color: ${fe}; + } +`.withBehaviors(ve(F` + :host { + background-color: ${D.ButtonFace}; + box-shadow: 0 0 0 1px ${D.CanvasText}; + color: ${D.ButtonText}; + } + `));Ce=class extends ee{constructor(){super(),this.noPaint=!1;let e={handleChange:this.noPaintChanged.bind(this)};_e.getNotifier(this).subscribe(e,"fillColor"),_e.getNotifier(this).subscribe(e,"baseLayerLuminance")}noPaintChanged(){!this.noPaint&&(this.fillColor!==void 0||this.baseLayerLuminance)?this.$fastController.addStyles(pY):this.$fastController.removeStyles(pY)}};Z([A({attribute:"no-paint",mode:"boolean"})],Ce.prototype,"noPaint",void 0);Z([A({attribute:"fill-color",converter:dv}),Ie(ze)],Ce.prototype,"fillColor",void 0);Z([A({attribute:"accent-color",converter:dv,mode:"fromView"}),Ie(tm)],Ce.prototype,"accentColor",void 0);Z([A({attribute:"neutral-color",converter:dv,mode:"fromView"}),Ie(em)],Ce.prototype,"neutralColor",void 0);Z([A({attribute:"error-color",converter:dv,mode:"fromView"}),Ie(rm)],Ce.prototype,"errorColor",void 0);Z([A({converter:me}),Ie(_t)],Ce.prototype,"density",void 0);Z([A({attribute:"design-unit",converter:me}),Ie(K)],Ce.prototype,"designUnit",void 0);Z([A({attribute:"direction"}),Ie(xh)],Ce.prototype,"direction",void 0);Z([A({attribute:"base-height-multiplier",converter:me}),Ie(zn)],Ce.prototype,"baseHeightMultiplier",void 0);Z([A({attribute:"base-horizontal-spacing-multiplier",converter:me}),Ie(MG)],Ce.prototype,"baseHorizontalSpacingMultiplier",void 0);Z([A({attribute:"control-corner-radius",converter:me}),Ie(ge)],Ce.prototype,"controlCornerRadius",void 0);Z([A({attribute:"stroke-width",converter:me}),Ie(de)],Ce.prototype,"strokeWidth",void 0);Z([A({attribute:"focus-stroke-width",converter:me}),Ie(be)],Ce.prototype,"focusStrokeWidth",void 0);Z([A({attribute:"disabled-opacity",converter:me}),Ie(wt)],Ce.prototype,"disabledOpacity",void 0);Z([A({attribute:"type-ramp-minus-2-font-size"}),Ie(RG)],Ce.prototype,"typeRampMinus2FontSize",void 0);Z([A({attribute:"type-ramp-minus-2-line-height"}),Ie(DG)],Ce.prototype,"typeRampMinus2LineHeight",void 0);Z([A({attribute:"type-ramp-minus-1-font-size"}),Ie(Pl)],Ce.prototype,"typeRampMinus1FontSize",void 0);Z([A({attribute:"type-ramp-minus-1-line-height"}),Ie(Fl)],Ce.prototype,"typeRampMinus1LineHeight",void 0);Z([A({attribute:"type-ramp-base-font-size"}),Ie(ke)],Ce.prototype,"typeRampBaseFontSize",void 0);Z([A({attribute:"type-ramp-base-line-height"}),Ie(Fe)],Ce.prototype,"typeRampBaseLineHeight",void 0);Z([A({attribute:"type-ramp-plus-1-font-size"}),Ie(Nl)],Ce.prototype,"typeRampPlus1FontSize",void 0);Z([A({attribute:"type-ramp-plus-1-line-height"}),Ie(OG)],Ce.prototype,"typeRampPlus1LineHeight",void 0);Z([A({attribute:"type-ramp-plus-2-font-size"}),Ie(LG)],Ce.prototype,"typeRampPlus2FontSize",void 0);Z([A({attribute:"type-ramp-plus-2-line-height"}),Ie($G)],Ce.prototype,"typeRampPlus2LineHeight",void 0);Z([A({attribute:"type-ramp-plus-3-font-size"}),Ie(PG)],Ce.prototype,"typeRampPlus3FontSize",void 0);Z([A({attribute:"type-ramp-plus-3-line-height"}),Ie(FG)],Ce.prototype,"typeRampPlus3LineHeight",void 0);Z([A({attribute:"type-ramp-plus-4-font-size"}),Ie(NG)],Ce.prototype,"typeRampPlus4FontSize",void 0);Z([A({attribute:"type-ramp-plus-4-line-height"}),Ie(BG)],Ce.prototype,"typeRampPlus4LineHeight",void 0);Z([A({attribute:"type-ramp-plus-5-font-size"}),Ie(zG)],Ce.prototype,"typeRampPlus5FontSize",void 0);Z([A({attribute:"type-ramp-plus-5-line-height"}),Ie(qG)],Ce.prototype,"typeRampPlus5LineHeight",void 0);Z([A({attribute:"type-ramp-plus-6-font-size"}),Ie(HG)],Ce.prototype,"typeRampPlus6FontSize",void 0);Z([A({attribute:"type-ramp-plus-6-line-height"}),Ie(jG)],Ce.prototype,"typeRampPlus6LineHeight",void 0);Z([A({attribute:"accent-fill-rest-delta",converter:me}),Ie(VG)],Ce.prototype,"accentFillRestDelta",void 0);Z([A({attribute:"accent-fill-hover-delta",converter:me}),Ie(Wc)],Ce.prototype,"accentFillHoverDelta",void 0);Z([A({attribute:"accent-fill-active-delta",converter:me}),Ie(D1)],Ce.prototype,"accentFillActiveDelta",void 0);Z([A({attribute:"accent-fill-focus-delta",converter:me}),Ie(O1)],Ce.prototype,"accentFillFocusDelta",void 0);Z([A({attribute:"accent-foreground-rest-delta",converter:me}),Ie(L1)],Ce.prototype,"accentForegroundRestDelta",void 0);Z([A({attribute:"accent-foreground-hover-delta",converter:me}),Ie($1)],Ce.prototype,"accentForegroundHoverDelta",void 0);Z([A({attribute:"accent-foreground-active-delta",converter:me}),Ie(P1)],Ce.prototype,"accentForegroundActiveDelta",void 0);Z([A({attribute:"accent-foreground-focus-delta",converter:me}),Ie(F1)],Ce.prototype,"accentForegroundFocusDelta",void 0);Z([A({attribute:"neutral-fill-rest-delta",converter:me}),Ie(ga)],Ce.prototype,"neutralFillRestDelta",void 0);Z([A({attribute:"neutral-fill-hover-delta",converter:me}),Ie(ba)],Ce.prototype,"neutralFillHoverDelta",void 0);Z([A({attribute:"neutral-fill-active-delta",converter:me}),Ie(va)],Ce.prototype,"neutralFillActiveDelta",void 0);Z([A({attribute:"neutral-fill-focus-delta",converter:me}),Ie(N1)],Ce.prototype,"neutralFillFocusDelta",void 0);Z([A({attribute:"neutral-fill-input-rest-delta",converter:me}),Ie(J3)],Ce.prototype,"neutralFillInputRestDelta",void 0);Z([A({attribute:"neutral-fill-input-hover-delta",converter:me}),Ie(Z3)],Ce.prototype,"neutralFillInputHoverDelta",void 0);Z([A({attribute:"neutral-fill-input-active-delta",converter:me}),Ie(Q3)],Ce.prototype,"neutralFillInputActiveDelta",void 0);Z([A({attribute:"neutral-fill-input-focus-delta",converter:me}),Ie(eS)],Ce.prototype,"neutralFillInputFocusDelta",void 0);Z([A({attribute:"neutral-fill-stealth-rest-delta",converter:me}),Ie(tS)],Ce.prototype,"neutralFillStealthRestDelta",void 0);Z([A({attribute:"neutral-fill-stealth-hover-delta",converter:me}),Ie(iS)],Ce.prototype,"neutralFillStealthHoverDelta",void 0);Z([A({attribute:"neutral-fill-stealth-active-delta",converter:me}),Ie(rS)],Ce.prototype,"neutralFillStealthActiveDelta",void 0);Z([A({attribute:"neutral-fill-stealth-focus-delta",converter:me}),Ie(nS)],Ce.prototype,"neutralFillStealthFocusDelta",void 0);Z([A({attribute:"neutral-fill-strong-hover-delta",converter:me}),Ie(sS)],Ce.prototype,"neutralFillStrongHoverDelta",void 0);Z([A({attribute:"neutral-fill-strong-active-delta",converter:me}),Ie(oS)],Ce.prototype,"neutralFillStrongActiveDelta",void 0);Z([A({attribute:"neutral-fill-strong-focus-delta",converter:me}),Ie(aS)],Ce.prototype,"neutralFillStrongFocusDelta",void 0);Z([A({attribute:"base-layer-luminance",converter:me}),Ie(So)],Ce.prototype,"baseLayerLuminance",void 0);Z([A({attribute:"neutral-fill-layer-rest-delta",converter:me}),Ie(Bl)],Ce.prototype,"neutralFillLayerRestDelta",void 0);Z([A({attribute:"neutral-stroke-divider-rest-delta",converter:me}),Ie(hS)],Ce.prototype,"neutralStrokeDividerRestDelta",void 0);Z([A({attribute:"neutral-stroke-rest-delta",converter:me}),Ie(lS)],Ce.prototype,"neutralStrokeRestDelta",void 0);Z([A({attribute:"neutral-stroke-hover-delta",converter:me}),Ie(uS)],Ce.prototype,"neutralStrokeHoverDelta",void 0);Z([A({attribute:"neutral-stroke-active-delta",converter:me}),Ie(cS)],Ce.prototype,"neutralStrokeActiveDelta",void 0);Z([A({attribute:"neutral-stroke-focus-delta",converter:me}),Ie(dS)],Ce.prototype,"neutralStrokeFocusDelta",void 0);kSe=(i,e)=>H` `,TSe=(i,e)=>F` + ${we("block")} +`,cmt=Ce.compose({baseName:"design-system-provider",template:kSe,styles:TSe})});var mY,gY=b(()=>{B();Te();ev();mY=(i,e)=>F` + :host([hidden]) { + display: none; + } + + :host { + --elevation: 14; + --dialog-height: 480px; + --dialog-width: 640px; + display: block; + } + + .overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.3); + touch-action: none; + } + + .positioning-region { + display: flex; + justify-content: center; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + overflow: auto; + } + + .control { + ${Vs} + margin-top: auto; + margin-bottom: auto; + width: var(--dialog-width); + height: var(--dialog-height); + background-color: ${ze}; + z-index: 1; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid transparent; + } +`});var bC,vC,_C=b(()=>{oe();gY();bC=class extends Tr{},vC=bC.compose({baseName:"dialog",baseClass:Tr,template:Vj,styles:mY})});var bY,vY=b(()=>{B();Te();bY=(i,e)=>F` + .disclosure { + transition: height 0.35s; + } + + .disclosure .invoker::-webkit-details-marker { + display: none; + } + + .disclosure .invoker { + list-style-type: none; + } + + :host([appearance='accent']) .invoker { + background: ${ut}; + color: ${Ai}; + font-family: ${Me}; + font-size: ${ke}; + border-radius: calc(${ge} * 1px); + outline: none; + cursor: pointer; + margin: 16px 0; + padding: 12px; + max-width: max-content; + } + + :host([appearance='accent']) .invoker:active { + background: ${Gt}; + color: ${Bi}; + } + + :host([appearance='accent']) .invoker:hover { + background: ${Ti}; + color: ${mr}; + } + + :host([appearance='lightweight']) .invoker { + background: transparent; + color: ${oi}; + border-bottom: calc(${de} * 1px) solid ${oi}; + cursor: pointer; + width: max-content; + margin: 16px 0; + } + + :host([appearance='lightweight']) .invoker:active { + border-bottom-color: ${Co}; + } + + :host([appearance='lightweight']) .invoker:hover { + border-bottom-color: ${_a}; + } + + .disclosure[open] .invoker ~ * { + animation: fadeIn 0.5s ease-in-out; + } + + @keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } +`});var hv,yC,xC=b(()=>{yn();B();oe();vY();hv=class extends Hc{constructor(){super(...arguments),this.height=0,this.totalHeight=0}connectedCallback(){super.connectedCallback(),this.appearance||(this.appearance="accent")}appearanceChanged(e,t){e!==t&&(this.classList.add(t),this.classList.remove(e))}onToggle(){super.onToggle(),this.details.style.setProperty("height",`${this.disclosureHeight}px`)}setup(){super.setup();let e=()=>this.details.getBoundingClientRect().height;this.show(),this.totalHeight=e(),this.hide(),this.height=e(),this.expanded&&this.show()}get disclosureHeight(){return this.expanded?this.totalHeight:this.height}};Z([A],hv.prototype,"appearance",void 0);yC=hv.compose({baseName:"disclosure",baseClass:Hc,template:Qj,styles:bY})});var _Y,yY=b(()=>{B();oe();Te();_Y=(i,e)=>F` + ${we("block")} :host { + box-sizing: content-box; + height: 0; + margin: calc(${K} * 1px) 0; + border-top: calc(${de} * 1px) solid ${js}; + border-left: none; + } + + :host([orientation='vertical']) { + height: 100%; + margin: 0 calc(${K} * 1px); + border-top: none; + border-left: calc(${de} * 1px) solid ${js}; + } +`});var wC,SC,CC=b(()=>{oe();yY();wC=class extends jc{},SC=wC.compose({baseName:"divider",baseClass:jc,template:rV,styles:_Y})});var IC,EC,kC=b(()=>{B();oe();ZS();IC=class extends pn{sizeChanged(e,t){super.sizeChanged(e,t),this.updateComputedStylesheet()}updateComputedStylesheet(){this.computedStylesheet&&this.$fastController.removeStyles(this.computedStylesheet);let e=`${this.size}`;this.computedStylesheet=F` + :host { + --size: ${e}; + } + `,this.$fastController.addStyles(this.computedStylesheet)}},EC=IC.compose({baseName:"listbox",baseClass:pn,template:_V,styles:lv})});var xY,wY=b(()=>{B();oe();ye();Te();Kt();xY=(i,e)=>F` + ${we("block")} :host { + --elevation: 11; + background: ${ze}; + border: calc(${de} * 1px) solid transparent; + ${Vs} + margin: 0; + border-radius: calc(${ge} * 1px); + padding: calc(${K} * 1px) 0; + max-width: 368px; + min-width: 64px; + } + + :host([slot='submenu']) { + width: max-content; + margin: 0 calc(${K} * 1px); + } + + ::slotted(hr) { + box-sizing: content-box; + height: 0; + margin: 0; + border: none; + border-top: calc(${de} * 1px) solid ${js}; + } + `.withBehaviors(ve(F` + :host { + background: ${D.Canvas}; + border-color: ${D.CanvasText}; + } + `))});var TC,AC,MC=b(()=>{oe();Te();wY();TC=class extends fa{connectedCallback(){super.connectedCallback(),ze.setValueFor(this,wh)}},AC=TC.compose({baseName:"menu",baseClass:fa,template:NV,styles:xY})});var SY,CY=b(()=>{B();oe();ye();Te();Kt();SY=(i,e)=>F` + ${we("grid")} :host { + contain: layout; + overflow: visible; + font-family: ${Me}; + outline: none; + box-sizing: border-box; + height: calc(${xe} * 1px); + grid-template-columns: minmax(42px, auto) 1fr minmax(42px, auto); + grid-template-rows: auto; + justify-items: center; + align-items: center; + padding: 0; + margin: 0 calc(${K} * 1px); + white-space: nowrap; + background: ${Rr}; + color: ${fe}; + fill: currentcolor; + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + border-radius: calc(${ge} * 1px); + border: calc(${be} * 1px) solid transparent; + } + + :host(:hover) { + position: relative; + z-index: 1; + } + + :host(.indent-0) { + grid-template-columns: auto 1fr minmax(42px, auto); + } + :host(.indent-0) .content { + grid-column: 1; + grid-row: 1; + margin-inline-start: 10px; + } + :host(.indent-0) .expand-collapse-glyph-container { + grid-column: 5; + grid-row: 1; + } + :host(.indent-2) { + grid-template-columns: + minmax(42px, auto) minmax(42px, auto) 1fr minmax(42px, auto) + minmax(42px, auto); + } + :host(.indent-2) .content { + grid-column: 3; + grid-row: 1; + margin-inline-start: 10px; + } + :host(.indent-2) .expand-collapse-glyph-container { + grid-column: 5; + grid-row: 1; + } + :host(.indent-2) .start { + grid-column: 2; + } + :host(.indent-2) .end { + grid-column: 4; + } + + :host(:${X}) { + border-color: ${qe}; + background: ${Sh}; + color: ${fe}; + } + + :host(:hover) { + background: ${vn}; + color: ${fe}; + } + + :host(:active) { + background: ${_n}; + } + + :host([aria-checked='true']), + :host(.expanded) { + background: ${Tt}; + color: ${fe}; + } + + :host([disabled]) { + cursor: ${mt}; + opacity: ${wt}; + } + + :host([disabled]:hover) { + color: ${fe}; + fill: currentcolor; + background: ${Rr}; + } + + :host([disabled]:hover) .start, + :host([disabled]:hover) .end, + :host([disabled]:hover)::slotted(svg) { + fill: ${fe}; + } + + .expand-collapse-glyph { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: calc((16 + ${_t}) * 1px); + height: calc((16 + ${_t}) * 1px); + fill: currentcolor; + } + + .content { + grid-column-start: 2; + justify-self: start; + overflow: hidden; + text-overflow: ellipsis; + } + + .start, + .end { + display: flex; + justify-content: center; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + + /* Something like that would do if the typography is adaptive + font-size: inherit; + width: ${Nl}; + height: ${Nl}; + */ + } + + :host(:hover) .start, + :host(:hover) .end, + :host(:hover)::slotted(svg), + :host(:active) .start, + :host(:active) .end, + :host(:active)::slotted(svg) { + fill: ${fe}; + } + + :host(.indent-0[aria-haspopup='menu']) { + display: grid; + grid-template-columns: minmax(42px, auto) auto 1fr minmax(42px, auto) minmax( + 42px, + auto + ); + align-items: center; + min-height: 32px; + } + + :host(.indent-1[aria-haspopup='menu']), + :host(.indent-1[role='menuitemcheckbox']), + :host(.indent-1[role='menuitemradio']) { + display: grid; + grid-template-columns: minmax(42px, auto) auto 1fr minmax(42px, auto) minmax( + 42px, + auto + ); + align-items: center; + min-height: 32px; + } + + :host(.indent-2:not([aria-haspopup='menu'])) .end { + grid-column: 5; + } + + :host .input-container, + :host .expand-collapse-glyph-container { + display: none; + } + + :host([aria-haspopup='menu']) .expand-collapse-glyph-container, + :host([role='menuitemcheckbox']) .input-container, + :host([role='menuitemradio']) .input-container { + display: grid; + margin-inline-end: 10px; + } + + :host([aria-haspopup='menu']) .content, + :host([role='menuitemcheckbox']) .content, + :host([role='menuitemradio']) .content { + grid-column-start: 3; + } + + :host([aria-haspopup='menu'].indent-0) .content { + grid-column-start: 1; + } + + :host([aria-haspopup='menu']) .end, + :host([role='menuitemcheckbox']) .end, + :host([role='menuitemradio']) .end { + grid-column-start: 4; + } + + :host .expand-collapse, + :host .checkbox, + :host .radio { + display: flex; + align-items: center; + justify-content: center; + position: relative; + width: 20px; + height: 20px; + box-sizing: border-box; + outline: none; + margin-inline-start: 10px; + } + + :host .checkbox, + :host .radio { + border: calc(${de} * 1px) solid ${fe}; + } + + :host([aria-checked='true']) .checkbox, + :host([aria-checked='true']) .radio { + background: ${ut}; + border-color: ${ut}; + } + + :host .checkbox { + border-radius: calc(${ge} * 1px); + } + + :host .radio { + border-radius: 999px; + } + + :host .checkbox-indicator, + :host .radio-indicator, + :host .expand-collapse-indicator, + ::slotted([slot='checkbox-indicator']), + ::slotted([slot='radio-indicator']), + ::slotted([slot='expand-collapse-indicator']) { + display: none; + } + + ::slotted([slot='end']:not(svg)) { + margin-inline-end: 10px; + color: ${xa}; + } + + :host([aria-checked='true']) .checkbox-indicator, + :host([aria-checked='true']) ::slotted([slot='checkbox-indicator']) { + width: 100%; + height: 100%; + display: block; + fill: ${Ai}; + pointer-events: none; + } + + :host([aria-checked='true']) .radio-indicator { + position: absolute; + top: 4px; + left: 4px; + right: 4px; + bottom: 4px; + border-radius: 999px; + display: block; + background: ${Ai}; + pointer-events: none; + } + + :host([aria-checked='true']) ::slotted([slot='radio-indicator']) { + display: block; + pointer-events: none; + } + `.withBehaviors(ve(F` + :host { + border-color: transparent; + color: ${D.ButtonText}; + forced-color-adjust: none; + } + + :host(:hover) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host(:hover) .start, + :host(:hover) .end, + :host(:hover)::slotted(svg), + :host(:active) .start, + :host(:active) .end, + :host(:active)::slotted(svg) { + fill: ${D.HighlightText}; + } + + :host(.expanded) { + background: ${D.Highlight}; + border-color: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host(:${X}) { + background: ${D.Highlight}; + border-color: ${D.ButtonText}; + box-shadow: 0 0 0 calc(${be} * 1px) inset + ${D.HighlightText}; + color: ${D.HighlightText}; + fill: currentcolor; + } + + :host([disabled]), + :host([disabled]:hover), + :host([disabled]:hover) .start, + :host([disabled]:hover) .end, + :host([disabled]:hover)::slotted(svg) { + background: ${D.Canvas}; + color: ${D.GrayText}; + fill: currentcolor; + opacity: 1; + } + + :host .expanded-toggle, + :host .checkbox, + :host .radio { + border-color: ${D.ButtonText}; + background: ${D.HighlightText}; + } + + :host([checked='true']) .checkbox, + :host([checked='true']) .radio { + background: ${D.HighlightText}; + border-color: ${D.HighlightText}; + } + + :host(:hover) .expanded-toggle, + :host(:hover) .checkbox, + :host(:hover) .radio, + :host(:${X}) .expanded-toggle, + :host(:${X}) .checkbox, + :host(:${X}) .radio, + :host([checked="true"]:hover) .checkbox, + :host([checked="true"]:hover) .radio, + :host([checked="true"]:${X}) .checkbox, + :host([checked="true"]:${X}) .radio { + border-color: ${D.HighlightText}; + } + + :host([aria-checked='true']) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([aria-checked='true']) .checkbox-indicator, + :host([aria-checked='true']) ::slotted([slot='checkbox-indicator']), + :host([aria-checked='true']) ::slotted([slot='radio-indicator']) { + fill: ${D.Highlight}; + } + + :host([aria-checked='true']) .radio-indicator { + background: ${D.Highlight}; + } + + ::slotted([slot='end']:not(svg)) { + color: ${D.ButtonText}; + } + + :host(:hover) ::slotted([slot="end"]:not(svg)), + :host(:${X}) ::slotted([slot="end"]:not(svg)) { + color: ${D.HighlightText}; + } + `),new ms(F` + .expand-collapse-glyph { + transform: rotate(0deg); + } + `,F` + .expand-collapse-glyph { + transform: rotate(180deg); + } + `))});var RC,DC,OC=b(()=>{oe();CY();RC=class extends fr{},DC=RC.compose({baseName:"menu-item",baseClass:fr,template:PV,styles:SY,checkboxIndicator:` + + + + `,expandCollapseGlyph:` + + + + `,radioIndicator:` + + `})});var IY,EY=b(()=>{B();Te();Kt();IY=(i,e)=>F` + ${ql} + + .controls { + opacity: 0; + margin: auto 0; + } + + .step-up-glyph, + .step-down-glyph { + display: block; + padding: calc( + (${K} + 0.5 * ${_t} + 0.5 * ${$l}) * 1px + ) + calc((2 + 2 * ${K} + ${_t} + ${$l}) * 1px); + cursor: pointer; + } + + .step-up-glyph:before, + .step-down-glyph:before { + content: ''; + display: block; + border: solid transparent + calc((2 + ${K} + 0.5 * ${_t} + 0.5 * ${$l}) * 1px); + } + + .step-up-glyph:hover:before, + .step-down-glyph:hover:before { + background-color: ${ps}; + } + + .step-up-glyph:active:before, + .step-down-glyph:active:before { + background-color: ${zl}; + } + + .step-up-glyph:before { + border-bottom-color: ${fe}; + } + + .step-down-glyph:before { + border-top-color: ${fe}; + } + + :host(:hover:not([disabled])) .controls, + :host(:focus-within:not([disabled])) .controls { + opacity: 1; + } +`});var fv,LC,$C=b(()=>{yn();B();oe();EY();fv=class extends Zi{constructor(){super(...arguments),this.appearance="outline"}};Z([A],fv.prototype,"appearance",void 0);LC=fv.compose({baseName:"number-field",baseClass:Zi,styles:IY,template:HV,shadowOptions:{delegatesFocus:!0},stepDownGlyph:` + + `,stepUpGlyph:` + + `})});var kY,TY=b(()=>{B();oe();ye();Te();ko();kY=(i,e)=>F` + ${we("inline-flex")} :host { + align-items: center; + font-family: ${Me}; + border-radius: calc(${ge} * 1px); + border: calc(${be} * 1px) solid transparent; + box-sizing: border-box; + background: ${Rr}; + color: ${fe}; + cursor: pointer; + flex: 0 0 auto; + fill: currentcolor; + font-size: ${ke}; + height: calc(${xe} * 1px); + line-height: ${Fe}; + margin: 0 calc((${K} - ${be}) * 1px); + outline: none; + overflow: hidden; + padding: 0 1ch; + user-select: none; + white-space: nowrap; + } + + :host(:not([disabled]):not([aria-selected='true']):hover) { + background: ${vn}; + } + + :host(:not([disabled]):not([aria-selected='true']):active) { + background: ${_n}; + } + + :host([aria-selected='true']) { + background: ${ut}; + color: ${Ai}; + } + + :host(:not([disabled])[aria-selected='true']:hover) { + background: ${Ti}; + color: ${mr}; + } + + :host(:not([disabled])[aria-selected='true']:active) { + background: ${Gt}; + color: ${Bi}; + } + + :host([disabled]) { + cursor: ${mt}; + opacity: ${wt}; + } + + .content { + grid-column-start: 2; + justify-self: start; + overflow: hidden; + text-overflow: ellipsis; + } + + .start, + .end, + ::slotted(svg) { + display: flex; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + height: calc(${K} * 4px); + width: calc(${K} * 4px); + } + + ::slotted([slot='end']) { + margin-inline-start: 1ch; + } + + ::slotted([slot='start']) { + margin-inline-end: 1ch; + } + + :host([aria-checked='true'][aria-selected='false']) { + border-color: ${zi}; + } + + :host([aria-checked='true'][aria-selected='true']) { + border-color: ${zi}; + box-shadow: 0 0 0 calc(${be} * 2 * 1px) inset + ${YG}; + } + `.withBehaviors(ve(F` + :host { + border-color: transparent; + forced-color-adjust: none; + color: ${D.ButtonText}; + fill: currentcolor; + } + + :host(:not([aria-selected='true']):hover), + :host([aria-selected='true']) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([disabled]), + :host([disabled][aria-selected='false']:hover) { + background: ${D.Canvas}; + color: ${D.GrayText}; + fill: currentcolor; + opacity: 1; + } + + :host([aria-checked='true'][aria-selected='false']) { + background: ${D.ButtonFace}; + color: ${D.ButtonText}; + border-color: ${D.ButtonText}; + } + + :host([aria-checked='true'][aria-selected='true']), + :host([aria-checked='true'][aria-selected='true']:hover) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + border-color: ${D.ButtonText}; + } + `))});var PC,FC,NC=b(()=>{oe();TY();PC=class extends dr{},FC=PC.compose({baseName:"option",baseClass:dr,template:gV,styles:kY})});var AY,MY=b(()=>{B();oe();ye();Te();AY=(i,e)=>F` + ${we("flex")} :host { + align-items: center; + outline: none; + height: calc(${K} * 1px); + margin: calc(${K} * 1px) 0; + } + + .progress { + background-color: ${Tt}; + border-radius: calc(${K} * 1px); + width: 100%; + height: 100%; + display: flex; + align-items: center; + position: relative; + } + + .determinate { + background-color: ${oi}; + border-radius: calc(${K} * 1px); + height: 100%; + transition: all 0.2s ease-in-out; + display: flex; + } + + .indeterminate { + height: 100%; + border-radius: calc(${K} * 1px); + display: flex; + width: 100%; + position: relative; + overflow: hidden; + } + + .indeterminate-indicator-1 { + position: absolute; + opacity: 0; + height: 100%; + background-color: ${oi}; + border-radius: calc(${K} * 1px); + animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1); + width: 40%; + animation: indeterminate-1 2s infinite; + } + + .indeterminate-indicator-2 { + position: absolute; + opacity: 0; + height: 100%; + background-color: ${oi}; + border-radius: calc(${K} * 1px); + animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1); + width: 60%; + animation: indeterminate-2 2s infinite; + } + + :host([paused]) .indeterminate-indicator-1, + :host([paused]) .indeterminate-indicator-2 { + animation-play-state: paused; + background-color: ${Tt}; + } + + :host([paused]) .determinate { + background-color: ${xa}; + } + + @keyframes indeterminate-1 { + 0% { + opacity: 1; + transform: translateX(-100%); + } + 70% { + opacity: 1; + transform: translateX(300%); + } + 70.01% { + opacity: 0; + } + 100% { + opacity: 0; + transform: translateX(300%); + } + } + + @keyframes indeterminate-2 { + 0% { + opacity: 0; + transform: translateX(-150%); + } + 29.99% { + opacity: 0; + } + 30% { + opacity: 1; + transform: translateX(-150%); + } + 100% { + transform: translateX(166.66%); + opacity: 1; + } + } + `.withBehaviors(ve(F` + .progress { + forced-color-adjust: none; + background-color: ${D.Field}; + box-shadow: 0 0 0 1px inset ${D.FieldText}; + } + .determinate, + .indeterminate-indicator-1, + .indeterminate-indicator-2 { + forced-color-adjust: none; + background-color: ${D.FieldText}; + } + :host([paused]) .determinate, + :host([paused]) .indeterminate-indicator-1, + :host([paused]) .indeterminate-indicator-2 { + background-color: ${D.GrayText}; + } + `))});var BC,zC,qC=b(()=>{oe();MY();BC=class extends Fn{},zC=BC.compose({baseName:"progress",baseClass:Fn,template:tU,styles:AY,indeterminateIndicator1:` + + `,indeterminateIndicator2:` + + `})});var RY,DY=b(()=>{B();oe();ye();Te();ko();RY=(i,e)=>F` + ${we("flex")} :host { + align-items: center; + outline: none; + height: calc(${xe} * 1px); + width: calc(${xe} * 1px); + margin: calc(${xe} * 1px) 0; + } + + .progress { + height: 100%; + width: 100%; + } + + .background { + stroke: ${Tt}; + fill: none; + stroke-width: 2px; + } + + .determinate { + stroke: ${oi}; + fill: none; + stroke-width: 2px; + stroke-linecap: round; + transform-origin: 50% 50%; + transform: rotate(-90deg); + transition: all 0.2s ease-in-out; + } + + .indeterminate-indicator-1 { + stroke: ${oi}; + fill: none; + stroke-width: 2px; + stroke-linecap: round; + transform-origin: 50% 50%; + transform: rotate(-90deg); + transition: all 0.2s ease-in-out; + animation: spin-infinite 2s linear infinite; + } + + :host([paused]) .indeterminate-indicator-1 { + animation-play-state: paused; + stroke: ${Tt}; + } + + :host([paused]) .determinate { + stroke: ${xa}; + } + + @keyframes spin-infinite { + 0% { + stroke-dasharray: 0.01px 43.97px; + transform: rotate(0deg); + } + 50% { + stroke-dasharray: 21.99px 21.99px; + transform: rotate(450deg); + } + 100% { + stroke-dasharray: 0.01px 43.97px; + transform: rotate(1080deg); + } + } + `.withBehaviors(ve(F` + .indeterminate-indicator-1, + .determinate { + stroke: ${D.FieldText}; + } + .background { + stroke: ${D.Field}; + } + :host([paused]) .indeterminate-indicator-1 { + stroke: ${D.Field}; + } + :host([paused]) .determinate { + stroke: ${D.GrayText}; + } + `))});var HC,jC,VC=b(()=>{oe();DY();HC=class extends Fn{},jC=HC.compose({baseName:"progress-ring",baseClass:Fn,template:JV,styles:RY,indeterminateIndicator:` + + + + + `})});var OY,LY=b(()=>{B();oe();ye();Te();Kt();OY=(i,e)=>F` + ${we("inline-flex")} :host { + --input-size: calc((${xe} / 2) + ${K}); + align-items: center; + outline: none; + margin: calc(${K} * 1px) 0; + /* Chromium likes to select label text or the default slot when + the radio is clicked. Maybe there is a better solution here? */ + user-select: none; + position: relative; + flex-direction: row; + transition: all 0.2s ease-in-out; + } + + .control { + position: relative; + width: calc((${xe} / 2 + ${K}) * 1px); + height: calc((${xe} / 2 + ${K}) * 1px); + box-sizing: border-box; + border-radius: 999px; + border: calc(${de} * 1px) solid ${Dr}; + background: ${bn}; + outline: none; + cursor: pointer; + } + + :host([aria-invalid='true']) .control { + border-color: ${$t}; + } + + .label { + font-family: ${Me}; + color: ${fe}; + padding-inline-start: calc(${K} * 2px + 2px); + margin-inline-end: calc(${K} * 2px + 2px); + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + } + + .label__hidden { + display: none; + visibility: hidden; + } + + .control, + .checked-indicator { + flex-shrink: 0; + } + + .checked-indicator { + position: absolute; + top: 5px; + left: 5px; + right: 5px; + bottom: 5px; + border-radius: 999px; + display: inline-block; + background: ${Ai}; + fill: ${Ai}; + opacity: 0; + pointer-events: none; + } + + :host(:not([disabled])) .control:hover { + background: ${Mr}; + border-color: ${wa}; + } + + :host([aria-invalid='true']:not([disabled])) .control:hover { + border-color: ${ai}; + } + + :host(:not([disabled])) .control:active { + background: ${Io}; + border-color: ${kh}; + } + + :host([aria-invalid='true']:not([disabled])) .control:active { + border-color: ${Mi}; + } + + :host(:${X}) .control { + outline: solid calc(${be} * 1px) ${qe}; + } + + :host([aria-invalid='true']:${X}) .control { + outline-color: ${At}; + } + + :host([aria-checked='true']) .control { + background: ${ut}; + border: calc(${de} * 1px) solid ${ut}; + } + + :host([aria-invalid='true'][aria-checked='true']) .control { + background-color: ${$t}; + border-color: ${$t}; + } + + :host([aria-checked='true']:not([disabled])) .control:hover { + background: ${Ti}; + border: calc(${de} * 1px) solid ${Ti}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .control:hover { + background-color: ${ai}; + border-color: ${ai}; + } + + :host([aria-checked='true']:not([disabled])) + .control:hover + .checked-indicator { + background: ${mr}; + fill: ${mr}; + } + + :host([aria-checked='true']:not([disabled])) .control:active { + background: ${Gt}; + border: calc(${de} * 1px) solid ${Gt}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .control:active { + background-color: ${Mi}; + border-color: ${Mi}; + } + + :host([aria-checked='true']:not([disabled])) + .control:active + .checked-indicator { + background: ${Bi}; + fill: ${Bi}; + } + + :host([aria-checked="true"]:${X}:not([disabled])) .control { + outline-offset: 2px; + outline: solid calc(${be} * 1px) ${qe}; + } + + :host([aria-invalid='true'][aria-checked="true"]:${X}:not([disabled])) .control { + outline-color: ${At}; + } + + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${mt}; + } + + :host([aria-checked='true']) .checked-indicator { + opacity: 1; + } + + :host([disabled]) { + opacity: ${wt}; + } + `.withBehaviors(ve(F` + .control, + :host([aria-checked='true']:not([disabled])) .control { + forced-color-adjust: none; + border-color: ${D.FieldText}; + background: ${D.Field}; + } + :host([aria-invalid='true']) { + border-style: dashed; + } + :host(:not([disabled])) .control:hover { + border-color: ${D.Highlight}; + background: ${D.Field}; + } + :host([aria-checked='true']:not([disabled])) .control:hover, + :host([aria-checked='true']:not([disabled])) .control:active { + border-color: ${D.Highlight}; + background: ${D.Highlight}; + } + :host([aria-checked='true']) .checked-indicator { + background: ${D.Highlight}; + fill: ${D.Highlight}; + } + :host([aria-checked='true']:not([disabled])) + .control:hover + .checked-indicator, + :host([aria-checked='true']:not([disabled])) + .control:active + .checked-indicator { + background: ${D.HighlightText}; + fill: ${D.HighlightText}; + } + :host(:${X}) .control { + border-color: ${D.Highlight}; + outline-offset: 2px; + outline: solid calc(${be} * 1px) ${D.FieldText}; + } + :host([aria-checked="true"]:${X}:not([disabled])) .control { + border-color: ${D.Highlight}; + outline: solid calc(${be} * 1px) ${D.FieldText}; + } + :host([disabled]) { + forced-color-adjust: none; + opacity: 1; + } + :host([disabled]) .label { + color: ${D.GrayText}; + } + :host([disabled]) .control, + :host([aria-checked='true'][disabled]) .control:hover, + .control:active { + background: ${D.Field}; + border-color: ${D.GrayText}; + } + :host([disabled]) .checked-indicator, + :host([aria-checked='true'][disabled]) .control:hover .checked-indicator { + fill: ${D.GrayText}; + background: ${D.GrayText}; + } + `))});var ASe,UC,WC,GC=b(()=>{oe();LY();B();ASe=(i,e)=>H` + +`,UC=class extends Rl{},WC=UC.compose({baseName:"radio",baseClass:Rl,template:ASe,styles:OY,checkedIndicator:` +
+ `})});var $Y,PY=b(()=>{B();oe();Te();$Y=(i,e)=>F` + ${we("flex")} :host { + align-items: flex-start; + margin: calc(${K} * 1px) 0; + flex-direction: column; + } + .positioning-region { + display: flex; + flex-wrap: wrap; + } + :host([orientation='vertical']) .positioning-region { + flex-direction: column; + } + :host([orientation='horizontal']) .positioning-region { + flex-direction: row; + } +`});var KC,YC,XC=b(()=>{oe();PY();B();KC=class extends fs{constructor(){super();let e=_e.getNotifier(this),t={handleChange(r,n){n==="slottedRadioButtons"&&r.ariaInvalidChanged()}};e.subscribe(t,"slottedRadioButtons")}ariaInvalidChanged(){this.slottedRadioButtons&&this.slottedRadioButtons.forEach(e=>{var t;e.setAttribute("aria-invalid",(t=this.getAttribute("aria-invalid"))!==null&&t!==void 0?t:"false")})}},YC=KC.compose({baseName:"radio-group",baseClass:fs,template:nU,styles:$Y})});var MSe,RSe,FY,NY=b(()=>{B();oe();Te();Kt();MSe=Pn.create("clear-button-hover").withDefault(i=>{let e=Eo.getValueFor(i),t=ya.getValueFor(i);return e.evaluate(i,t.evaluate(i).hover).hover}),RSe=Pn.create("clear-button-active").withDefault(i=>{let e=Eo.getValueFor(i),t=ya.getValueFor(i);return e.evaluate(i,t.evaluate(i).hover).active}),FY=(i,e)=>F` + ${ql} + + .control::-webkit-search-cancel-button { + -webkit-appearance: none; + } + + .control:hover, + .control:${X}, + .control:disabled, + .control:active { + outline: none; + } + + .clear-button { + height: calc(100% - 2px); + opacity: 0; + margin: 1px; + background: transparent; + color: ${fe}; + fill: currentcolor; + border: none; + border-radius: calc(${ge} * 1px); + min-width: calc(${xe} * 1px); + font-size: ${ke}; + line-height: ${Fe}; + outline: none; + font-family: ${Me}; + padding: 0 calc((10 + (${K} * 2 * ${_t})) * 1px); + } + + .clear-button:hover { + background: ${vn}; + } + + .clear-button:active { + background: ${_n}; + } + + :host([appearance='filled']) .clear-button:hover { + background: ${MSe}; + } + + :host([appearance='filled']) .clear-button:active { + background: ${RSe}; + } + + .input-wrapper { + display: flex; + position: relative; + width: 100%; + } + + .start, + .end { + display: flex; + margin: 1px; + fill: currentcolor; + } + + ::slotted([slot='end']) { + height: 100%; + } + + .end { + margin-inline-end: 1px; + height: calc(100% - 2px); + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + margin-inline-end: 11px; + margin-inline-start: 11px; + margin-top: auto; + margin-bottom: auto; + } + + .clear-button__hidden { + opacity: 0; + } + + :host(:hover:not([disabled], [readOnly])) .clear-button, + :host(:active:not([disabled], [readOnly])) .clear-button, + :host(:focus-within:not([disabled], [readOnly])) .clear-button { + opacity: 1; + } + + :host(:hover:not([disabled], [readOnly])) .clear-button__hidden, + :host(:active:not([disabled], [readOnly])) .clear-button__hidden, + :host(:focus-within:not([disabled], [readOnly])) .clear-button__hidden { + opacity: 0; + } +`});var pv,JC,ZC=b(()=>{yn();B();oe();NY();pv=class extends Ar{constructor(){super(...arguments),this.appearance="outline"}};Z([A],pv.prototype,"appearance",void 0);JC=pv.compose({baseName:"search",baseClass:Ar,template:mU,styles:FY,shadowOptions:{delegatesFocus:!0}})});var Gc,QC,e6=b(()=>{yn();B();oe();Te();QS();Gc=class extends mn{constructor(){super(...arguments),this.listboxScrollWidth=""}autoWidthChanged(e,t){t?this.setAutoWidth():this.style.removeProperty("width")}setAutoWidth(){if(!this.autoWidth||!this.isConnected)return;let e=this.listbox.getBoundingClientRect().width;e===0&&this.listbox.hidden&&(Object.assign(this.listbox.style,{visibility:"hidden"}),this.listbox.removeAttribute("hidden"),e=this.listbox.getBoundingClientRect().width,this.listbox.setAttribute("hidden",""),this.listbox.style.removeProperty("visibility")),e>0&&Object.assign(this.style,{width:`${e}px`})}connectedCallback(){super.connectedCallback(),this.setAutoWidth(),this.listbox&&ze.setValueFor(this.listbox,wh)}slottedOptionsChanged(e,t){super.slottedOptionsChanged(e,t),this.setAutoWidth()}get listboxMaxHeight(){return Math.floor(this.maxHeight/W1.getValueFor(this)).toString()}listboxScrollWidthChanged(){this.updateComputedStylesheet()}get selectSize(){var e;return`${(e=this.size)!==null&&e!==void 0?e:this.multiple?4:0}`}multipleChanged(e,t){super.multipleChanged(e,t),this.updateComputedStylesheet()}maxHeightChanged(e,t){this.collapsible&&this.updateComputedStylesheet()}setPositioning(){super.setPositioning(),this.updateComputedStylesheet()}sizeChanged(e,t){if(super.sizeChanged(e,t),this.updateComputedStylesheet(),this.collapsible){requestAnimationFrame(()=>{this.listbox.style.setProperty("display","flex"),this.listbox.style.setProperty("overflow","visible"),this.listbox.style.setProperty("visibility","hidden"),this.listbox.style.setProperty("width","auto"),this.listbox.hidden=!1,this.listboxScrollWidth=`${this.listbox.scrollWidth}`,this.listbox.hidden=!0,this.listbox.style.removeProperty("display"),this.listbox.style.removeProperty("overflow"),this.listbox.style.removeProperty("visibility"),this.listbox.style.removeProperty("width")});return}this.listboxScrollWidth=""}updateComputedStylesheet(){this.computedStylesheet&&this.$fastController.removeStyles(this.computedStylesheet),this.computedStylesheet=F` + :host { + --listbox-max-height: ${this.listboxMaxHeight}; + --listbox-scroll-width: ${this.listboxScrollWidth}; + --size: ${this.selectSize}; + } + `,this.$fastController.addStyles(this.computedStylesheet)}};Z([A({attribute:"autowidth",mode:"boolean"})],Gc.prototype,"autoWidth",void 0);Z([A({attribute:"minimal",mode:"boolean"})],Gc.prototype,"minimal",void 0);Z([A],Gc.prototype,"scale",void 0);Z([P],Gc.prototype,"listboxScrollWidth",void 0);QC=Gc.compose({baseName:"select",baseClass:mn,template:wU,styles:uv,indicator:` + + + + `})});var BY,zY=b(()=>{B();oe();ye();oe();Te();BY=(i,e)=>F` + ${we("block")} :host { + --skeleton-fill-default: #e1dfdd; + overflow: hidden; + width: 100%; + position: relative; + background-color: var(--skeleton-fill, var(--skeleton-fill-default)); + --skeleton-animation-gradient-default: linear-gradient( + 270deg, + var(--skeleton-fill, var(--skeleton-fill-default)) 0%, + #f3f2f1 51.13%, + var(--skeleton-fill, var(--skeleton-fill-default)) 100% + ); + --skeleton-animation-timing-default: ease-in-out; + } + + :host([shape='rect']) { + border-radius: calc(${ge} * 1px); + } + + :host([shape='circle']) { + border-radius: 100%; + overflow: hidden; + } + + object { + position: absolute; + width: 100%; + height: auto; + z-index: 2; + } + + object img { + width: 100%; + height: auto; + } + + ${we("block")} span.shimmer { + position: absolute; + width: 100%; + height: 100%; + background-image: var( + --skeleton-animation-gradient, + var(--skeleton-animation-gradient-default) + ); + background-size: 0px 0px / 90% 100%; + background-repeat: no-repeat; + background-color: var(--skeleton-animation-fill, ${Tt}); + animation: shimmer 2s infinite; + animation-timing-function: var( + --skeleton-animation-timing, + var(--skeleton-timing-default) + ); + animation-direction: normal; + z-index: 1; + } + + ::slotted(svg) { + z-index: 2; + } + + ::slotted(.pattern) { + width: 100%; + height: 100%; + } + + @keyframes shimmer { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(100%); + } + } + `.withBehaviors(ve(F` + :host { + forced-color-adjust: none; + background-color: ${D.ButtonFace}; + box-shadow: 0 0 0 1px ${D.ButtonText}; + } + + ${we("block")} span.shimmer { + display: none; + } + `))});var t6,i6,r6=b(()=>{oe();zY();t6=class extends ma{},i6=t6.compose({baseName:"skeleton",baseClass:ma,template:IU,styles:BY})});var DSe,OSe,qY,HY=b(()=>{B();oe();ye();Te();Kt();DSe=F` + .track-start { + left: 0; + } +`,OSe=F` + .track-start { + right: 0; + } +`,qY=(i,e)=>F` + :host([hidden]) { + display: none; + } + + ${we("inline-grid")} :host { + --thumb-size: calc(${xe} * 0.5 - ${K}); + --thumb-translate: calc( + var(--thumb-size) * -0.5 + var(--track-width) / 2 + ); + --track-overhang: calc((${K} / 2) * -1); + --track-width: ${K}; + --jp-slider-height: calc(var(--thumb-size) * 10); + align-items: center; + width: 100%; + margin: calc(${K} * 1px) 0; + user-select: none; + box-sizing: border-box; + border-radius: calc(${ge} * 1px); + outline: none; + cursor: pointer; + } + :host([orientation='horizontal']) .positioning-region { + position: relative; + margin: 0 8px; + display: grid; + grid-template-rows: calc(var(--thumb-size) * 1px) 1fr; + } + :host([orientation='vertical']) .positioning-region { + position: relative; + margin: 0 8px; + display: grid; + height: 100%; + grid-template-columns: calc(var(--thumb-size) * 1px) 1fr; + } + + :host(:${X}) .thumb-cursor { + box-shadow: + 0 0 0 2px ${ze}, + 0 0 0 calc((2 + ${be}) * 1px) ${qe}; + } + + :host([aria-invalid='true']:${X}) .thumb-cursor { + box-shadow: + 0 0 0 2px ${ze}, + 0 0 0 calc((2 + ${be}) * 1px) ${At}; + } + + .thumb-container { + position: absolute; + height: calc(var(--thumb-size) * 1px); + width: calc(var(--thumb-size) * 1px); + transition: all 0.2s ease; + color: ${fe}; + fill: currentcolor; + } + .thumb-cursor { + border: none; + width: calc(var(--thumb-size) * 1px); + height: calc(var(--thumb-size) * 1px); + background: ${fe}; + border-radius: calc(${ge} * 1px); + } + .thumb-cursor:hover { + background: ${fe}; + border-color: ${wa}; + } + .thumb-cursor:active { + background: ${fe}; + } + .track-start { + background: ${oi}; + position: absolute; + height: 100%; + left: 0; + border-radius: calc(${ge} * 1px); + } + :host([aria-invalid='true']) .track-start { + background-color: ${$t}; + } + :host([orientation='horizontal']) .thumb-container { + transform: translateX(calc(var(--thumb-size) * 0.5px)) + translateY(calc(var(--thumb-translate) * 1px)); + } + :host([orientation='vertical']) .thumb-container { + transform: translateX(calc(var(--thumb-translate) * 1px)) + translateY(calc(var(--thumb-size) * 0.5px)); + } + :host([orientation='horizontal']) { + min-width: calc(var(--thumb-size) * 1px); + } + :host([orientation='horizontal']) .track { + right: calc(var(--track-overhang) * 1px); + left: calc(var(--track-overhang) * 1px); + align-self: start; + height: calc(var(--track-width) * 1px); + } + :host([orientation='vertical']) .track { + top: calc(var(--track-overhang) * 1px); + bottom: calc(var(--track-overhang) * 1px); + width: calc(var(--track-width) * 1px); + height: 100%; + } + .track { + background: ${Dr}; + position: absolute; + border-radius: calc(${ge} * 1px); + } + :host([orientation='vertical']) { + height: calc(var(--fast-slider-height) * 1px); + min-height: calc(var(--thumb-size) * 1px); + min-width: calc(${K} * 20px); + } + :host([orientation='vertical']) .track-start { + height: auto; + width: 100%; + top: 0; + } + :host([disabled]), + :host([readonly]) { + cursor: ${mt}; + } + :host([disabled]) { + opacity: ${wt}; + } + `.withBehaviors(new ms(DSe,OSe),ve(F` + .thumb-cursor { + forced-color-adjust: none; + border-color: ${D.FieldText}; + background: ${D.FieldText}; + } + .thumb-cursor:hover, + .thumb-cursor:active { + background: ${D.Highlight}; + } + .track { + forced-color-adjust: none; + background: ${D.FieldText}; + } + :host(:${X}) .thumb-cursor { + border-color: ${D.Highlight}; + } + :host([disabled]) { + opacity: 1; + } + :host([disabled]) .track, + :host([disabled]) .thumb-cursor { + forced-color-adjust: none; + background: ${D.GrayText}; + } + + :host(:${X}) .thumb-cursor { + background: ${D.Highlight}; + border-color: ${D.Highlight}; + box-shadow: + 0 0 0 2px ${D.Field}, + 0 0 0 4px ${D.FieldText}; + } + `))});var n6,s6,o6=b(()=>{oe();HY();n6=class extends ki{},s6=n6.compose({baseName:"slider",baseClass:ki,template:OU,styles:qY,thumb:` +
+ `})});var a6,l6,jY,VY=b(()=>{B();oe();ye();Te();Kt();a6=F` + :host { + align-self: start; + grid-row: 2; + margin-top: -2px; + height: calc((${xe} / 2 + ${K}) * 1px); + width: auto; + } + .container { + grid-template-rows: auto auto; + grid-template-columns: 0; + } + .label { + margin: 2px 0; + } +`,l6=F` + :host { + justify-self: start; + grid-column: 2; + margin-left: 2px; + height: auto; + width: calc((${xe} / 2 + ${K}) * 1px); + } + .container { + grid-template-columns: auto auto; + grid-template-rows: 0; + min-width: calc(var(--thumb-size) * 1px); + height: calc(var(--thumb-size) * 1px); + } + .mark { + transform: rotate(90deg); + align-self: center; + } + .label { + margin-left: calc((${K} / 2) * 3px); + align-self: center; + } +`,jY=(i,e)=>F` + ${we("block")} :host { + font-family: ${Me}; + color: ${fe}; + fill: currentcolor; + } + .root { + position: absolute; + display: grid; + } + .container { + display: grid; + justify-self: center; + } + .label { + justify-self: center; + align-self: center; + white-space: nowrap; + max-width: 30px; + } + .mark { + width: calc((${K} / 4) * 1px); + height: calc(${xe} * 0.25 * 1px); + background: ${Dr}; + justify-self: center; + } + :host(.disabled) { + opacity: ${wt}; + } + `.withBehaviors(ve(F` + .mark { + forced-color-adjust: none; + background: ${D.FieldText}; + } + :host(.disabled) { + forced-color-adjust: none; + opacity: 1; + } + :host(.disabled) .label { + color: ${D.GrayText}; + } + :host(.disabled) .mark { + background: ${D.GrayText}; + } + `))});var u6,c6,d6=b(()=>{oe();ye();VY();u6=class extends Nn{sliderOrientationChanged(){this.sliderOrientation===it.horizontal?(this.$fastController.addStyles(a6),this.$fastController.removeStyles(l6)):(this.$fastController.addStyles(l6),this.$fastController.removeStyles(a6))}},c6=u6.compose({baseName:"slider-label",baseClass:Nn,template:AU,styles:jY})});var UY,WY=b(()=>{B();oe();ye();Te();Kt();UY=(i,e)=>F` + :host([hidden]) { + display: none; + } + + ${we("inline-flex")} :host { + align-items: center; + outline: none; + font-family: ${Me}; + margin: calc(${K} * 1px) 0; + ${""} user-select: none; + } + + :host([disabled]) { + opacity: ${wt}; + } + + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .switch, + :host([disabled]) .switch { + cursor: ${mt}; + } + + .switch { + position: relative; + outline: none; + box-sizing: border-box; + width: calc(${xe} * 1px); + height: calc((${xe} / 2 + ${K}) * 1px); + background: ${bn}; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${Dr}; + } + + :host([aria-invalid='true']) .switch { + border-color: ${$t}; + } + + .switch:hover { + background: ${Mr}; + border-color: ${wa}; + cursor: pointer; + } + + :host([disabled]) .switch:hover, + :host([readonly]) .switch:hover { + background: ${Mr}; + border-color: ${wa}; + cursor: ${mt}; + } + + :host([aria-invalid='true'][disabled]) .switch:hover, + :host([aria-invalid='true'][readonly]) .switch:hover { + border-color: ${ai}; + } + + :host(:not([disabled])) .switch:active { + background: ${Io}; + border-color: ${kh}; + } + + :host([aria-invalid='true']:not([disabled])) .switch:active { + border-color: ${Mi}; + } + + :host(:${X}) .switch { + outline-offset: 2px; + outline: solid calc(${be} * 1px) ${qe}; + } + + :host([aria-invalid='true']:${X}) .switch { + outline-color: ${At}; + } + + .checked-indicator { + position: absolute; + top: 5px; + bottom: 5px; + background: ${fe}; + border-radius: calc(${ge} * 1px); + transition: all 0.2s ease-in-out; + } + + .status-message { + color: ${fe}; + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + } + + :host([disabled]) .status-message, + :host([readonly]) .status-message { + cursor: ${mt}; + } + + .label { + color: ${fe}; + margin-inline-end: calc(${K} * 2px + 2px); + font-size: ${ke}; + line-height: ${Fe}; + cursor: pointer; + } + + .label__hidden { + display: none; + visibility: hidden; + } + + ::slotted([slot='checked-message']), + ::slotted([slot='unchecked-message']) { + margin-inline-start: calc(${K} * 2px + 2px); + } + + :host([aria-checked='true']) .checked-indicator { + background: ${Ai}; + } + + :host([aria-checked='true']) .switch { + background: ${ut}; + border-color: ${ut}; + } + + :host([aria-checked='true']:not([disabled])) .switch:hover { + background: ${Ti}; + border-color: ${Ti}; + } + + :host([aria-invalid='true'][aria-checked='true']) .switch { + background-color: ${$t}; + border-color: ${$t}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .switch:hover { + background-color: ${ai}; + border-color: ${ai}; + } + + :host([aria-checked='true']:not([disabled])) + .switch:hover + .checked-indicator { + background: ${mr}; + } + + :host([aria-checked='true']:not([disabled])) .switch:active { + background: ${Gt}; + border-color: ${Gt}; + } + + :host([aria-invalid='true'][aria-checked='true']:not([disabled])) + .switch:active { + background-color: ${Mi}; + border-color: ${Mi}; + } + + :host([aria-checked='true']:not([disabled])) + .switch:active + .checked-indicator { + background: ${Bi}; + } + + :host([aria-checked="true"]:${X}:not([disabled])) .switch { + outline: solid calc(${be} * 1px) ${qe}; + } + + :host([aria-invalid='true'][aria-checked="true"]:${X}:not([disabled])) .switch { + outline-color: ${At}; + } + + .unchecked-message { + display: block; + } + + .checked-message { + display: none; + } + + :host([aria-checked='true']) .unchecked-message { + display: none; + } + + :host([aria-checked='true']) .checked-message { + display: block; + } + `.withBehaviors(ve(F` + .checked-indicator, + :host(:not([disabled])) .switch:active .checked-indicator { + forced-color-adjust: none; + background: ${D.FieldText}; + } + .switch { + forced-color-adjust: none; + background: ${D.Field}; + border-color: ${D.FieldText}; + } + :host([aria-invalid='true']) .switch { + border-style: dashed; + } + :host(:not([disabled])) .switch:hover { + background: ${D.HighlightText}; + border-color: ${D.Highlight}; + } + :host([aria-checked='true']) .switch { + background: ${D.Highlight}; + border-color: ${D.Highlight}; + } + :host([aria-checked='true']:not([disabled])) .switch:hover, + :host(:not([disabled])) .switch:active { + background: ${D.HighlightText}; + border-color: ${D.Highlight}; + } + :host([aria-checked='true']) .checked-indicator { + background: ${D.HighlightText}; + } + :host([aria-checked='true']:not([disabled])) + .switch:hover + .checked-indicator { + background: ${D.Highlight}; + } + :host([disabled]) { + opacity: 1; + } + :host(:${X}) .switch { + border-color: ${D.Highlight}; + outline-offset: 2px; + outline: solid calc(${be} * 1px) ${D.FieldText}; + } + :host([aria-checked="true"]:${X}:not([disabled])) .switch { + outline: solid calc(${be} * 1px) ${D.FieldText}; + } + :host([disabled]) .checked-indicator { + background: ${D.GrayText}; + } + :host([disabled]) .switch { + background: ${D.Field}; + border-color: ${D.GrayText}; + } + `),new ms(F` + .checked-indicator { + left: 5px; + right: calc(((${xe} / 2) + 1) * 1px); + } + + :host([aria-checked='true']) .checked-indicator { + left: calc(((${xe} / 2) + 1) * 1px); + right: 5px; + } + `,F` + .checked-indicator { + right: 5px; + left: calc(((${xe} / 2) + 1) * 1px); + } + + :host([aria-checked='true']) .checked-indicator { + right: calc(((${xe} / 2) + 1) * 1px); + left: 5px; + } + `))});var h6,f6,p6=b(()=>{oe();WY();h6=class extends Vc{},f6=h6.compose({baseName:"switch",baseClass:Vc,template:NU,styles:UY,switch:` + + `})});var GY,KY=b(()=>{B();oe();Te();GY=(i,e)=>F` + ${we("block")} :host { + box-sizing: border-box; + font-size: ${ke}; + line-height: ${Fe}; + padding: 0 calc((6 + (${K} * 2 * ${_t})) * 1px); + } +`});var m6,g6,b6=b(()=>{oe();KY();m6=class extends Zp{},g6=m6.compose({baseName:"tab-panel",baseClass:Zp,template:jU,styles:GY})});var YY,XY=b(()=>{B();oe();ye();Te();ko();YY=(i,e)=>F` + ${we("inline-flex")} :host { + box-sizing: border-box; + font-family: ${Me}; + font-size: ${ke}; + line-height: ${Fe}; + height: calc(${xe} * 1px); + padding: calc(${K} * 5px) calc(${K} * 4px); + color: ${xa}; + fill: currentcolor; + border-radius: 0 0 calc(${ge} * 1px) + calc(${ge} * 1px); + border: calc(${de} * 1px) solid transparent; + align-items: center; + justify-content: center; + grid-row: 2; + cursor: pointer; + } + + :host(:hover) { + color: ${fe}; + fill: currentcolor; + } + + :host(:active) { + color: ${fe}; + fill: currentcolor; + } + + :host([disabled]) { + cursor: ${mt}; + opacity: ${wt}; + } + + :host([disabled]:hover) { + color: ${xa}; + background: ${Rr}; + } + + :host([aria-selected='true']) { + background: ${Tt}; + color: ${fe}; + fill: currentcolor; + } + + :host([aria-selected='true']:hover) { + background: ${ps}; + color: ${fe}; + fill: currentcolor; + } + + :host([aria-selected='true']:active) { + background: ${zl}; + color: ${fe}; + fill: currentcolor; + } + + :host(:${X}) { + outline: none; + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host(:focus) { + outline: none; + } + + :host(.vertical) { + justify-content: end; + grid-column: 2; + border-bottom-left-radius: 0; + border-top-right-radius: calc(${ge} * 1px); + } + + :host(.vertical[aria-selected='true']) { + z-index: 2; + } + + :host(.vertical:hover) { + color: ${fe}; + } + + :host(.vertical:active) { + color: ${fe}; + } + + :host(.vertical:hover[aria-selected='true']) { + } + `.withBehaviors(ve(F` + :host { + forced-color-adjust: none; + border-color: transparent; + color: ${D.ButtonText}; + fill: currentcolor; + } + :host(:hover), + :host(.vertical:hover), + :host([aria-selected='true']:hover) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + fill: currentcolor; + } + :host([aria-selected='true']) { + background: ${D.HighlightText}; + color: ${D.Highlight}; + fill: currentcolor; + } + :host(:${X}) { + border-color: ${D.ButtonText}; + box-shadow: none; + } + :host([disabled]), + :host([disabled]:hover) { + opacity: 1; + color: ${D.GrayText}; + background: ${D.ButtonFace}; + } + `))});var v6,_6,y6=b(()=>{oe();XY();v6=class extends gh{},_6=v6.compose({baseName:"tab",baseClass:gh,template:GU,styles:YY})});var JY,ZY=b(()=>{B();oe();ye();Te();Kt();JY=(i,e)=>F` + ${we("grid")} :host { + box-sizing: border-box; + font-family: ${Me}; + font-size: ${ke}; + line-height: ${Fe}; + color: ${fe}; + grid-template-columns: auto 1fr auto; + grid-template-rows: auto 1fr; + } + + .tablist { + display: grid; + grid-template-rows: auto auto; + grid-template-columns: auto; + position: relative; + width: max-content; + align-self: end; + padding: calc(${K} * 4px) calc(${K} * 4px) 0; + box-sizing: border-box; + } + + .start, + .end { + align-self: center; + } + + .activeIndicator { + grid-row: 1; + grid-column: 1; + width: 100%; + height: 4px; + justify-self: center; + background: ${ut}; + margin-top: 0; + border-radius: calc(${ge} * 1px) + calc(${ge} * 1px) 0 0; + } + + .activeIndicatorTransition { + transition: transform 0.01s ease-in-out; + } + + .tabpanel { + grid-row: 2; + grid-column-start: 1; + grid-column-end: 4; + position: relative; + } + + :host([orientation='vertical']) { + grid-template-rows: auto 1fr auto; + grid-template-columns: auto 1fr; + } + + :host([orientation='vertical']) .tablist { + grid-row-start: 2; + grid-row-end: 2; + display: grid; + grid-template-rows: auto; + grid-template-columns: auto 1fr; + position: relative; + width: max-content; + justify-self: end; + align-self: flex-start; + width: 100%; + padding: 0 calc(${K} * 4px) + calc((${xe} - ${K}) * 1px) 0; + } + + :host([orientation='vertical']) .tabpanel { + grid-column: 2; + grid-row-start: 1; + grid-row-end: 4; + } + + :host([orientation='vertical']) .end { + grid-row: 3; + } + + :host([orientation='vertical']) .activeIndicator { + grid-column: 1; + grid-row: 1; + width: 4px; + height: 100%; + margin-inline-end: 0px; + align-self: center; + background: ${ut}; + border-radius: calc(${ge} * 1px) 0 0 + calc(${ge} * 1px); + } + + :host([orientation='vertical']) .activeIndicatorTransition { + transition: transform 0.01s ease-in-out; + } + `.withBehaviors(ve(F` + .activeIndicator, + :host([orientation='vertical']) .activeIndicator { + forced-color-adjust: none; + background: ${D.Highlight}; + } + `))});var x6,w6,S6=b(()=>{oe();ZY();y6();b6();x6=class extends Bn{},w6=x6.compose({baseName:"tabs",baseClass:Bn,template:JU,styles:JY})});var QY,eX=b(()=>{B();oe();Te();Kt();QY=(i,e)=>F` + ${we("inline-block")} :host { + font-family: ${Me}; + outline: none; + user-select: none; + } + + .control { + box-sizing: border-box; + position: relative; + color: ${fe}; + background: ${bn}; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${Ch}; + height: calc(${xe} * 2px); + font: inherit; + font-size: ${ke}; + line-height: ${Fe}; + padding: calc(${K} * 2px + 1px); + width: 100%; + resize: none; + } + + :host([aria-invalid='true']) .control { + border-color: ${$t}; + } + + .control:hover:enabled { + background: ${Mr}; + border-color: ${Ih}; + } + + :host([aria-invalid='true']) .control:hover:enabled { + border-color: ${ai}; + } + + .control:active:enabled { + background: ${Io}; + border-color: ${Eh}; + } + + :host([aria-invalid='true']) .control:active:enabled { + border-color: ${Mi}; + } + + .control:hover, + .control:${X}, + .control:disabled, + .control:active { + outline: none; + } + + :host(:focus-within) .control { + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe}; + } + + :host([aria-invalid='true']:focus-within) .control { + border-color: ${At}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${At}; + } + + :host([appearance='filled']) .control { + background: ${Tt}; + } + + :host([appearance='filled']:hover:not([disabled])) .control { + background: ${ps}; + } + + :host([resize='both']) .control { + resize: both; + } + + :host([resize='horizontal']) .control { + resize: horizontal; + } + + :host([resize='vertical']) .control { + resize: vertical; + } + + .label { + display: block; + color: ${fe}; + cursor: pointer; + font-size: ${ke}; + line-height: ${Fe}; + margin-bottom: 4px; + } + + .label__hidden { + display: none; + visibility: hidden; + } + + :host([disabled]) .label, + :host([readonly]) .label, + :host([readonly]) .control, + :host([disabled]) .control { + cursor: ${mt}; + } + :host([disabled]) { + opacity: ${wt}; + } + :host([disabled]) .control { + border-color: ${Dr}; + } + + :host([cols]) { + width: initial; + } + + :host([rows]) .control { + height: initial; + } + `.withBehaviors(ve(F` + :host([disabled]) { + opacity: 1; + } + + :host([aria-invalid='true']) .control { + border-style: dashed; + } + `))});var mv,C6,I6=b(()=>{yn();B();oe();eX();mv=class extends Ni{constructor(){super(...arguments),this.appearance="outline"}};Z([A],mv.prototype,"appearance",void 0);C6=mv.compose({baseName:"text-area",baseClass:Ni,template:nW,styles:QY,shadowOptions:{delegatesFocus:!0}})});var tX,iX=b(()=>{B();Kt();tX=(i,e)=>F` + ${ql} + + .start, + .end { + display: flex; + } +`});var gv,E6,k6=b(()=>{yn();B();oe();iX();gv=class extends pr{constructor(){super(...arguments),this.appearance="outline"}};Z([A],gv.prototype,"appearance",void 0);E6=gv.compose({baseName:"text-field",baseClass:pr,template:aW,styles:tX,shadowOptions:{delegatesFocus:!0}})});var rX,nX=b(()=>{B();oe();ye();Te();rX=(i,e)=>F` + ${we("inline-flex")} :host { + --toolbar-item-gap: calc( + (var(--design-unit) + calc(var(--density) + 2)) * 1px + ); + background-color: ${ze}; + border-radius: calc(${ge} * 1px); + fill: currentcolor; + padding: var(--toolbar-item-gap); + } + + :host(${X}) { + outline: calc(${de} * 1px) solid ${qe}; + } + + .positioning-region { + align-items: flex-start; + display: inline-flex; + flex-flow: row wrap; + justify-content: flex-start; + width: 100%; + height: 100%; + } + + :host([orientation='vertical']) .positioning-region { + flex-direction: column; + } + + ::slotted(:not([slot])) { + flex: 0 0 auto; + margin: 0 var(--toolbar-item-gap); + } + + :host([orientation='vertical']) ::slotted(:not([slot])) { + margin: var(--toolbar-item-gap) 0; + } + + .start, + .end { + display: flex; + margin: auto; + margin-inline: 0; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + } + `.withBehaviors(ve(F` + :host(:${X}) { + box-shadow: 0 0 0 calc(${be} * 1px) + ${D.Highlight}; + color: ${D.ButtonText}; + forced-color-adjust: none; + } + `))});var sX,Hn,Rh,T6,om,A6=b(()=>{yn();B();oe();ye();u1();Te();nX();sX=Object.freeze({[hn.ArrowUp]:{[it.vertical]:-1},[hn.ArrowDown]:{[it.vertical]:1},[hn.ArrowLeft]:{[it.horizontal]:{[je.ltr]:-1,[je.rtl]:1}},[hn.ArrowRight]:{[it.horizontal]:{[je.ltr]:1,[je.rtl]:-1}}}),Hn=class extends ee{constructor(){super(...arguments),this._activeIndex=0,this.direction=je.ltr,this.orientation=it.horizontal}get activeIndex(){return _e.track(this,"activeIndex"),this._activeIndex}set activeIndex(e){this.$fastController.isConnected&&(this._activeIndex=_o(0,this.focusableElements.length-1,e),_e.notify(this,"activeIndex"))}slottedItemsChanged(){this.$fastController.isConnected&&this.reduceFocusableElements()}mouseDownHandler(e){var t;let r=(t=this.focusableElements)===null||t===void 0?void 0:t.findIndex(n=>n.contains(e.target));return r>-1&&this.activeIndex!==r&&this.setFocusedElement(r),!0}childItemsChanged(e,t){this.$fastController.isConnected&&this.reduceFocusableElements()}connectedCallback(){super.connectedCallback(),this.direction=Yr(this)}focusinHandler(e){let t=e.relatedTarget;!t||this.contains(t)||this.setFocusedElement()}getDirectionalIncrementer(e){var t,r,n,s,o;return(o=(n=(r=(t=sX[e])===null||t===void 0?void 0:t[this.orientation])===null||r===void 0?void 0:r[this.direction])!==null&&n!==void 0?n:(s=sX[e])===null||s===void 0?void 0:s[this.orientation])!==null&&o!==void 0?o:0}keydownHandler(e){let t=e.key;if(!(t in hn)||e.defaultPrevented||e.shiftKey)return!0;let r=this.getDirectionalIncrementer(t);if(!r)return!e.target.closest("[role=radiogroup]");let n=this.activeIndex+r;return this.focusableElements[n]&&e.preventDefault(),this.setFocusedElement(n),!0}get allSlottedItems(){return[...this.start.assignedElements(),...this.slottedItems,...this.end.assignedElements()]}reduceFocusableElements(){var e;let t=(e=this.focusableElements)===null||e===void 0?void 0:e[this.activeIndex];this.focusableElements=this.allSlottedItems.reduce(Hn.reduceFocusableItems,[]);let r=this.focusableElements.indexOf(t);this.activeIndex=Math.max(0,r),this.setFocusableElements()}setFocusedElement(e=this.activeIndex){this.activeIndex=e,this.setFocusableElements(),this.focusableElements[this.activeIndex]&&this.contains(document.activeElement)&&this.focusableElements[this.activeIndex].focus()}static reduceFocusableItems(e,t){var r,n,s,o;let a=t.getAttribute("role")==="radio",l=(n=(r=t.$fastController)===null||r===void 0?void 0:r.definition.shadowOptions)===null||n===void 0?void 0:n.delegatesFocus,u=Array.from((o=(s=t.shadowRoot)===null||s===void 0?void 0:s.querySelectorAll("*"))!==null&&o!==void 0?o:[]).some(c=>ph(c));return!t.hasAttribute("disabled")&&!t.hasAttribute("hidden")&&(ph(t)||a||l||u)?(e.push(t),e):t.childElementCount?e.concat(Array.from(t.children).reduce(Hn.reduceFocusableItems,[])):e}setFocusableElements(){this.$fastController.isConnected&&this.focusableElements.length>0&&this.focusableElements.forEach((e,t)=>{e.tabIndex=this.activeIndex===t?0:-1})}};Z([P],Hn.prototype,"direction",void 0);Z([A],Hn.prototype,"orientation",void 0);Z([P],Hn.prototype,"slottedItems",void 0);Z([P],Hn.prototype,"slottedLabel",void 0);Z([P],Hn.prototype,"childItems",void 0);Rh=class{};Z([A({attribute:"aria-labelledby"})],Rh.prototype,"ariaLabelledby",void 0);Z([A({attribute:"aria-label"})],Rh.prototype,"ariaLabel",void 0);He(Rh,at);He(Hn,ht,Rh);T6=class extends Hn{connectedCallback(){super.connectedCallback();let e=ha(this);e&&ze.setValueFor(this,t=>im.getValueFor(t).evaluate(t,ze.getValueFor(e)))}},om=T6.compose({baseName:"toolbar",baseClass:Hn,template:cW,styles:rX,shadowOptions:{delegatesFocus:!0}})});var oX,aX=b(()=>{B();oe();Te();oX=(i,e)=>{let t=i.tagFor(We);return F` + :host { + contain: size; + overflow: visible; + height: 0; + width: 0; + } + + .tooltip { + box-sizing: border-box; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${zi}; + box-shadow: 0 0 0 1px ${zi} inset; + background: ${Tt}; + color: ${fe}; + padding: 4px; + height: fit-content; + width: fit-content; + font-family: ${Me}; + font-size: ${ke}; + line-height: ${Fe}; + white-space: nowrap; + /* TODO: a mechanism to manage z-index across components + https://github.com/microsoft/fast/issues/3813 */ + z-index: 10000; + } + + ${t} { + display: flex; + justify-content: center; + align-items: center; + overflow: visible; + flex-direction: row; + } + + ${t}.right, + ${t}.left { + flex-direction: column; + } + + ${t}.top .tooltip { + margin-bottom: 4px; + } + + ${t}.bottom .tooltip { + margin-top: 4px; + } + + ${t}.left .tooltip { + margin-right: 4px; + } + + ${t}.right .tooltip { + margin-left: 4px; + } + + ${t}.top.left .tooltip, + ${t}.top.right .tooltip { + margin-bottom: 0px; + } + + ${t}.bottom.left .tooltip, + ${t}.bottom.right .tooltip { + margin-top: 0px; + } + + ${t}.top.left .tooltip, + ${t}.bottom.left .tooltip { + margin-right: 0px; + } + + ${t}.top.right .tooltip, + ${t}.bottom.right .tooltip { + margin-left: 0px; + } + `.withBehaviors(ve(F` + :host([disabled]) { + opacity: 1; + } + `))}});var M6,R6,D6=b(()=>{oe();aX();M6=class extends Wt{},R6=M6.compose({baseName:"tooltip",baseClass:Wt,template:bW,styles:oX})});var Dh,LSe,$Se,PSe,FSe,lX,uX=b(()=>{B();oe();ye();Te();Kt();Dh=$p`(((${zn} + ${_t}) * 0.5 + 2) * ${K})`,LSe=F` + .expand-collapse-glyph { + transform: rotate(0deg); + } + :host(.nested) .expand-collapse-button { + left: var( + --expand-collapse-button-nested-width, + calc( + ( + ${Dh} + + ((${zn} + ${_t}) * 1.25) + ) * -1px + ) + ); + } + :host([selected])::after { + left: calc(${be} * 1px); + } + :host([expanded]) > .positioning-region .expand-collapse-glyph { + transform: rotate(90deg); + } +`,$Se=F` + .expand-collapse-glyph { + transform: rotate(180deg); + } + :host(.nested) .expand-collapse-button { + right: var( + --expand-collapse-button-nested-width, + calc( + ( + ${Dh} + + ((${zn} + ${_t}) * 1.25) + ) * -1px + ) + ); + } + :host([selected])::after { + right: calc(${be} * 1px); + } + :host([expanded]) > .positioning-region .expand-collapse-glyph { + transform: rotate(90deg); + } +`,PSe=Pn.create("tree-item-expand-collapse-hover").withDefault(i=>{let e=Eo.getValueFor(i);return e.evaluate(i,e.evaluate(i).hover).hover}),FSe=Pn.create("tree-item-expand-collapse-selected-hover").withDefault(i=>{let e=ya.getValueFor(i);return Eo.getValueFor(i).evaluate(i,e.evaluate(i).rest).hover}),lX=(i,e)=>F` + /** + * This animation exists because when tree item children are conditionally loaded + * there is a visual bug where the DOM exists but styles have not yet been applied (essentially FOUC). + * This subtle animation provides a ever so slight timing adjustment for loading that solves the issue. + */ + @keyframes treeItemLoading { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } + } + + ${we("block")} :host { + contain: content; + position: relative; + outline: none; + color: ${fe}; + background: ${Rr}; + cursor: pointer; + font-family: ${Me}; + --tree-item-nested-width: 0; + } + + :host(:focus) > .positioning-region { + outline: none; + } + + :host(:focus) .content-region { + outline: none; + } + + :host(:${X}) .positioning-region { + border-color: ${qe}; + box-shadow: 0 0 0 calc((${be} - ${de}) * 1px) + ${qe} inset; + color: ${fe}; + } + + .positioning-region { + display: flex; + position: relative; + box-sizing: border-box; + background: ${Rr}; + border: transparent calc(${de} * 1px) solid; + border-radius: calc(${ge} * 1px); + height: calc((${xe} + 1) * 1px); + } + + .positioning-region::before { + content: ''; + display: block; + width: var(--tree-item-nested-width); + flex-shrink: 0; + } + + :host(:not([disabled])) .positioning-region:hover { + background: ${vn}; + } + + :host(:not([disabled])) .positioning-region:active { + background: ${_n}; + } + + .content-region { + display: inline-flex; + align-items: center; + white-space: nowrap; + width: 100%; + min-width: 0; + height: calc(${xe} * 1px); + margin-inline-start: calc(${K} * 2px + 8px); + font-size: ${ke}; + line-height: ${Fe}; + font-weight: 400; + } + + .items { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + font-size: calc(1em + (${K} + 16) * 1px); + } + + .expand-collapse-button { + background: none; + border: none; + outline: none; + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: calc(${Dh} * 1px); + height: calc(${Dh} * 1px); + padding: 0; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + margin-left: 6px; + margin-right: 6px; + } + + .expand-collapse-glyph { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: calc((16 + ${_t}) * 1px); + height: calc((16 + ${_t}) * 1px); + transition: transform 0.1s linear; + + pointer-events: none; + fill: currentcolor; + } + + .start, + .end { + display: flex; + fill: currentcolor; + } + + ::slotted(svg) { + /* TODO: adaptive typography https://github.com/microsoft/fast/issues/2432 */ + width: 16px; + height: 16px; + + /* Something like that would do if the typography is adaptive + font-size: inherit; + width: ${Nl}; + height: ${Nl}; + */ + } + + .start { + /* TODO: horizontalSpacing https://github.com/microsoft/fast/issues/2766 */ + margin-inline-end: calc(${K} * 2px + 2px); + } + + .end { + /* TODO: horizontalSpacing https://github.com/microsoft/fast/issues/2766 */ + margin-inline-start: calc(${K} * 2px + 2px); + } + + :host([expanded]) > .items { + animation: treeItemLoading ease-in 10ms; + animation-iteration-count: 1; + animation-fill-mode: forwards; + } + + :host([disabled]) .content-region { + opacity: ${wt}; + cursor: ${mt}; + } + + :host(.nested) .content-region { + position: relative; + /* Add left margin to collapse button size */ + margin-inline-start: calc( + ( + ${Dh} + + ((${zn} + ${_t}) * 1.25) + ) * 1px + ); + } + + :host(.nested) .expand-collapse-button { + position: absolute; + } + + :host(.nested:not([disabled])) .expand-collapse-button:hover { + background: ${PSe}; + } + + :host([selected]) .positioning-region { + background: ${Tt}; + } + + :host([selected]:not([disabled])) .positioning-region:hover { + background: ${ps}; + } + + :host([selected]:not([disabled])) .positioning-region:active { + background: ${zl}; + } + + :host([selected]:not([disabled])) .expand-collapse-button:hover { + background: ${FSe}; + } + + :host([selected])::after { + /* The background needs to be calculated based on the selected background state + for this control. We currently have no way of changing that, so setting to + accent-foreground-rest for the time being */ + background: ${oi}; + border-radius: calc(${ge} * 1px); + content: ''; + display: block; + position: absolute; + top: calc((${xe} / 4) * 1px); + width: 3px; + height: calc((${xe} / 2) * 1px); + } + + ::slotted(${i.tagFor(Lt)}) { + --tree-item-nested-width: 1em; + --expand-collapse-button-nested-width: calc( + ( + ${Dh} + + ((${zn} + ${_t}) * 1.25) + ) * -1px + ); + } + `.withBehaviors(new ms(LSe,$Se),ve(F` + :host { + forced-color-adjust: none; + border-color: transparent; + background: ${D.Field}; + color: ${D.FieldText}; + } + :host .content-region .expand-collapse-glyph { + fill: ${D.FieldText}; + } + :host .positioning-region:hover, + :host([selected]) .positioning-region { + background: ${D.Highlight}; + } + :host .positioning-region:hover .content-region, + :host([selected]) .positioning-region .content-region { + color: ${D.HighlightText}; + } + :host .positioning-region:hover .content-region .expand-collapse-glyph, + :host .positioning-region:hover .content-region .start, + :host .positioning-region:hover .content-region .end, + :host([selected]) .content-region .expand-collapse-glyph, + :host([selected]) .content-region .start, + :host([selected]) .content-region .end { + fill: ${D.HighlightText}; + } + :host([selected])::after { + background: ${D.Field}; + } + :host(:${X}) .positioning-region { + border-color: ${D.FieldText}; + box-shadow: 0 0 0 2px inset ${D.Field}; + color: ${D.FieldText}; + } + :host([disabled]) .content-region, + :host([disabled]) .positioning-region:hover .content-region { + opacity: 1; + color: ${D.GrayText}; + } + :host([disabled]) .content-region .expand-collapse-glyph, + :host([disabled]) .content-region .start, + :host([disabled]) .content-region .end, + :host([disabled]) + .positioning-region:hover + .content-region + .expand-collapse-glyph, + :host([disabled]) .positioning-region:hover .content-region .start, + :host([disabled]) .positioning-region:hover .content-region .end { + fill: ${D.GrayText}; + } + :host([disabled]) .positioning-region:hover { + background: ${D.Field}; + } + .expand-collapse-glyph, + .start, + .end { + fill: ${D.FieldText}; + } + :host(.nested) .expand-collapse-button:hover { + background: ${D.Field}; + } + :host(.nested) .expand-collapse-button:hover .expand-collapse-glyph { + fill: ${D.FieldText}; + } + `))});var O6,L6,$6=b(()=>{oe();uX();O6=class extends Lt{},L6=O6.compose({baseName:"tree-item",baseClass:Lt,template:wW,styles:lX,expandCollapseGlyph:` + + + + `})});var cX,dX=b(()=>{B();oe();cX=(i,e)=>F` + ${we("flex")} :host { + flex-direction: column; + align-items: stretch; + min-width: fit-content; + font-size: 0; + } + + :host:focus-visible { + outline: none; + } +`});var P6,F6,N6=b(()=>{oe();dX();P6=class extends Dl{handleClick(e){if(e.defaultPrevented)return;if(!(e.target instanceof Element))return!0;let t=e.target;for(;t&&!Hs(t);)t=t.parentElement,t===this&&(t=null);t&&!t.disabled&&(t.selected=!0)}},F6=P6.compose({baseName:"tree-view",baseClass:Dl,template:IW,styles:cX})});var hX,fX=b(()=>{B();Te();Kt();hX=(i,e)=>F` + .region { + z-index: 1000; + overflow: hidden; + display: flex; + font-family: ${Me}; + font-size: ${ke}; + } + + .loaded { + opacity: 1; + pointer-events: none; + } + + .loading-display, + .no-options-display { + background: ${ze}; + width: 100%; + min-height: calc(${xe} * 1px); + display: flex; + flex-direction: column; + align-items: center; + justify-items: center; + padding: calc(${K} * 1px); + } + + .loading-progress { + width: 42px; + height: 42px; + } + + .bottom { + flex-direction: column; + } + + .top { + flex-direction: column-reverse; + } +`});var pX,mX=b(()=>{B();oe();ye();Te();Kt();pX=(i,e)=>F` + :host { + background: ${ze}; + --elevation: 11; + /* TODO: a mechanism to manage z-index across components + https://github.com/microsoft/fast/issues/3813 */ + z-index: 1000; + display: flex; + width: 100%; + max-height: 100%; + min-height: 58px; + box-sizing: border-box; + flex-direction: column; + overflow-y: auto; + overflow-x: hidden; + pointer-events: auto; + border-radius: calc(${ge} * 1px); + padding: calc(${K} * 1px) 0; + border: calc(${de} * 1px) solid transparent; + ${Vs} + } + + .suggestions-available-alert { + height: 0; + opacity: 0; + overflow: hidden; + } + `.withBehaviors(ve(F` + :host { + background: ${D.Canvas}; + border-color: ${D.CanvasText}; + } + `))});var gX,bX=b(()=>{B();oe();ye();Te();Kt();gX=(i,e)=>F` + :host { + display: flex; + align-items: center; + justify-items: center; + font-family: ${Me}; + border-radius: calc(${ge} * 1px); + border: calc(${be} * 1px) solid transparent; + box-sizing: border-box; + background: ${Rr}; + color: ${fe}; + cursor: pointer; + fill: currentcolor; + font-size: ${ke}; + min-height: calc(${xe} * 1px); + line-height: ${Fe}; + margin: 0 calc(${K} * 1px); + outline: none; + overflow: hidden; + padding: 0 calc(${K} * 2.25px); + user-select: none; + white-space: nowrap; + } + + :host(:${X}[role="listitem"]) { + border-color: ${zi}; + background: ${Sh}; + } + + :host(:hover) { + background: ${vn}; + } + + :host(:active) { + background: ${_n}; + } + + :host([aria-selected='true']) { + background: ${ut}; + color: ${Ai}; + } + + :host([aria-selected='true']:hover) { + background: ${Ti}; + color: ${mr}; + } + + :host([aria-selected='true']:active) { + background: ${Gt}; + color: ${Bi}; + } + `.withBehaviors(ve(F` + :host { + border-color: transparent; + forced-color-adjust: none; + color: ${D.ButtonText}; + fill: currentcolor; + } + + :host(:not([aria-selected='true']):hover), + :host([aria-selected='true']) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([disabled]), + :host([disabled]:not([aria-selected='true']):hover) { + background: ${D.Canvas}; + color: ${D.GrayText}; + fill: currentcolor; + opacity: 1; + } + `))});var vX,_X=b(()=>{B();oe();ye();Te();Kt();vX=(i,e)=>F` + :host { + display: flex; + flex-direction: row; + column-gap: calc(${K} * 1px); + row-gap: calc(${K} * 1px); + flex-wrap: wrap; + } + + ::slotted([role="combobox"]) { + min-width: 260px; + width: auto; + box-sizing: border-box; + color: ${fe}; + background: ${bn}; + border-radius: calc(${ge} * 1px); + border: calc(${de} * 1px) solid ${ut}; + height: calc(${xe} * 1px); + font-family: ${Me}; + outline: none; + user-select: none; + font-size: ${ke}; + line-height: ${Fe}; + padding: 0 calc(${K} * 2px + 1px); + } + + ::slotted([role="combobox"]:active) { { + background: ${Mr}; + border-color: ${Gt}; + } + + ::slotted([role="combobox"]:focus-within) { + border-color: ${zi}; + box-shadow: 0 0 0 1px ${zi} inset; + } + `.withBehaviors(ve(F` + ::slotted([role='combobox']:active) { + background: ${D.Field}; + border-color: ${D.Highlight}; + } + ::slotted([role='combobox']:focus-within) { + border-color: ${D.Highlight}; + box-shadow: 0 0 0 1px ${D.Highlight} inset; + } + ::slotted(input:placeholder) { + color: ${D.GrayText}; + } + `))});var yX,xX=b(()=>{B();oe();ye();Te();Kt();yX=(i,e)=>F` + :host { + display: flex; + align-items: center; + justify-items: center; + font-family: ${Me}; + border-radius: calc(${ge} * 1px); + border: calc(${be} * 1px) solid transparent; + box-sizing: border-box; + background: ${Rr}; + color: ${fe}; + cursor: pointer; + fill: currentcolor; + font-size: ${ke}; + height: calc(${xe} * 1px); + line-height: ${Fe}; + outline: none; + overflow: hidden; + padding: 0 calc(${K} * 2.25px); + user-select: none; + white-space: nowrap; + } + + :host(:hover) { + background: ${vn}; + } + + :host(:active) { + background: ${_n}; + } + + :host(:${X}) { + background: ${Sh}; + border-color: ${zi}; + } + + :host([aria-selected='true']) { + background: ${ut}; + color: ${Bi}; + } + `.withBehaviors(ve(F` + :host { + border-color: transparent; + forced-color-adjust: none; + color: ${D.ButtonText}; + fill: currentcolor; + } + + :host(:not([aria-selected='true']):hover), + :host([aria-selected='true']) { + background: ${D.Highlight}; + color: ${D.HighlightText}; + } + + :host([disabled]), + :host([disabled]:not([aria-selected='true']):hover) { + background: ${D.Canvas}; + color: ${D.GrayText}; + fill: currentcolor; + opacity: 1; + } + `))});var B6,V6,z6,U6,q6,W6,H6,G6,j6,K6,Y6=b(()=>{oe();Te();fX();mX();bX();_X();xX();B6=class extends rt{},V6=B6.compose({baseName:"draft-picker",baseClass:rt,template:wV,styles:hX,shadowOptions:{}}),z6=class extends Ns{connectedCallback(){ze.setValueFor(this,wh),super.connectedCallback()}},U6=z6.compose({baseName:"draft-picker-menu",baseClass:Ns,template:EV,styles:pX}),q6=class extends Bs{},W6=q6.compose({baseName:"draft-picker-menu-option",baseClass:Bs,template:TV,styles:gX}),H6=class extends Ml{},G6=H6.compose({baseName:"draft-picker-list",baseClass:Ml,template:MV,styles:vX}),j6=class extends zs{},K6=j6.compose({baseName:"draft-picker-list-item",baseClass:zs,template:DV,styles:yX})});var wX=b(()=>{wS();_S();MS();OS();$S();NS();qS();VS();US();KS();JS();tC();lC();mC();_C();xC();CC();kC();MC();OC();$C();NC();qC();VC();GC();XC();ZC();e6();r6();o6();d6();p6();b6();y6();S6();I6();k6();A6();D6();$6();N6();Y6()});function ie(i){return M3.getOrCreate(i).withPrefix("jp")}var SX=b(()=>{oe()});var $e=b(()=>{iK();wX();SX();wS();MS();OS();$S();NS();qS();VS();US();KS();JS();tC();mC();lC();gC();gC();Te();_C();xC();CC();kC();MC();OC();$C();NC();qC();VC();GC();XC();ZC();e6();r6();o6();d6();ov();p6();S6();I6();k6();A6();D6();N6();$6();Y6()});function $(i,e,t){(0,bv.useEffect)(()=>{if(t!==void 0&&i.current&&i.current[e]!==t)try{i.current[e]=t}catch(r){console.warn(r)}},[t,i.current])}function Ee(i,e,t){(0,bv.useLayoutEffect)(()=>(t!==void 0&&i?.current?.addEventListener(e,t),()=>{t?.cancel&&t.cancel(),i?.current?.removeEventListener(e,t)}),[e,t,i.current])}var bv,Je=b(()=>{bv=N(ue())});var Hl,Z_t,CX=b(()=>{$e();Hl=N(ue());Je();ie().register(xS());Z_t=(0,Hl.forwardRef)((i,e)=>{let t=(0,Hl.useRef)(null),{className:r,expandMode:n,...s}=i;return Ee(t,"change",i.onChange),(0,Hl.useImperativeHandle)(e,()=>t.current,[t.current]),Hl.default.createElement("jp-accordion",{ref:t,...s,"expand-mode":i.expandMode||i["expand-mode"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var jl,ryt,IX=b(()=>{$e();jl=N(ue());Je();ie().register(vS());ryt=(0,jl.forwardRef)((i,e)=>{let t=(0,jl.useRef)(null),{className:r,headingLevel:n,id:s,expanded:o,...a}=i;return Ee(t,"change",i.onChange),$(t,"expanded",i.expanded),(0,jl.useImperativeHandle)(e,()=>t.current,[t.current]),jl.default.createElement("jp-accordion-item",{ref:t,...a,"heading-level":i.headingLevel||i["heading-level"],id:i.id,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Vl,lyt,EX=b(()=>{$e();Vl=N(ue());Je();ie().register(DS());lyt=(0,Vl.forwardRef)((i,e)=>{let t=(0,Vl.useRef)(null),{className:r,horizontalViewportLock:n,horizontalInset:s,verticalViewportLock:o,verticalInset:a,fixedPlacement:l,anchor:u,viewport:c,horizontalPositioningMode:d,horizontalDefaultPosition:h,horizontalThreshold:f,horizontalScaling:p,verticalPositioningMode:g,verticalDefaultPosition:v,verticalThreshold:_,verticalScaling:x,autoUpdateMode:y,anchorElement:C,viewportElement:S,verticalPosition:R,horizontalPosition:I,update:E,...w}=i;return Ee(t,"loaded",i.onLoaded),Ee(t,"positionchange",i.onPositionchange),$(t,"anchorElement",i.anchorElement),$(t,"viewportElement",i.viewportElement),$(t,"verticalPosition",i.verticalPosition),$(t,"horizontalPosition",i.horizontalPosition),$(t,"update",i.update),(0,Vl.useImperativeHandle)(e,()=>t.current,[t.current]),Vl.default.createElement("jp-anchored-region",{ref:t,...w,anchor:i.anchor,viewport:i.viewport,"horizontal-positioning-mode":i.horizontalPositioningMode||i["horizontal-positioning-mode"],"horizontal-default-position":i.horizontalDefaultPosition||i["horizontal-default-position"],"horizontal-threshold":i.horizontalThreshold||i["horizontal-threshold"],"horizontal-scaling":i.horizontalScaling||i["horizontal-scaling"],"vertical-positioning-mode":i.verticalPositioningMode||i["vertical-positioning-mode"],"vertical-default-position":i.verticalDefaultPosition||i["vertical-default-position"],"vertical-threshold":i.verticalThreshold||i["vertical-threshold"],"vertical-scaling":i.verticalScaling||i["vertical-scaling"],"auto-update-mode":i.autoUpdateMode||i["auto-update-mode"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"horizontal-viewport-lock":i.horizontalViewportLock?"":void 0,"horizontal-inset":i.horizontalInset?"":void 0,"vertical-viewport-lock":i.verticalViewportLock?"":void 0,"vertical-inset":i.verticalInset?"":void 0,"fixed-placement":i.fixedPlacement?"":void 0,style:{...i.style}},i.children)})});var Ul,fyt,kX=b(()=>{$e();Ul=N(ue());Je();ie().register(AS());fyt=(0,Ul.forwardRef)((i,e)=>{let t=(0,Ul.useRef)(null),{className:r,appearance:n,download:s,href:o,hreflang:a,ping:l,referrerpolicy:u,rel:c,target:d,type:h,control:f,...p}=i;return $(t,"control",i.control),(0,Ul.useImperativeHandle)(e,()=>t.current,[t.current]),Ul.default.createElement("jp-anchor",{ref:t,...p,appearance:i.appearance,download:i.download,href:i.href,hreflang:i.hreflang,ping:i.ping,referrerpolicy:i.referrerpolicy,rel:i.rel,target:i.target,type:i.type,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Wl,byt,TX=b(()=>{$e();Wl=N(ue());ie().register(LS());byt=(0,Wl.forwardRef)((i,e)=>{let t=(0,Wl.useRef)(null),{className:r,src:n,alt:s,fill:o,color:a,link:l,shape:u,...c}=i;return(0,Wl.useImperativeHandle)(e,()=>t.current,[t.current]),Wl.default.createElement("jp-avatar",{ref:t,...c,src:i.src,alt:i.alt,fill:i.fill,color:i.color,link:i.link,shape:i.shape,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Gl,wyt,AX=b(()=>{$e();Gl=N(ue());Je();ie().register(FS());wyt=(0,Gl.forwardRef)((i,e)=>{let t=(0,Gl.useRef)(null),{className:r,fill:n,color:s,circular:o,...a}=i;return $(t,"circular",i.circular),(0,Gl.useImperativeHandle)(e,()=>t.current,[t.current]),Gl.default.createElement("jp-badge",{ref:t,...a,fill:i.fill,color:i.color,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Kl,Eyt,MX=b(()=>{$e();Kl=N(ue());ie().register(zS());Eyt=(0,Kl.forwardRef)((i,e)=>{let t=(0,Kl.useRef)(null),{className:r,...n}=i;return(0,Kl.useImperativeHandle)(e,()=>t.current,[t.current]),Kl.default.createElement("jp-breadcrumb",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Yl,Ryt,RX=b(()=>{$e();Yl=N(ue());Je();ie().register(jS());Ryt=(0,Yl.forwardRef)((i,e)=>{let t=(0,Yl.useRef)(null),{className:r,download:n,href:s,hreflang:o,ping:a,referrerpolicy:l,rel:u,target:c,type:d,control:h,...f}=i;return $(t,"control",i.control),(0,Yl.useImperativeHandle)(e,()=>t.current,[t.current]),Yl.default.createElement("jp-breadcrumb-item",{ref:t,...f,download:i.download,href:i.href,hreflang:i.hreflang,ping:i.ping,referrerpolicy:i.referrerpolicy,rel:i.rel,target:i.target,type:i.type,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Xl,DX,OX=b(()=>{$e();Xl=N(ue());Je();ie().register(sm());DX=(0,Xl.forwardRef)((i,e)=>{let t=(0,Xl.useRef)(null),{className:r,minimal:n,appearance:s,form:o,formaction:a,formenctype:l,formmethod:u,formtarget:c,type:d,autofocus:h,formnovalidate:f,defaultSlottedContent:p,disabled:g,required:v,..._}=i;return $(t,"autofocus",i.autofocus),$(t,"formnovalidate",i.formnovalidate),$(t,"defaultSlottedContent",i.defaultSlottedContent),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,Xl.useImperativeHandle)(e,()=>t.current,[t.current]),Xl.default.createElement("jp-button",{ref:t,..._,appearance:i.appearance,form:i.form,formaction:i.formaction,formenctype:i.formenctype,formmethod:i.formmethod,formtarget:i.formtarget,type:i.type,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,minimal:i.minimal?"":void 0,style:{...i.style}},i.children)})});var Jl,Byt,LX=b(()=>{$e();Jl=N(ue());ie().register(GS());Byt=(0,Jl.forwardRef)((i,e)=>{let t=(0,Jl.useRef)(null),{className:r,...n}=i;return(0,Jl.useImperativeHandle)(e,()=>t.current,[t.current]),Jl.default.createElement("jp-card",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Zl,Vyt,$X=b(()=>{$e();Zl=N(ue());Je();ie().register(XS());Vyt=(0,Zl.forwardRef)((i,e)=>{let t=(0,Zl.useRef)(null),{className:r,readonly:n,readOnly:s,indeterminate:o,checked:a,disabled:l,required:u,...c}=i;Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"indeterminate",i.indeterminate),$(t,"checked",i.checked),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,Zl.useImperativeHandle)(e,()=>t.current,[t.current]);let d=r??"";return t.current?.indeterminate&&(d+=" indeterminate"),Zl.default.createElement("jp-checkbox",{ref:t,...c,class:d.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var Ql,Kyt,PX=b(()=>{$e();Ql=N(ue());Je();ie().register(eC());Kyt=(0,Ql.forwardRef)((i,e)=>{let t=(0,Ql.useRef)(null),{className:r,autowidth:n,minimal:s,open:o,autocomplete:a,placeholder:l,position:u,autoWidth:c,filteredOptions:d,options:h,value:f,length:p,disabled:g,selectedIndex:v,selectedOptions:_,required:x,...y}=i;return Ee(t,"input",i.onInput),Ee(t,"change",i.onChange),$(t,"autoWidth",i.autoWidth),$(t,"filteredOptions",i.filteredOptions),$(t,"options",i.options),$(t,"value",i.value),$(t,"length",i.length),$(t,"disabled",i.disabled),$(t,"selectedIndex",i.selectedIndex),$(t,"selectedOptions",i.selectedOptions),$(t,"required",i.required),(0,Ql.useImperativeHandle)(e,()=>t.current,[t.current]),Ql.default.createElement("jp-combobox",{ref:t,...y,autocomplete:i.autocomplete,placeholder:i.placeholder,position:i.position,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,autowidth:i.autowidth?"":void 0,minimal:i.minimal?"":void 0,open:i.open?"":void 0,style:{...i.style}},i.children)})});var eu,Qyt,FX=b(()=>{$e();eu=N(ue());Je();ie().register(pC());Qyt=(0,eu.forwardRef)((i,e)=>{let t=(0,eu.useRef)(null),{className:r,autofocus:n,step:s,max:o,min:a,disabled:l,required:u,...c}=i;return Ee(t,"input",i.onInput),Ee(t,"change",i.onChange),$(t,"autofocus",i.autofocus),$(t,"step",i.step),$(t,"max",i.max),$(t,"min",i.min),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,eu.useImperativeHandle)(e,()=>t.current,[t.current]),eu.default.createElement("jp-date-field",{ref:t,...c,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var tu,nxt,NX=b(()=>{$e();tu=N(ue());Je();ie().register(sC());nxt=(0,tu.forwardRef)((i,e)=>{let t=(0,tu.useRef)(null),{className:r,cellType:n,gridColumn:s,rowData:o,columnDefinition:a,...l}=i;Ee(t,"cell-focused",i.onCellFocused),$(t,"rowData",i.rowData),$(t,"columnDefinition",i.columnDefinition),(0,tu.useImperativeHandle)(e,()=>t.current,[t.current]);let u=r??"";return t.current?.cellType==="columnheader"&&(u+=" column-header"),tu.default.createElement("jp-data-grid-cell",{ref:t,...l,"cell-type":i.cellType||i["cell-type"],"grid-column":i.gridColumn||i["grid-column"],class:u.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var iu,uxt,BX=b(()=>{$e();iu=N(ue());Je();ie().register(oC());uxt=(0,iu.forwardRef)((i,e)=>{let t=(0,iu.useRef)(null),{className:r,gridTemplateColumns:n,rowType:s,rowData:o,columnDefinitions:a,cellItemTemplate:l,headerCellItemTemplate:u,rowIndex:c,...d}=i;Ee(t,"row-focused",i.onRowFocused),$(t,"rowData",i.rowData),$(t,"columnDefinitions",i.columnDefinitions),$(t,"cellItemTemplate",i.cellItemTemplate),$(t,"headerCellItemTemplate",i.headerCellItemTemplate),$(t,"rowIndex",i.rowIndex),(0,iu.useImperativeHandle)(e,()=>t.current,[t.current]);let h=r??"";return t.current&&t.current.rowType!=="default"&&(h+=` ${t.current.rowType}`),iu.default.createElement("jp-data-grid-row",{ref:t,...d,"grid-template-columns":i.gridTemplateColumns||i["grid-template-columns"],"row-type":i.rowType||i["row-type"],class:h.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var ru,pxt,zX=b(()=>{$e();ru=N(ue());Je();ie().register(aC());pxt=(0,ru.forwardRef)((i,e)=>{let t=(0,ru.useRef)(null),{className:r,noTabbing:n,generateHeader:s,gridTemplateColumns:o,rowsData:a,columnDefinitions:l,rowItemTemplate:u,cellItemTemplate:c,headerCellItemTemplate:d,focusRowIndex:h,focusColumnIndex:f,rowElementTag:p,...g}=i;return $(t,"rowsData",i.rowsData),$(t,"columnDefinitions",i.columnDefinitions),$(t,"rowItemTemplate",i.rowItemTemplate),$(t,"cellItemTemplate",i.cellItemTemplate),$(t,"headerCellItemTemplate",i.headerCellItemTemplate),$(t,"focusRowIndex",i.focusRowIndex),$(t,"focusColumnIndex",i.focusColumnIndex),$(t,"rowElementTag",i.rowElementTag),(0,ru.useImperativeHandle)(e,()=>t.current,[t.current]),ru.default.createElement("jp-data-grid",{ref:t,...g,"generate-header":i.generateHeader||i["generate-header"],"grid-template-columns":i.gridTemplateColumns||i["grid-template-columns"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"no-tabbing":i.noTabbing?"":void 0,style:{...i.style}},i.children)})});var nu,_xt,qX=b(()=>{$e();nu=N(ue());Je();ie().register(vC());_xt=(0,nu.forwardRef)((i,e)=>{let t=(0,nu.useRef)(null),{className:r,trapFocus:n,ariaDescribedby:s,ariaLabelledby:o,ariaLabel:a,modal:l,hidden:u,...c}=i;return Ee(t,"cancel",i.onCancel),Ee(t,"close",i.onClose),$(t,"modal",i.modal),$(t,"hidden",i.hidden),(0,nu.useImperativeHandle)(e,()=>({show:()=>t.current.show(),hide:()=>t.current.hide(),compose:(d,h)=>t.current.compose(d,h)})),nu.default.createElement("jp-dialog",{ref:t,...c,"aria-describedby":i.ariaDescribedby||i["aria-describedby"],"aria-labelledby":i.ariaLabelledby||i["aria-labelledby"],"aria-label":i.ariaLabel||i["aria-label"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"trap-focus":i.trapFocus?"":void 0,style:{...i.style}},i.children)})});var su,Cxt,HX=b(()=>{$e();su=N(ue());Je();ie().register(yC());Cxt=(0,su.forwardRef)((i,e)=>{let t=(0,su.useRef)(null),{className:r,appearance:n,title:s,expanded:o,...a}=i;return Ee(t,"toggle",i.onToggle),$(t,"expanded",i.expanded),(0,su.useImperativeHandle)(e,()=>t.current,[t.current]),su.default.createElement("jp-disclosure",{ref:t,...a,appearance:i.appearance,title:i.title,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var ou,Txt,jX=b(()=>{$e();ou=N(ue());ie().register(SC());Txt=(0,ou.forwardRef)((i,e)=>{let t=(0,ou.useRef)(null),{className:r,role:n,orientation:s,...o}=i;return(0,ou.useImperativeHandle)(e,()=>t.current,[t.current]),ou.default.createElement("jp-divider",{ref:t,...o,role:i.role,orientation:i.orientation,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var au,Oxt,VX=b(()=>{$e();au=N(ue());Je();ie().register(EC());Oxt=(0,au.forwardRef)((i,e)=>{let t=(0,au.useRef)(null),{className:r,multiple:n,size:s,length:o,options:a,disabled:l,selectedIndex:u,selectedOptions:c,...d}=i;return Ee(t,"change",i.onChange),$(t,"multiple",i.multiple),$(t,"size",i.size),$(t,"length",i.length),$(t,"options",i.options),$(t,"disabled",i.disabled),$(t,"selectedIndex",i.selectedIndex),$(t,"selectedOptions",i.selectedOptions),(0,au.useImperativeHandle)(e,()=>t.current,[t.current]),au.default.createElement("jp-listbox",{ref:t,...d,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var lu,Nxt,UX=b(()=>{$e();lu=N(ue());Je();ie().register(DC());Nxt=(0,lu.forwardRef)((i,e)=>{let t=(0,lu.useRef)(null),{className:r,role:n,disabled:s,expanded:o,checked:a,...l}=i;Ee(t,"expanded-change",i.onExpand),Ee(t,"change",i.onChange),$(t,"disabled",i.disabled),$(t,"expanded",i.expanded),$(t,"checked",i.checked),(0,lu.useImperativeHandle)(e,()=>t.current,[t.current]);let u=r??"";return t.current&&(u+=` indent-${t.current.startColumnCount}`,t.current.expanded&&(u+=" expanded")),lu.default.createElement("jp-menu-item",{ref:t,...l,role:i.role,class:u.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var uu,Hxt,WX=b(()=>{$e();uu=N(ue());ie().register(AC());Hxt=(0,uu.forwardRef)((i,e)=>{let t=(0,uu.useRef)(null),{className:r,...n}=i;return(0,uu.useImperativeHandle)(e,()=>t.current,[t.current]),uu.default.createElement("jp-menu",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var cu,Gxt,GX=b(()=>{$e();cu=N(ue());Je();ie().register(LC());Gxt=(0,cu.forwardRef)((i,e)=>{let t=(0,cu.useRef)(null),{className:r,readonly:n,hideStep:s,appearance:o,placeholder:a,list:l,readOnly:u,autofocus:c,maxlength:d,minlength:h,size:f,step:p,max:g,min:v,disabled:_,required:x,...y}=i;return Ee(t,"input",i.onInput),Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"autofocus",i.autofocus),$(t,"maxlength",i.maxlength),$(t,"minlength",i.minlength),$(t,"size",i.size),$(t,"step",i.step),$(t,"max",i.max),$(t,"min",i.min),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,cu.useImperativeHandle)(e,()=>t.current,[t.current]),cu.default.createElement("jp-number-field",{ref:t,...y,appearance:i.appearance,placeholder:i.placeholder,list:i.list,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,"hide-step":i.hideStep?"":void 0,style:{...i.style}},i.children)})});var du,Jxt,KX=b(()=>{$e();du=N(ue());Je();ie().register(FC());Jxt=(0,du.forwardRef)((i,e)=>{let t=(0,du.useRef)(null),{className:r,selected:n,value:s,checked:o,content:a,defaultSelected:l,disabled:u,selectedAttribute:c,dirtyValue:d,...h}=i;return $(t,"checked",i.checked),$(t,"content",i.content),$(t,"defaultSelected",i.defaultSelected),$(t,"disabled",i.disabled),$(t,"selectedAttribute",i.selectedAttribute),$(t,"dirtyValue",i.dirtyValue),(0,du.useImperativeHandle)(e,()=>t.current,[t.current]),du.default.createElement("jp-option",{ref:t,...h,value:i.value,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,selected:i.selected?"":void 0,style:{...i.style}},i.children)})});var hu,iwt,YX=b(()=>{$e();hu=N(ue());Je();ie().register(jC());iwt=(0,hu.forwardRef)((i,e)=>{let t=(0,hu.useRef)(null),{className:r,value:n,min:s,max:o,paused:a,...l}=i;return $(t,"value",i.value),$(t,"min",i.min),$(t,"max",i.max),$(t,"paused",i.paused),(0,hu.useImperativeHandle)(e,()=>t.current,[t.current]),hu.default.createElement("jp-progress-ring",{ref:t,...l,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var fu,awt,XX=b(()=>{$e();fu=N(ue());Je();ie().register(zC());awt=(0,fu.forwardRef)((i,e)=>{let t=(0,fu.useRef)(null),{className:r,value:n,min:s,max:o,paused:a,...l}=i;return $(t,"value",i.value),$(t,"min",i.min),$(t,"max",i.max),$(t,"paused",i.paused),(0,fu.useImperativeHandle)(e,()=>t.current,[t.current]),fu.default.createElement("jp-progress",{ref:t,...l,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var pu,hwt,JX=b(()=>{$e();pu=N(ue());Je();ie().register(WC());hwt=(0,pu.forwardRef)((i,e)=>{let t=(0,pu.useRef)(null),{className:r,readonly:n,readOnly:s,name:o,checked:a,disabled:l,required:u,...c}=i;return Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"name",i.name),$(t,"checked",i.checked),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,pu.useImperativeHandle)(e,()=>t.current,[t.current]),pu.default.createElement("jp-radio",{ref:t,...c,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var mu,bwt,ZX=b(()=>{$e();mu=N(ue());Je();ie().register(YC());bwt=(0,mu.forwardRef)((i,e)=>{let t=(0,mu.useRef)(null),{className:r,readonly:n,disabled:s,name:o,value:a,orientation:l,readOnly:u,...c}=i;return Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),(0,mu.useImperativeHandle)(e,()=>t.current,[t.current]),mu.default.createElement("jp-radio-group",{ref:t,...c,name:i.name,value:i.value,orientation:i.orientation,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,disabled:i.disabled?"":void 0,style:{...i.style}},i.children)})});var gu,wwt,QX=b(()=>{$e();gu=N(ue());Je();ie().register(JC());wwt=(0,gu.forwardRef)((i,e)=>{let t=(0,gu.useRef)(null),{className:r,readonly:n,appearance:s,placeholder:o,list:a,pattern:l,readOnly:u,autofocus:c,maxlength:d,minlength:h,size:f,spellcheck:p,disabled:g,required:v,..._}=i;return Ee(t,"input",i.onInput),Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"autofocus",i.autofocus),$(t,"maxlength",i.maxlength),$(t,"minlength",i.minlength),$(t,"size",i.size),$(t,"spellcheck",i.spellcheck),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,gu.useImperativeHandle)(e,()=>t.current,[t.current]),gu.default.createElement("jp-search",{ref:t,..._,appearance:i.appearance,placeholder:i.placeholder,list:i.list,pattern:i.pattern,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var bu,kwt,eJ=b(()=>{$e();bu=N(ue());Je();ie().register(QC());kwt=(0,bu.forwardRef)((i,e)=>{let t=(0,bu.useRef)(null),{className:r,autowidth:n,minimal:s,open:o,position:a,autoWidth:l,value:u,displayValue:c,multiple:d,size:h,length:f,options:p,disabled:g,selectedIndex:v,selectedOptions:_,required:x,...y}=i;return Ee(t,"input",i.onInput),Ee(t,"change",i.onChange),$(t,"autoWidth",i.autoWidth),$(t,"value",i.value),$(t,"displayValue",i.displayValue),$(t,"multiple",i.multiple),$(t,"size",i.size),$(t,"length",i.length),$(t,"options",i.options),$(t,"disabled",i.disabled),$(t,"selectedIndex",i.selectedIndex),$(t,"selectedOptions",i.selectedOptions),$(t,"required",i.required),(0,bu.useImperativeHandle)(e,()=>t.current,[t.current]),bu.default.createElement("jp-select",{ref:t,...y,position:i.position,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,autowidth:i.autowidth?"":void 0,minimal:i.minimal?"":void 0,open:i.open?"":void 0,style:{...i.style}},i.children)})});var vu,Dwt,tJ=b(()=>{$e();vu=N(ue());Je();ie().register(i6());Dwt=(0,vu.forwardRef)((i,e)=>{let t=(0,vu.useRef)(null),{className:r,fill:n,shape:s,pattern:o,shimmer:a,...l}=i;return $(t,"shimmer",i.shimmer),(0,vu.useImperativeHandle)(e,()=>t.current,[t.current]),vu.default.createElement("jp-skeleton",{ref:t,...l,fill:i.fill,shape:i.shape,pattern:i.pattern,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var _u,Fwt,iJ=b(()=>{$e();_u=N(ue());Je();ie().register(s6());Fwt=(0,_u.forwardRef)((i,e)=>{let t=(0,_u.useRef)(null),{className:r,readonly:n,orientation:s,mode:o,readOnly:a,valueAsNumber:l,valueTextFormatter:u,min:c,max:d,step:h,disabled:f,required:p,...g}=i;return Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"valueAsNumber",i.valueAsNumber),$(t,"valueTextFormatter",i.valueTextFormatter),$(t,"min",i.min),$(t,"max",i.max),$(t,"step",i.step),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,_u.useImperativeHandle)(e,()=>t.current,[t.current]),_u.default.createElement("jp-slider",{ref:t,...g,orientation:i.orientation,mode:i.mode,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var yu,qwt,rJ=b(()=>{$e();yu=N(ue());ie().register(c6());qwt=(0,yu.forwardRef)((i,e)=>{let t=(0,yu.useRef)(null),{className:r,hideMark:n,disabled:s,position:o,...a}=i;(0,yu.useImperativeHandle)(e,()=>t.current,[t.current]);let l=r??"";return t.current?.disabled&&(l+=" disabled"),yu.default.createElement("jp-slider-label",{ref:t,...a,position:i.position,class:l.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"hide-mark":i.hideMark?"":void 0,disabled:i.disabled?"":void 0,style:{...i.style}},i.children)})});var xu,Wwt,nJ=b(()=>{$e();xu=N(ue());Je();ie().register(f6());Wwt=(0,xu.forwardRef)((i,e)=>{let t=(0,xu.useRef)(null),{className:r,readonly:n,readOnly:s,checked:o,disabled:a,required:l,...u}=i;return Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"checked",i.checked),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,xu.useImperativeHandle)(e,()=>t.current,[t.current]),xu.default.createElement("jp-switch",{ref:t,...u,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var wu,Jwt,sJ=b(()=>{$e();wu=N(ue());Je();ie().register(_6());Jwt=(0,wu.forwardRef)((i,e)=>{let t=(0,wu.useRef)(null),{className:r,disabled:n,...s}=i;$(t,"disabled",i.disabled),(0,wu.useImperativeHandle)(e,()=>t.current,[t.current]);let o=r??"";return t.current?.classList.contains("vertical")&&(o+=" vertical"),wu.default.createElement("jp-tab",{ref:t,...s,class:o.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Su,t2t,oJ=b(()=>{$e();Su=N(ue());ie().register(g6());t2t=(0,Su.forwardRef)((i,e)=>{let t=(0,Su.useRef)(null),{className:r,...n}=i;return(0,Su.useImperativeHandle)(e,()=>t.current,[t.current]),Su.default.createElement("jp-tab-panel",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Cu,o2t,aJ=b(()=>{$e();Cu=N(ue());Je();ie().register(w6());o2t=(0,Cu.forwardRef)((i,e)=>{let t=(0,Cu.useRef)(null),{className:r,orientation:n,activeid:s,activeindicator:o,activetab:a,...l}=i;return Ee(t,"change",i.onChange),$(t,"activeindicator",i.activeindicator),$(t,"activetab",i.activetab),(0,Cu.useImperativeHandle)(e,()=>t.current,[t.current]),Cu.default.createElement("jp-tabs",{ref:t,...l,orientation:i.orientation,activeid:i.activeid,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Iu,d2t,lJ=b(()=>{$e();Iu=N(ue());Je();ie().register(C6());d2t=(0,Iu.forwardRef)((i,e)=>{let t=(0,Iu.useRef)(null),{className:r,appearance:n,resize:s,form:o,list:a,name:l,placeholder:u,readOnly:c,autofocus:d,maxlength:h,minlength:f,cols:p,rows:g,spellcheck:v,disabled:_,required:x,...y}=i;return Ee(t,"select",i.onSelect),Ee(t,"change",i.onChange),$(t,"readOnly",i.readOnly),$(t,"autofocus",i.autofocus),$(t,"maxlength",i.maxlength),$(t,"minlength",i.minlength),$(t,"cols",i.cols),$(t,"rows",i.rows),$(t,"spellcheck",i.spellcheck),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,Iu.useImperativeHandle)(e,()=>t.current,[t.current]),Iu.default.createElement("jp-text-area",{ref:t,...y,appearance:i.appearance,resize:i.resize,form:i.form,list:i.list,name:i.name,placeholder:i.placeholder,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Eu,g2t,uJ=b(()=>{$e();Eu=N(ue());Je();ie().register(E6());g2t=(0,Eu.forwardRef)((i,e)=>{let t=(0,Eu.useRef)(null),{className:r,readonly:n,appearance:s,placeholder:o,type:a,list:l,pattern:u,readOnly:c,autofocus:d,maxlength:h,minlength:f,size:p,spellcheck:g,disabled:v,required:_,...x}=i;return Ee(t,"change",i.onChange),Ee(t,"input",i.onInput),$(t,"readOnly",i.readOnly),$(t,"autofocus",i.autofocus),$(t,"maxlength",i.maxlength),$(t,"minlength",i.minlength),$(t,"size",i.size),$(t,"spellcheck",i.spellcheck),$(t,"disabled",i.disabled),$(t,"required",i.required),(0,Eu.useImperativeHandle)(e,()=>t.current,[t.current]),Eu.default.createElement("jp-text-field",{ref:t,...x,appearance:i.appearance,placeholder:i.placeholder,type:i.type,list:i.list,pattern:i.pattern,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,readonly:i.readonly?"":void 0,style:{...i.style}},i.children)})});var ku,y2t,cJ=b(()=>{$e();ku=N(ue());ie().register(om());y2t=(0,ku.forwardRef)((i,e)=>{let t=(0,ku.useRef)(null),{className:r,...n}=i;return(0,ku.useImperativeHandle)(e,()=>t.current,[t.current]),ku.default.createElement("jp-toolbar",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Tu,I2t,dJ=b(()=>{$e();Tu=N(ue());Je();ie().register(R6());I2t=(0,Tu.forwardRef)((i,e)=>{let t=(0,Tu.useRef)(null),{className:r,horizontalViewportLock:n,verticalViewportLock:s,anchor:o,delay:a,position:l,autoUpdateMode:u,visible:c,anchorElement:d,...h}=i;return Ee(t,"dismiss",i.onDismiss),$(t,"visible",i.visible),$(t,"anchorElement",i.anchorElement),(0,Tu.useImperativeHandle)(e,()=>t.current,[t.current]),Tu.default.createElement("jp-tooltip",{ref:t,...h,anchor:i.anchor,delay:i.delay,position:i.position,"auto-update-mode":i.autoUpdateMode||i["auto-update-mode"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"horizontal-viewport-lock":i.horizontalViewportLock?"":void 0,"vertical-viewport-lock":i.verticalViewportLock?"":void 0,style:{...i.style}},i.children)})});var Au,A2t,hJ=b(()=>{$e();Au=N(ue());Je();ie().register(L6());A2t=(0,Au.forwardRef)((i,e)=>{let t=(0,Au.useRef)(null),{className:r,expanded:n,selected:s,disabled:o,...a}=i;Ee(t,"expanded-change",i.onExpand),Ee(t,"selected-change",i.onSelect),$(t,"expanded",i.expanded),$(t,"selected",i.selected),$(t,"disabled",i.disabled),(0,Au.useImperativeHandle)(e,()=>t.current,[t.current]);let l=r??"";return t.current?.nested&&(l+=" nested"),Au.default.createElement("jp-tree-item",{ref:t,...a,class:l.trim(),exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var To,O2t,fJ=b(()=>{$e();To=N(ue());Je();ie().register(F6());O2t=(0,To.forwardRef)((i,e)=>{let t=(0,To.useRef)(null),{className:r,renderCollapsedNodes:n,currentSelected:s,...o}=i;return(0,To.useLayoutEffect)(()=>{t.current?.setItems()},[t.current]),$(t,"currentSelected",i.currentSelected),(0,To.useImperativeHandle)(e,()=>t.current,[t.current]),To.default.createElement("jp-tree-view",{ref:t,...o,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"render-collapsed-nodes":i.renderCollapsedNodes?"":void 0,style:{...i.style}},i.children)})});var Mu,N2t,pJ=b(()=>{$e();Mu=N(ue());Je();ie().register(V6());N2t=(0,Mu.forwardRef)((i,e)=>{let t=(0,Mu.useRef)(null),{className:r,filterSelected:n,filterQuery:s,selection:o,options:a,maxSelected:l,noSuggestionsText:u,suggestionsAvailableText:c,loadingText:d,label:h,labelledby:f,placeholder:p,menuPlacement:g,showLoading:v,listItemTemplate:_,defaultListItemTemplate:x,menuOptionTemplate:y,defaultMenuOptionTemplate:C,listItemContentsTemplate:S,menuOptionContentsTemplate:R,optionsList:I,query:E,itemsPlaceholderElement:w,...k}=i;return $(t,"showLoading",i.showLoading),$(t,"listItemTemplate",i.listItemTemplate),$(t,"defaultListItemTemplate",i.defaultListItemTemplate),$(t,"menuOptionTemplate",i.menuOptionTemplate),$(t,"defaultMenuOptionTemplate",i.defaultMenuOptionTemplate),$(t,"listItemContentsTemplate",i.listItemContentsTemplate),$(t,"menuOptionContentsTemplate",i.menuOptionContentsTemplate),$(t,"optionsList",i.optionsList),$(t,"query",i.query),$(t,"itemsPlaceholderElement",i.itemsPlaceholderElement),(0,Mu.useImperativeHandle)(e,()=>t.current,[t.current]),Mu.default.createElement("jp-draft-picker",{ref:t,...k,selection:i.selection,options:i.options,"max-selected":i.maxSelected||i["max-selected"],"no-suggestions-text":i.noSuggestionsText||i["no-suggestions-text"],"suggestions-available-text":i.suggestionsAvailableText||i["suggestions-available-text"],"loading-text":i.loadingText||i["loading-text"],label:i.label,labelledby:i.labelledby,placeholder:i.placeholder,"menu-placement":i.menuPlacement||i["menu-placement"],class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,"filter-selected":i.filterSelected?"":void 0,"filter-query":i.filterQuery?"":void 0,style:{...i.style}},i.children)})});var Ru,j2t,mJ=b(()=>{$e();Ru=N(ue());Je();ie().register(U6());j2t=(0,Ru.forwardRef)((i,e)=>{let t=(0,Ru.useRef)(null),{className:r,suggestionsAvailableText:n,...s}=i;return $(t,"suggestionsAvailableText",i.suggestionsAvailableText),(0,Ru.useImperativeHandle)(e,()=>t.current,[t.current]),Ru.default.createElement("jp-draft-picker-menu",{ref:t,...s,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Du,K2t,gJ=b(()=>{$e();Du=N(ue());Je();ie().register(W6());K2t=(0,Du.forwardRef)((i,e)=>{let t=(0,Du.useRef)(null),{className:r,value:n,contentsTemplate:s,...o}=i;return $(t,"contentsTemplate",i.contentsTemplate),(0,Du.useImperativeHandle)(e,()=>t.current,[t.current]),Du.default.createElement("jp-draft-picker-menu-option",{ref:t,...o,value:i.value,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Ou,Z2t,bJ=b(()=>{$e();Ou=N(ue());ie().register(G6());Z2t=(0,Ou.forwardRef)((i,e)=>{let t=(0,Ou.useRef)(null),{className:r,...n}=i;return(0,Ou.useImperativeHandle)(e,()=>t.current,[t.current]),Ou.default.createElement("jp-draft-picker-list",{ref:t,...n,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var Lu,r3t,vJ=b(()=>{$e();Lu=N(ue());Je();ie().register(K6());r3t=(0,Lu.forwardRef)((i,e)=>{let t=(0,Lu.useRef)(null),{className:r,value:n,contentsTemplate:s,...o}=i;return $(t,"contentsTemplate",i.contentsTemplate),(0,Lu.useImperativeHandle)(e,()=>t.current,[t.current]),Lu.default.createElement("jp-draft-picker-list-item",{ref:t,...o,value:i.value,class:i.className,exportparts:i.exportparts,for:i.htmlFor,part:i.part,tabindex:i.tabIndex,style:{...i.style}},i.children)})});var _J=b(()=>{CX();IX();EX();kX();TX();AX();MX();RX();OX();LX();$X();PX();FX();NX();BX();zX();qX();HX();jX();VX();UX();WX();GX();KX();YX();XX();JX();ZX();QX();eJ();tJ();iJ();rJ();nJ();sJ();oJ();aJ();lJ();uJ();cJ();dJ();hJ();fJ();pJ();mJ();gJ();bJ();vJ()});var yJ,xJ,Or,Ao,am,$u,X6=b(()=>{qf();tt();nn();yJ=N(ue()),xJ=N(eE()),Or=class extends j{constructor(){super(),this._rootDOM=null}static create(e){return new class extends Or{render(){return e}}}onUpdateRequest(e){this.renderPromise=this.renderDOM()}onAfterAttach(e){te.sendMessage(this,j.Msg.UpdateRequest)}onBeforeDetach(e){this._rootDOM!==null&&(this._rootDOM.unmount(),this._rootDOM=null)}renderDOM(){return new Promise(e=>{let t=this.render();this._rootDOM===null&&(this._rootDOM=(0,xJ.createRoot)(this.node)),Array.isArray(t)?(this._rootDOM.render(t),requestIdleCallback(()=>e())):t?(this._rootDOM.render(t),requestIdleCallback(()=>e())):(this._rootDOM.unmount(),this._rootDOM=null,requestIdleCallback(()=>e()))})}},Ao=class extends Or{constructor(e){super(),this._modelChanged=new G(this),this.model=e??null}get modelChanged(){return this._modelChanged}set model(e){this._model!==e&&(this._model&&this._model.stateChanged.disconnect(this.update,this),this._model=e,e&&e.stateChanged.connect(this.update,this),this.update(),this._modelChanged.emit(void 0))}get model(){return this._model}dispose(){this.isDisposed||(this._model=null,super.dispose())}},am=class extends yJ.Component{constructor(e){super(e),this.slot=(t,r)=>{this.props.shouldUpdate&&!this.props.shouldUpdate(t,r)||this.setState({value:[t,r]})},this.state={value:[this.props.initialSender,this.props.initialArgs]}}componentDidMount(){this.props.signal.connect(this.slot)}componentWillUnmount(){this.props.signal.disconnect(this.slot)}render(){return this.props.children(...this.state.value)}},$u=class{constructor(){this.stateChanged=new G(this),this._isDisposed=!1}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,G.clearData(this))}}});function Q6(i){var e,t,r;let n=(e=i.noFocusOnClick)!==null&&e!==void 0&&e?void 0:c=>{var d;c.button===0&&((d=i.onClick)===null||d===void 0||d.call(i),c.target.focus())},s=(t=i.noFocusOnClick)!==null&&t!==void 0&&t?c=>{var d;c.button===0&&(c.preventDefault(),(d=i.onClick)===null||d===void 0||d.call(i))}:void 0,o=c=>{var d;let{key:h}=c;(h==="Enter"||h===" ")&&((d=i.onClick)===null||d===void 0||d.call(i))},l=(()=>i.enabled===!1&&i.disabledTooltip?i.disabledTooltip:i.pressed&&i.pressedTooltip?i.pressedTooltip:i.tooltip||i.iconLabel)(),u=i.enabled===!1;return lm.createElement(DX,{appearance:"stealth",className:i.className?i.className+" jp-ToolbarButtonComponent":"jp-ToolbarButtonComponent","aria-disabled":u,"aria-label":i.label||l,"aria-pressed":i.pressed,...Us.normalizeDataset(i.dataset),disabled:u,onClick:n,onMouseDown:s,onKeyDown:o,title:l},(i.icon||i.iconClass)&&lm.createElement(q.resolveReact,{icon:i.pressed&&(r=i.pressedIcon)!==null&&r!==void 0?r:i.icon,iconClass:fi(i.iconClass,"jp-Icon"),tag:null}),i.label&&lm.createElement("span",{className:"jp-ToolbarButtonComponent-label"},i.label))}function zSe(i){return i.addClass("jp-ToolbarButton"),i}var lm,NSe,BSe,vv,wJ,J6,Pu,_v,Oh,Z6,yv,Us,SJ=b(()=>{_J();$e();Jn();Zt();jf();qf();md();nn();Xo();lm=N(ue());Gf();Jo();X6();ie().register([sm(),om()]);gS();NSe="jp-Toolbar",BSe="jp-Toolbar-item",vv="toolbar-popup-opener",wJ="jp-Toolbar-spacer",J6=class extends Rn{constructor(){super(...arguments),this._dirty=!1}onFitRequest(e){super.onFitRequest(e),this.parent.isAttached&&(ys(this.widgets,t=>!t.isHidden)?(this.parent.node.style.minHeight="var(--jp-private-toolbar-height)",this.parent.removeClass("jp-Toolbar-micro")):(this.parent.node.style.minHeight="",this.parent.addClass("jp-Toolbar-micro"))),this._dirty=!0,this.parent.parent&&te.sendMessage(this.parent.parent,j.Msg.FitRequest),this._dirty&&te.sendMessage(this.parent,j.Msg.UpdateRequest)}onUpdateRequest(e){super.onUpdateRequest(e),this.parent.isVisible&&(this._dirty=!1)}onChildShown(e){super.onChildShown(e),this.parent.fit()}onChildHidden(e){super.onChildHidden(e),this.parent.fit()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}attachWidget(e,t){super.attachWidget(e,t),this.parent.fit()}detachWidget(e,t){super.detachWidget(e,t),this.parent.fit()}},Pu=class extends j{constructor(e={}){var t,r;super({node:document.createElement("jp-toolbar")}),this.addClass(NSe),this.layout=(t=e.layout)!==null&&t!==void 0?t:new J6,this.noFocusOnClick=(r=e.noFocusOnClick)!==null&&r!==void 0?r:!1}names(){let e=this.layout;return Qm(e.widgets,t=>Us.nameProperty.get(t))}addItem(e,t){let r=this.layout;return this.insertItem(r.widgets.length,e,t)}insertItem(e,t,r){if(Ui(this.names(),a=>a===t))return!1;r.addClass(BSe);let s=this.layout,o=Math.max(0,Math.min(e,s.widgets.length));return s.insertWidget(o,r),Us.nameProperty.set(r,t),r.node.dataset.jpItemName=t,this.noFocusOnClick&&(r.node.dataset.noFocusOnClick="true"),!0}insertAfter(e,t,r){return this.insertRelative(e,1,t,r)}insertBefore(e,t,r){return this.insertRelative(e,0,t,r)}insertRelative(e,t,r,n){let s=Qm(this.names(),(a,l)=>({name:a,index:l})),o=Ui(s,a=>a.name===e);return o?this.insertItem(o.index+t,r,n):!1}handleEvent(e){switch(e.type){case"click":this.handleClick(e);break;default:break}}handleClick(e){if(e.stopPropagation(),e.target instanceof HTMLLabelElement){let t=e.target.getAttribute("for");if(t&&this.node.querySelector(`#${t}`))return}this.node.contains(document.activeElement)||this.parent&&this.parent.activate()}onAfterAttach(e){this.node.addEventListener("click",this)}onBeforeDetach(e){this.node.removeEventListener("click",this)}},_v=class extends Pu{constructor(e={}){super(e),this.popupOpener=new yv,this._widgetWidths=new Map,this._widgetPositions=new Map,this._zoomChanged=!0,this.insertItem(0,vv,this.popupOpener),this.popupOpener.hide(),this._resizer=new oc(async(t=!1)=>{await this._onResize(t)},500)}dispose(){this.isDisposed||(this._resizer&&this._resizer.dispose(),super.dispose())}insertAfter(e,t,r){return e===vv?!1:super.insertAfter(e,t,r)}insertRelative(e,t,r,n){let s=this._widgetPositions.get(e),o=(s??0)+t;return this.insertItem(o,r,n)}insertItem(e,t,r){var n;let s;if(r instanceof yv)s=super.insertItem(e,t,r);else{let o=Math.max(0,Math.min(e,this.layout.widgets.length-1));s=super.insertItem(o,t,r),o!==e&&(e=Math.max(0,Math.min(e,this._widgetPositions.size)))}if(t!==vv&&this._widgetPositions.get(t)!==e){let o=(n=this._widgetPositions.get(t))!==null&&n!==void 0?n:this._widgetPositions.size;this._widgetPositions.forEach((a,l)=>{l!==vv&&(a>=e&&ao&&this._widgetPositions.set(l,a-1))}),this._widgetPositions.set(t,e),this.isVisible&&this._resizer.invoke()}return s}onAfterShow(e){this._resizer.invoke(!0)}onBeforeHide(e){this.popupOpener.hidePopup(),super.onBeforeHide(e)}onResize(e){super.onResize(e);let t=Math.round(window.outerWidth/window.innerWidth*100);t!==this._zoom&&(this._zoomChanged=!0,this._zoom=t),e.width>0&&this._resizer&&this._resizer.invoke()}async _onResize(e=!1){if(!(this.parent&&this.parent.isAttached))return;let t=this.node.clientWidth,r=this.popupOpener,n=32,s=2+5,o=r.isHidden?s:s+n;return this._getWidgetsToRemove(o,t,n).then(async a=>{var l,u;let{width:c,widgetsToRemove:d}=a;for(;d.length>0;){let h=d.pop(),f=Us.nameProperty.get(h);c-=this._widgetWidths.get(f)||0;let p=(l=this._widgetPositions.get(f))!==null&&l!==void 0?l:0,g=this._widgetPositions.size,v=r.widgetAt(0);if(v){let x=Us.nameProperty.get(v);g=(u=this._widgetPositions.get(x))!==null&&u!==void 0?u:g}let _=p-g;r.insertWidget(_,h)}if(r.widgetCount()>0){let h=[],f=0,p=r.widgetCount();for(;f0;){let g=h.shift(),v=Us.nameProperty.get(g);this._widgetPositions.has(v)?this.insertItem(this._widgetPositions.get(v),v,g):this.addItem(v,g)}}r.widgetCount()>0?(r.updatePopup(),r.show()):r.hide(),e&&await this._onResize()}).catch(a=>{console.error("Error while computing the ReactiveToolbar",a)})}async _getWidgetsToRemove(e,t,r){var n;let s=this.popupOpener,o=[...this.layout.widgets],a=o.length-1,l=[],u=0;for(;ut&&(e+=r),(e>t||((n=this._widgetPositions.get(d))!==null&&n!==void 0?n:0)>u)&&l.push(c),u++}return this._zoomChanged=!1,{width:e,widgetsToRemove:l}}async _saveWidgetWidth(e,t){t instanceof Or&&await t.renderPromise;let r=t.hasClass(wJ)?2:t.node.clientWidth;return this._widgetWidths.set(e,r),r}_getWidgetWidth(e){let t=Us.nameProperty.get(e);return this._widgetWidths.get(t)||0}};(function(i){function e(){return new Us.Spacer}i.createSpacerItem=e})(Pu||(Pu={}));Oh=class extends Or{constructor(e={}){var t,r;super(),this.props=e,zSe(this),this._enabled=(t=e.enabled)!==null&&t!==void 0?t:!0,this._pressed=this._enabled&&((r=e.pressed)!==null&&r!==void 0?r:!1),this._onClick=e.onClick}set pressed(e){this.enabled&&e!==this._pressed&&(this._pressed=e,this.update())}get pressed(){return this._pressed}set enabled(e){e!=this._enabled&&(this._enabled=e,this._enabled||(this._pressed=!1),this.update())}get enabled(){return this._enabled}set onClick(e){e!==this._onClick&&(this._onClick=e,this.update())}get onClick(){return this._onClick}render(){return lm.createElement(Q6,{...this.props,noFocusOnClick:this.props.noFocusOnClick,pressed:this.pressed,enabled:this.enabled,onClick:this.onClick})}},Z6=class extends j{constructor(){super({node:document.createElement("jp-toolbar")}),this.width=0,this.node.setAttribute("aria-label","Responsive popup toolbar"),this.addClass("jp-Toolbar"),this.addClass("jp-Toolbar-responsive-popup"),this.addClass("jp-ThemedContainer"),this.layout=new Rn,j.attach(this,document.body),this.hide()}updateWidth(e){e>0&&(this.width=e,this.node.style.width=`${e}px`)}alignTo(e){let{height:t,width:r,x:n,y:s}=e.node.getBoundingClientRect(),o=this.width;this.node.style.left=`${n+r-o+1}px`,this.node.style.top=`${s+t+1}px`}insertWidget(e,t){this.layout.insertWidget(e,t)}widgetCount(){return this.layout.widgets.length}widgetAt(e){return this.layout.widgets[e]}},yv=class extends Oh{constructor(e={}){let t=(e.translator||St).load("jupyterlab");super({icon:IR,onClick:()=>{this.handleClick()},tooltip:t.__("More commands")}),this.addClass("jp-Toolbar-responsive-opener"),this.popup=new Z6}addWidget(e){this.popup.insertWidget(0,e)}insertWidget(e,t){this.popup.insertWidget(e,t)}dispose(){this.isDisposed||(this.popup.dispose(),super.dispose())}hide(){super.hide(),this.hidePopup()}hidePopup(){this.popup.hide()}updatePopup(){this.popup.updateWidth(this.parent.node.clientWidth),this.popup.alignTo(this.parent)}widgetAt(e){return this.popup.widgetAt(e)}widgetCount(){return this.popup.widgetCount()}handleClick(){this.updatePopup(),this.popup.setHidden(!this.popup.isHidden)}};(function(i){function e(n){if(!n)return;let s={};for(let[o,a]of Object.entries(n)){let l=o.startsWith("data-")?o:`data-${o}`;s[l]=a}return s}i.normalizeDataset=e;function t(n){var s,o;let{commands:a,id:l,args:u}=n,c=a.iconClass(l,u),d=a.iconLabel(l,u),h=(s=n.icon)!==null&&s!==void 0?s:a.icon(l,u),f=a.label(l,u),p=a.className(l,u),g;a.isToggleable(l,u)&&(g=a.isToggled(l,u),g&&(p+=" lm-mod-toggled")),a.isVisible(l,u)||(p+=" lm-mod-hidden");let v=typeof n.label=="function"?n.label(u??{}):n.label,_=a.caption(l,u)||v||f||d,x=a.keyBindings.find(S=>S.command===l);if(x){let S=x.keys.map(ti.formatKeystroke).join(", ");_=`${_} (${S})`}let y=()=>{a.execute(l,u)},C=a.isEnabled(l,u);return{className:p,dataset:{"data-command":n.id},noFocusOnClick:n.noFocusOnClick,icon:h,iconClass:c,tooltip:(o=n.caption)!==null&&o!==void 0?o:_,onClick:y,enabled:C,label:v??f,pressed:g}}i.propsFromCommand=t,i.nameProperty=new Ye({name:"name",create:()=>""});class r extends j{constructor(){super(),this.addClass(wJ)}}i.Spacer=r})(Us||(Us={}))});var CJ=b(()=>{nn()});var um,IJ=b(()=>{Zt();um=N(ue())});var EJ=b(()=>{Jn();nn()});var xv,kJ=b(()=>{nn();xv=class extends j{constructor(){super(),this.addClass("jp-Spinner"),this.node.tabIndex=-1;let e=document.createElement("div");e.className="jp-SpinnerContent",this.node.appendChild(e)}onActivateRequest(e){this.node.focus()}}});var Fu,wv,TJ=b(()=>{Gf();(function(i){function e(n,s=""){t(n,"select",s),t(n,"textarea",s),t(n,"input",s),t(n,"button",s)}i.styleNode=e;function t(n,s,o=""){if(n.localName===s&&n.classList.add("jp-mod-styled"),n.localName==="select"){let l=n.hasAttribute("multiple");r(n,l)}let a=n.getElementsByTagName(s);for(let l=0;l{tt();nn()});var MJ,RJ=b(()=>{MJ=N(ue())});var DJ,qSe,OJ,Nu,e4,LJ=b(()=>{Zt();DJ=N(Ge());qf();Xo();tt();nn();qSe=100,OJ=!1;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){OJ={passive:!0}}}))}catch{}Nu=class extends j{constructor(e){var t,r;let n=(t=e.renderer)!==null&&t!==void 0?t:Nu.defaultRenderer,s=document.createElement("div");s.className="jp-WindowedPanel";let o=s.appendChild(document.createElement("div"));o.classList.add("jp-WindowedPanel-scrollbar");let a=o.appendChild(n.createScrollbarViewportIndicator?n.createScrollbarViewportIndicator():Nu.defaultRenderer.createScrollbarViewportIndicator());a.classList.add("jp-WindowedPanel-scrollbar-viewportIndicator"),o.appendChild(n.createScrollbar()).classList.add("jp-WindowedPanel-scrollbar-content");let u=s.appendChild(n.createOuter());u.classList.add("jp-WindowedPanel-outer");let c=u.appendChild(document.createElement("div"));c.className="jp-WindowedPanel-inner";let d=c.appendChild(n.createViewport());d.classList.add("jp-WindowedPanel-viewport"),super({node:s}),this.jumped=new G(this),this._scrollbarItems={},this._viewportPaddingTop=0,this._viewportPaddingBottom=0,this._needsUpdate=!1,this._requiresTotalSizeUpdate=!1,this._timerToClearScrollStatus=null,super.layout=(r=e.layout)!==null&&r!==void 0?r:new e4,this.renderer=n,this._viewportIndicator=a,this._innerElement=c,this._isScrolling=null,this._outerElement=u,this._itemsResizeObserver=null,this._scrollbarElement=o,this._scrollToItem=null,this._scrollRepaint=null,this._scrollUpdateWasRequested=!1,this._updater=new oc(()=>this.update(),50),this._viewModel=e.model,this._viewport=d,e.scrollbar&&s.classList.add("jp-mod-virtual-scrollbar"),this.viewModel.stateChanged.connect(this.onStateChanged,this)}get isParentHidden(){return this._isParentHidden}set isParentHidden(e){this._isParentHidden=e}get layout(){return super.layout}get outerNode(){return this._outerElement}get viewportNode(){return this._viewport}get scrollbar(){return this.node.classList.contains("jp-mod-virtual-scrollbar")}set scrollbar(e){e?this.node.classList.add("jp-mod-virtual-scrollbar"):this.node.classList.remove("jp-mod-virtual-scrollbar"),this._adjustDimensionsForScrollbar(),this.update()}get viewModel(){return this._viewModel}dispose(){this._updater.dispose(),super.dispose()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e),e.stopPropagation();break;case"scrollend":this._onScrollEnd();break;case"scroll":this.onScroll(e);break}}scrollTo(e){if(this._renderScrollbar(),!this.viewModel.windowingActive){this._outerElement.scrollTo({top:e});return}e=Math.max(0,e),e!==this.viewModel.scrollOffset&&(this.viewModel.scrollOffset=e,this._scrollUpdateWasRequested=!0,this.update())}scrollToItem(e,t="auto",r=.25,n){(!this._isScrolling||this._scrollToItem===null||this._scrollToItem[0]!==e||this._scrollToItem[1]!==t)&&(this._isScrolling&&this._isScrolling.reject("Scrolling to a new item is requested."),this._isScrolling=new DJ.PromiseDelegate,this._isScrolling.promise.catch(console.debug)),this._scrollToItem=[e,t,r,n],this._resetScrollToItem();let s;if(!this.viewModel.windowingActive){let o=this._innerElement.querySelector(`[data-windowed-list-index="${e}"]`);if(!o||!(o instanceof HTMLElement))return console.debug(`Element with index ${e} not found`),Promise.resolve();s={totalSize:this._outerElement.scrollHeight,itemMetadata:{offset:o.offsetTop,size:o.clientHeight},currentOffset:this._outerElement.scrollTop}}return this.scrollTo(this.viewModel.getOffsetForIndexAndAlignment(Math.max(0,Math.min(e,this.viewModel.widgetCount-1)),t,r,s,n)),this._isScrolling.promise}onAfterAttach(e){super.onAfterAttach(e),this.viewModel.windowingActive?this._applyWindowingStyles():this._applyNoWindowingStyles(),this._addListeners(),this.viewModel.height=this.node.getBoundingClientRect().height;let t=window.getComputedStyle(this._viewport);this.viewModel.paddingTop=parseFloat(t.paddingTop),this._viewportPaddingTop=this.viewModel.paddingTop,this._viewportPaddingBottom=parseFloat(t.paddingBottom),this._scrollbarElement.addEventListener("pointerdown",this),this._outerElement.addEventListener("scrollend",this)}onBeforeDetach(e){this._removeListeners(),this._scrollbarElement.removeEventListener("pointerdown",this),this._outerElement.removeEventListener("scrollend",this),super.onBeforeDetach(e)}onScroll(e){let{clientHeight:t,scrollHeight:r,scrollTop:n}=e.currentTarget;if(!this._scrollUpdateWasRequested&&Math.abs(this.viewModel.scrollOffset-n)>1){let s=Math.max(0,Math.min(n,r-t));this.viewModel.scrollOffset=s,this._renderScrollbar(),this.viewModel.windowingActive&&(this._scrollUpdateWasRequested=!1,this._viewport.dataset.isScrolling!="true"&&(this._viewport.dataset.isScrolling="true"),this._timerToClearScrollStatus&&window.clearTimeout(this._timerToClearScrollStatus),this._timerToClearScrollStatus=window.setTimeout(()=>{this._onScrollEnd()},750),this.update())}}onResize(e){let t=this.viewModel.height;this.viewModel.height=e.height>=0?e.height:this.node.getBoundingClientRect().height,this.viewModel.height!==t&&this._updater.invoke(),super.onResize(e),this._updater.invoke()}onStateChanged(e,t){switch(t.name){case"windowingActive":if(this._removeListeners(),this.viewModel.windowingActive){this._applyWindowingStyles(),this.onScroll({currentTarget:this.node}),this._addListeners();return}else this._applyNoWindowingStyles(),this._addListeners();break;case"estimatedWidgetSize":this._updateTotalSize();return}this.update()}onUpdateRequest(e){this.viewModel.windowingActive?this._scrollRepaint===null?(this._needsUpdate=!1,this._scrollRepaint=window.requestAnimationFrame(()=>{this._scrollRepaint=null,this._update(),this._needsUpdate&&this.update()})):this._needsUpdate=!0:this._update()}_adjustDimensionsForScrollbar(){let e=this._outerElement,t=this._scrollbarElement;if(this.scrollbar){let r=e.offsetWidth-e.clientWidth;r==0?(r=1e3,e.style.paddingRight=`${r}px`,e.style.boxSizing="border-box"):e.style.paddingRight="0",e.style.width=`calc(100% + ${r}px)`,this._innerElement.style.marginRight=`${t.offsetWidth}px`}else e.style.width="100%",this._innerElement.style.marginRight="",e.style.paddingRight="0",e.style.boxSizing=""}_addListeners(){this._scrollbarResizeObserver||(this._scrollbarResizeObserver=new ResizeObserver(this._adjustDimensionsForScrollbar.bind(this)),this._scrollbarResizeObserver.observe(this._outerElement),this._scrollbarResizeObserver.observe(this._scrollbarElement)),this._itemsResizeObserver||(this._itemsResizeObserver=new ResizeObserver(this._onItemResize.bind(this)));for(let e of this.layout.widgets)this._itemsResizeObserver.observe(e.node),e.disposed.connect(()=>{var t;return(t=this._itemsResizeObserver)===null||t===void 0?void 0:t.unobserve(e.node)});this._areaResizeObserver||(this._areaResizeObserver=new ResizeObserver(this._onAreaResize.bind(this)),this._areaResizeObserver.observe(this._innerElement)),this._outerElement.addEventListener("scroll",this,OJ)}_applyNoWindowingStyles(){this._viewport.style.position="relative",this._viewport.style.contain="",this._viewport.style.top="0px",this._viewport.style.minHeight="",this._innerElement.style.height=""}_applyWindowingStyles(){this._viewport.style.position="absolute",this._viewport.style.contain="layout"}_removeListeners(){var e,t,r;this._outerElement.removeEventListener("scroll",this),(e=this._areaResizeObserver)===null||e===void 0||e.disconnect(),this._areaResizeObserver=null,(t=this._itemsResizeObserver)===null||t===void 0||t.disconnect(),this._itemsResizeObserver=null,(r=this._scrollbarResizeObserver)===null||r===void 0||r.disconnect(),this._scrollbarResizeObserver=null}_update(){var e;if(this.isDisposed||!this.layout)return;let t=this.viewModel.getRangeToRender();if(t!==null){let[n,s]=t;this._renderScrollbar();let o=[];if(s>=0)for(let l=n;l<=s;l++){let u=this.viewModel.widgetRenderer(l);u.dataset.windowedListIndex=`${l}`,o.push(u)}let a=this.layout.widgets.length;for(let l=a-1;l>=0;l--)o.includes(this.layout.widgets[l])||((e=this._itemsResizeObserver)===null||e===void 0||e.unobserve(this.layout.widgets[l].node),this.layout.removeWidget(this.layout.widgets[l]));for(let l=0;l{var c;return(c=this._itemsResizeObserver)===null||c===void 0?void 0:c.unobserve(u.node)})),this.layout.insertWidget(l,u)}if(this.viewModel.windowingActive){if(s>=0){this._updateTotalSize();let[l,u]=this.viewModel.getSpan(n,s);this._viewport.style.transform=`translateY(${l}px)`}else this._innerElement.style.height="0px",this._viewport.style.top="0px",this._viewport.style.minHeight="0px";this._scrollUpdateWasRequested&&(this._outerElement.scrollTop=this.viewModel.scrollOffset,this._scrollUpdateWasRequested=!1)}}let r=-1;for(let n of this._viewport.children){let s=parseInt(n.dataset.windowedListIndex,10);if(s{console.log(e)})}_resetScrollToItem(){this._resetScrollToItemTimeout&&clearTimeout(this._resetScrollToItemTimeout),this._scrollToItem&&(this._resetScrollToItemTimeout=window.setTimeout(()=>{this._scrollToItem=null,this._isScrolling&&(this._isScrolling.resolve(),this._isScrolling=null)},qSe))}_renderScrollbar(){var e,t;if(!this.scrollbar)return[];let{node:r,renderer:n,viewModel:s}=this,o=r.querySelector(".jp-WindowedPanel-scrollbar-content"),a=[],l=new Set,u=(p,g)=>{if(p instanceof HTMLElement)return p;l.add(p.key);let v={index:g},_=this._scrollbarItems[p.key];if(_&&!_.isDisposed)try{return _.render(v)}catch{return document.createElement("div")}else{this._scrollbarItems[p.key]=p;try{return p.render(v)}catch{return document.createElement("div")}}},c=s.itemsList,d=(e=c?.length)!==null&&e!==void 0?e:s.widgetCount;for(let p=0;p!l.has(p));for(let p of h)this._scrollbarItems[p].dispose(),delete this._scrollbarItems[p];let f=[...o.childNodes];if((f.length!==a.length||!f.every((p,g)=>a[g]===p))&&o.replaceChildren(...a),this.scrollbar){let p=this.viewModel.getRangeToRender({virtual:!0});if(p!==null){let[g,v]=p,_=a[g],x=a[v];this._viewportIndicator.style.top=_.offsetTop-1+"px",this._viewportIndicator.style.height=x.offsetTop-_.offsetTop+x.offsetHeight+"px"}}return a}_evtPointerDown(e){let t=e.target;for(;t&&t.parentElement;){if(t.hasAttribute("data-index")){let r=parseInt(t.getAttribute("data-index"),10);return void(async()=>{await this.scrollToItem(r),this.jumped.emit(r)})()}t=t.parentElement}}_onScrollEnd(){this._timerToClearScrollStatus&&window.clearTimeout(this._timerToClearScrollStatus),this._viewport.dataset.isScrolling="false",this._requiresTotalSizeUpdate&&this._updateTotalSize(),this._requiresTotalSizeUpdate=!1}_updateTotalSize(){if(this.viewModel.windowingActive){if(this._viewport.dataset.isScrolling=="true"){this._requiresTotalSizeUpdate=!0;return}let t=this.viewModel.getEstimatedTotalSize()+this._viewportPaddingTop+this._viewportPaddingBottom;this._innerElement.style.height=`${t}px`}}};Nu.DEFAULT_WIDGET_SIZE=50;e4=class extends Rn{constructor(){super({fitPolicy:"set-no-constraint"})}get parent(){return super.parent}set parent(e){super.parent=e}attachWidget(e,t){let r=this.parent.viewportNode.children[e];this.parent.isAttached&&te.sendMessage(t,j.Msg.BeforeAttach),this.parent.viewportNode.insertBefore(t.node,r),this.parent.isAttached&&te.sendMessage(t,j.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&te.sendMessage(t,j.Msg.BeforeDetach),this.parent.viewportNode.removeChild(t.node),this.parent.isAttached&&te.sendMessage(t,j.Msg.AfterDetach)}moveWidget(e,t,r){let n=this.parent.viewportNode.children[t];e{ZR();QR();Bz();Hz();Vz();YR();zz();Wz();CJ();IJ();EJ();kJ();TJ();AJ();RJ();SJ();X6();LJ()});var PJ,FJ,Sv,NJ=b(()=>{PJ="jp-HoverBox",FJ="-1000";(function(i){function e(t){let{anchor:r,host:n,node:s,privilege:o,outOfViewDisplay:a}=t,l=n.getBoundingClientRect();s.classList.contains(PJ)||s.classList.add(PJ),s.style.visibility&&(s.style.visibility=""),s.style.zIndex===""&&(s.style.zIndex=""),s.style.maxHeight="",s.style.marginTop="";let u=t.style||window.getComputedStyle(s),c=r.top-l.top,d=l.bottom-r.bottom,h=parseInt(u.marginTop,10)||0,f=parseInt(u.marginLeft,10)||0,p=parseInt(u.minHeight,10)||t.minHeight,g=parseInt(u.maxHeight,10)||t.maxHeight,v=o==="forceAbove"?!1:o==="forceBelow"?!0:o==="above"?c=g||d>=c;if(v?g=Math.min(d-h,g):(g=Math.min(c,g),s.style.marginTop="0px"),s.style.maxHeight=`${g}px`,!(g>=p&&(d>=p||c>=p))){s.style.zIndex=FJ,s.style.visibility="hidden";return}t.size?(s.style.width=`${t.size.width}px`,s.style.height=`${t.size.height}px`,s.style.contain="strict"):(s.style.contain="",s.style.width="auto",s.style.height="");let x=t.size?t.size.height:s.getBoundingClientRect().height,y=t.offset&&t.offset.vertical&&t.offset.vertical.above||0,C=t.offset&&t.offset.vertical&&t.offset.vertical.below||0,S=v?l.bottom-d+C:l.top+c-x+y;s.style.top=`${Math.floor(S)}px`;let R=t.offset&&t.offset.horizontal||0,I=r.left+R;s.style.left=`${Math.ceil(I)}px`;let E=s.getBoundingClientRect(),w=E.right;w>window.innerWidth&&(I-=w-window.innerWidth,w=window.innerWidth,s.style.left=`${Math.ceil(I)}px`),Il.bottom,Yt=I+fl.right,et=!1,In=!1,Pr=!1;if(ot)switch(a?.top||"hidden-inside"){case"hidden-inside":U||(et=!0);break;case"hidden-outside":ne||(et=!0);break;case"stick-inside":l.top>S&&(S=l.top,Pr=!0);break;case"stick-outside":l.top>k&&(S=l.top-Et,Pr=!0);break}if(Ve)switch(a?.bottom||"hidden-outside"){case"hidden-inside":ne||(et=!0);break;case"hidden-outside":U||(et=!0);break;case"stick-inside":l.bottomI+f&&(I=l.left-f,In=!0);break;case"stick-outside":l.left>w&&(I=l.left-f-Qe,In=!0);break}if(bt)switch(a?.right||"hidden-outside"){case"hidden-inside":De||(et=!0);break;case"hidden-outside":le||(et=!0);break;case"stick-inside":l.right{t4=N(Ge()),sCt=new t4.Token("@jupyterlab/ui-components:IFormRendererRegistry","A service for settings form renderer registration."),oCt=new t4.Token("@jupyterlab/ui-components:ILabIconManager","A service to register and request icons.")});var zJ=b(()=>{});var Mo=b(()=>{$J();Gf();NJ();BJ();Jo();zJ()});function Kc(i){return Kc=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Kc(i)}var i4=b(()=>{});function qJ(i,e){if(Kc(i)!="object"||!i)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var r=t.call(i,e||"default");if(Kc(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var HJ=b(()=>{i4()});function jJ(i){var e=qJ(i,"string");return Kc(e)=="symbol"?e:e+""}var VJ=b(()=>{i4();HJ()});function SCt(i,e,t){return(e=jJ(e))in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}var HSe=b(()=>{VJ()});function UJ(){return UJ=Object.assign?Object.assign.bind():function(i){for(var e=1;e{});function r4(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=Array(e);t{});function TCt(i,e){if(i){if(typeof i=="string")return r4(i,e);var t={}.toString.call(i).slice(8,-1);return t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set"?Array.from(i):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?r4(i,e):void 0}}var VSe=b(()=>{WJ()});var Cv,n4,s4=b(()=>{tt();Cv=class{constructor(e={}){if(this._map=new Map,this._changed=new G(this),this._isDisposed=!1,this._itemCmp=e.itemCmp||n4.itemCmp,e.values)for(let t in e.values)this._map.set(t,e.values[t])}get type(){return"Map"}get changed(){return this._changed}get isDisposed(){return this._isDisposed}get size(){return this._map.size}set(e,t){let r=this._map.get(e);if(t===void 0)throw Error("Cannot set an undefined value, use remove");let n=this._itemCmp;return r!==void 0&&n(r,t)||(this._map.set(e,t),this._changed.emit({type:r?"change":"add",key:e,oldValue:r,newValue:t})),r}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){let e=[];return this._map.forEach((t,r)=>{e.push(r)}),e}values(){let e=[];return this._map.forEach((t,r)=>{e.push(t)}),e}delete(e){let t=this._map.get(e);return this._map.delete(e)&&this._changed.emit({type:"remove",key:e,oldValue:t,newValue:void 0}),t}clear(){let e=this.keys();for(let t=0;t{Lh=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Sa.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Sa.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Sa.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Sa.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Sa.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Sa.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Sa.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})(Lh||(Lh={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(Sa||(Sa={}))});var Iv,KJ,YJ=b(()=>{Zt();GJ();Iv=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}};(function(i){let e=null,t=(E=>w=>{let k=!1;return E.then(()=>!k&&w()),()=>{k=!0}})(Promise.resolve());function r(E,w){let k=h.get(E);if(!k||k.length===0){_(E,w);return}Js(Ko(k),z=>z?v(z,E,w):!0)&&_(E,w)}i.sendMessage=r;function n(E,w){if(!w.isConflatable){x(E,w);return}ys(d,O=>O.handler!==E||!O.msg||O.msg.type!==w.type||!O.msg.isConflatable?!1:O.msg.conflate(w))||x(E,w)}i.postMessage=n;function s(E,w){let k=h.get(E);k&&k.indexOf(w)!==-1||(k?k.push(w):h.set(E,[w]))}i.installMessageHook=s;function o(E,w){let k=h.get(E);if(!k)return;let O=k.indexOf(w);O!==-1&&(k[O]=null,C(k))}i.removeMessageHook=o;function a(E){let w=h.get(E);w&&w.length>0&&(L.fill(w,null),C(w));for(let k of d)k.handler===E&&(k.handler=null,k.msg=null)}i.clearData=a;function l(){g||e===null||(e(),e=null,g=!0,y(),g=!1)}i.flush=l;function u(){return p}i.getExceptionHandler=u;function c(E){let w=p;return p=E,w}i.setExceptionHandler=c;let d=new Lh,h=new WeakMap,f=new Set,p=E=>{console.error(E)},g=!1;function v(E,w,k){let O=!0;try{typeof E=="function"?O=E(w,k):O=E.messageHook(w,k)}catch(z){p(z)}return O}function _(E,w){try{E.processMessage(w)}catch(k){p(k)}}function x(E,w){d.addLast({handler:E,msg:w}),e===null&&(e=t(y))}function y(){if(e=null,d.isEmpty)return;let E={handler:null,msg:null};for(d.addLast(E);;){let w=d.removeFirst();if(w===E)return;w.handler&&w.msg&&r(w.handler,w.msg)}}function C(E){f.size===0&&t(S),f.add(E)}function S(){f.forEach(R),f.clear()}function R(E){L.removeAllWhere(E,I)}function I(E){return E===null}})(KJ||(KJ={}))});var o4,Ev,XJ=b(()=>{o4=N(Ge());YJ();s4();Ev=class extends Cv{constructor(e={}){super({itemCmp:o4.JSONExt.deepEqual,values:e.values})}toJSON(){let e=Object.create(null),t=this.keys();for(let r of t){let n=this.get(r);n!==void 0&&(e[r]=o4.JSONExt.deepCopy(n))}return e}};(function(i){class e extends Iv{constructor(r,n){super(r),this.args=n}}i.ChangeMessage=e})(Ev||(Ev={}))});var JJ,ZJ=b(()=>{tt();JJ=class{constructor(e=""){this._text="",this._isDisposed=!1,this._changed=new G(this),this._text=e}get type(){return"String"}get changed(){return this._changed}set text(e){e.length===this._text.length&&e===this._text||(this._text=e,this._changed.emit({type:"set",start:0,end:e.length,value:e}))}get text(){return this._text}insert(e,t,r){this._text=this._text.slice(0,e)+t+this._text.slice(e),this._changed.emit({type:"insert",start:e,end:e+t.length,value:t,options:r})}remove(e,t,r){let n=this._text.slice(e,t);this._text=this._text.slice(0,e)+this._text.slice(t),this._changed.emit({type:"remove",start:e,end:t,value:n,options:r})}clear(){this.text=""}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,G.clearData(this),this.clear())}}});var kv,a4,l4=b(()=>{Zt();tt();kv=class{constructor(e={}){if(this._array=[],this._isDisposed=!1,this._changed=new G(this),e.values)for(let t of e.values)this._array.push(t);this._itemCmp=e.itemCmp||a4.itemCmp}get type(){return"List"}get changed(){return this._changed}get length(){return this._array.length}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,G.clearData(this),this.clear())}[Symbol.iterator](){return this._array[Symbol.iterator]()}get(e){return this._array[e]}set(e,t){let r=this._array[e];if(t===void 0)throw new Error("Cannot set an undefined item");let n=this._itemCmp;n(r,t)||(this._array[e]=t,this._changed.emit({type:"set",oldIndex:e,newIndex:e,oldValues:[r],newValues:[t]}))}push(e){let t=this._array.push(e);return this._changed.emit({type:"add",oldIndex:-1,newIndex:this.length-1,oldValues:[],newValues:[e]}),t}insert(e,t){e===this._array.length?this._array.push(t):L.insert(this._array,e,t),this._changed.emit({type:"add",oldIndex:-2,newIndex:e,oldValues:[],newValues:[t]})}removeValue(e){let t=this._itemCmp,r=L.findFirstIndex(this._array,n=>t(n,e));return r<0||this.remove(r),r}remove(e){let t=L.removeAt(this._array,e);if(t!==void 0)return this._changed.emit({type:"remove",oldIndex:e,newIndex:-1,newValues:[],oldValues:[t]}),t}clear(){let e=this._array.slice();this._array.length=0,this._changed.emit({type:"clear",oldIndex:0,newIndex:0,newValues:[],oldValues:e})}move(e,t){if(this.length<=1||e===t)return;let r=[this._array[e]];L.move(this._array,e,t),this._changed.emit({type:"move",oldIndex:e,newIndex:t,oldValues:r,newValues:r})}pushAll(e){let t=this.length;for(let r of e)this._array.push(r);return this._changed.emit({type:"add",oldIndex:-1,newIndex:t,oldValues:[],newValues:Array.from(e)}),this.length}insertAll(e,t){let r=e;for(let n of t)L.insert(this._array,e++,n);this._changed.emit({type:"add",oldIndex:-2,newIndex:r,oldValues:[],newValues:Array.from(t)})}removeRange(e,t){let r=this._array.slice(e,t);for(let n=e;n{l4();Tv=class extends kv{constructor(e){super(),this._inCompound=!1,this._isUndoable=!0,this._madeCompoundChange=!1,this._index=-1,this._stack=[],this._serializer=e,this.changed.connect(this._onListChanged,this)}get canRedo(){return this._index=0}beginCompoundOperation(e){this._inCompound=!0,this._isUndoable=e!==!1,this._madeCompoundChange=!1}endCompoundOperation(){this._inCompound=!1,this._isUndoable=!0,this._madeCompoundChange&&this._index++}undo(){if(!this.canUndo)return;let e=this._stack[this._index];this._isUndoable=!1;for(let t of e.reverse())this._undoChange(t);this._isUndoable=!0,this._index--}redo(){if(!this.canRedo)return;this._index++;let e=this._stack[this._index];this._isUndoable=!1;for(let t of e)this._redoChange(t);this._isUndoable=!0}clearUndo(){this._index=-1,this._stack=[]}_onListChanged(e,t){if(this.isDisposed||!this._isUndoable)return;(!this._inCompound||!this._madeCompoundChange)&&(this._stack=this._stack.slice(0,this._index+1));let r=this._copyChange(t);this._stack[this._index+1]?this._stack[this._index+1].push(r):this._stack.push([r]),this._inCompound?this._madeCompoundChange=!0:this._index++}_undoChange(e){let t=0,r=this._serializer;switch(e.type){case"add":for(let n=e.newValues.length;n>0;n--)this.remove(e.newIndex);break;case"set":t=e.oldIndex;for(let n of e.oldValues)this.set(t++,r.fromJSON(n));break;case"remove":t=e.oldIndex;for(let n of e.oldValues)this.insert(t++,r.fromJSON(n));break;case"move":this.move(e.newIndex,e.oldIndex);break;case"clear":t=0;for(let n of e.oldValues)this.insert(t++,r.fromJSON(n));break;default:return}}_redoChange(e){let t=0,r=this._serializer;switch(e.type){case"add":t=e.newIndex;for(let n of e.newValues)this.insert(t++,r.fromJSON(n));break;case"set":t=e.newIndex;for(let n of e.newValues)this.set(e.newIndex++,r.fromJSON(n));break;case"remove":for(let n=e.oldValues.length;n>0;n--)this.remove(e.oldIndex);break;case"move":this.move(e.oldIndex,e.newIndex);break;case"clear":this.clear();break;default:return}}_copyChange(e){let t=[];for(let n of e.oldValues)t.push(this._serializer.toJSON(n));let r=[];for(let n of e.newValues)r.push(this._serializer.toJSON(n));return{type:e.type,oldIndex:e.oldIndex,newIndex:e.newIndex,oldValues:t,newValues:r}}};(function(i){class e{toJSON(r){return r}fromJSON(r){return r}}i.IdentitySerializer=e})(Tv||(Tv={}))});var eZ,Av,tZ=b(()=>{eZ=N(Ge());Nr();tt();Av=class{constructor(e=null){this._value=null,this._changed=new G(this),this._isDisposed=!1,this._value=e}get type(){return"Value"}get isDisposed(){return this._isDisposed}get changed(){return this._changed}get(){return this._value}set(e){let t=this._value;eZ.JSONExt.deepEqual(t,e)||(this._value=e,this._changed.emit({oldValue:t,newValue:e}))}dispose(){this._isDisposed||(this._isDisposed=!0,G.clearData(this),this._value=null)}};(function(i){class e{}i.IChangedArgs=e})(Av||(Av={}))});var USe=b(()=>{tZ();XJ();l4();s4();ZJ();QJ()});var $h,Ca,iZ=b(()=>{$h=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Ca.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Ca.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Ca.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Ca.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Ca.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Ca.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Ca.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})($h||($h={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(Ca||(Ca={}))});var Zr,Bu,ae,rZ=b(()=>{Zt();iZ();Zr=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},Bu=class extends Zr{get isConflatable(){return!0}conflate(e){return!0}};(function(i){let e=null,t=(E=>w=>{let k=!1;return E.then(()=>!k&&w()),()=>{k=!0}})(Promise.resolve());function r(E,w){let k=h.get(E);if(!k||k.length===0){_(E,w);return}Js(Ko(k),z=>z?v(z,E,w):!0)&&_(E,w)}i.sendMessage=r;function n(E,w){if(!w.isConflatable){x(E,w);return}ys(d,O=>O.handler!==E||!O.msg||O.msg.type!==w.type||!O.msg.isConflatable?!1:O.msg.conflate(w))||x(E,w)}i.postMessage=n;function s(E,w){let k=h.get(E);k&&k.indexOf(w)!==-1||(k?k.push(w):h.set(E,[w]))}i.installMessageHook=s;function o(E,w){let k=h.get(E);if(!k)return;let O=k.indexOf(w);O!==-1&&(k[O]=null,C(k))}i.removeMessageHook=o;function a(E){let w=h.get(E);w&&w.length>0&&(L.fill(w,null),C(w));for(let k of d)k.handler===E&&(k.handler=null,k.msg=null)}i.clearData=a;function l(){g||e===null||(e(),e=null,g=!0,y(),g=!1)}i.flush=l;function u(){return p}i.getExceptionHandler=u;function c(E){let w=p;return p=E,w}i.setExceptionHandler=c;let d=new $h,h=new WeakMap,f=new Set,p=E=>{console.error(E)},g=!1;function v(E,w,k){let O=!0;try{typeof E=="function"?O=E(w,k):O=E.messageHook(w,k)}catch(z){p(z)}return O}function _(E,w){try{E.processMessage(w)}catch(k){p(k)}}function x(E,w){d.addLast({handler:E,msg:w}),e===null&&(e=t(y))}function y(){if(e=null,d.isEmpty)return;let E={handler:null,msg:null};for(d.addLast(E);;){let w=d.removeFirst();if(w===E)return;w.handler&&w.msg&&r(w.handler,w.msg)}}function C(E){f.size===0&&t(S),f.add(E)}function S(){f.forEach(R),f.clear()}function R(E){L.removeAllWhere(E,I)}function I(E){return E===null}})(ae||(ae={}))});var Ri,Lr,nZ=b(()=>{Nr();Ri=class{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:r,distance:n}=this._scrollTarget,s=Lr.SCROLL_EDGE_SIZE-n,o=Math.pow(s/Lr.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*Lr.SCROLL_EDGE_SIZE));switch(r){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});Lr.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(n=>{this._resolve=n});let r=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(r),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let r=this.dragImage.style;r.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){Lr.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=Lr.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=Lr.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,r=this._currentTarget,n=this._currentElement,s=Lr.findElementBehindBackdrop(e,this.document);this._currentElement=s,s!==n&&s!==r&&Lr.dispatchDragExit(this,r,s,e),s!==n&&s!==r&&(r=Lr.dispatchDragEnter(this,s,r,e)),r!==t&&(this._currentTarget=r,Lr.dispatchDragLeave(this,t,r,e));let o=Lr.dispatchDragOver(this,r,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=Lr.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=Ri.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=Ri.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=Ri.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=Ri.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(i){class e extends DragEvent{constructor(n,s){super(s.type,{bubbles:!0,cancelable:!0,altKey:n.altKey,button:n.button,clientX:n.clientX,clientY:n.clientY,ctrlKey:n.ctrlKey,detail:0,metaKey:n.metaKey,relatedTarget:s.related,screenX:n.screenX,screenY:n.screenY,shiftKey:n.shiftKey,view:window});let{drag:o}=s;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}i.Event=e;function t(r,n=document){return Lr.overrideCursor(r,n)}i.overrideCursor=t})(Ri||(Ri={}));(function(i){i.SCROLL_EDGE_SIZE=20;function e(C,S){return d[C]&h[S]?C:"none"}i.validateAction=e;function t(C,S=document){if(C){if(r&&C==r.event)return r.element;i.cursorBackdrop.style.zIndex="-1000";let R=S.elementFromPoint(C.clientX,C.clientY);return i.cursorBackdrop.style.zIndex="",r={event:C,element:R},R}else{let R=i.cursorBackdrop.style.transform;if(n&&R===n.transform)return n.element;let I=i.cursorBackdrop.getBoundingClientRect();i.cursorBackdrop.style.zIndex="-1000";let E=S.elementFromPoint(I.left+I.width/2,I.top+I.height/2);return i.cursorBackdrop.style.zIndex="",n={transform:R,element:E},E}}i.findElementBehindBackdrop=t;let r=null,n=null;function s(C){let S=C.clientX,R=C.clientY,I=t(C);for(;I;I=I.parentElement){if(!I.hasAttribute("data-lm-dragscroll"))continue;let E=0,w=0;I===document.body&&(E=window.pageXOffset,w=window.pageYOffset);let k=I.getBoundingClientRect(),O=k.top+w,z=k.left+E,Y=z+k.width,pe=O+k.height;if(S=Y||R=pe)continue;let U=S-z+1,ne=R-O+1,le=Y-S,De=pe-R,Et=Math.min(U,ne,le,De);if(Et>i.SCROLL_EDGE_SIZE)continue;let Qe;switch(Et){case De:Qe="bottom";break;case ne:Qe="top";break;case le:Qe="right";break;case U:Qe="left";break;default:throw"unreachable"}let ot=I.scrollWidth-I.clientWidth,Ve=I.scrollHeight-I.clientHeight,Yt;switch(Qe){case"top":Yt=Ve>0&&I.scrollTop>0;break;case"left":Yt=ot>0&&I.scrollLeft>0;break;case"right":Yt=ot>0&&I.scrollLeft0&&I.scrollTop{R===y&&i.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",p,!0),i.cursorBackdrop.removeEventListener("scroll",g,!0),I.removeChild(i.cursorBackdrop))})}i.overrideCursor=f;function p(C){i.cursorBackdrop&&(i.cursorBackdrop.style.transform=`translate(${C.clientX}px, ${C.clientY}px)`)}function g(C){if(!i.cursorBackdrop)return;let S=t();if(!S)return;let R=S.closest("[data-lm-dragscroll]");R&&(R.scrollTop+=i.cursorBackdrop.scrollTop-_,R.scrollLeft+=i.cursorBackdrop.scrollLeft-_,v())}function v(){i.cursorBackdrop.scrollTop=_,i.cursorBackdrop.scrollLeft=_}let _=500;function x(){let C=document.createElement("div");return C.classList.add("lm-cursor-backdrop"),C}let y=0;i.cursorBackdrop=x()})(Lr||(Lr={}))});var Ta,Ro,jn,cm,W,Mv,Oo,Xc,Ph,Aa,dm,hm,Ws,Ea,u4,Rv,fm,c4,Jc,d4,pm,h4,Vn,Yc,Dv,f4,Fh,Ia,Do,Qr,sZ,WSe,zu,bs,p4,yi,Zc,li,ka,qi,Nh,Ov,oZ,aZ,m4,lZ,uZ,g4=b(()=>{Zt();Ta=N(Ge());Ad();rZ();md();tt();nZ();jf();el();Nr();Hf();Ro=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}};(function(i){function e(s,o){let a=s.length;if(a===0)return o;let l=0,u=0,c=0,d=0,h=0;for(let g=0;g0&&(d+=v.stretch,h++)}if(o===c)return 0;if(o<=l){for(let g=0;g=u){for(let g=0;g0&&g>f;){let v=g,_=d;for(let x=0;x0&&g>f;){let v=g/p;for(let _=0;_0&&g>f;){let v=g,_=d;for(let x=0;x=y.maxSize?(g-=y.maxSize-y.size,d-=y.stretch,y.size=y.maxSize,y.done=!0,p--,h--):(g-=C,y.size+=C)}}for(;p>0&&g>f;){let v=g/p;for(let _=0;_=x.maxSize?(g-=x.maxSize-x.size,x.size=x.maxSize,x.done=!0,p--):(g-=v,x.size+=v))}}}return 0}i.calc=e;function t(s,o,a){s.length===0||a===0||(a>0?r(s,o,a):n(s,o,-a))}i.adjust=t;function r(s,o,a){let l=0;for(let h=0;h<=o;++h){let f=s[h];l+=f.maxSize-f.size}let u=0;for(let h=o+1,f=s.length;h=0&&c>0;--h){let f=s[h],p=f.maxSize-f.size;p>=c?(f.sizeHint=f.size+c,c=0):(f.sizeHint=f.size+p,c-=p)}let d=a;for(let h=o+1,f=s.length;h0;++h){let p=s[h],g=p.size-p.minSize;g>=d?(p.sizeHint=p.size-d,d=0):(p.sizeHint=p.size-g,d-=g)}}function n(s,o,a){let l=0;for(let h=o+1,f=s.length;h0;++h){let p=s[h],g=p.maxSize-p.size;g>=c?(p.sizeHint=p.size+c,c=0):(p.sizeHint=p.size+g,c-=g)}let d=a;for(let h=o;h>=0&&d>0;--h){let f=s[h],p=f.size-f.minSize;p>=d?(f.sizeHint=f.size-d,d=0):(f.sizeHint=f.size-p,d-=p)}}})(jn||(jn={}));cm=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new G(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,G.clearData(this))}},W=class{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new G(this),this._hiddenMode=W.HiddenMode.Display,this.node=Mv.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(W.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&W.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),G.clearData(this),ae.clearData(this),Ye.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(W.Flag.IsDisposed)}get isAttached(){return this.testFlag(W.Flag.IsAttached)}get isHidden(){return this.testFlag(W.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return Mv.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==W.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new W.ChildMessage("child-removed",this);ae.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new W.ChildMessage("child-added",this);ae.sendMessage(this._parent,t)}this.isDisposed||ae.sendMessage(this,W.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(W.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){ae.postMessage(this,W.Msg.UpdateRequest)}fit(){ae.postMessage(this,W.Msg.FitRequest)}activate(){ae.postMessage(this,W.Msg.ActivateRequest)}close(){ae.sendMessage(this,W.Msg.CloseRequest)}show(){if(this.testFlag(W.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&ae.sendMessage(this,W.Msg.BeforeShow),this.clearFlag(W.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&ae.sendMessage(this,W.Msg.AfterShow),this.parent)){let e=new W.ChildMessage("child-shown",this);ae.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(W.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&ae.sendMessage(this,W.Msg.BeforeHide),this.setFlag(W.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&ae.sendMessage(this,W.Msg.AfterHide),this.parent)){let e=new W.ChildMessage("child-hidden",this);ae.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(W.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(W.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(W.Flag.IsVisible),this.setFlag(W.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(W.Flag.IsVisible),this.clearFlag(W.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&W.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case W.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case W.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case W.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case W.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case W.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case W.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(i){(function(s){s[s.Display=0]="Display",s[s.Scale=1]="Scale",s[s.ContentVisibility=2]="ContentVisibility"})(i.HiddenMode||(i.HiddenMode={})),function(s){s[s.IsDisposed=1]="IsDisposed",s[s.IsAttached=2]="IsAttached",s[s.IsHidden=4]="IsHidden",s[s.IsVisible=8]="IsVisible",s[s.DisallowLayout=16]="DisallowLayout"}(i.Flag||(i.Flag={})),function(s){s.BeforeShow=new Zr("before-show"),s.AfterShow=new Zr("after-show"),s.BeforeHide=new Zr("before-hide"),s.AfterHide=new Zr("after-hide"),s.BeforeAttach=new Zr("before-attach"),s.AfterAttach=new Zr("after-attach"),s.BeforeDetach=new Zr("before-detach"),s.AfterDetach=new Zr("after-detach"),s.ParentChanged=new Zr("parent-changed"),s.UpdateRequest=new Bu("update-request"),s.FitRequest=new Bu("fit-request"),s.ActivateRequest=new Bu("activate-request"),s.CloseRequest=new Bu("close-request")}(i.Msg||(i.Msg={}));class e extends Zr{constructor(o,a){super(o),this.child=a}}i.ChildMessage=e;class t extends Zr{constructor(o,a){super("resize"),this.width=o,this.height=a}}i.ResizeMessage=t,function(s){s.UnknownSize=new s(-1,-1)}(t=i.ResizeMessage||(i.ResizeMessage={}));function r(s,o,a=null){if(s.parent)throw new Error("Cannot attach a child widget.");if(s.isAttached||s.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");ae.sendMessage(s,i.Msg.BeforeAttach),o.insertBefore(s.node,a),ae.sendMessage(s,i.Msg.AfterAttach)}i.attach=r;function n(s){if(s.parent)throw new Error("Cannot detach a child widget.");if(!s.isAttached||!s.node.isConnected)throw new Error("Widget is not attached.");ae.sendMessage(s,i.Msg.BeforeDetach),s.node.parentNode.removeChild(s.node),ae.sendMessage(s,i.Msg.AfterDetach)}i.detach=n})(W||(W={}));(function(i){i.titleProperty=new Ye({name:"title",create:t=>new cm({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}i.createNode=e})(Mv||(Mv={}));Oo=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,G.clearData(this),Ye.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)ae.sendMessage(t,W.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)ae.sendMessage(t,W.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)ae.sendMessage(t,e)}onAfterAttach(e){for(let t of this)ae.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)ae.sendMessage(t,e)}onAfterDetach(e){for(let t of this)ae.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||ae.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||ae.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||ae.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||ae.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(i){function e(s){return Ph.horizontalAlignmentProperty.get(s)}i.getHorizontalAlignment=e;function t(s,o){Ph.horizontalAlignmentProperty.set(s,o)}i.setHorizontalAlignment=t;function r(s){return Ph.verticalAlignmentProperty.get(s)}i.getVerticalAlignment=r;function n(s,o){Ph.verticalAlignmentProperty.set(s,o)}i.setVerticalAlignment=n})(Oo||(Oo={}));Xc=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=he.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,r,n){let s=Math.max(this._minWidth,Math.min(r,this._maxWidth)),o=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(s"center",changed:e}),i.verticalAlignmentProperty=new Ye({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(Ph||(Ph={}));Aa=class extends Oo{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let r=this._widgets.indexOf(t),n=Math.max(0,Math.min(e,this._widgets.length));if(r===-1){L.insert(this._widgets,n,t),this.parent&&this.attachWidget(n,t);return}n===this._widgets.length&&n--,r!==n&&(L.move(this._widgets,r,n),this.parent&&this.moveWidget(r,n,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=L.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let r=this.parent.node.children[e];this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,r),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterAttach)}moveWidget(e,t,r){this.parent.isAttached&&ae.sendMessage(r,W.Msg.BeforeDetach),this.parent.node.removeChild(r.node),this.parent.isAttached&&ae.sendMessage(r,W.Msg.AfterDetach);let n=this.parent.node.children[t];this.parent.isAttached&&ae.sendMessage(r,W.Msg.BeforeAttach),this.parent.node.insertBefore(r.node,n),this.parent.isAttached&&ae.sendMessage(r,W.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterDetach)}};(function(i){function e(t){return Math.max(0,Math.floor(t))}i.clampDimension=e})(dm||(dm={}));hm=dm,Ws=class extends Aa{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=dm.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=dm.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return Ea.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let r=this._sizers.length,n=e.slice(0,r);for(;n.length0&&(s.sizeHint=s.size);jn.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let r=new Xc(t),n=Ea.createHandle(this.renderer),s=Ea.averageSize(this._sizers),o=Ea.createSizer(s);L.insert(this._items,e,r),L.insert(this._sizers,e,o),L.insert(this._handles,e,n),this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(n),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),L.move(this._sizers,e,t),L.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let r=L.removeAt(this._items,e),n=L.removeAt(this._handles,e);L.removeAt(this._sizers,e),this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(n),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,r,n,s,o,a){let l=this._items[e];if(l.isHidden)return;let u=this._handles[e].style;t?(r+=this.widgetOffset,l.update(r,n,a,s),r+=a,u.top=`${n}px`,u.left=`${r}px`,u.width=`${this._spacing}px`,u.height=`${s}px`):(n+=this.widgetOffset,l.update(r,n,o,a),n+=a,u.top=`${n}px`,u.left=`${r}px`,u.width=`${o}px`,u.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,u=this._items.length;l0&&(d.sizeHint=d.size),c.isHidden){d.minSize=0,d.maxSize=0;continue}c.fit(),d.stretch=Ws.getStretch(c.widget),r?(d.minSize=c.minWidth,d.maxSize=c.maxWidth,n+=c.minWidth,s=Math.max(s,c.minHeight)):(d.minSize=c.minHeight,d.maxSize=c.maxHeight,s+=c.minHeight,n=Math.max(n,c.minWidth))}let o=this._box=he.boxSizing(this.parent.node);n+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${n}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&ae.sendMessage(this.parent.parent,W.Msg.FitRequest),this._dirty&&ae.sendMessage(this.parent,W.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let r=0;for(let d=0,h=this._items.length;d0){let d;if(c?d=Math.max(0,o-this._fixed):d=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let f of this._sizers)f.sizeHint*=d;this._hasNormedSizes=!1}let h=jn.calc(this._sizers,d);if(h>0)switch(this._alignment){case"start":break;case"center":l=0,u=h/2;break;case"end":l=0,u=h;break;case"justify":l=h/r,u=0;break;default:throw"unreachable"}}for(let d=0,h=this._items.length;d0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:s});function e(o){let a=new Ro;return a.sizeHint=Math.floor(o),a}i.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}i.createHandle=t;function r(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}i.averageSize=r;function n(o){let a=o.length;if(a===0)return[];let l=o.reduce((u,c)=>u+Math.abs(c),0);return l===0?o.map(u=>1/a):o.map(u=>u/l)}i.normalize=n;function s(o){o.parent&&o.parent.layout instanceof Ws&&o.parent.fit()}})(Ea||(Ea={}));u4=class extends Ws{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=hm.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let r=this._titles[e],n=r.classList.contains("lm-mod-expanded"),s=Rv.createTitle(this.renderer,t.title,n);this._titles[e]=s,this.parent.node.replaceChild(s,r)}insertWidget(e,t){t.id||(t.id=`id-${Ta.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let r=Rv.createTitle(this.renderer,t.title);L.insert(this._titles,e,r),this.parent.node.appendChild(r),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",r.id),super.attachWidget(e,t)}moveWidget(e,t,r){L.move(this._titles,e,t),super.moveWidget(e,t,r)}detachWidget(e,t){let r=L.removeAt(this._titles,e);this.parent.node.removeChild(r),super.detachWidget(e,t)}updateItemPosition(e,t,r,n,s,o,a){let l=this._titles[e].style;l.top=`${n}px`,l.left=`${r}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${s}px`:l.width=`${o}px`,super.updateItemPosition(e,t,r,n,s,o,a)}};(function(i){function e(t,r,n=!0){let s=t.createSectionTitle(r);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${r.label} Section`),s.setAttribute("aria-expanded",n?"true":"false"),s.setAttribute("aria-controls",r.owner.id),n&&s.classList.add("lm-mod-expanded"),s}i.createTitle=e})(Rv||(Rv={}));fm=class extends W{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=c4.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}};(function(i){function e(t){return t.layout||new Aa}i.createLayout=e})(c4||(c4={}));Jc=class extends fm{constructor(e={}){super({layout:d4.createLayout(e)}),this._handleMoved=new G(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=L.findFirstIndex(t.handles,u=>u.contains(e.target));if(r===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let n,s=t.handles[r],o=s.getBoundingClientRect();t.orientation==="horizontal"?n=e.clientX-o.left:n=e.clientY-o.top;let a=window.getComputedStyle(s),l=Ri.overrideCursor(a.cursor);this._pressData={index:r,delta:n,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,r=this.layout,n=this.node.getBoundingClientRect();r.orientation==="horizontal"?t=e.clientX-n.left-this._pressData.delta:t=e.clientY-n.top-this._pressData.delta,r.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(i){class e{createHandle(){let s=document.createElement("div");return s.className="lm-SplitPanel-handle",s}}i.Renderer=e,i.defaultRenderer=new e;function t(n){return Ws.getStretch(n)}i.getStretch=t;function r(n,s){Ws.setStretch(n,s)}i.setStretch=r})(Jc||(Jc={}));(function(i){function e(t){return t.layout||new Ws({renderer:t.renderer||Jc.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}i.createLayout=e})(d4||(d4={}));pm=class extends Jc{constructor(e={}){super({...e,layout:h4.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new G(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=L.findFirstIndex(this.widgets,r=>r.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,r=t.widgets[e];if(!r)return;let n=r.isHidden,s=t.absoluteSizes(),o=(n?-1:1)*this.spacing,a=s.reduce((u,c)=>u+c),l=[...s];if(n){let u=this._widgetSizesCache.get(r);if(!u)return;l[e]+=u;let c=l.map(d=>d-u>0).lastIndexOf(!0);c===-1?l.forEach((d,h)=>{h!==e&&(l[h]-=s[h]/a*(u-o))}):l[c]-=u-o}else{let u=s[e];this._widgetSizesCache.set(r,u),l[e]=0;let c=l.map(d=>d>0).lastIndexOf(!0);if(c===-1)return;l[c]=s[c]+u+o}return l.map(u=>u/(a+o))}_evtClick(e){let t=e.target;if(t){let r=L.findFirstIndex(this.titles,n=>n.contains(t));r>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(r))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,r=!1;if(t){let n=L.findFirstIndex(this.titles,s=>s.contains(t));if(n>=0){let s=e.keyCode.toString();if(e.key.match(/Space|Enter/)||s.match(/13|32/))t.click(),r=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||s.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||s.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||s.match(/37|38/)?-1:1,a=this.titles.length,l=(n+a+o)%a;this.titles[l].focus(),r=!0}else e.key==="End"||s==="35"?(this.titles[this.titles.length-1].focus(),r=!0):(e.key==="Home"||s==="36")&&(this.titles[0].focus(),r=!0)}r&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],r=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),r.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),r.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),r.hide()),this._expansionToggled.emit(e)}};(function(i){class e extends Jc.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(r){return document.createElement("span")}createSectionTitle(r){let n=document.createElement("h3");n.setAttribute("tabindex","0"),n.id=this.createTitleKey(r),n.className=this.titleClassName;for(let a in r.dataset)n.dataset[a]=r.dataset[a];let s=n.appendChild(this.createCollapseIcon(r));s.className="lm-AccordionPanel-titleCollapser";let o=n.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=r.label,o.title=r.caption||r.label,n}createTitleKey(r){let n=this._titleKeys.get(r);return n===void 0&&(n=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(r,n)),n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e})(pm||(pm={}));(function(i){function e(t){return t.layout||new u4({renderer:t.renderer||pm.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}i.createLayout=e})(h4||(h4={}));Vn=class extends Aa{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=hm.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=hm.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){L.insert(this._items,e,new Xc(t)),L.insert(this._sizers,e,new Ro),this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),L.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let r=L.removeAt(this._items,e);L.removeAt(this._sizers,e),this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a0)switch(this._alignment){case"start":break;case"center":u=0,c=l/2;break;case"end":u=0,c=l;break;case"justify":u=l/r,c=0;break;default:throw"unreachable"}for(let d=0,h=this._items.length;d0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r}),i.sizeBasisProperty=new Ye({name:"sizeBasis",create:()=>0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r});function e(n){return n==="left-to-right"||n==="right-to-left"}i.isHorizontal=e;function t(n){return Math.max(0,Math.floor(n))}i.clampSpacing=t;function r(n){n.parent&&n.parent.layout instanceof Vn&&n.parent.fit()}})(Yc||(Yc={}));Dv=class extends fm{constructor(e={}){super({layout:f4.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(i){function e(s){return Vn.getStretch(s)}i.getStretch=e;function t(s,o){Vn.setStretch(s,o)}i.setStretch=t;function r(s){return Vn.getSizeBasis(s)}i.getSizeBasis=r;function n(s,o){Vn.setSizeBasis(s,o)}i.setSizeBasis=n})(Dv||(Dv={}));(function(i){function e(t){return t.layout||new Vn(t)}i.createLayout=e})(f4||(f4={}));Fh=class extends W{constructor(e){super({node:Ia.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(W.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||Fh.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=Ia.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(r=>Ia.createItem(this.commands,r));return t.forEach(r=>this._items.push(r)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){L.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){Pt.render(null,this.contentNode);return}let t=this.inputNode.value,r=this.contentNode,n=this._results;if(n||(n=this._results=Ia.search(this._items,t),this._activeIndex=t?L.findFirstIndex(n,Ia.canActivate):-1),!t&&n.length===0){Pt.render(null,r);return}if(t&&n.length===0){let l=this.renderer.renderEmptyMessage({query:t});Pt.render(l,r);return}let s=this.renderer,o=this._activeIndex,a=new Array(n.length);for(let l=0,u=n.length;l=n.length)r.scrollTop=0;else{let l=r.children[o];he.scrollIntoViewIfNeeded(r,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=L.findFirstIndex(this.contentNode.children,r=>r.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,r=eE-w),R=x.slice(0,S),I=x.slice(S);for(let E=0,w=I.length;Eg.command===f&&Ta.JSONExt.deepEqual(g.args,p))||null}}})(Ia||(Ia={}));Do=class extends W{constructor(e){super({node:Qr.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new G(this),this._menuRequested=new G(this),this.addClass("lm-Menu"),this.setFlag(W.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||Do.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!Qr.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,r=t{this.activeIndex=a}})}Pt.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let r=this._parentMenu;r&&(this._parentMenu=null,r._childIndex=-1,r._childMenu=null,r.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let r=Qn().keyForKeydownEvent(e);if(!r)return;let n=this._activeIndex+1,s=Qr.findMnemonic(this._items,r,n);s.index!==-1&&!s.multiple?(this.activeIndex=s.index,this.triggerActiveItem()):s.index!==-1?this.activeIndex=s.index:s.auto!==-1&&(this.activeIndex=s.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=L.findFirstIndex(this.contentNode.children,n=>he.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let r=this.activeItem;!r||r.type!=="submenu"||!r.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:r}=e;if(he.hitTest(this._childMenu.node,t,r)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(Qr.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let r=t.submenu;if(r===this._childMenu)return;Do.saveWindowData(),this._closeChildMenu(),this._childMenu=r,this._childIndex=this._activeIndex,r._parentMenu=this,ae.sendMessage(this,W.Msg.UpdateRequest);let n=this.contentNode.children[this._activeIndex];Qr.openSubmenu(r,n),e&&(r.activeIndex=-1,r.activateNextItem()),r.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},Qr.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},Qr.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){Qr.saveWindowData()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return re.li({className:n,dataset:s,tabindex:"0",onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r),this.renderShortcut(r),this.renderSubmenu(r))}renderIcon(r){let n=this.createIconClass(r);return re.div({className:n},r.item.icon,r.item.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return re.div({className:"lm-Menu-itemLabel"},n)}renderShortcut(r){let n=this.formatShortcut(r);return re.div({className:"lm-Menu-itemShortcut"},n)}renderSubmenu(r){return re.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(r){let n="lm-Menu-item";r.item.isEnabled||(n+=" lm-mod-disabled"),r.item.isToggled&&(n+=" lm-mod-toggled"),r.item.isVisible||(n+=" lm-mod-hidden"),r.active&&(n+=" lm-mod-active"),r.collapsed&&(n+=" lm-mod-collapsed");let s=r.item.className;return s&&(n+=` ${s}`),n}createItemDataset(r){let n,{type:s,command:o,dataset:a}=r.item;return s==="command"?n={...a,type:s,command:o}:n={...a,type:s},n}createIconClass(r){let n="lm-Menu-itemIcon",s=r.item.iconClass;return s?`${n} ${s}`:n}createItemARIA(r){let n={};switch(r.item.type){case"separator":n.role="presentation";break;case"submenu":n["aria-haspopup"]="true",r.item.isEnabled||(n["aria-disabled"]="true");break;default:r.item.isEnabled||(n["aria-disabled"]="true"),r.item.isToggled?(n.role="menuitemcheckbox",n["aria-checked"]="true"):n.role="menuitem"}return n}formatLabel(r){let{label:n,mnemonic:s}=r.item;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],u=re.span({className:"lm-Menu-itemMnemonic"},l);return[o,u,a]}formatShortcut(r){let n=r.item.keyBinding;return n?ti.formatKeystroke(n.keys):null}}i.Renderer=e,i.defaultRenderer=new e})(Do||(Do={}));(function(i){i.TIMER_DELAY=300,i.SUBMENU_OVERLAP=3;let e=null,t=0;function r(){return t>0?(t--,e):c()}function n(){e=c(),t++}i.saveWindowData=n;function s(){let g=document.createElement("div"),v=document.createElement("ul");return v.className="lm-Menu-content",g.appendChild(v),v.setAttribute("role","menu"),g.tabIndex=0,g}i.createNode=s;function o(g){return g.type!=="separator"&&g.isEnabled&&g.isVisible}i.canActivate=o;function a(g,v){return new p(g.commands,v)}i.createItem=a;function l(g,v,_){for(let x=g;x;x=x.childMenu)if(he.hitTest(x.node,v,_))return!0;return!1}i.hitTestMenus=l;function u(g){let v=new Array(g.length);L.fill(v,!1);let _=0,x=g.length;for(;_=0;--y){let S=g[y];if(S.isVisible){if(S.type!=="separator")break;v[y]=!0}}let C=!1;for(;++_E+k&&(v=E+k-U),!y&&_+ne>w+O&&(_>w+O?_=w+O-ne:_=_-ne),pe.transform=`translate(${Math.max(0,v)}px, ${Math.max(0,_)}px`,pe.opacity="1"}i.openRootMenu=d;function h(g,v){let _=r(),x=_.pageXOffset,y=_.pageYOffset,C=_.clientWidth,S=_.clientHeight;ae.sendMessage(g,W.Msg.UpdateRequest);let R=S,I=g.node,E=I.style;E.opacity="0",E.maxHeight=`${R}px`,W.attach(g,document.body);let{width:w,height:k}=I.getBoundingClientRect(),O=he.boxSizing(g.node),z=v.getBoundingClientRect(),Y=z.right-i.SUBMENU_OVERLAP;Y+w>x+C&&(Y=z.left+i.SUBMENU_OVERLAP-w);let pe=z.top-O.borderTop-O.paddingTop;pe+k>y+S&&(pe=z.bottom+O.borderBottom+O.paddingBottom-k),E.transform=`translate(${Math.max(0,Y)}px, ${Math.max(0,pe)}px`,E.opacity="1"}i.openSubmenu=h;function f(g,v,_){let x=-1,y=-1,C=!1,S=v.toUpperCase();for(let R=0,I=g.length;R=0&&Ox.command===v&&Ta.JSONExt.deepEqual(x.args,_))||null}return null}}})(Qr||(Qr={}));(function(i){function e(o,a){let l=r(o.selector),u=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:u,id:a}}i.createItem=e;function t(o,a,l,u){let c=a.target;if(!c)return null;let d=a.currentTarget;if(!d||!d.contains(c)&&(c=document.elementFromPoint(a.clientX,a.clientY),!c||!d.contains(c)))return null;let h=[],f=o.slice();for(;c!==null;){let p=[];for(let g=0,v=f.length;g=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,r=this._titles[t]||null,n=e,s=this._titles[n]||null;this._currentIndex=n,this._previousTitle=r,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:r,currentIndex:n,currentTitle:s})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let r=bs.asTitle(t),n=this._titles.indexOf(r),s=Math.max(0,Math.min(e,this._titles.length));return n===-1?(L.insert(this._titles,s,r),r.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,r),r):(s===this._titles.length&&s--,n===s||(L.move(this._titles,n,s),this.update(),this._adjustCurrentForMove(n,s)),r)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=L.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let r of this._titles)r.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let r=this._titles,n=this.renderer,s=this.currentTitle,o=new Array(r.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,u=r.length;lhe.hitTest(o,e.clientX,e.clientY));if(r===-1)return;let n=this.titles[r],s=t[r].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let o=n.label||"",a=s.innerHTML;s.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,s.appendChild(l);let u=()=>{l.removeEventListener("blur",u),s.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",c=>c.stopPropagation()),l.addEventListener("blur",u),l.addEventListener("keydown",c=>{c.key==="Enter"?(l.value!==""&&(n.label=n.caption=l.value),u()):c.key==="Escape"&&u()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,r,n;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let s=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(s))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=L.findFirstIndex(this.contentNode.children,a=>a.contains(s));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(WSe.includes(e.key)){let s=[...this.contentNode.children];if(this.addButtonEnabled&&s.push(this.addButtonNode),s.length<=1)return;e.preventDefault(),e.stopPropagation();let o=s.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=s[o+1])!==null&&t!==void 0?t:s[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(r=s[o-1])!==null&&r!==void 0?r:s[s.length-1]:e.key==="Home"?a=s[0]:e.key==="End"&&(a=s[s.length-1]),a&&((n=s[o])===null||n===void 0||n.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),r=this.contentNode.children,n=L.findFirstIndex(r,o=>he.hitTest(o,e.clientX,e.clientY));if(n===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:r[n],index:n,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let s=r[n].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===n?this.currentIndex=-1:this.currentIndex=n,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let r=this.contentNode.children;if(!(!t.dragActive&&!bs.dragExceeded(t,e))){if(!t.dragActive){let n=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabPressOffset={x:t.pressX-n.left,y:t.pressY-n.top},t.tabLayout=bs.snapTabLayout(r,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=Ri.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&bs.detachExceeded(t,e)){t.detachRequested=!0;let n=t.index,s=e.clientX,o=e.clientY,a=r[n],l=this._titles[n];if(this._tabDetachRequested.emit({index:n,title:l,tab:a,clientX:s,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}bs.layoutTabs(r,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let s=this.contentNode.children,o=L.findFirstIndex(s,u=>he.hitTest(u,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;bs.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let r=bs.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,bs.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let n=t.index,s=t.targetIndex;s===-1||n===s||(L.move(this._titles,n,s),this._adjustCurrentForMove(n,s),this._tabMoved.emit({fromIndex:n,toIndex:s,title:this._titles[s]}),ae.sendMessage(this,W.Msg.UpdateRequest))},r)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(bs.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let r=this.currentTitle,n=this._currentIndex,s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&n===-1){this._currentIndex=e,this._previousTitle=r,this._currentChanged.emit({previousIndex:n,previousTitle:r,currentIndex:e,currentTitle:t});return}n>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let r=this._currentIndex,n=this.removeBehavior;if(r!==e){r>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(n==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(i){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(r){let n=r.title.caption,s=this.createTabKey(r),o=s,a=this.createTabStyle(r),l=this.createTabClass(r),u=this.createTabDataset(r),c=this.createTabARIA(r);return r.title.closable?re.li({id:o,key:s,className:l,title:n,style:a,dataset:u,...c},this.renderIcon(r),this.renderLabel(r),this.renderCloseIcon(r)):re.li({id:o,key:s,className:l,title:n,style:a,dataset:u,...c},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let{title:n}=r,s=this.createIconClass(r);return re.div({className:s},n.icon,n.iconLabel)}renderLabel(r){return re.div({className:"lm-TabBar-tabLabel"},r.title.label)}renderCloseIcon(r){return re.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(r){let n=this._tabKeys.get(r.title);return n===void 0&&(n=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(r.title,n)),n}createTabStyle(r){return{zIndex:`${r.zIndex}`}}createTabClass(r){let n="lm-TabBar-tab";return r.title.className&&(n+=` ${r.title.className}`),r.title.closable&&(n+=" lm-mod-closable"),r.current&&(n+=" lm-mod-current"),n}createTabDataset(r){return r.title.dataset}createTabARIA(r){var n;return{role:"tab","aria-selected":r.current.toString(),tabindex:`${(n=r.tabIndex)!==null&&n!==void 0?n:"-1"}`}}createIconClass(r){let n="lm-TabBar-tabIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e,i.addButtonSelector=".lm-TabBar-addButton"})(zu||(zu={}));(function(i){i.DRAG_THRESHOLD=5,i.DETACH_THRESHOLD=20;function e(){let c=document.createElement("div"),d=document.createElement("ul");d.setAttribute("role","tablist"),d.className="lm-TabBar-content",c.appendChild(d);let h=document.createElement("div");return h.className="lm-TabBar-addButton lm-mod-hidden",h.setAttribute("tabindex","-1"),h.setAttribute("role","button"),c.appendChild(h),c}i.createNode=e;function t(c){return c instanceof cm?c:new cm(c)}i.asTitle=t;function r(c){let d=window.getComputedStyle(c);return 1e3*(parseFloat(d.transitionDuration)||0)}i.parseTransitionDuration=r;function n(c,d){let h=new Array(c.length);for(let f=0,p=c.length;f=i.DRAG_THRESHOLD||f>=i.DRAG_THRESHOLD}i.dragExceeded=s;function o(c,d){let h=c.contentRect;return d.clientX=h.right+i.DETACH_THRESHOLD||d.clientY=h.bottom+i.DETACH_THRESHOLD}i.detachExceeded=o;function a(c,d,h,f){let p,g,v,_;f==="horizontal"?(p=d.pressX,g=h.clientX-d.contentRect.left,v=h.clientX,_=d.contentRect.width):(p=d.pressY,g=h.clientY-d.contentRect.top,v=h.clientY,_=d.contentRect.height);let x=d.index,y=g-d.tabPressPos,C=y+d.tabSize;for(let S=0,R=c.length;S>1);if(Sd.index&&C>w)I=`${-d.tabSize-E.margin}px`,x=Math.max(x,S);else if(S===d.index){let k=v-p,O=_-(d.tabPos+d.tabSize);I=`${Math.max(-d.tabPos,Math.min(k,O))}px`}else I="";f==="horizontal"?c[S].style.left=I:c[S].style.top=I}d.targetIndex=x}i.layoutTabs=a;function l(c,d){let h;d==="horizontal"?h=c.contentRect.width:h=c.contentRect.height;let f;if(c.targetIndex===c.index)f=0;else if(c.targetIndex>c.index){let v=c.tabLayout[c.targetIndex];f=v.pos+v.size-c.tabSize-c.tabPos}else f=c.tabLayout[c.targetIndex].pos-c.tabPos;let p=h-(c.tabPos+c.tabSize),g=Math.max(-c.tabPos,Math.min(f,p));d==="horizontal"?c.tab.style.left=`${g}px`:c.tab.style.top=`${g}px`}i.finalizeTabPosition=l;function u(c,d){for(let h of c)d==="horizontal"?h.style.left="":h.style.top=""}i.resetTabPositions=u})(bs||(bs={}));p4=class extends Oo{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=hm.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:W.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let r of t.titles)r.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=hm.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():Oi()}widgets(){return this._root?this._root.iterUserWidgets():Oi()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():Oi()}tabBars(){return this._root?this._root.iterTabBars():Oi()}handles(){return this._root?this._root.iterHandles():Oi()}moveHandle(e,t,r){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let s=this._root.findSplitNode(e);if(!s)return;let o;s.node.orientation==="horizontal"?o=t-e.offsetLeft:o=r-e.offsetTop,o!==0&&(s.node.holdSizes(),jn.adjust(s.node.sizers,s.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,r;e.main?r=yi.normalizeAreaConfig(e.main,t):r=null;let n=this.widgets(),s=this.tabBars(),o=this.handles();this._root=null;for(let a of n)t.has(a)||(a.parent=null);for(let a of s)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;r?this._root=yi.realizeAreaConfig(r,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let r=t.ref||null,n=t.mode||"tab-after",s=null;if(this._root&&r&&(s=this._root.findTabNode(r)),r&&!s)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,r,s,!0);break;case"tab-before":this._insertTab(e,r,s,!1);break;case"split-top":this._insertSplit(e,r,s,"vertical",!1);break;case"split-left":this._insertSplit(e,r,s,"horizontal",!1);break;case"split-right":this._insertSplit(e,r,s,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,r,s,"vertical",!0);break;case"merge-top":this._insertSplit(e,r,s,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,r,s,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,r,s,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,r,s,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=he.boxSizing(this.parent.node));let r=this.parent.node.getBoundingClientRect(),n=e-r.left-this._box.borderLeft,s=t-r.top-this._box.borderTop,o=this._root.hitTestTabNodes(n,s);if(!o)return null;let{tabBar:a,top:l,left:u,width:c,height:d}=o,h=this._box.borderLeft+this._box.borderRight,f=this._box.borderTop+this._box.borderBottom,p=r.width-h-(u+c),g=r.height-f-(l+d);return{tabBar:a,x:n,y:s,top:l,left:u,right:p,bottom:g,width:c,height:d}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new Xc(e)),this.parent.isAttached&&ae.sendMessage(e,W.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&ae.sendMessage(e,W.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&ae.sendMessage(e,W.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&ae.sendMessage(e,W.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(yi.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===W.HiddenMode.Scale&&t.tabBar.titles.length==1){let h=t.tabBar.titles[0].owner;h.hiddenMode=W.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let r=t.parent;t.parent=null;let n=L.removeFirstOf(r.children,t),s=L.removeAt(r.handles,n);if(L.removeAt(r.sizers,n),s.parentNode&&s.parentNode.removeChild(s),r.children.length>1){r.syncHandles();return}let o=r.parent;r.parent=null;let a=r.children[0],l=r.handles[0];if(r.children.length=0,r.handles.length=0,r.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===r){a.parent=null,this._root=a;return}let u=o,c=u.children.indexOf(r);if(a instanceof yi.TabLayoutNode){a.parent=u,u.children[c]=a;return}let d=L.removeAt(u.handles,c);L.removeAt(u.children,c),L.removeAt(u.sizers,c),d.parentNode&&d.parentNode.removeChild(d);for(let h=0,f=a.children.length;h=this._left+this._width||p=this._top+this._height?null:this}createConfig(){let f=this.tabBar.titles.map(g=>g.owner),p=this.tabBar.currentIndex;return{type:"tab-area",widgets:f,currentIndex:p}}holdAllSizes(){}fit(f,p){let g=0,v=0,_=1/0,x=1/0,y=p.get(this.tabBar),C=this.tabBar.currentTitle,S=C?p.get(C.owner):void 0,[R,I]=this.sizers;return y&&y.fit(),S&&S.fit(),y&&!y.isHidden?(g=Math.max(g,y.minWidth),v+=y.minHeight,R.minSize=y.minHeight,R.maxSize=y.maxHeight):(R.minSize=0,R.maxSize=0),S&&!S.isHidden?(g=Math.max(g,S.minWidth),v+=S.minHeight,I.minSize=S.minHeight,I.maxSize=1/0):(I.minSize=0,I.maxSize=1/0),{minWidth:g,minHeight:v,maxWidth:_,maxHeight:x}}update(f,p,g,v,_,x){this._top=p,this._left=f,this._width=g,this._height=v;let y=x.get(this.tabBar),C=this.tabBar.currentTitle,S=C?x.get(C.owner):void 0;if(jn.calc(this.sizers,v),y&&!y.isHidden){let R=this.sizers[0].size;y.update(f,p,g,R),p+=R}if(S&&!S.isHidden){let R=this.sizers[1].size;S.update(f,p,g,R)}}}i.TabLayoutNode=n;class s{constructor(f){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=f}*iterAllWidgets(){for(let f of this.children)yield*f.iterAllWidgets()}*iterUserWidgets(){for(let f of this.children)yield*f.iterUserWidgets()}*iterSelectedWidgets(){for(let f of this.children)yield*f.iterSelectedWidgets()}*iterTabBars(){for(let f of this.children)yield*f.iterTabBars()}*iterHandles(){yield*this.handles;for(let f of this.children)yield*f.iterHandles()}findTabNode(f){for(let p=0,g=this.children.length;pv.createConfig());return{type:"split-area",orientation:f,children:g,sizes:p}}syncHandles(){this.handles.forEach((f,p)=>{f.setAttribute("data-orientation",this.orientation),p===this.handles.length-1?f.classList.add("lm-mod-hidden"):f.classList.remove("lm-mod-hidden")})}holdSizes(){for(let f of this.sizers)f.sizeHint=f.size}holdAllSizes(){for(let f of this.children)f.holdAllSizes();this.holdSizes()}normalizeSizes(){let f=this.sizers.length;if(f===0)return;this.holdSizes();let p=this.sizers.reduce((g,v)=>g+v.sizeHint,0);if(p===0)for(let g of this.sizers)g.size=g.sizeHint=1/f;else for(let g of this.sizers)g.size=g.sizeHint/=p;this.normalized=!0}createNormalizedSizes(){let f=this.sizers.length;if(f===0)return[];let p=this.sizers.map(v=>v.size),g=p.reduce((v,_)=>v+_,0);if(g===0)for(let v=p.length-1;v>-1;v--)p[v]=1/f;else for(let v=p.length-1;v>-1;v--)p[v]/=g;return p}fit(f,p){let g=this.orientation==="horizontal",v=Math.max(0,this.children.length-1)*f,_=g?v:0,x=g?0:v,y=1/0,C=1/0;for(let S=0,R=this.children.length;S=p.length)&&(g=0),{type:"tab-area",widgets:p,currentIndex:g}}function u(h,f){let p=h.orientation,g=[],v=[];for(let _=0,x=h.children.length;_{let x=r(v,f,p),y=e(h.sizes[_]),C=f.createHandle();g.children.push(x),g.handles.push(C),g.sizers.push(y),x.parent=g}),g.syncHandles(),g.normalizeSizes(),g}})(yi||(yi={}));Zc=class extends W{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new G(this),this._addRequested=new G(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||Zc.defaultRenderer,this._edges=e.edges||li.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new p4({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new Zc.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let r of t.tabBars())r.show();break;case"single-document":t.restoreLayout(li.createSingleDocumentConfig(this));break;default:throw"unreachable"}ae.postMessage(this,li.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=Ui(this.tabBars(),r=>r.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(Ft.IS_EDGE||Ft.IS_IE)&&ae.flush(),ae.postMessage(this,li.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),ae.postMessage(this,li.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){li.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){li.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),ae.postMessage(this,li.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:r}=e,{zone:n,target:s}=li.findDropTarget(this,t,r,this._edges);if(this._tabsConstrained&&e.source!==this||n==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof W)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let u=s?li.getDropRef(s.tabBar):null;switch(n){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:u});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:u});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:u});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:u});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:u});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:u});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),ae.postMessage(this,li.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=e.target,n=Ui(t.handles(),c=>c.contains(r));if(!n)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let s=n.getBoundingClientRect(),o=e.clientX-s.left,a=e.clientY-s.top,l=window.getComputedStyle(n),u=Ri.overrideCursor(l.cursor,this._document);this._pressData={handle:n,deltaX:o,deltaY:a,override:u}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),r=e.clientX-t.left-this._pressData.deltaX,n=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,r,n)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),ae.postMessage(this,li.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:r,target:n}=li.findDropTarget(this,e,t,this._edges);if(r==="invalid")return this.overlay.hide(100),r;let s,o,a,l,u=he.boxSizing(this.node),c=this.node.getBoundingClientRect();switch(r){case"root-all":s=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"root-top":s=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=c.height*li.GOLDEN_RATIO;break;case"root-left":s=u.paddingTop,o=u.paddingLeft,a=c.width*li.GOLDEN_RATIO,l=u.paddingBottom;break;case"root-right":s=u.paddingTop,o=c.width*li.GOLDEN_RATIO,a=u.paddingRight,l=u.paddingBottom;break;case"root-bottom":s=c.height*li.GOLDEN_RATIO,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"widget-all":s=n.top,o=n.left,a=n.right,l=n.bottom;break;case"widget-top":s=n.top,o=n.left,a=n.right,l=n.bottom+n.height/2;break;case"widget-left":s=n.top,o=n.left,a=n.right+n.width/2,l=n.bottom;break;case"widget-right":s=n.top,o=n.left+n.width/2,a=n.right,l=n.bottom;break;case"widget-bottom":s=n.top+n.height/2,o=n.left,a=n.right,l=n.bottom;break;case"widget-tab":{let d=n.tabBar.node.getBoundingClientRect().height;s=n.top,o=n.left,a=n.right,l=n.bottom+n.height-d;break}default:throw"unreachable"}return this.overlay.show({top:s,left:o,right:a,bottom:l}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return li.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){ae.postMessage(this,li.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:r,currentTitle:n}=t;r&&r.owner.hide(),n&&n.owner.show(),(Ft.IS_EDGE||Ft.IS_IE)&&ae.flush(),ae.postMessage(this,li.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:r,tab:n,clientX:s,clientY:o,offset:a}=t,l=new Ta.MimeData,u=()=>r.owner;l.setData("application/vnd.lumino.widget-factory",u);let c=n.cloneNode(!0);a&&(c.style.top=`-${a.y}px`,c.style.left=`-${a.x}px`),this._drag=new Ri({document:this._document,mimeData:l,dragImage:c,proposedAction:"move",supportedActions:"move",source:this}),n.classList.add("lm-mod-hidden");let d=()=>{this._drag=null,n.classList.remove("lm-mod-hidden")};this._drag.start(s,o).then(d)}};(function(i){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(n){let s=this.node.style;s.top=`${n.top}px`,s.left=`${n.left}px`,s.right=`${n.right}px`,s.bottom=`${n.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(n){if(!this._hidden){if(n<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},n))}}}i.Overlay=e;class t{createTabBar(n){let s=new zu({document:n});return s.addClass("lm-DockPanel-tabBar"),s}createHandle(){let n=document.createElement("div");return n.className="lm-DockPanel-handle",n}}i.Renderer=t,i.defaultRenderer=new t})(Zc||(Zc={}));(function(i){i.GOLDEN_RATIO=.618,i.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},i.LayoutModified=new Bu("layout-modified"),i.isGeneratedTabBarProperty=new Ye({name:"isGeneratedTabBar",create:()=>!1});function e(n){if(n.isEmpty)return{main:null};let s=Array.from(n.widgets()),o=n.selectedWidgets().next().value,a=o?s.indexOf(o):-1;return{main:{type:"tab-area",widgets:s,currentIndex:a}}}i.createSingleDocumentConfig=e;function t(n,s,o,a){if(!he.hitTest(n.node,s,o))return{zone:"invalid",target:null};let l=n.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(n.mode==="multiple-document"){let y=n.node.getBoundingClientRect(),C=s-y.left+1,S=o-y.top+1,R=y.right-s,I=y.bottom-o;switch(Math.min(S,R,I,C)){case S:if(Sg&&h>g&&d>v&&f>v)return{zone:"widget-all",target:u};c/=g,d/=v,h/=g,f/=v;let _=Math.min(c,d,h,f),x;switch(_){case c:x="widget-left";break;case d:x="widget-top";break;case h:x="widget-right";break;case f:x="widget-bottom";break;default:throw"unreachable"}return{zone:x,target:u}}i.findDropTarget=t;function r(n){return n.titles.length===0?null:n.currentTitle?n.currentTitle.owner:n.titles[n.titles.length-1].owner}i.getDropRef=r})(li||(li={}));ka=class extends Oo{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new Ro],this._columnSizers=[new Ro],this._box=null,e.rowCount!==void 0&&qi.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&qi.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=qi.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=qi.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(qi.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(qi.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=qi.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=qi.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let r=this._rowSizers[e];r&&(t=qi.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let r=this._columnSizers[e];r&&(t=qi.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){L.findFirstIndex(this._items,r=>r.widget===e)===-1&&(this._items.push(new Xc(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=L.findFirstIndex(this._items,n=>n.widget===e);if(t===-1)return;let r=L.removeAt(this._items,t);this.parent&&this.detachWidget(e),r.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&ae.sendMessage(e,W.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&ae.sendMessage(e,W.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&ae.sendMessage(e,W.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&ae.sendMessage(e,W.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,u=this.rowCount;l!l.isHidden);for(let l=0,u=e.length;l({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let u=Math.max(0,Math.floor(l.row||0)),c=Math.max(0,Math.floor(l.column||0)),d=Math.max(1,Math.floor(l.rowSpan||0)),h=Math.max(1,Math.floor(l.columnSpan||0));return{row:u,column:c,rowSpan:d,columnSpan:h}}i.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}i.clampValue=t;function r(l,u){let c=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(u.widget);return c.rowSpan-d.rowSpan}i.rowSpanCmp=r;function n(l,u){let c=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(u.widget);return c.columnSpan-d.columnSpan}i.columnSpanCmp=n;function s(l,u){for(u=Math.max(1,Math.floor(u));l.lengthu&&(l.length=u)}i.reallocSizers=s;function o(l,u,c,d){if(c=d)return;let f=(d-h)/(c-u+1);for(let p=u;p<=c;++p)l[p].minSize+=f}i.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof ka&&l.parent.fit()}})(qi||(qi={}));Nh=class extends W{constructor(e={}){super({node:Ov.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(W.Flag.DisallowLayout),this.renderer=e.renderer||Nh.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,r=!0){this._closeChildMenu();let n=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(n===-1){L.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),r&&this.update();return}s===this._menus.length&&s--,n!==s&&(L.move(this._menus,n,s),r&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let r=L.removeAt(this._menus,e);r&&(r.aboutToClose.disconnect(this._onMenuAboutToClose,this),r.menuRequested.disconnect(this._onMenuMenuRequested,this),r.title.changed.disconnect(this._onTitleChanged,this),r.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":case"mouseleave":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let r=this._menus,n=this.renderer,s=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:r.length,l=0,u=!1;a=this._overflowMenu!==null?a-1:a;let c=new Array(a);for(let d=0;d{this._tabFocusIndex=d,this.activeIndex=d}}),l+=this._menuItemSizes[d],r[d].title.label===this._overflowMenuOptions.title&&(u=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!u){if(this._overflowMenu===null){let d=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new Do({commands:new ti}),this._overflowMenu.title.label=d,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let d=r.length-2;d>=a;d--){let h=this.menus[d];h.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:h}),this.removeMenu(h,!1)}c[a]=n.renderItem({title:this._overflowMenu.title,active:a===s&&r[a].items.length!==0,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let d=this._overflowMenu.items,h=this.node.offsetWidth,f=this._overflowMenu.items.length;for(let p=0;pthis._menuItemSizes[g]){let v=d[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,v,!1),c[a]=n.renderItem({title:v.title,active:!1,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),c.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}Pt.render(c,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,r=0,n=-1,s=e.length;if(this._menuItemSizes.length==0)for(let o=0;ot&&n===-1&&(n=o)}else for(let o=0;ot){n=o;break}this._overflowIndex=n}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let u=0;uhe.hitTest(r,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let r=this._positionForMenu(t);Do.saveWindowData(),this.activeIndex=t,this._openChildMenu(r)}}_evtMouseMove(e){let t=L.findFirstIndex(this.contentNode.children,n=>he.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let r=t>=0&&this._childMenu?this._positionForMenu(t):null;Do.saveWindowData(),this.activeIndex=t,r&&this._openChildMenu(r)}_positionForMenu(e){let t=this.contentNode.children[e],{left:r,bottom:n}=t.getBoundingClientRect();return{top:n,left:r}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let r=this._childMenu;if(r===t)return;this._childMenu=t,r?r.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,ae.sendMessage(this,W.Msg.UpdateRequest);let{left:n,top:s}=e;(typeof n>"u"||typeof s>"u")&&({left:n,top:s}=this._positionForMenu(this._activeIndex)),r||this.addClass("lm-mod-active"),t.items.length>0&&t.open(n,s,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let r=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=r===n-1?0:r+1;break;case"previous":this.activeIndex=r===0?n-1:r-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return re.li({className:n,dataset:s,...r.disabled?{}:{tabindex:r.tabbable?"0":"-1"},onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let n=this.createIconClass(r);return re.div({className:n},r.title.icon,r.title.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return re.div({className:"lm-MenuBar-itemLabel"},n)}createItemClass(r){let n="lm-MenuBar-item";return r.title.className&&(n+=` ${r.title.className}`),r.active&&!r.disabled&&(n+=" lm-mod-active"),n}createItemDataset(r){return r.title.dataset}createItemARIA(r){return{role:"menuitem","aria-haspopup":"true","aria-disabled":r.disabled?"true":"false"}}createIconClass(r){let n="lm-MenuBar-itemIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}formatLabel(r){let{label:n,mnemonic:s}=r.title;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],u=re.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,u,a]}}i.Renderer=e,i.defaultRenderer=new e})(Nh||(Nh={}));(function(i){function e(){let r=document.createElement("div"),n=document.createElement("ul");return n.className="lm-MenuBar-content",r.appendChild(n),n.setAttribute("role","menubar"),r}i.createNode=e;function t(r,n,s){let o=-1,a=-1,l=!1,u=n.toUpperCase();for(let c=0,d=r.length;c=0&&p1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===W.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=W.HiddenMode.Scale),t.hiddenMode=W.HiddenMode.Scale):t.hiddenMode=W.HiddenMode.Display,L.insert(this._items,e,new Xc(t)),this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let r=L.removeAt(this._items,e);this.parent.isAttached&&ae.sendMessage(t,W.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&ae.sendMessage(t,W.Msg.AfterDetach),r.widget.node.style.zIndex="",this._hiddenMode===W.HiddenMode.Scale&&(t.hiddenMode=W.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=W.HiddenMode.Display)),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let s=0,o=this._items.length;s{Mo();g4();b4=class extends W{constructor(e){super(),this.addClass("jp-ThemedContainer"),this._body=e.body,this._body.addClass("jp-StatusBar-HoverItem"),this._anchor=e.anchor,this._align=e.align,e.hasDynamicSize&&(this._observer=new ResizeObserver(()=>{this.update()})),(this.layout=new Aa).addWidget(e.body),this._body.node.addEventListener("resize",()=>{this.update()})}launch(){this._setGeometry(),W.attach(this,document.body),this.update(),this._anchor.addClass("jp-mod-clicked"),this._anchor.removeClass("jp-mod-highlight")}onUpdateRequest(e){this._setGeometry(),super.onUpdateRequest(e)}onAfterAttach(e){var t;document.addEventListener("click",this,!1),this.node.addEventListener("keydown",this,!1),window.addEventListener("resize",this,!1),(t=this._observer)===null||t===void 0||t.observe(this._body.node)}onBeforeDetach(e){var t;(t=this._observer)===null||t===void 0||t.disconnect(),document.removeEventListener("click",this,!1),this.node.removeEventListener("keydown",this,!1),window.removeEventListener("resize",this,!1)}onResize(){this.update()}dispose(){var e;(e=this._observer)===null||e===void 0||e.disconnect(),super.dispose(),this._anchor.removeClass("jp-mod-clicked"),this._anchor.addClass("jp-mod-highlight")}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"click":this._evtClick(e);break;case"resize":this.onResize();break;default:break}}_evtClick(e){e.target&&!(this._body.node.contains(e.target)||this._anchor.node.contains(e.target))&&this.dispose()}_evtKeydown(e){switch(e.keyCode){case 27:e.stopPropagation(),e.preventDefault(),this.dispose();break;default:break}}_setGeometry(){let e=0,t=this._anchor.node.getBoundingClientRect(),r=this._body.node.getBoundingClientRect();this._align==="right"&&(e=-(r.width-t.width));let n=window.getComputedStyle(this._body.node);Sv.setGeometry({anchor:t,host:document.body,maxHeight:500,minHeight:20,node:this._body.node,offset:{horizontal:e},privilege:"forceAbove",style:n})}}});function mm(i){let{title:e,source:t,className:r,...n}=i;return dZ.createElement("span",{className:r?`jp-StatusBar-TextItem ${r}`:"jp-StatusBar-TextItem",title:e,...n},t)}var dZ,hZ=b(()=>{dZ=N(ue())});function Lv(i){let{spacing:e,children:t,className:r,...n}=i,s=Qc.Children.toArray(t).filter(Boolean),o=s.length;return Qc.createElement("div",{className:`jp-StatusBar-GroupItem ${r||""}`,...n},s.map((a,l)=>{let u=`group-item-${l}`;return l===0?Qc.createElement("div",{key:u,style:{marginRight:`${e}px`}},a):l===o-1?Qc.createElement("div",{key:u,style:{marginLeft:`${e}px`}},a):Qc.createElement("div",{key:u,style:{margin:`0px ${e}px`}},a)}))}var Qc,fZ=b(()=>{Qc=N(ue())});var GSe,pZ=b(()=>{GSe=N(ue())});var KSe,mZ=b(()=>{KSe=N(ue())});var gZ=b(()=>{fZ();cZ();pZ();hZ();mZ()});var bZ,vZ=b(()=>{Zt();Nr();g4();(function(i){i.statusItemDefaults={align:"left",rank:0,priority:0,isActive:()=>!0,activeStateChanged:void 0}})(bZ||(bZ={}))});var _Z,F6t,yZ=b(()=>{_Z=N(Ge()),F6t=new _Z.Token("@jupyterlab/statusbar:IStatusBar","A service for the status bar on the application. Use this if you want to add new status bar items.")});var v4=b(()=>{gZ();vZ();yZ()});var xZ,gm,_4=b(()=>{Zt();xZ=N(Ge());Ad();(function(i){function e(o,a,l){return L.findFirstIndex(o,u=>he.hitTest(u,a,l))}i.hitTestNodes=e;function t(o,a){return o.querySelector(`.${a}`)}i.findElement=t;function r(o,a){return o.getElementsByClassName(a)}i.findElements=r;function n(){return`id-${xZ.UUID.uuid4()}`}i.createDomID=n;function s(o,a=document){let l=a.activeElement;return!!(l&&o.contains(l)&&(l.matches(":read-write")||l.shadowRoot&&s(l.shadowRoot,l.shadowRoot)))}i.hasActiveEditableElement=s})(gm||(gm={}))});var Bh,Ma,wZ=b(()=>{Bh=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Ma.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Ma.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Ma.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Ma.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Ma.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Ma.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Ma.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})(Bh||(Bh={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(Ma||(Ma={}))});var en,qu,se,$v=b(()=>{Zt();wZ();en=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},qu=class extends en{get isConflatable(){return!0}conflate(e){return!0}};(function(i){let e=null,t=(E=>w=>{let k=!1;return E.then(()=>!k&&w()),()=>{k=!0}})(Promise.resolve());function r(E,w){let k=h.get(E);if(!k||k.length===0){_(E,w);return}Js(Ko(k),z=>z?v(z,E,w):!0)&&_(E,w)}i.sendMessage=r;function n(E,w){if(!w.isConflatable){x(E,w);return}ys(d,O=>O.handler!==E||!O.msg||O.msg.type!==w.type||!O.msg.isConflatable?!1:O.msg.conflate(w))||x(E,w)}i.postMessage=n;function s(E,w){let k=h.get(E);k&&k.indexOf(w)!==-1||(k?k.push(w):h.set(E,[w]))}i.installMessageHook=s;function o(E,w){let k=h.get(E);if(!k)return;let O=k.indexOf(w);O!==-1&&(k[O]=null,C(k))}i.removeMessageHook=o;function a(E){let w=h.get(E);w&&w.length>0&&(L.fill(w,null),C(w));for(let k of d)k.handler===E&&(k.handler=null,k.msg=null)}i.clearData=a;function l(){g||e===null||(e(),e=null,g=!0,y(),g=!1)}i.flush=l;function u(){return p}i.getExceptionHandler=u;function c(E){let w=p;return p=E,w}i.setExceptionHandler=c;let d=new Bh,h=new WeakMap,f=new Set,p=E=>{console.error(E)},g=!1;function v(E,w,k){let O=!0;try{typeof E=="function"?O=E(w,k):O=E.messageHook(w,k)}catch(z){p(z)}return O}function _(E,w){try{E.processMessage(w)}catch(k){p(k)}}function x(E,w){d.addLast({handler:E,msg:w}),e===null&&(e=t(y))}function y(){if(e=null,d.isEmpty)return;let E={handler:null,msg:null};for(d.addLast(E);;){let w=d.removeFirst();if(w===E)return;w.handler&&w.msg&&r(w.handler,w.msg)}}function C(E){f.size===0&&t(S),f.add(E)}function S(){f.forEach(R),f.clear()}function R(E){L.removeAllWhere(E,I)}function I(E){return E===null}})(se||(se={}))});var Di,$r,SZ=b(()=>{Nr();Di=class{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:r,distance:n}=this._scrollTarget,s=$r.SCROLL_EDGE_SIZE-n,o=Math.pow(s/$r.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*$r.SCROLL_EDGE_SIZE));switch(r){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});$r.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(n=>{this._resolve=n});let r=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(r),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let r=this.dragImage.style;r.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){$r.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=$r.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=$r.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,r=this._currentTarget,n=this._currentElement,s=$r.findElementBehindBackdrop(e,this.document);this._currentElement=s,s!==n&&s!==r&&$r.dispatchDragExit(this,r,s,e),s!==n&&s!==r&&(r=$r.dispatchDragEnter(this,s,r,e)),r!==t&&(this._currentTarget=r,$r.dispatchDragLeave(this,t,r,e));let o=$r.dispatchDragOver(this,r,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=$r.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=Di.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=Di.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=Di.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=Di.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(i){class e extends DragEvent{constructor(n,s){super(s.type,{bubbles:!0,cancelable:!0,altKey:n.altKey,button:n.button,clientX:n.clientX,clientY:n.clientY,ctrlKey:n.ctrlKey,detail:0,metaKey:n.metaKey,relatedTarget:s.related,screenX:n.screenX,screenY:n.screenY,shiftKey:n.shiftKey,view:window});let{drag:o}=s;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}i.Event=e;function t(r,n=document){return $r.overrideCursor(r,n)}i.overrideCursor=t})(Di||(Di={}));(function(i){i.SCROLL_EDGE_SIZE=20;function e(C,S){return d[C]&h[S]?C:"none"}i.validateAction=e;function t(C,S=document){if(C){if(r&&C==r.event)return r.element;i.cursorBackdrop.style.zIndex="-1000";let R=S.elementFromPoint(C.clientX,C.clientY);return i.cursorBackdrop.style.zIndex="",r={event:C,element:R},R}else{let R=i.cursorBackdrop.style.transform;if(n&&R===n.transform)return n.element;let I=i.cursorBackdrop.getBoundingClientRect();i.cursorBackdrop.style.zIndex="-1000";let E=S.elementFromPoint(I.left+I.width/2,I.top+I.height/2);return i.cursorBackdrop.style.zIndex="",n={transform:R,element:E},E}}i.findElementBehindBackdrop=t;let r=null,n=null;function s(C){let S=C.clientX,R=C.clientY,I=t(C);for(;I;I=I.parentElement){if(!I.hasAttribute("data-lm-dragscroll"))continue;let E=0,w=0;I===document.body&&(E=window.pageXOffset,w=window.pageYOffset);let k=I.getBoundingClientRect(),O=k.top+w,z=k.left+E,Y=z+k.width,pe=O+k.height;if(S=Y||R=pe)continue;let U=S-z+1,ne=R-O+1,le=Y-S,De=pe-R,Et=Math.min(U,ne,le,De);if(Et>i.SCROLL_EDGE_SIZE)continue;let Qe;switch(Et){case De:Qe="bottom";break;case ne:Qe="top";break;case le:Qe="right";break;case U:Qe="left";break;default:throw"unreachable"}let ot=I.scrollWidth-I.clientWidth,Ve=I.scrollHeight-I.clientHeight,Yt;switch(Qe){case"top":Yt=Ve>0&&I.scrollTop>0;break;case"left":Yt=ot>0&&I.scrollLeft>0;break;case"right":Yt=ot>0&&I.scrollLeft0&&I.scrollTop{R===y&&i.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",p,!0),i.cursorBackdrop.removeEventListener("scroll",g,!0),I.removeChild(i.cursorBackdrop))})}i.overrideCursor=f;function p(C){i.cursorBackdrop&&(i.cursorBackdrop.style.transform=`translate(${C.clientX}px, ${C.clientY}px)`)}function g(C){if(!i.cursorBackdrop)return;let S=t();if(!S)return;let R=S.closest("[data-lm-dragscroll]");R&&(R.scrollTop+=i.cursorBackdrop.scrollTop-_,R.scrollLeft+=i.cursorBackdrop.scrollLeft-_,v())}function v(){i.cursorBackdrop.scrollTop=_,i.cursorBackdrop.scrollLeft=_}let _=500;function x(){let C=document.createElement("div");return C.classList.add("lm-cursor-backdrop"),C}let y=0;i.cursorBackdrop=x()})($r||($r={}))});var La,Lo,Un,bm,V,Pv,Po,td,zh,Hu,vm,_m,Gs,Da,y4,Fv,$a,x4,xn,w4,ym,S4,ji,ed,qh,C4,Hh,Ra,$o,tn,CZ,YSe,Ks,vs,I4,xi,id,ui,Nv,Oa,Hi,jh,Bv,IZ,EZ,E4,kZ,TZ,Fo=b(()=>{Zt();La=N(Ge());Ad();$v();md();tt();SZ();jf();el();Nr();Hf();Lo=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}};(function(i){function e(s,o){let a=s.length;if(a===0)return o;let l=0,u=0,c=0,d=0,h=0;for(let g=0;g0&&(d+=v.stretch,h++)}if(o===c)return 0;if(o<=l){for(let g=0;g=u){for(let g=0;g0&&g>f;){let v=g,_=d;for(let x=0;x0&&g>f;){let v=g/p;for(let _=0;_0&&g>f;){let v=g,_=d;for(let x=0;x=y.maxSize?(g-=y.maxSize-y.size,d-=y.stretch,y.size=y.maxSize,y.done=!0,p--,h--):(g-=C,y.size+=C)}}for(;p>0&&g>f;){let v=g/p;for(let _=0;_=x.maxSize?(g-=x.maxSize-x.size,x.size=x.maxSize,x.done=!0,p--):(g-=v,x.size+=v))}}}return 0}i.calc=e;function t(s,o,a){s.length===0||a===0||(a>0?r(s,o,a):n(s,o,-a))}i.adjust=t;function r(s,o,a){let l=0;for(let h=0;h<=o;++h){let f=s[h];l+=f.maxSize-f.size}let u=0;for(let h=o+1,f=s.length;h=0&&c>0;--h){let f=s[h],p=f.maxSize-f.size;p>=c?(f.sizeHint=f.size+c,c=0):(f.sizeHint=f.size+p,c-=p)}let d=a;for(let h=o+1,f=s.length;h0;++h){let p=s[h],g=p.size-p.minSize;g>=d?(p.sizeHint=p.size-d,d=0):(p.sizeHint=p.size-g,d-=g)}}function n(s,o,a){let l=0;for(let h=o+1,f=s.length;h0;++h){let p=s[h],g=p.maxSize-p.size;g>=c?(p.sizeHint=p.size+c,c=0):(p.sizeHint=p.size+g,c-=g)}let d=a;for(let h=o;h>=0&&d>0;--h){let f=s[h],p=f.size-f.minSize;p>=d?(f.sizeHint=f.size-d,d=0):(f.sizeHint=f.size-p,d-=p)}}})(Un||(Un={}));bm=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new G(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,G.clearData(this))}},V=class{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new G(this),this._hiddenMode=V.HiddenMode.Display,this.node=Pv.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(V.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&V.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),G.clearData(this),se.clearData(this),Ye.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(V.Flag.IsDisposed)}get isAttached(){return this.testFlag(V.Flag.IsAttached)}get isHidden(){return this.testFlag(V.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return Pv.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==V.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new V.ChildMessage("child-removed",this);se.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new V.ChildMessage("child-added",this);se.sendMessage(this._parent,t)}this.isDisposed||se.sendMessage(this,V.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(V.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){se.postMessage(this,V.Msg.UpdateRequest)}fit(){se.postMessage(this,V.Msg.FitRequest)}activate(){se.postMessage(this,V.Msg.ActivateRequest)}close(){se.sendMessage(this,V.Msg.CloseRequest)}show(){if(this.testFlag(V.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&se.sendMessage(this,V.Msg.BeforeShow),this.clearFlag(V.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&se.sendMessage(this,V.Msg.AfterShow),this.parent)){let e=new V.ChildMessage("child-shown",this);se.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(V.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&se.sendMessage(this,V.Msg.BeforeHide),this.setFlag(V.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&se.sendMessage(this,V.Msg.AfterHide),this.parent)){let e=new V.ChildMessage("child-hidden",this);se.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(V.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(V.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(V.Flag.IsVisible),this.setFlag(V.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(V.Flag.IsVisible),this.clearFlag(V.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&V.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case V.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case V.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case V.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case V.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case V.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case V.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(i){(function(s){s[s.Display=0]="Display",s[s.Scale=1]="Scale",s[s.ContentVisibility=2]="ContentVisibility"})(i.HiddenMode||(i.HiddenMode={})),function(s){s[s.IsDisposed=1]="IsDisposed",s[s.IsAttached=2]="IsAttached",s[s.IsHidden=4]="IsHidden",s[s.IsVisible=8]="IsVisible",s[s.DisallowLayout=16]="DisallowLayout"}(i.Flag||(i.Flag={})),function(s){s.BeforeShow=new en("before-show"),s.AfterShow=new en("after-show"),s.BeforeHide=new en("before-hide"),s.AfterHide=new en("after-hide"),s.BeforeAttach=new en("before-attach"),s.AfterAttach=new en("after-attach"),s.BeforeDetach=new en("before-detach"),s.AfterDetach=new en("after-detach"),s.ParentChanged=new en("parent-changed"),s.UpdateRequest=new qu("update-request"),s.FitRequest=new qu("fit-request"),s.ActivateRequest=new qu("activate-request"),s.CloseRequest=new qu("close-request")}(i.Msg||(i.Msg={}));class e extends en{constructor(o,a){super(o),this.child=a}}i.ChildMessage=e;class t extends en{constructor(o,a){super("resize"),this.width=o,this.height=a}}i.ResizeMessage=t,function(s){s.UnknownSize=new s(-1,-1)}(t=i.ResizeMessage||(i.ResizeMessage={}));function r(s,o,a=null){if(s.parent)throw new Error("Cannot attach a child widget.");if(s.isAttached||s.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");se.sendMessage(s,i.Msg.BeforeAttach),o.insertBefore(s.node,a),se.sendMessage(s,i.Msg.AfterAttach)}i.attach=r;function n(s){if(s.parent)throw new Error("Cannot detach a child widget.");if(!s.isAttached||!s.node.isConnected)throw new Error("Widget is not attached.");se.sendMessage(s,i.Msg.BeforeDetach),s.node.parentNode.removeChild(s.node),se.sendMessage(s,i.Msg.AfterDetach)}i.detach=n})(V||(V={}));(function(i){i.titleProperty=new Ye({name:"title",create:t=>new bm({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}i.createNode=e})(Pv||(Pv={}));Po=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,G.clearData(this),Ye.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)se.sendMessage(t,V.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)se.sendMessage(t,V.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)se.sendMessage(t,e)}onAfterAttach(e){for(let t of this)se.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)se.sendMessage(t,e)}onAfterDetach(e){for(let t of this)se.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||se.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||se.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||se.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||se.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(i){function e(s){return zh.horizontalAlignmentProperty.get(s)}i.getHorizontalAlignment=e;function t(s,o){zh.horizontalAlignmentProperty.set(s,o)}i.setHorizontalAlignment=t;function r(s){return zh.verticalAlignmentProperty.get(s)}i.getVerticalAlignment=r;function n(s,o){zh.verticalAlignmentProperty.set(s,o)}i.setVerticalAlignment=n})(Po||(Po={}));td=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=he.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,r,n){let s=Math.max(this._minWidth,Math.min(r,this._maxWidth)),o=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(s"center",changed:e}),i.verticalAlignmentProperty=new Ye({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(zh||(zh={}));Hu=class extends Po{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let r=this._widgets.indexOf(t),n=Math.max(0,Math.min(e,this._widgets.length));if(r===-1){L.insert(this._widgets,n,t),this.parent&&this.attachWidget(n,t);return}n===this._widgets.length&&n--,r!==n&&(L.move(this._widgets,r,n),this.parent&&this.moveWidget(r,n,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=L.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let r=this.parent.node.children[e];this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,r),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterAttach)}moveWidget(e,t,r){this.parent.isAttached&&se.sendMessage(r,V.Msg.BeforeDetach),this.parent.node.removeChild(r.node),this.parent.isAttached&&se.sendMessage(r,V.Msg.AfterDetach);let n=this.parent.node.children[t];this.parent.isAttached&&se.sendMessage(r,V.Msg.BeforeAttach),this.parent.node.insertBefore(r.node,n),this.parent.isAttached&&se.sendMessage(r,V.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterDetach)}};(function(i){function e(t){return Math.max(0,Math.floor(t))}i.clampDimension=e})(vm||(vm={}));_m=vm,Gs=class extends Hu{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=vm.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=vm.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return Da.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let r=this._sizers.length,n=e.slice(0,r);for(;n.length0&&(s.sizeHint=s.size);Un.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let r=new td(t),n=Da.createHandle(this.renderer),s=Da.averageSize(this._sizers),o=Da.createSizer(s);L.insert(this._items,e,r),L.insert(this._sizers,e,o),L.insert(this._handles,e,n),this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(n),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),L.move(this._sizers,e,t),L.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let r=L.removeAt(this._items,e),n=L.removeAt(this._handles,e);L.removeAt(this._sizers,e),this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(n),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,r,n,s,o,a){let l=this._items[e];if(l.isHidden)return;let u=this._handles[e].style;t?(r+=this.widgetOffset,l.update(r,n,a,s),r+=a,u.top=`${n}px`,u.left=`${r}px`,u.width=`${this._spacing}px`,u.height=`${s}px`):(n+=this.widgetOffset,l.update(r,n,o,a),n+=a,u.top=`${n}px`,u.left=`${r}px`,u.width=`${o}px`,u.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,u=this._items.length;l0&&(d.sizeHint=d.size),c.isHidden){d.minSize=0,d.maxSize=0;continue}c.fit(),d.stretch=Gs.getStretch(c.widget),r?(d.minSize=c.minWidth,d.maxSize=c.maxWidth,n+=c.minWidth,s=Math.max(s,c.minHeight)):(d.minSize=c.minHeight,d.maxSize=c.maxHeight,s+=c.minHeight,n=Math.max(n,c.minWidth))}let o=this._box=he.boxSizing(this.parent.node);n+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${n}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&se.sendMessage(this.parent.parent,V.Msg.FitRequest),this._dirty&&se.sendMessage(this.parent,V.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let r=0;for(let d=0,h=this._items.length;d0){let d;if(c?d=Math.max(0,o-this._fixed):d=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let f of this._sizers)f.sizeHint*=d;this._hasNormedSizes=!1}let h=Un.calc(this._sizers,d);if(h>0)switch(this._alignment){case"start":break;case"center":l=0,u=h/2;break;case"end":l=0,u=h;break;case"justify":l=h/r,u=0;break;default:throw"unreachable"}}for(let d=0,h=this._items.length;d0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:s});function e(o){let a=new Lo;return a.sizeHint=Math.floor(o),a}i.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}i.createHandle=t;function r(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}i.averageSize=r;function n(o){let a=o.length;if(a===0)return[];let l=o.reduce((u,c)=>u+Math.abs(c),0);return l===0?o.map(u=>1/a):o.map(u=>u/l)}i.normalize=n;function s(o){o.parent&&o.parent.layout instanceof Gs&&o.parent.fit()}})(Da||(Da={}));y4=class extends Gs{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=_m.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let r=this._titles[e],n=r.classList.contains("lm-mod-expanded"),s=Fv.createTitle(this.renderer,t.title,n);this._titles[e]=s,this.parent.node.replaceChild(s,r)}insertWidget(e,t){t.id||(t.id=`id-${La.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let r=Fv.createTitle(this.renderer,t.title);L.insert(this._titles,e,r),this.parent.node.appendChild(r),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",r.id),super.attachWidget(e,t)}moveWidget(e,t,r){L.move(this._titles,e,t),super.moveWidget(e,t,r)}detachWidget(e,t){let r=L.removeAt(this._titles,e);this.parent.node.removeChild(r),super.detachWidget(e,t)}updateItemPosition(e,t,r,n,s,o,a){let l=this._titles[e].style;l.top=`${n}px`,l.left=`${r}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${s}px`:l.width=`${o}px`,super.updateItemPosition(e,t,r,n,s,o,a)}};(function(i){function e(t,r,n=!0){let s=t.createSectionTitle(r);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${r.label} Section`),s.setAttribute("aria-expanded",n?"true":"false"),s.setAttribute("aria-controls",r.owner.id),n&&s.classList.add("lm-mod-expanded"),s}i.createTitle=e})(Fv||(Fv={}));$a=class extends V{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=x4.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}};(function(i){function e(t){return t.layout||new Hu}i.createLayout=e})(x4||(x4={}));xn=class extends $a{constructor(e={}){super({layout:w4.createLayout(e)}),this._handleMoved=new G(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=L.findFirstIndex(t.handles,u=>u.contains(e.target));if(r===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let n,s=t.handles[r],o=s.getBoundingClientRect();t.orientation==="horizontal"?n=e.clientX-o.left:n=e.clientY-o.top;let a=window.getComputedStyle(s),l=Di.overrideCursor(a.cursor);this._pressData={index:r,delta:n,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,r=this.layout,n=this.node.getBoundingClientRect();r.orientation==="horizontal"?t=e.clientX-n.left-this._pressData.delta:t=e.clientY-n.top-this._pressData.delta,r.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(i){class e{createHandle(){let s=document.createElement("div");return s.className="lm-SplitPanel-handle",s}}i.Renderer=e,i.defaultRenderer=new e;function t(n){return Gs.getStretch(n)}i.getStretch=t;function r(n,s){Gs.setStretch(n,s)}i.setStretch=r})(xn||(xn={}));(function(i){function e(t){return t.layout||new Gs({renderer:t.renderer||xn.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}i.createLayout=e})(w4||(w4={}));ym=class extends xn{constructor(e={}){super({...e,layout:S4.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new G(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=L.findFirstIndex(this.widgets,r=>r.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,r=t.widgets[e];if(!r)return;let n=r.isHidden,s=t.absoluteSizes(),o=(n?-1:1)*this.spacing,a=s.reduce((u,c)=>u+c),l=[...s];if(n){let u=this._widgetSizesCache.get(r);if(!u)return;l[e]+=u;let c=l.map(d=>d-u>0).lastIndexOf(!0);c===-1?l.forEach((d,h)=>{h!==e&&(l[h]-=s[h]/a*(u-o))}):l[c]-=u-o}else{let u=s[e];this._widgetSizesCache.set(r,u),l[e]=0;let c=l.map(d=>d>0).lastIndexOf(!0);if(c===-1)return;l[c]=s[c]+u+o}return l.map(u=>u/(a+o))}_evtClick(e){let t=e.target;if(t){let r=L.findFirstIndex(this.titles,n=>n.contains(t));r>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(r))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,r=!1;if(t){let n=L.findFirstIndex(this.titles,s=>s.contains(t));if(n>=0){let s=e.keyCode.toString();if(e.key.match(/Space|Enter/)||s.match(/13|32/))t.click(),r=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||s.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||s.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||s.match(/37|38/)?-1:1,a=this.titles.length,l=(n+a+o)%a;this.titles[l].focus(),r=!0}else e.key==="End"||s==="35"?(this.titles[this.titles.length-1].focus(),r=!0):(e.key==="Home"||s==="36")&&(this.titles[0].focus(),r=!0)}r&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],r=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),r.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),r.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),r.hide()),this._expansionToggled.emit(e)}};(function(i){class e extends xn.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(r){return document.createElement("span")}createSectionTitle(r){let n=document.createElement("h3");n.setAttribute("tabindex","0"),n.id=this.createTitleKey(r),n.className=this.titleClassName;for(let a in r.dataset)n.dataset[a]=r.dataset[a];let s=n.appendChild(this.createCollapseIcon(r));s.className="lm-AccordionPanel-titleCollapser";let o=n.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=r.label,o.title=r.caption||r.label,n}createTitleKey(r){let n=this._titleKeys.get(r);return n===void 0&&(n=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(r,n)),n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e})(ym||(ym={}));(function(i){function e(t){return t.layout||new y4({renderer:t.renderer||ym.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}i.createLayout=e})(S4||(S4={}));ji=class extends Hu{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=_m.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=_m.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){L.insert(this._items,e,new td(t)),L.insert(this._sizers,e,new Lo),this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),L.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let r=L.removeAt(this._items,e);L.removeAt(this._sizers,e),this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a0)switch(this._alignment){case"start":break;case"center":u=0,c=l/2;break;case"end":u=0,c=l;break;case"justify":u=l/r,c=0;break;default:throw"unreachable"}for(let d=0,h=this._items.length;d0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r}),i.sizeBasisProperty=new Ye({name:"sizeBasis",create:()=>0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r});function e(n){return n==="left-to-right"||n==="right-to-left"}i.isHorizontal=e;function t(n){return Math.max(0,Math.floor(n))}i.clampSpacing=t;function r(n){n.parent&&n.parent.layout instanceof ji&&n.parent.fit()}})(ed||(ed={}));qh=class extends $a{constructor(e={}){super({layout:C4.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(i){function e(s){return ji.getStretch(s)}i.getStretch=e;function t(s,o){ji.setStretch(s,o)}i.setStretch=t;function r(s){return ji.getSizeBasis(s)}i.getSizeBasis=r;function n(s,o){ji.setSizeBasis(s,o)}i.setSizeBasis=n})(qh||(qh={}));(function(i){function e(t){return t.layout||new ji(t)}i.createLayout=e})(C4||(C4={}));Hh=class extends V{constructor(e){super({node:Ra.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(V.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||Hh.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=Ra.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(r=>Ra.createItem(this.commands,r));return t.forEach(r=>this._items.push(r)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){L.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){Pt.render(null,this.contentNode);return}let t=this.inputNode.value,r=this.contentNode,n=this._results;if(n||(n=this._results=Ra.search(this._items,t),this._activeIndex=t?L.findFirstIndex(n,Ra.canActivate):-1),!t&&n.length===0){Pt.render(null,r);return}if(t&&n.length===0){let l=this.renderer.renderEmptyMessage({query:t});Pt.render(l,r);return}let s=this.renderer,o=this._activeIndex,a=new Array(n.length);for(let l=0,u=n.length;l=n.length)r.scrollTop=0;else{let l=r.children[o];he.scrollIntoViewIfNeeded(r,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=L.findFirstIndex(this.contentNode.children,r=>r.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,r=eE-w),R=x.slice(0,S),I=x.slice(S);for(let E=0,w=I.length;Eg.command===f&&La.JSONExt.deepEqual(g.args,p))||null}}})(Ra||(Ra={}));$o=class extends V{constructor(e){super({node:tn.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new G(this),this._menuRequested=new G(this),this.addClass("lm-Menu"),this.setFlag(V.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||$o.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!tn.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,r=t{this.activeIndex=a}})}Pt.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let r=this._parentMenu;r&&(this._parentMenu=null,r._childIndex=-1,r._childMenu=null,r.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let r=Qn().keyForKeydownEvent(e);if(!r)return;let n=this._activeIndex+1,s=tn.findMnemonic(this._items,r,n);s.index!==-1&&!s.multiple?(this.activeIndex=s.index,this.triggerActiveItem()):s.index!==-1?this.activeIndex=s.index:s.auto!==-1&&(this.activeIndex=s.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=L.findFirstIndex(this.contentNode.children,n=>he.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let r=this.activeItem;!r||r.type!=="submenu"||!r.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:r}=e;if(he.hitTest(this._childMenu.node,t,r)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(tn.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let r=t.submenu;if(r===this._childMenu)return;$o.saveWindowData(),this._closeChildMenu(),this._childMenu=r,this._childIndex=this._activeIndex,r._parentMenu=this,se.sendMessage(this,V.Msg.UpdateRequest);let n=this.contentNode.children[this._activeIndex];tn.openSubmenu(r,n),e&&(r.activeIndex=-1,r.activateNextItem()),r.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},tn.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},tn.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){tn.saveWindowData()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return re.li({className:n,dataset:s,tabindex:"0",onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r),this.renderShortcut(r),this.renderSubmenu(r))}renderIcon(r){let n=this.createIconClass(r);return re.div({className:n},r.item.icon,r.item.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return re.div({className:"lm-Menu-itemLabel"},n)}renderShortcut(r){let n=this.formatShortcut(r);return re.div({className:"lm-Menu-itemShortcut"},n)}renderSubmenu(r){return re.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(r){let n="lm-Menu-item";r.item.isEnabled||(n+=" lm-mod-disabled"),r.item.isToggled&&(n+=" lm-mod-toggled"),r.item.isVisible||(n+=" lm-mod-hidden"),r.active&&(n+=" lm-mod-active"),r.collapsed&&(n+=" lm-mod-collapsed");let s=r.item.className;return s&&(n+=` ${s}`),n}createItemDataset(r){let n,{type:s,command:o,dataset:a}=r.item;return s==="command"?n={...a,type:s,command:o}:n={...a,type:s},n}createIconClass(r){let n="lm-Menu-itemIcon",s=r.item.iconClass;return s?`${n} ${s}`:n}createItemARIA(r){let n={};switch(r.item.type){case"separator":n.role="presentation";break;case"submenu":n["aria-haspopup"]="true",r.item.isEnabled||(n["aria-disabled"]="true");break;default:r.item.isEnabled||(n["aria-disabled"]="true"),r.item.isToggled?(n.role="menuitemcheckbox",n["aria-checked"]="true"):n.role="menuitem"}return n}formatLabel(r){let{label:n,mnemonic:s}=r.item;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],u=re.span({className:"lm-Menu-itemMnemonic"},l);return[o,u,a]}formatShortcut(r){let n=r.item.keyBinding;return n?ti.formatKeystroke(n.keys):null}}i.Renderer=e,i.defaultRenderer=new e})($o||($o={}));(function(i){i.TIMER_DELAY=300,i.SUBMENU_OVERLAP=3;let e=null,t=0;function r(){return t>0?(t--,e):c()}function n(){e=c(),t++}i.saveWindowData=n;function s(){let g=document.createElement("div"),v=document.createElement("ul");return v.className="lm-Menu-content",g.appendChild(v),v.setAttribute("role","menu"),g.tabIndex=0,g}i.createNode=s;function o(g){return g.type!=="separator"&&g.isEnabled&&g.isVisible}i.canActivate=o;function a(g,v){return new p(g.commands,v)}i.createItem=a;function l(g,v,_){for(let x=g;x;x=x.childMenu)if(he.hitTest(x.node,v,_))return!0;return!1}i.hitTestMenus=l;function u(g){let v=new Array(g.length);L.fill(v,!1);let _=0,x=g.length;for(;_=0;--y){let S=g[y];if(S.isVisible){if(S.type!=="separator")break;v[y]=!0}}let C=!1;for(;++_E+k&&(v=E+k-U),!y&&_+ne>w+O&&(_>w+O?_=w+O-ne:_=_-ne),pe.transform=`translate(${Math.max(0,v)}px, ${Math.max(0,_)}px`,pe.opacity="1"}i.openRootMenu=d;function h(g,v){let _=r(),x=_.pageXOffset,y=_.pageYOffset,C=_.clientWidth,S=_.clientHeight;se.sendMessage(g,V.Msg.UpdateRequest);let R=S,I=g.node,E=I.style;E.opacity="0",E.maxHeight=`${R}px`,V.attach(g,document.body);let{width:w,height:k}=I.getBoundingClientRect(),O=he.boxSizing(g.node),z=v.getBoundingClientRect(),Y=z.right-i.SUBMENU_OVERLAP;Y+w>x+C&&(Y=z.left+i.SUBMENU_OVERLAP-w);let pe=z.top-O.borderTop-O.paddingTop;pe+k>y+S&&(pe=z.bottom+O.borderBottom+O.paddingBottom-k),E.transform=`translate(${Math.max(0,Y)}px, ${Math.max(0,pe)}px`,E.opacity="1"}i.openSubmenu=h;function f(g,v,_){let x=-1,y=-1,C=!1,S=v.toUpperCase();for(let R=0,I=g.length;R=0&&Ox.command===v&&La.JSONExt.deepEqual(x.args,_))||null}return null}}})(tn||(tn={}));(function(i){function e(o,a){let l=r(o.selector),u=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:u,id:a}}i.createItem=e;function t(o,a,l,u){let c=a.target;if(!c)return null;let d=a.currentTarget;if(!d||!d.contains(c)&&(c=document.elementFromPoint(a.clientX,a.clientY),!c||!d.contains(c)))return null;let h=[],f=o.slice();for(;c!==null;){let p=[];for(let g=0,v=f.length;g=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,r=this._titles[t]||null,n=e,s=this._titles[n]||null;this._currentIndex=n,this._previousTitle=r,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:r,currentIndex:n,currentTitle:s})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let r=vs.asTitle(t),n=this._titles.indexOf(r),s=Math.max(0,Math.min(e,this._titles.length));return n===-1?(L.insert(this._titles,s,r),r.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,r),r):(s===this._titles.length&&s--,n===s||(L.move(this._titles,n,s),this.update(),this._adjustCurrentForMove(n,s)),r)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=L.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let r of this._titles)r.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let r=this._titles,n=this.renderer,s=this.currentTitle,o=new Array(r.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,u=r.length;lhe.hitTest(o,e.clientX,e.clientY));if(r===-1)return;let n=this.titles[r],s=t[r].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let o=n.label||"",a=s.innerHTML;s.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,s.appendChild(l);let u=()=>{l.removeEventListener("blur",u),s.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",c=>c.stopPropagation()),l.addEventListener("blur",u),l.addEventListener("keydown",c=>{c.key==="Enter"?(l.value!==""&&(n.label=n.caption=l.value),u()):c.key==="Escape"&&u()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,r,n;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let s=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(s))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=L.findFirstIndex(this.contentNode.children,a=>a.contains(s));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(YSe.includes(e.key)){let s=[...this.contentNode.children];if(this.addButtonEnabled&&s.push(this.addButtonNode),s.length<=1)return;e.preventDefault(),e.stopPropagation();let o=s.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=s[o+1])!==null&&t!==void 0?t:s[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(r=s[o-1])!==null&&r!==void 0?r:s[s.length-1]:e.key==="Home"?a=s[0]:e.key==="End"&&(a=s[s.length-1]),a&&((n=s[o])===null||n===void 0||n.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),r=this.contentNode.children,n=L.findFirstIndex(r,o=>he.hitTest(o,e.clientX,e.clientY));if(n===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:r[n],index:n,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let s=r[n].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===n?this.currentIndex=-1:this.currentIndex=n,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let r=this.contentNode.children;if(!(!t.dragActive&&!vs.dragExceeded(t,e))){if(!t.dragActive){let n=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabPressOffset={x:t.pressX-n.left,y:t.pressY-n.top},t.tabLayout=vs.snapTabLayout(r,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=Di.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&vs.detachExceeded(t,e)){t.detachRequested=!0;let n=t.index,s=e.clientX,o=e.clientY,a=r[n],l=this._titles[n];if(this._tabDetachRequested.emit({index:n,title:l,tab:a,clientX:s,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}vs.layoutTabs(r,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let s=this.contentNode.children,o=L.findFirstIndex(s,u=>he.hitTest(u,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;vs.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let r=vs.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,vs.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let n=t.index,s=t.targetIndex;s===-1||n===s||(L.move(this._titles,n,s),this._adjustCurrentForMove(n,s),this._tabMoved.emit({fromIndex:n,toIndex:s,title:this._titles[s]}),se.sendMessage(this,V.Msg.UpdateRequest))},r)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(vs.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let r=this.currentTitle,n=this._currentIndex,s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&n===-1){this._currentIndex=e,this._previousTitle=r,this._currentChanged.emit({previousIndex:n,previousTitle:r,currentIndex:e,currentTitle:t});return}n>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let r=this._currentIndex,n=this.removeBehavior;if(r!==e){r>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(n==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(i){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(r){let n=r.title.caption,s=this.createTabKey(r),o=s,a=this.createTabStyle(r),l=this.createTabClass(r),u=this.createTabDataset(r),c=this.createTabARIA(r);return r.title.closable?re.li({id:o,key:s,className:l,title:n,style:a,dataset:u,...c},this.renderIcon(r),this.renderLabel(r),this.renderCloseIcon(r)):re.li({id:o,key:s,className:l,title:n,style:a,dataset:u,...c},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let{title:n}=r,s=this.createIconClass(r);return re.div({className:s},n.icon,n.iconLabel)}renderLabel(r){return re.div({className:"lm-TabBar-tabLabel"},r.title.label)}renderCloseIcon(r){return re.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(r){let n=this._tabKeys.get(r.title);return n===void 0&&(n=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(r.title,n)),n}createTabStyle(r){return{zIndex:`${r.zIndex}`}}createTabClass(r){let n="lm-TabBar-tab";return r.title.className&&(n+=` ${r.title.className}`),r.title.closable&&(n+=" lm-mod-closable"),r.current&&(n+=" lm-mod-current"),n}createTabDataset(r){return r.title.dataset}createTabARIA(r){var n;return{role:"tab","aria-selected":r.current.toString(),tabindex:`${(n=r.tabIndex)!==null&&n!==void 0?n:"-1"}`}}createIconClass(r){let n="lm-TabBar-tabIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e,i.addButtonSelector=".lm-TabBar-addButton"})(Ks||(Ks={}));(function(i){i.DRAG_THRESHOLD=5,i.DETACH_THRESHOLD=20;function e(){let c=document.createElement("div"),d=document.createElement("ul");d.setAttribute("role","tablist"),d.className="lm-TabBar-content",c.appendChild(d);let h=document.createElement("div");return h.className="lm-TabBar-addButton lm-mod-hidden",h.setAttribute("tabindex","-1"),h.setAttribute("role","button"),c.appendChild(h),c}i.createNode=e;function t(c){return c instanceof bm?c:new bm(c)}i.asTitle=t;function r(c){let d=window.getComputedStyle(c);return 1e3*(parseFloat(d.transitionDuration)||0)}i.parseTransitionDuration=r;function n(c,d){let h=new Array(c.length);for(let f=0,p=c.length;f=i.DRAG_THRESHOLD||f>=i.DRAG_THRESHOLD}i.dragExceeded=s;function o(c,d){let h=c.contentRect;return d.clientX=h.right+i.DETACH_THRESHOLD||d.clientY=h.bottom+i.DETACH_THRESHOLD}i.detachExceeded=o;function a(c,d,h,f){let p,g,v,_;f==="horizontal"?(p=d.pressX,g=h.clientX-d.contentRect.left,v=h.clientX,_=d.contentRect.width):(p=d.pressY,g=h.clientY-d.contentRect.top,v=h.clientY,_=d.contentRect.height);let x=d.index,y=g-d.tabPressPos,C=y+d.tabSize;for(let S=0,R=c.length;S>1);if(Sd.index&&C>w)I=`${-d.tabSize-E.margin}px`,x=Math.max(x,S);else if(S===d.index){let k=v-p,O=_-(d.tabPos+d.tabSize);I=`${Math.max(-d.tabPos,Math.min(k,O))}px`}else I="";f==="horizontal"?c[S].style.left=I:c[S].style.top=I}d.targetIndex=x}i.layoutTabs=a;function l(c,d){let h;d==="horizontal"?h=c.contentRect.width:h=c.contentRect.height;let f;if(c.targetIndex===c.index)f=0;else if(c.targetIndex>c.index){let v=c.tabLayout[c.targetIndex];f=v.pos+v.size-c.tabSize-c.tabPos}else f=c.tabLayout[c.targetIndex].pos-c.tabPos;let p=h-(c.tabPos+c.tabSize),g=Math.max(-c.tabPos,Math.min(f,p));d==="horizontal"?c.tab.style.left=`${g}px`:c.tab.style.top=`${g}px`}i.finalizeTabPosition=l;function u(c,d){for(let h of c)d==="horizontal"?h.style.left="":h.style.top=""}i.resetTabPositions=u})(vs||(vs={}));I4=class extends Po{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=_m.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:V.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let r of t.titles)r.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=_m.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():Oi()}widgets(){return this._root?this._root.iterUserWidgets():Oi()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():Oi()}tabBars(){return this._root?this._root.iterTabBars():Oi()}handles(){return this._root?this._root.iterHandles():Oi()}moveHandle(e,t,r){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let s=this._root.findSplitNode(e);if(!s)return;let o;s.node.orientation==="horizontal"?o=t-e.offsetLeft:o=r-e.offsetTop,o!==0&&(s.node.holdSizes(),Un.adjust(s.node.sizers,s.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,r;e.main?r=xi.normalizeAreaConfig(e.main,t):r=null;let n=this.widgets(),s=this.tabBars(),o=this.handles();this._root=null;for(let a of n)t.has(a)||(a.parent=null);for(let a of s)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;r?this._root=xi.realizeAreaConfig(r,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let r=t.ref||null,n=t.mode||"tab-after",s=null;if(this._root&&r&&(s=this._root.findTabNode(r)),r&&!s)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,r,s,!0);break;case"tab-before":this._insertTab(e,r,s,!1);break;case"split-top":this._insertSplit(e,r,s,"vertical",!1);break;case"split-left":this._insertSplit(e,r,s,"horizontal",!1);break;case"split-right":this._insertSplit(e,r,s,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,r,s,"vertical",!0);break;case"merge-top":this._insertSplit(e,r,s,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,r,s,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,r,s,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,r,s,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=he.boxSizing(this.parent.node));let r=this.parent.node.getBoundingClientRect(),n=e-r.left-this._box.borderLeft,s=t-r.top-this._box.borderTop,o=this._root.hitTestTabNodes(n,s);if(!o)return null;let{tabBar:a,top:l,left:u,width:c,height:d}=o,h=this._box.borderLeft+this._box.borderRight,f=this._box.borderTop+this._box.borderBottom,p=r.width-h-(u+c),g=r.height-f-(l+d);return{tabBar:a,x:n,y:s,top:l,left:u,right:p,bottom:g,width:c,height:d}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new td(e)),this.parent.isAttached&&se.sendMessage(e,V.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&se.sendMessage(e,V.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&se.sendMessage(e,V.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&se.sendMessage(e,V.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(xi.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===V.HiddenMode.Scale&&t.tabBar.titles.length==1){let h=t.tabBar.titles[0].owner;h.hiddenMode=V.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let r=t.parent;t.parent=null;let n=L.removeFirstOf(r.children,t),s=L.removeAt(r.handles,n);if(L.removeAt(r.sizers,n),s.parentNode&&s.parentNode.removeChild(s),r.children.length>1){r.syncHandles();return}let o=r.parent;r.parent=null;let a=r.children[0],l=r.handles[0];if(r.children.length=0,r.handles.length=0,r.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===r){a.parent=null,this._root=a;return}let u=o,c=u.children.indexOf(r);if(a instanceof xi.TabLayoutNode){a.parent=u,u.children[c]=a;return}let d=L.removeAt(u.handles,c);L.removeAt(u.children,c),L.removeAt(u.sizers,c),d.parentNode&&d.parentNode.removeChild(d);for(let h=0,f=a.children.length;h=this._left+this._width||p=this._top+this._height?null:this}createConfig(){let f=this.tabBar.titles.map(g=>g.owner),p=this.tabBar.currentIndex;return{type:"tab-area",widgets:f,currentIndex:p}}holdAllSizes(){}fit(f,p){let g=0,v=0,_=1/0,x=1/0,y=p.get(this.tabBar),C=this.tabBar.currentTitle,S=C?p.get(C.owner):void 0,[R,I]=this.sizers;return y&&y.fit(),S&&S.fit(),y&&!y.isHidden?(g=Math.max(g,y.minWidth),v+=y.minHeight,R.minSize=y.minHeight,R.maxSize=y.maxHeight):(R.minSize=0,R.maxSize=0),S&&!S.isHidden?(g=Math.max(g,S.minWidth),v+=S.minHeight,I.minSize=S.minHeight,I.maxSize=1/0):(I.minSize=0,I.maxSize=1/0),{minWidth:g,minHeight:v,maxWidth:_,maxHeight:x}}update(f,p,g,v,_,x){this._top=p,this._left=f,this._width=g,this._height=v;let y=x.get(this.tabBar),C=this.tabBar.currentTitle,S=C?x.get(C.owner):void 0;if(Un.calc(this.sizers,v),y&&!y.isHidden){let R=this.sizers[0].size;y.update(f,p,g,R),p+=R}if(S&&!S.isHidden){let R=this.sizers[1].size;S.update(f,p,g,R)}}}i.TabLayoutNode=n;class s{constructor(f){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=f}*iterAllWidgets(){for(let f of this.children)yield*f.iterAllWidgets()}*iterUserWidgets(){for(let f of this.children)yield*f.iterUserWidgets()}*iterSelectedWidgets(){for(let f of this.children)yield*f.iterSelectedWidgets()}*iterTabBars(){for(let f of this.children)yield*f.iterTabBars()}*iterHandles(){yield*this.handles;for(let f of this.children)yield*f.iterHandles()}findTabNode(f){for(let p=0,g=this.children.length;pv.createConfig());return{type:"split-area",orientation:f,children:g,sizes:p}}syncHandles(){this.handles.forEach((f,p)=>{f.setAttribute("data-orientation",this.orientation),p===this.handles.length-1?f.classList.add("lm-mod-hidden"):f.classList.remove("lm-mod-hidden")})}holdSizes(){for(let f of this.sizers)f.sizeHint=f.size}holdAllSizes(){for(let f of this.children)f.holdAllSizes();this.holdSizes()}normalizeSizes(){let f=this.sizers.length;if(f===0)return;this.holdSizes();let p=this.sizers.reduce((g,v)=>g+v.sizeHint,0);if(p===0)for(let g of this.sizers)g.size=g.sizeHint=1/f;else for(let g of this.sizers)g.size=g.sizeHint/=p;this.normalized=!0}createNormalizedSizes(){let f=this.sizers.length;if(f===0)return[];let p=this.sizers.map(v=>v.size),g=p.reduce((v,_)=>v+_,0);if(g===0)for(let v=p.length-1;v>-1;v--)p[v]=1/f;else for(let v=p.length-1;v>-1;v--)p[v]/=g;return p}fit(f,p){let g=this.orientation==="horizontal",v=Math.max(0,this.children.length-1)*f,_=g?v:0,x=g?0:v,y=1/0,C=1/0;for(let S=0,R=this.children.length;S=p.length)&&(g=0),{type:"tab-area",widgets:p,currentIndex:g}}function u(h,f){let p=h.orientation,g=[],v=[];for(let _=0,x=h.children.length;_{let x=r(v,f,p),y=e(h.sizes[_]),C=f.createHandle();g.children.push(x),g.handles.push(C),g.sizers.push(y),x.parent=g}),g.syncHandles(),g.normalizeSizes(),g}})(xi||(xi={}));id=class extends V{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new G(this),this._addRequested=new G(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||id.defaultRenderer,this._edges=e.edges||ui.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new I4({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new id.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let r of t.tabBars())r.show();break;case"single-document":t.restoreLayout(ui.createSingleDocumentConfig(this));break;default:throw"unreachable"}se.postMessage(this,ui.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=Ui(this.tabBars(),r=>r.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(Ft.IS_EDGE||Ft.IS_IE)&&se.flush(),se.postMessage(this,ui.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),se.postMessage(this,ui.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){ui.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){ui.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),se.postMessage(this,ui.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:r}=e,{zone:n,target:s}=ui.findDropTarget(this,t,r,this._edges);if(this._tabsConstrained&&e.source!==this||n==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof V)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let u=s?ui.getDropRef(s.tabBar):null;switch(n){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:u});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:u});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:u});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:u});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:u});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:u});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),se.postMessage(this,ui.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=e.target,n=Ui(t.handles(),c=>c.contains(r));if(!n)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let s=n.getBoundingClientRect(),o=e.clientX-s.left,a=e.clientY-s.top,l=window.getComputedStyle(n),u=Di.overrideCursor(l.cursor,this._document);this._pressData={handle:n,deltaX:o,deltaY:a,override:u}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),r=e.clientX-t.left-this._pressData.deltaX,n=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,r,n)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),se.postMessage(this,ui.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:r,target:n}=ui.findDropTarget(this,e,t,this._edges);if(r==="invalid")return this.overlay.hide(100),r;let s,o,a,l,u=he.boxSizing(this.node),c=this.node.getBoundingClientRect();switch(r){case"root-all":s=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"root-top":s=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=c.height*ui.GOLDEN_RATIO;break;case"root-left":s=u.paddingTop,o=u.paddingLeft,a=c.width*ui.GOLDEN_RATIO,l=u.paddingBottom;break;case"root-right":s=u.paddingTop,o=c.width*ui.GOLDEN_RATIO,a=u.paddingRight,l=u.paddingBottom;break;case"root-bottom":s=c.height*ui.GOLDEN_RATIO,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"widget-all":s=n.top,o=n.left,a=n.right,l=n.bottom;break;case"widget-top":s=n.top,o=n.left,a=n.right,l=n.bottom+n.height/2;break;case"widget-left":s=n.top,o=n.left,a=n.right+n.width/2,l=n.bottom;break;case"widget-right":s=n.top,o=n.left+n.width/2,a=n.right,l=n.bottom;break;case"widget-bottom":s=n.top+n.height/2,o=n.left,a=n.right,l=n.bottom;break;case"widget-tab":{let d=n.tabBar.node.getBoundingClientRect().height;s=n.top,o=n.left,a=n.right,l=n.bottom+n.height-d;break}default:throw"unreachable"}return this.overlay.show({top:s,left:o,right:a,bottom:l}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return ui.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){se.postMessage(this,ui.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:r,currentTitle:n}=t;r&&r.owner.hide(),n&&n.owner.show(),(Ft.IS_EDGE||Ft.IS_IE)&&se.flush(),se.postMessage(this,ui.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:r,tab:n,clientX:s,clientY:o,offset:a}=t,l=new La.MimeData,u=()=>r.owner;l.setData("application/vnd.lumino.widget-factory",u);let c=n.cloneNode(!0);a&&(c.style.top=`-${a.y}px`,c.style.left=`-${a.x}px`),this._drag=new Di({document:this._document,mimeData:l,dragImage:c,proposedAction:"move",supportedActions:"move",source:this}),n.classList.add("lm-mod-hidden");let d=()=>{this._drag=null,n.classList.remove("lm-mod-hidden")};this._drag.start(s,o).then(d)}};(function(i){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(n){let s=this.node.style;s.top=`${n.top}px`,s.left=`${n.left}px`,s.right=`${n.right}px`,s.bottom=`${n.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(n){if(!this._hidden){if(n<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},n))}}}i.Overlay=e;class t{createTabBar(n){let s=new Ks({document:n});return s.addClass("lm-DockPanel-tabBar"),s}createHandle(){let n=document.createElement("div");return n.className="lm-DockPanel-handle",n}}i.Renderer=t,i.defaultRenderer=new t})(id||(id={}));(function(i){i.GOLDEN_RATIO=.618,i.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},i.LayoutModified=new qu("layout-modified"),i.isGeneratedTabBarProperty=new Ye({name:"isGeneratedTabBar",create:()=>!1});function e(n){if(n.isEmpty)return{main:null};let s=Array.from(n.widgets()),o=n.selectedWidgets().next().value,a=o?s.indexOf(o):-1;return{main:{type:"tab-area",widgets:s,currentIndex:a}}}i.createSingleDocumentConfig=e;function t(n,s,o,a){if(!he.hitTest(n.node,s,o))return{zone:"invalid",target:null};let l=n.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(n.mode==="multiple-document"){let y=n.node.getBoundingClientRect(),C=s-y.left+1,S=o-y.top+1,R=y.right-s,I=y.bottom-o;switch(Math.min(S,R,I,C)){case S:if(Sg&&h>g&&d>v&&f>v)return{zone:"widget-all",target:u};c/=g,d/=v,h/=g,f/=v;let _=Math.min(c,d,h,f),x;switch(_){case c:x="widget-left";break;case d:x="widget-top";break;case h:x="widget-right";break;case f:x="widget-bottom";break;default:throw"unreachable"}return{zone:x,target:u}}i.findDropTarget=t;function r(n){return n.titles.length===0?null:n.currentTitle?n.currentTitle.owner:n.titles[n.titles.length-1].owner}i.getDropRef=r})(ui||(ui={}));Nv=class{constructor(){this._counter=0,this._widgets=[],this._activeWidget=null,this._currentWidget=null,this._numbers=new Map,this._nodes=new Map,this._activeChanged=new G(this),this._currentChanged=new G(this)}dispose(){if(!(this._counter<0)){this._counter=-1,G.clearData(this);for(let e of this._widgets)e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0);this._activeWidget=null,this._currentWidget=null,this._nodes.clear(),this._numbers.clear(),this._widgets.length=0}}get currentChanged(){return this._currentChanged}get activeChanged(){return this._activeChanged}get isDisposed(){return this._counter<0}get currentWidget(){return this._currentWidget}get activeWidget(){return this._activeWidget}get widgets(){return this._widgets}focusNumber(e){let t=this._numbers.get(e);return t===void 0?-1:t}has(e){return this._numbers.has(e)}add(e){if(this._numbers.has(e))return;let t=e.node.contains(document.activeElement),r=t?this._counter++:-1;this._widgets.push(e),this._numbers.set(e,r),this._nodes.set(e.node,e),e.node.addEventListener("focus",this,!0),e.node.addEventListener("blur",this,!0),e.disposed.connect(this._onWidgetDisposed,this),t&&this._setWidgets(e,e)}remove(e){if(!this._numbers.has(e)||(e.disposed.disconnect(this._onWidgetDisposed,this),e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0),L.removeFirstOf(this._widgets,e),this._nodes.delete(e.node),this._numbers.delete(e),this._currentWidget!==e))return;let t=this._widgets.filter(n=>this._numbers.get(n)!==-1),r=uf(t,(n,s)=>{let o=this._numbers.get(n),a=this._numbers.get(s);return o-a})||null;this._setWidgets(r,null)}handleEvent(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e);break}}_setWidgets(e,t){let r=this._currentWidget;this._currentWidget=e;let n=this._activeWidget;this._activeWidget=t,r!==e&&this._currentChanged.emit({oldValue:r,newValue:e}),n!==t&&this._activeChanged.emit({oldValue:n,newValue:t})}_evtFocus(e){let t=this._nodes.get(e.currentTarget);t!==this._currentWidget&&this._numbers.set(t,this._counter++),this._setWidgets(t,t)}_evtBlur(e){let t=this._nodes.get(e.currentTarget),r=e.relatedTarget;if(!r){this._setWidgets(this._currentWidget,null);return}if(!t.node.contains(r)&&!Ui(this._widgets,n=>n.node.contains(r))){this._setWidgets(this._currentWidget,null);return}}_onWidgetDisposed(e){this.remove(e)}},Oa=class extends Po{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new Lo],this._columnSizers=[new Lo],this._box=null,e.rowCount!==void 0&&Hi.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&Hi.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=Hi.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=Hi.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(Hi.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(Hi.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=Hi.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=Hi.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let r=this._rowSizers[e];r&&(t=Hi.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let r=this._columnSizers[e];r&&(t=Hi.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){L.findFirstIndex(this._items,r=>r.widget===e)===-1&&(this._items.push(new td(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=L.findFirstIndex(this._items,n=>n.widget===e);if(t===-1)return;let r=L.removeAt(this._items,t);this.parent&&this.detachWidget(e),r.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&se.sendMessage(e,V.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&se.sendMessage(e,V.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&se.sendMessage(e,V.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&se.sendMessage(e,V.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,u=this.rowCount;l!l.isHidden);for(let l=0,u=e.length;l({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let u=Math.max(0,Math.floor(l.row||0)),c=Math.max(0,Math.floor(l.column||0)),d=Math.max(1,Math.floor(l.rowSpan||0)),h=Math.max(1,Math.floor(l.columnSpan||0));return{row:u,column:c,rowSpan:d,columnSpan:h}}i.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}i.clampValue=t;function r(l,u){let c=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(u.widget);return c.rowSpan-d.rowSpan}i.rowSpanCmp=r;function n(l,u){let c=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(u.widget);return c.columnSpan-d.columnSpan}i.columnSpanCmp=n;function s(l,u){for(u=Math.max(1,Math.floor(u));l.lengthu&&(l.length=u)}i.reallocSizers=s;function o(l,u,c,d){if(c=d)return;let f=(d-h)/(c-u+1);for(let p=u;p<=c;++p)l[p].minSize+=f}i.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof Oa&&l.parent.fit()}})(Hi||(Hi={}));jh=class extends V{constructor(e={}){super({node:Bv.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(V.Flag.DisallowLayout),this.renderer=e.renderer||jh.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,r=!0){this._closeChildMenu();let n=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(n===-1){L.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),r&&this.update();return}s===this._menus.length&&s--,n!==s&&(L.move(this._menus,n,s),r&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let r=L.removeAt(this._menus,e);r&&(r.aboutToClose.disconnect(this._onMenuAboutToClose,this),r.menuRequested.disconnect(this._onMenuMenuRequested,this),r.title.changed.disconnect(this._onTitleChanged,this),r.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":case"mouseleave":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let r=this._menus,n=this.renderer,s=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:r.length,l=0,u=!1;a=this._overflowMenu!==null?a-1:a;let c=new Array(a);for(let d=0;d{this._tabFocusIndex=d,this.activeIndex=d}}),l+=this._menuItemSizes[d],r[d].title.label===this._overflowMenuOptions.title&&(u=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!u){if(this._overflowMenu===null){let d=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new $o({commands:new ti}),this._overflowMenu.title.label=d,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let d=r.length-2;d>=a;d--){let h=this.menus[d];h.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:h}),this.removeMenu(h,!1)}c[a]=n.renderItem({title:this._overflowMenu.title,active:a===s&&r[a].items.length!==0,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let d=this._overflowMenu.items,h=this.node.offsetWidth,f=this._overflowMenu.items.length;for(let p=0;pthis._menuItemSizes[g]){let v=d[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,v,!1),c[a]=n.renderItem({title:v.title,active:!1,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),c.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}Pt.render(c,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,r=0,n=-1,s=e.length;if(this._menuItemSizes.length==0)for(let o=0;ot&&n===-1&&(n=o)}else for(let o=0;ot){n=o;break}this._overflowIndex=n}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let u=0;uhe.hitTest(r,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let r=this._positionForMenu(t);$o.saveWindowData(),this.activeIndex=t,this._openChildMenu(r)}}_evtMouseMove(e){let t=L.findFirstIndex(this.contentNode.children,n=>he.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let r=t>=0&&this._childMenu?this._positionForMenu(t):null;$o.saveWindowData(),this.activeIndex=t,r&&this._openChildMenu(r)}_positionForMenu(e){let t=this.contentNode.children[e],{left:r,bottom:n}=t.getBoundingClientRect();return{top:n,left:r}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let r=this._childMenu;if(r===t)return;this._childMenu=t,r?r.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,se.sendMessage(this,V.Msg.UpdateRequest);let{left:n,top:s}=e;(typeof n>"u"||typeof s>"u")&&({left:n,top:s}=this._positionForMenu(this._activeIndex)),r||this.addClass("lm-mod-active"),t.items.length>0&&t.open(n,s,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let r=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=r===n-1?0:r+1;break;case"previous":this.activeIndex=r===0?n-1:r-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return re.li({className:n,dataset:s,...r.disabled?{}:{tabindex:r.tabbable?"0":"-1"},onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let n=this.createIconClass(r);return re.div({className:n},r.title.icon,r.title.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return re.div({className:"lm-MenuBar-itemLabel"},n)}createItemClass(r){let n="lm-MenuBar-item";return r.title.className&&(n+=` ${r.title.className}`),r.active&&!r.disabled&&(n+=" lm-mod-active"),n}createItemDataset(r){return r.title.dataset}createItemARIA(r){return{role:"menuitem","aria-haspopup":"true","aria-disabled":r.disabled?"true":"false"}}createIconClass(r){let n="lm-MenuBar-itemIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}formatLabel(r){let{label:n,mnemonic:s}=r.title;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],u=re.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,u,a]}}i.Renderer=e,i.defaultRenderer=new e})(jh||(jh={}));(function(i){function e(){let r=document.createElement("div"),n=document.createElement("ul");return n.className="lm-MenuBar-content",r.appendChild(n),n.setAttribute("role","menubar"),r}i.createNode=e;function t(r,n,s){let o=-1,a=-1,l=!1,u=n.toUpperCase();for(let c=0,d=r.length;c=0&&p1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===V.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=V.HiddenMode.Scale),t.hiddenMode=V.HiddenMode.Scale):t.hiddenMode=V.HiddenMode.Display,L.insert(this._items,e,new td(t)),this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){L.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let r=L.removeAt(this._items,e);this.parent.isAttached&&se.sendMessage(t,V.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&se.sendMessage(t,V.Msg.AfterDetach),r.widget.node.style.zIndex="",this._hiddenMode===V.HiddenMode.Scale&&(t.hiddenMode=V.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=V.HiddenMode.Display)),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let s=0,o=this._items.length;s{AZ=N(o0());tt();Fo();zv=class{constructor(e){this._currentChanged=new G(this),this._deferred=null,this._isDisposed=!1,this._widgetAdded=new G(this),this._widgetUpdated=new G(this);let t=this._focusTracker=new Nv,r=this._pool=new AZ.RestorablePool(e);this.namespace=e.namespace,t.currentChanged.connect((n,s)=>{s.newValue!==this.currentWidget&&(r.current=s.newValue)},this),r.added.connect((n,s)=>{this._widgetAdded.emit(s)},this),r.currentChanged.connect((n,s)=>{if(s===null&&t.currentWidget){r.current=t.currentWidget;return}this.onCurrentChanged(s),this._currentChanged.emit(s)},this),r.updated.connect((n,s)=>{this._widgetUpdated.emit(s)},this)}get currentChanged(){return this._currentChanged}get currentWidget(){return this._pool.current||null}get restored(){return this._deferred?Promise.resolve():this._pool.restored}get size(){return this._pool.size}get widgetAdded(){return this._widgetAdded}get widgetUpdated(){return this._widgetUpdated}async add(e){this._focusTracker.add(e),await this._pool.add(e),this._focusTracker.activeWidget||(this._pool.current=e)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._pool.dispose(),this._focusTracker.dispose(),G.clearData(this))}find(e){return this._pool.find(e)}forEach(e){return this._pool.forEach(e)}filter(e){return this._pool.filter(e)}inject(e){return this._pool.inject(e)}has(e){return this._pool.has(e)}async restore(e){let t=this._deferred;if(t)return this._deferred=null,this._pool.restore(t);if(e)return this._pool.restore(e);console.warn("No options provided to restore the tracker.")}defer(e){this._deferred=e}async save(e){return this._pool.save(e)}onCurrentChanged(e){}}});function Pa(i={}){return new pt(i).launch()}var T4,Vh,pt,ju,qv=b(()=>{Jn();Mo();Zt();T4=N(Ge());$v();Fo();Vh=N(ue());k4();pt=class extends V{constructor(e={}){let t=document.createElement("dialog");t.ariaModal="true",super({node:t}),this._hasValidationErrors=!1,this._ready=new T4.PromiseDelegate,this._focusNodeSelector="",this.addClass("jp-Dialog"),this.addClass("jp-ThemedContainer");let r=ju.handleOptions(e),n=r.renderer;if(this._host=r.host,this._defaultButton=r.defaultButton,this._buttons=r.buttons,this._hasClose=r.hasClose,this._buttonNodes=this._buttons.map(c=>n.createButtonNode(c)),this._checkboxNode=null,this._lastMouseDownInDialog=!1,r.checkbox){let{label:c="",caption:d="",checked:h=!1,className:f=""}=r.checkbox;this._checkboxNode=n.createCheckboxNode({label:c,caption:d??c,checked:h,className:f})}let s=this.layout=new Hu,o=new $a;o.addClass("jp-Dialog-content"),typeof e.body=="string"&&(o.addClass("jp-Dialog-content-small"),t.ariaLabel=[r.title,e.body].join(" ")),s.addWidget(o),this._body=r.body;let a=n.createHeader(r.title,()=>this.reject(),e),l=n.createBody(r.body),u=n.createFooter(this._buttonNodes,this._checkboxNode);o.addWidget(a),o.addWidget(l),o.addWidget(u),this._bodyWidget=l,this._primary=this._buttonNodes[this._defaultButton],this._focusNodeSelector=e.focusNodeSelector,pt.tracker.add(this)}get ready(){return this._ready.promise}dispose(){let e=this._promise;e&&(this._promise=null,e.reject(void 0),L.removeFirstOf(ju.launchQueue,e.promise)),super.dispose()}launch(){if(this._promise)return this._promise.promise;let e=this._promise=new T4.PromiseDelegate,t=Promise.all(ju.launchQueue);return ju.launchQueue.push(this._promise.promise),t.then(()=>this._promise?(V.attach(this,this._host),e.promise):Promise.resolve({button:pt.cancelButton(),isChecked:null,value:null}))}resolve(e){this._promise&&(e===void 0&&(e=this._defaultButton),this._resolve(this._buttons[e]))}reject(){this._promise&&this._resolve(pt.cancelButton())}handleEvent(e){switch(e.type){case"keydown":this._evtKeydown(e);break;case"mousedown":this._evtMouseDown(e);break;case"click":this._evtClick(e);break;case"input":this._evtInput(e);break;case"focus":this._evtFocus(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break;default:break}}onAfterAttach(e){let t=this.node;t.addEventListener("keydown",this,!0),t.addEventListener("contextmenu",this,!0),t.addEventListener("click",this,!0),document.addEventListener("mousedown",this,!0),document.addEventListener("focus",this,!0),document.addEventListener("input",this,!0),this._first=ju.findFirstFocusable(this.node),this._original=document.activeElement;let r=()=>{var n;if(this._focusNodeSelector){let s=this.node.querySelector(".jp-Dialog-body"),o=s?.querySelector(this._focusNodeSelector);o&&(this._primary=o)}(n=this._primary)===null||n===void 0||n.focus(),this._ready.resolve()};this._bodyWidget instanceof Or&&this._bodyWidget.renderPromise!==void 0?this._bodyWidget.renderPromise.then(()=>{r()}).catch(()=>{console.error("Error while loading Dialog's body")}):r()}onAfterDetach(e){let t=this.node;t.removeEventListener("keydown",this,!0),t.removeEventListener("contextmenu",this,!0),t.removeEventListener("click",this,!0),document.removeEventListener("focus",this,!0),document.removeEventListener("mousedown",this,!0),document.removeEventListener("input",this,!0),this._original.focus()}onCloseRequest(e){this._promise&&this.reject(),super.onCloseRequest(e)}_evtInput(e){this._hasValidationErrors=!!this.node.querySelector(":invalid");for(let t=0;t{a.dispose()})}i.flush=s;class o{createHeader(l,u=()=>{},c={}){let d,h=p=>{p.button===0&&(p.preventDefault(),u())},f=p=>{let{key:g}=p;(g==="Enter"||g===" ")&&u()};if(typeof l=="string"){let p=i.translator.load("jupyterlab");d=Or.create(Vh.createElement(Vh.Fragment,null,l,c.hasClose&&Vh.createElement(JR,{className:"jp-Dialog-close-button",onMouseDown:h,onKeyDown:f,title:p.__("Cancel"),minimal:!0},Vh.createElement(q.resolveReact,{icon:ig,tag:"span"}))))}else d=Or.create(l);return d.addClass("jp-Dialog-header"),Fu.styleNode(d.node),d}createBody(l){let u=d=>{d.renderPromise!==void 0?d.renderPromise.then(()=>{Fu.styleNode(d.node)}).catch(()=>{console.error("Error while loading Dialog's body")}):Fu.styleNode(d.node)},c;return typeof l=="string"?(c=new V({node:document.createElement("span")}),c.node.textContent=l):l instanceof V?(c=l,c instanceof Or?u(c):Fu.styleNode(c.node)):(c=Or.create(l),se.sendMessage(c,V.Msg.UpdateRequest),u(c)),c.addClass("jp-Dialog-body"),c}createFooter(l,u){let c=new V;c.addClass("jp-Dialog-footer"),u&&(c.node.appendChild(u),c.node.insertAdjacentHTML("beforeend",''));let d=document.createElement("div");d.classList.add("jp-Dialog-footerButtons");for(let h of l)d.appendChild(h);return c.node.appendChild(d),Fu.styleNode(c.node),c}createButtonNode(l){let u=document.createElement("button");return u.className=this.createItemClass(l),u.appendChild(this.renderIcon(l)),u.appendChild(this.renderLabel(l)),u}createCheckboxNode(l){let u=document.createElement("label");u.className="jp-Dialog-checkbox",l.className&&u.classList.add(l.className),u.title=l.caption,u.textContent=l.label;let c=document.createElement("input");return c.type="checkbox",c.checked=!!l.checked,u.insertAdjacentElement("afterbegin",c),u}createItemClass(l){let u="jp-Dialog-button";l.accept?u+=" jp-mod-accept":u+=" jp-mod-reject",l.displayType==="warn"&&(u+=" jp-mod-warn");let c=l.className;return c&&(u+=` ${c}`),u}renderIcon(l){let u=document.createElement("div");return u.className=this.createIconClass(l),u.appendChild(document.createTextNode(l.iconLabel)),u}createIconClass(l){let u="jp-Dialog-buttonIcon",c=l.iconClass;return c?`${u} ${c}`:u}renderLabel(l){let u=document.createElement("div");return u.className="jp-Dialog-buttonLabel",u.title=l.caption,u.ariaLabel=l.ariaLabel,u.appendChild(document.createTextNode(l.label)),u}}i.Renderer=o,i.defaultRenderer=new o,i.tracker=new zv({namespace:"@jupyterlab/apputils:Dialog"})})(pt||(pt={}));(function(i){i.launchQueue=[],i.errorMessagePromiseCache=new Map;function e(r={}){var n,s,o,a,l,u,c,d,h;let f=(n=r.buttons)!==null&&n!==void 0?n:[pt.cancelButton(),pt.okButton()];return{title:(s=r.title)!==null&&s!==void 0?s:"",body:(o=r.body)!==null&&o!==void 0?o:"",host:(a=r.host)!==null&&a!==void 0?a:document.body,checkbox:(l=r.checkbox)!==null&&l!==void 0?l:null,buttons:f,defaultButton:(u=r.defaultButton)!==null&&u!==void 0?u:f.length-1,renderer:(c=r.renderer)!==null&&c!==void 0?c:pt.defaultRenderer,focusNodeSelector:(d=r.focusNodeSelector)!==null&&d!==void 0?d:"",hasClose:(h=r.hasClose)!==null&&h!==void 0?h:!0}}i.handleOptions=e;function t(r){let n=["input","select","a[href]","textarea","button","[tabindex]"].join(",");return r.querySelectorAll(n)[0]}i.findFirstFocusable=t})(ju||(ju={}))});var XSe,MZ=b(()=>{Zt();XSe=N(Ge())});var RZ=b(()=>{Fo();tt()});var Hv,No,xm,jv,Vu,wm,A4=b(()=>{Hv=N(ci());Jn();Zt();No=N(Ge());tt();Fo();xm=N(ue());qv();jv=class{constructor(e){var t,r,n,s;this._path="",this._name="",this._type="",this._prevKernelName="",this._isDisposed=!1,this._disposed=new G(this),this._session=null,this._ready=new No.PromiseDelegate,this._initializing=!1,this._initStarted=new No.PromiseDelegate,this._initPromise=new No.PromiseDelegate,this._isReady=!1,this._isTerminating=!1,this._isRestarting=!1,this._kernelChanged=new G(this),this._preferenceChanged=new G(this),this._sessionChanged=new G(this),this._statusChanged=new G(this),this._connectionStatusChanged=new G(this),this._pendingInput=!1,this._iopubMessage=new G(this),this._unhandledMessage=new G(this),this._propertyChanged=new G(this),this._dialog=null,this._busyDisposable=null,this._pendingKernelName="",this._pendingSessionRequest="",this.kernelManager=e.kernelManager,this.sessionManager=e.sessionManager,this.specsManager=e.specsManager,this.translator=e.translator||St,this._trans=this.translator.load("jupyterlab"),this._path=(t=e.path)!==null&&t!==void 0?t:No.UUID.uuid4(),this._type=(r=e.type)!==null&&r!==void 0?r:"",this._name=(n=e.name)!==null&&n!==void 0?n:"",this._setBusy=e.setBusy,this._kernelPreference=(s=e.kernelPreference)!==null&&s!==void 0?s:{}}get session(){var e;return(e=this._session)!==null&&e!==void 0?e:null}get path(){return this._path}get type(){return this._type}get name(){return this._name}get kernelChanged(){return this._kernelChanged}get sessionChanged(){return this._sessionChanged}get statusChanged(){return this._statusChanged}get pendingInput(){return this._pendingInput}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get propertyChanged(){return this._propertyChanged}get kernelPreference(){return this._kernelPreference}set kernelPreference(e){if(!No.JSONExt.deepEqual(e,this._kernelPreference)){let t=this._kernelPreference;this._kernelPreference=e,this._preferenceChanged.emit({name:"kernelPreference",oldValue:t,newValue:No.JSONExt.deepCopy(e)})}}get kernelPreferenceChanged(){return this._preferenceChanged}get isReady(){return this._isReady}get ready(){return this._ready.promise}get isTerminating(){return this._isTerminating}get isRestarting(){return this._isRestarting}get hasNoKernel(){return this.kernelDisplayName===this.noKernelName}get kernelDisplayName(){var e,t,r,n,s,o,a;let l=(e=this.session)===null||e===void 0?void 0:e.kernel;return this._pendingKernelName===this.noKernelName?this.noKernelName:this._pendingKernelName?(n=(r=(t=this.specsManager.specs)===null||t===void 0?void 0:t.kernelspecs[this._pendingKernelName])===null||r===void 0?void 0:r.display_name)!==null&&n!==void 0?n:this._pendingKernelName:l?(a=(o=(s=this.specsManager.specs)===null||s===void 0?void 0:s.kernelspecs[l.name])===null||o===void 0?void 0:o.display_name)!==null&&a!==void 0?a:l.name:this.noKernelName}get kernelDisplayStatus(){var e,t;let r=(e=this.session)===null||e===void 0?void 0:e.kernel;return this._isTerminating?"terminating":this._isRestarting?"restarting":this._pendingKernelName===this.noKernelName?"unknown":!r&&this._pendingKernelName||!r&&!this.isReady&&this.kernelPreference.canStart!==!1&&this.kernelPreference.shouldStart!==!1?"initializing":(t=r?.connectionStatus==="connected"?r?.status:r?.connectionStatus)!==null&&t!==void 0?t:"unknown"}get prevKernelName(){return this._prevKernelName}get isDisposed(){return this._isDisposed}get disposed(){return this._disposed}get noKernelName(){return this._trans.__("No Kernel")}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._session&&(this.kernelPreference.shutdownOnDispose&&this.sessionManager.shutdown(this._session.id).catch(e=>{console.error(`Kernel not shut down ${e}`)}),this._session.dispose(),this._session=null),this._dialog&&this._dialog.dispose(),this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null),G.clearData(this))}async startKernel(){let e=this.kernelPreference;if(!e.autoStartDefault&&e.shouldStart===!1)return!0;let t;if(e.id)t={id:e.id};else{let r=wm.getDefaultKernel({specs:this.specsManager.specs,sessions:this.sessionManager.running(),preference:e});r&&(t={name:r})}if(t)try{return await this._changeKernel(t),!1}catch{}return!0}async restartKernel(){var e,t,r,n,s,o;let a=((e=this.session)===null||e===void 0?void 0:e.kernel)||null;if(!this._isRestarting){this._isRestarting=!0,this._isReady=!1,this._statusChanged.emit("restarting");try{await((r=(t=this.session)===null||t===void 0?void 0:t.kernel)===null||r===void 0?void 0:r.restart()),this._isReady=!0}catch(l){console.error(l)}this._isRestarting=!1,this._statusChanged.emit(((s=(n=this.session)===null||n===void 0?void 0:n.kernel)===null||s===void 0?void 0:s.status)||"unknown"),this._kernelChanged.emit({name:"kernel",oldValue:a,newValue:((o=this.session)===null||o===void 0?void 0:o.kernel)||null})}}async changeKernel(e={}){if(this.isDisposed)throw new Error("Disposed");return await this._initStarted.promise,this._changeKernel(e)}async shutdown(){if(!(this.isDisposed||!this._initializing))return await this._initStarted.promise,this._pendingSessionRequest="",this._pendingKernelName=this.noKernelName,this._shutdownSession()}async initialize(){if(this._initializing)return this._initPromise.promise;this._initializing=!0;let e=await this._initialize();return e||(this._isReady=!0,this._ready.resolve(void 0)),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._initPromise.resolve(e),e}async _initialize(){let e=this.sessionManager;await e.ready,await e.refreshRunning();let t=Ui(e.running(),r=>r.path===this._path);if(t)try{let r=e.connectTo({model:t});this._handleNewSession(r)}catch(r){return this._handleSessionError(r),Promise.reject(r)}return await this._startIfNecessary()}async _shutdownSession(){var e;let t=this._session,r=this._isTerminating,n=this._isReady;this._isTerminating=!0,this._isReady=!1,this._statusChanged.emit("terminating");try{await t?.shutdown(),this._isTerminating=!1,t?.dispose(),this._session=null;let s=t?.kernel||null;this._statusChanged.emit("unknown"),this._kernelChanged.emit({name:"kernel",oldValue:s,newValue:null}),this._sessionChanged.emit({name:"session",oldValue:t,newValue:null})}catch(s){this._isTerminating=r,this._isReady=n;let o=(e=t?.kernel)===null||e===void 0?void 0:e.status;throw o===void 0?this._statusChanged.emit("unknown"):this._statusChanged.emit(o),s}}async _startIfNecessary(){var e;let t=this.kernelPreference;return this.isDisposed||!((e=this.session)===null||e===void 0)&&e.kernel||t.shouldStart===!1||t.canStart===!1?!1:this.startKernel()}async _changeKernel(e={}){if(e.name&&(this._pendingKernelName=e.name),this._session||this._kernelChanged.emit({name:"kernel",oldValue:null,newValue:null}),this._pendingSessionRequest||this._initStarted.resolve(void 0),this._session&&!this._isTerminating)try{return await this._session.changeKernel(e),this._session.kernel}catch(n){throw this._handleSessionError(n),n}let t=Hv.PathExt.dirname(this._path),r=this._pendingSessionRequest=Hv.PathExt.join(t,No.UUID.uuid4());try{this._statusChanged.emit("starting");let n=await this.sessionManager.startNew({path:r,type:this._type,name:this._name,kernel:e});return this._pendingSessionRequest!==n.path?(await n.shutdown(),n.dispose(),null):(await n.setPath(this._path),await n.setName(this._name),this._session&&!this._isTerminating&&await this._shutdownSession(),this._handleNewSession(n))}catch(n){throw this._handleSessionError(n),n}}_handleNewSession(e){var t,r,n;if(this.isDisposed)throw Error("Disposed");return this._isReady||(this._isReady=!0,this._ready.resolve(void 0)),this._session&&this._session.dispose(),this._session=e,this._pendingKernelName="",e&&(this._prevKernelName=(r=(t=e.kernel)===null||t===void 0?void 0:t.name)!==null&&r!==void 0?r:"",e.disposed.connect(this._onSessionDisposed,this),e.propertyChanged.connect(this._onPropertyChanged,this),e.kernelChanged.connect(this._onKernelChanged,this),e.statusChanged.connect(this._onStatusChanged,this),e.connectionStatusChanged.connect(this._onConnectionStatusChanged,this),e.pendingInput.connect(this._onPendingInput,this),e.iopubMessage.connect(this._onIopubMessage,this),e.unhandledMessage.connect(this._onUnhandledMessage,this),e.path!==this._path&&this._onPropertyChanged(e,"path"),e.name!==this._name&&this._onPropertyChanged(e,"name"),e.type!==this._type&&this._onPropertyChanged(e,"type")),this._sessionChanged.emit({name:"session",oldValue:null,newValue:e}),this._kernelChanged.emit({oldValue:null,newValue:e?.kernel||null,name:"kernel"}),this._statusChanged.emit(((n=e?.kernel)===null||n===void 0?void 0:n.status)||"unknown"),e?.kernel||null}async _handleSessionError(e){this._handleNewSession(null);let t="",r="";try{t=e.traceback,r=e.message}catch{}await this._displayKernelError(r,t)}async _displayKernelError(e,t){let r=xm.createElement("div",null,e&&xm.createElement("pre",null,e),t&&xm.createElement("details",{className:"jp-mod-wide"},xm.createElement("pre",null,t)));await(this._dialog=new pt({title:this._trans.__("Error Starting Kernel"),body:r,buttons:[pt.okButton()]})).launch(),this._dialog=null}_onSessionDisposed(){if(this._session){let e=this._session;this._session=null;let t=this._session;this._sessionChanged.emit({name:"session",oldValue:e,newValue:t})}}_onPropertyChanged(e,t){switch(t){case"path":this._path=e.path;break;case"name":this._name=e.name;break;case"type":this._type=e.type;break;default:throw new Error(`unrecognized property ${t}`)}this._propertyChanged.emit(t)}_onKernelChanged(e,t){this._kernelChanged.emit(t)}_onStatusChanged(e,t){var r;if(t==="dead"){let n=(r=e.kernel)===null||r===void 0?void 0:r.model;if(n?.reason){let s=n.traceback||"";this._displayKernelError(n.reason,s)}}this._setBusy&&(t==="busy"?this._busyDisposable||(this._busyDisposable=this._setBusy()):this._busyDisposable&&(this._busyDisposable.dispose(),this._busyDisposable=null)),this._statusChanged.emit(t)}_onConnectionStatusChanged(e,t){this._connectionStatusChanged.emit(t)}_onPendingInput(e,t){this._pendingInput=t}_onIopubMessage(e,t){t.header.msg_type==="shutdown_reply"&&this.session.kernel.removeInputGuard(),this._iopubMessage.emit(t)}_onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}};(function(i){function e(t){let{preference:r}=t,{shouldStart:n}=r;return n===!1?null:wm.getDefaultKernel(t)}i.getDefaultKernel=e})(jv||(jv={}));Vu=class{constructor(e={}){var t;this._translator=(t=e.translator)!==null&&t!==void 0?t:St,this._settingRegistry=e.settingRegistry||null}async selectKernel(e){if(e.isDisposed)return Promise.resolve();let t=this._translator,r=t.load("jupyterlab"),n=r.__("Cancel");e.hasNoKernel&&(n=e.kernelDisplayName);let s=[pt.cancelButton({label:n}),pt.okButton({label:r.__("Select"),ariaLabel:r.__("Select Kernel")})],o=e.kernelPreference.autoStartDefault,a=typeof o=="boolean",u=await new pt({title:r.__("Select Kernel"),body:wm.createKernelSelector(e,t),buttons:s,checkbox:a?{label:r.__("Always start the preferred kernel"),caption:r.__("Remember my choice and always start the preferred kernel"),checked:o}:null}).launch();if(e.isDisposed||!u.button.accept)return;a&&u.isChecked!==null&&(e.kernelPreference={...e.kernelPreference,autoStartDefault:u.isChecked});let c=u.value;if(c===null&&!e.hasNoKernel)return e.shutdown();c&&await e.changeKernel(c)}async restart(e){var t,r,n,s,o;let a=this._translator.load("jupyterlab");if(await e.initialize(),e.isDisposed)throw new Error("session already disposed");let l=(t=e.session)===null||t===void 0?void 0:t.kernel;if(!l&&e.prevKernelName)return await e.changeKernel({name:e.prevKernelName}),!0;if(!l)throw new Error("No kernel to restart");let u="@jupyterlab/apputils-extension:sessionDialogs",c=(n=(r=e.kernelPreference)===null||r===void 0?void 0:r.skipKernelRestartDialog)!==null&&n!==void 0?n:!1;if(((o=await((s=this._settingRegistry)===null||s===void 0?void 0:s.get(u,"skipKernelRestartDialog")))===null||o===void 0?void 0:o.composite)||c)return await e.restartKernel(),!0;let h=pt.warnButton({label:a.__("Restart"),ariaLabel:a.__("Confirm Kernel Restart")}),f=await Pa({title:a.__("Restart Kernel?"),body:a.__("Do you want to restart the kernel of %1? All variables will be lost.",e.name),buttons:[pt.cancelButton({ariaLabel:a.__("Cancel Kernel Restart")}),h],checkbox:{label:a.__("Do not ask me again."),caption:a.__("If checked, the kernel will restart without confirmation prompt in the future; you can change this back in the settings.")}});return l.isDisposed?!1:f.button.accept?(typeof f.isChecked=="boolean"&&f.isChecked==!0&&(e.kernelPreference={...e.kernelPreference,skipKernelRestartDialog:!0}),await e.restartKernel(),!0):!1}};(function(i){function e(t,r=null){var n,s,o,a,l,u,c;let d={disabled:!1,groups:[]},h=Array.from((s=(n=t.kernelManager)===null||n===void 0?void 0:n.running())!==null&&s!==void 0?s:Array.from(t.sessionManager.running()).filter(w=>!!w.kernel).map(w=>w.kernel)),f=Array.from((o=t.sessionManager.running())!==null&&o!==void 0?o:[]).reduce((w,k)=>{var O;return!((O=k.kernel)===null||O===void 0)&&O.id&&(w[k.kernel.id]=k),w},{}),p={...t.kernelPreference,id:(l=(a=t.session)===null||a===void 0?void 0:a.kernel)===null||l===void 0?void 0:l.id},g=t.hasNoKernel?null:t.kernelDisplayName,v={default:"",kernelspecs:Object.create(null),...t.specsManager.specs},_=[],x=Object.create(null);for(let w in v.kernelspecs)_.push(v.kernelspecs[w]),x[w]=v.kernelspecs[w].language;_.sort((w,k)=>w.display_name.localeCompare(k.display_name)),r=r||St;let y=r.load("jupyterlab"),C=p.language||x[p.name]||(p.id?x[(u=f[p.id])===null||u===void 0?void 0:u.name]:""),S={connectKernel:y.__("Connect to Existing Kernel"),startPreferred:y.__("Start %1 Kernel",C),startOther:y.__("Start Kernel"),connectToPreferred:y.__("Connect to Existing %1 Kernel",C),connectToOther:y.__("Connect to Other Kernel"),noKernel:y.__("No Kernel"),startKernel:y.__("Start Kernel"),useNoKernel:y.__("Use No Kernel")},R={label:S.useNoKernel,options:[{text:S.noKernel,title:S.noKernel,value:JSON.stringify(null)}]},I=(w,k,O)=>{let z=O?O.name||Hv.PathExt.basename(O.path):w.name||y.__("Unknown Kernel");return{text:`${z} (${w.id.split("-")[0]})`,title:(O?`${y.__("Path: %1",O.path)} +`:"")+`${y.__("Name: %1",z)} +${y.__("Kernel Name: %1",k??w.name)} +${y.__("Kernel Id: %1",w.id)}`,value:JSON.stringify({id:w.id})}},E=w=>({text:w.display_name,value:JSON.stringify({name:w.name})});if(p.canStart===!1)return d.disabled=!0,d.groups.push(R),d;if(C){let w={label:S.startPreferred,options:[]},k={label:S.startOther,options:[]},O={label:S.connectToPreferred,options:[]},z={label:S.connectToOther,options:[]};for(let Y of _)(Y.language===C?w:k).options.push(E(Y));d.groups.push(w),d.groups.push(R),d.groups.push(k),h.map(Y=>{var pe,U;return{option:I(Y,(U=(pe=v.kernelspecs[Y.name])===null||pe===void 0?void 0:pe.display_name)!==null&&U!==void 0?U:"",f[Y.id]),language:x[Y.name]}}).sort((Y,pe)=>Y.option.text.localeCompare(pe.option.text)).forEach(Y=>(C===Y.language?O:z).options.push(Y.option)),O.options.length&&d.groups.push(O),z.options.length&&d.groups.push(z)}else d.groups.push({label:S.startKernel,options:_.map(w=>E(w))}),d.groups.push(R),d.groups.push({label:S.connectKernel,options:h.map(w=>{var k,O;return I(w,(O=(k=v.kernelspecs[w.name])===null||k===void 0?void 0:k.display_name)!==null&&O!==void 0?O:"",f[w.id])}).sort((w,k)=>w.text.localeCompare(k.text))});if(p.id||g||p.name)for(let w of d.groups)for(let k of w.options){let O=JSON.parse(k.value);if(O){if(p.id){if(p.id===O.id)return k.selected=!0,d;continue}if(g){if(g===((c=v.kernelspecs[O.name])===null||c===void 0?void 0:c.display_name))return k.selected=!0,d;continue}if(p.name){if(p.name===O.name)return k.selected=!0,d;continue}}}return d}i.kernelOptions=e})(Vu||(Vu={}));(function(i){i.createKernelSelector=(n,s)=>new e({node:t(n,s)});class e extends V{getValue(){let s=this.node.querySelector("select");return JSON.parse(s.value)}}function t(n,s){s=s||St;let o=s.load("jupyterlab"),a=document.createElement("div"),l=document.createElement("label");l.textContent=`${o.__("Select kernel for:")} "${n.name}"`,a.appendChild(l);let u=document.createElement("select"),c=Vu.kernelOptions(n,s);c.disabled&&(u.disabled=!0);for(let d of c.groups){let{label:h,options:f}=d,p=document.createElement("optgroup");p.label=h;for(let{selected:g,text:v,title:_,value:x}of f){let y=document.createElement("option");g&&(y.selected=!0),_&&(y.title=_),y.text=v,y.value=x,p.appendChild(y)}u.appendChild(p)}return a.appendChild(u),a}function r(n){var s;let{specs:o,preference:a}=n,{name:l,language:u,canStart:c,autoStartDefault:d}=a;if(!o||c===!1)return null;let h=d?o.default:null;if(!l&&!u)return h;for(let p in o.kernelspecs)if(p===l)return l;if(!u)return h;let f=[];for(let p in o.kernelspecs){let g=(s=o.kernelspecs[p])===null||s===void 0?void 0:s.language;u===g&&f.push(p)}if(f.length===1){let p=f[0];return console.warn("No exact match found for "+p+", using kernel "+p+" that matches language="+u),p}return h}i.getDefaultKernel=r})(wm||(wm={}))});function R4(i){i=i||St;let e=i.load("jupyterlab");return{unknown:e.__("Unknown"),starting:e.__("Starting"),idle:e.__("Idle"),busy:e.__("Busy"),terminating:e.__("Terminating"),restarting:e.__("Restarting"),autorestarting:e.__("Autorestarting"),dead:e.__("Dead"),connected:e.__("Connected"),connecting:e.__("Connecting"),disconnected:e.__("Disconnected"),initializing:e.__("Initializing"),"":""}}function JSe(i){let t=(i.translator||St).load("jupyterlab"),r="";return i.status&&(r=` | ${i.status}`),M4.default.createElement(mm,{role:"button","aria-haspopup":!0,onClick:i.handleClick,onKeyDown:i.handleKeyDown,source:`${i.kernelName}${r}`,title:t.__("Change kernel for %1",i.activityName),tabIndex:0})}var DZ,M4,Uh,D4=b(()=>{v4();Jn();Mo();DZ=N(Ge()),M4=N(ue());Uh=class extends Ao{constructor(e,t){super(new Uh.Model(t)),this.translator=t||St,this._handleClick=e.onClick,this._handleKeyDown=e.onKeyDown,this.addClass("jp-mod-highlighted")}render(){return this.model===null?null:M4.default.createElement(JSe,{status:this.model.status,kernelName:this.model.kernelName,activityName:this.model.activityName,handleClick:this._handleClick,handleKeyDown:this._handleKeyDown,translator:this.translator})}};(function(i){class e extends $u{constructor(r){super(),this._activityName="",this._kernelName="",this._kernelStatus="",this._sessionContext=null,r=r??St,this._trans=r.load("jupyterlab"),this._statusNames=R4(r)}get kernelName(){return this._kernelName}get status(){return this._kernelStatus?this._statusNames[this._kernelStatus]:void 0}get activityName(){return this._activityName}set activityName(r){this._activityName!==r&&(this._activityName=r,this.stateChanged.emit())}get sessionContext(){return this._sessionContext}set sessionContext(r){var n,s,o,a;(n=this._sessionContext)===null||n===void 0||n.statusChanged.disconnect(this._onKernelStatusChanged,this),(s=this._sessionContext)===null||s===void 0||s.connectionStatusChanged.disconnect(this._onKernelStatusChanged,this),(o=this._sessionContext)===null||o===void 0||o.kernelChanged.disconnect(this._onKernelChanged,this);let l=this._getAllState();this._sessionContext=r,this._kernelStatus=r?.kernelDisplayStatus,this._kernelName=(a=r?.kernelDisplayName)!==null&&a!==void 0?a:this._trans.__("No Kernel"),r?.statusChanged.connect(this._onKernelStatusChanged,this),r?.connectionStatusChanged.connect(this._onKernelStatusChanged,this),r?.kernelChanged.connect(this._onKernelChanged,this),this._triggerChange(l,this._getAllState())}_onKernelStatusChanged(){var r;this._kernelStatus=(r=this._sessionContext)===null||r===void 0?void 0:r.kernelDisplayStatus,this.stateChanged.emit(void 0)}_onKernelChanged(r,n){var s;let o=this._getAllState();this._kernelStatus=(s=this._sessionContext)===null||s===void 0?void 0:s.kernelDisplayStatus,this._kernelName=r.kernelDisplayName,this._triggerChange(o,this._getAllState())}_getAllState(){return[this._kernelName,this._kernelStatus,this._activityName]}_triggerChange(r,n){DZ.JSONExt.deepEqual(r,n)&&this.stateChanged.emit(void 0)}}i.Model=e})(Uh||(Uh={}))});var Vv,ZSe,QSe,rd,Uv,OZ=b(()=>{Jn();Mo();Fo();Vv=N(ue());A4();D4();ZSe="jp-Toolbar-kernelName",QSe="jp-Toolbar-kernelStatus";(function(i){function e(s,o){o=o||St;let a=o.load("jupyterlab");return new Oh({icon:OR,onClick:()=>{var l,u;(u=(l=s.session)===null||l===void 0?void 0:l.kernel)===null||u===void 0||u.interrupt()},tooltip:a.__("Interrupt the kernel")})}i.createInterruptButton=e;function t(s,o,a){a=a??St;let l=a.load("jupyterlab");return new Oh({icon:RR,onClick:()=>{(o??new Vu({translator:a})).restart(s)},tooltip:l.__("Restart the kernel")})}i.createRestartButton=t;function r(s,o,a){let l=Or.create(Vv.createElement(Uv.KernelNameComponent,{sessionContext:s,dialogs:o??new Vu({translator:a}),translator:a}));return l.addClass("jp-KernelName"),l}i.createKernelNameItem=r;function n(s,o){return new Uv.KernelStatus(s,o)}i.createKernelStatusItem=n})(rd||(rd={}));(function(i){function e(r){let s=(r.translator||St).load("jupyterlab"),o=()=>{r.dialogs.selectKernel(r.sessionContext)};return Vv.createElement(am,{signal:r.sessionContext.kernelChanged,initialSender:r.sessionContext},a=>Vv.createElement(Q6,{className:ZSe,onClick:o,tooltip:s.__("Switch kernel"),label:a?.kernelDisplayName}))}i.KernelNameComponent=e;class t extends V{constructor(n,s){super(),this.translator=s||St,this._trans=this.translator.load("jupyterlab"),this.addClass(QSe),this._statusNames=R4(this.translator),this._onStatusChanged(n),n.statusChanged.connect(this._onStatusChanged,this),n.connectionStatusChanged.connect(this._onStatusChanged,this)}_onStatusChanged(n){if(this.isDisposed)return;let s=n.kernelDisplayStatus,o={container:this.node,title:this._trans.__("Kernel %1",this._statusNames[s]||s),stylesheet:"toolbarButton",alignSelf:"normal",height:"24px"};q.remove(this.node),s==="busy"||s==="starting"||s==="terminating"||s==="restarting"||s==="initializing"?CR.element(o):s==="connecting"||s==="disconnected"||s==="unknown"?MR.element(o):SR.element(o)}}i.KernelStatus=t})(Uv||(Uv={}))});var LZ=b(()=>{MZ();RZ();OZ()});var O4,$Z,PZ,Sm,FZ=b(()=>{O4=N(Ge());(function(i){function e(){return Sm.instance}i.getInstance=e;function t(s){Sm.instance=s}i.setInstance=t;function r(s){let o=document.body,a=l=>{let u=l.clipboardData||window.clipboardData;typeof s=="string"?u.setData("text",s):s.types().map(c=>{u.setData(c,s.getData(c))}),l.preventDefault(),o.removeEventListener("copy",a)};o.addEventListener("copy",a),n(o)}i.copyToSystem=r;function n(s,o="copy"){let a=window.getSelection(),l=[];for(let c=0,d=a?.rangeCount||0;c{eCe=N(Ge())});var BZ=b(()=>{Fo()});var tCe,iCe,zZ,nd,L4,$4,Wv,P4,F4,N4,B4,qZ=b(()=>{Fo();qv();tCe="jp-Input-Dialog",iCe="jp-Input-Boolean-Dialog";(function(i){function e(a){return Pa({...a,body:new L4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})],focusNodeSelector:"input"})}i.getBoolean=e;function t(a){return Pa({...a,body:new $4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})],focusNodeSelector:"input"})}i.getNumber=t;function r(a){return Pa({...a,body:new N4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})],focusNodeSelector:a.editable?"input":"select"})}i.getItem=r;function n(a){return Pa({...a,body:new B4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})]})}i.getMultipleItems=n;function s(a){return Pa({...a,body:new P4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})],focusNodeSelector:"input"})}i.getText=s;function o(a){return Pa({...a,body:new F4(a),buttons:[pt.cancelButton({label:a.cancelLabel}),pt.okButton({label:a.okLabel})],focusNodeSelector:"input"})}i.getPassword=o})(zZ||(zZ={}));nd=class extends V{constructor(e){if(super(),this.addClass(tCe),this._input=document.createElement("input"),this._input.classList.add("jp-mod-styled"),this._input.id="jp-dialog-input-id",e.label!==void 0){let r=document.createElement("label");r.textContent=e.label,r.htmlFor=this._input.id,this.node.appendChild(r)}let t=document.createElement("div");if(t.className="jp-InputDialog-inputWrapper",e.prefix){let r=document.createElement("span");r.className="jp-InputDialog-inputPrefix",r.textContent=e.prefix,r.ariaHidden="true",t.appendChild(r)}if(t.appendChild(this._input),e.suffix){let r=document.createElement("span");r.className="jp-InputDialog-inputSuffix",r.textContent=e.suffix,r.ariaHidden="true",t.appendChild(r)}this.node.appendChild(t)}},L4=class extends nd{constructor(e){super(e),this.addClass(iCe),this._input.type="checkbox",this._input.checked=!!e.value}getValue(){return this._input.checked}},$4=class extends nd{constructor(e){super(e),this._input.type="number",this._input.value=e.value?e.value.toString():"0"}getValue(){return this._input.value?Number(this._input.value):Number.NaN}},Wv=class extends nd{constructor(e){super(e),this._input.value=e.text?e.text:"",e.placeholder&&(this._input.placeholder=e.placeholder),e.pattern&&(this._input.pattern=e.pattern),e.required&&(this._input.required=e.required)}getValue(){return this._input.value}},P4=class extends Wv{constructor(e){var t;super(e),this._input.type="text",this._initialSelectionRange=Math.min(this._input.value.length,Math.max(0,(t=e.selectionRange)!==null&&t!==void 0?t:this._input.value.length))}onAfterAttach(e){super.onAfterAttach(e),this._initialSelectionRange>0&&this._input.value&&this._input.setSelectionRange(0,this._initialSelectionRange)}},F4=class extends Wv{constructor(e){super(e),this._input.type="password"}onAfterAttach(e){super.onAfterAttach(e),this._input.value&&this._input.select()}},N4=class extends nd{constructor(e){super(e),this._editable=e.editable||!1;let t=e.current||0,r;if(typeof t=="number"&&(r=Math.max(0,Math.min(t,e.items.length-1)),t=""),this._list=document.createElement("select"),e.items.forEach((n,s)=>{let o=document.createElement("option");s===r&&(o.selected=!0,t=n),o.value=n,o.textContent=n,this._list.appendChild(o)}),e.editable){let n=document.createElement("datalist");n.id="input-dialog-items",n.appendChild(this._list),this._input.type="list",this._input.value=t,this._input.setAttribute("list",n.id),e.placeholder&&(this._input.placeholder=e.placeholder),this.node.appendChild(n)}else this._input.parentElement.replaceChild(this._list,this._input)}getValue(){return this._editable?this._input.value:this._list.value}},B4=class extends nd{constructor(e){super(e);let t=e.defaults||[];this._list=document.createElement("select"),this._list.setAttribute("multiple",""),e.items.forEach(n=>{let s=document.createElement("option");s.value=n,s.textContent=n,this._list.appendChild(s)}),this._input.remove(),this.node.appendChild(this._list);let r=this._list.options;for(let n=0;n{z4=N(ws());Mo();jZ=N(Ge());tt();el();Fo();lt=N(ue()),Gv=N(ci()),HZ="jp-Licenses-Filters-title",Fa=class extends xn{constructor(e){super(),this.addClass("jp-Licenses"),this.model=e.model,this.initLeftPanel(),this.initFilters(),this.initBundles(),this.initGrid(),this.initLicenseText(),this.setRelativeSizes([1,2,3]),this.model.initLicenses().then(()=>this._updateBundles()),this.model.trackerDataChanged.connect(()=>{this.title.label=this.model.title})}dispose(){this.isDisposed||(this._bundles.currentChanged.disconnect(this.onBundleSelected,this),this.model.dispose(),super.dispose())}initLeftPanel(){this._leftPanel=new $a,this._leftPanel.addClass("jp-Licenses-FormArea"),this.addWidget(this._leftPanel),xn.setStretch(this._leftPanel,1)}initFilters(){this._filters=new Fa.Filters(this.model),xn.setStretch(this._filters,1),this._leftPanel.addWidget(this._filters)}initBundles(){this._bundles=new Ks({orientation:"vertical",renderer:new Fa.BundleTabRenderer(this.model)}),this._bundles.addClass("jp-Licenses-Bundles"),xn.setStretch(this._bundles,1),this._leftPanel.addWidget(this._bundles),this._bundles.currentChanged.connect(this.onBundleSelected,this),this.model.stateChanged.connect(()=>this._bundles.update())}initGrid(){this._grid=new Fa.Grid(this.model),xn.setStretch(this._grid,1),this.addWidget(this._grid)}initLicenseText(){this._licenseText=new Fa.FullText(this.model),xn.setStretch(this._grid,1),this.addWidget(this._licenseText)}onBundleSelected(){var e;!((e=this._bundles.currentTitle)===null||e===void 0)&&e.label&&(this.model.currentBundleName=this._bundles.currentTitle.label)}_updateBundles(){this._bundles.clearTabs();let e=0,{currentBundleName:t}=this.model,r=0;for(let n of this.model.bundleNames){let s=new V;s.title.label=n,n===t&&(r=e),this._bundles.insertTab(++e,s.title)}this._bundles.currentIndex=r}};(function(i){i.REPORT_FORMATS={markdown:{id:"markdown",title:"Markdown",icon:AR},csv:{id:"csv",title:"CSV",icon:DR},json:{id:"json",title:"JSON",icon:kR}},i.DEFAULT_FORMAT="markdown";class e{constructor(l={}){var u;this._preferredLicensesUrl=l.licensesUrl,this._serverSettings=(u=l.serverSettings)!==null&&u!==void 0?u:z4.ServerConnection.makeSettings()}async download(l){let u=`${this._licensesUrl}?format=${l.format}&download=1`,c=document.createElement("a");c.href=u,c.download="",document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(u)}async getBundles(){return(await z4.ServerConnection.makeRequest(this._licensesUrl,{},this._serverSettings)).json()}get _licensesUrl(){var l;return(l=this._preferredLicensesUrl)!==null&&l!==void 0?l:Gv.URLExt.join(this._serverSettings.baseUrl,Gv.PageConfig.getOption("licensesUrl"))+"/"}}i.LicensesClient=e;class t extends $u{constructor(l){super(),this._selectedPackageChanged=new G(this),this._trackerDataChanged=new G(this),this._currentPackageIndex=0,this._licensesReady=new jZ.PromiseDelegate,this._packageFilter={},this._trans=l.trans,this._client=l.client,l.currentBundleName&&(this._currentBundleName=l.currentBundleName),l.packageFilter&&(this._packageFilter=l.packageFilter),l.currentPackageIndex&&(this._currentPackageIndex=l.currentPackageIndex)}async initLicenses(){try{this._serverResponse=await this._client.getBundles(),this._licensesReady.resolve(),this.stateChanged.emit(void 0)}catch(l){this._licensesReady.reject(l)}}async download(l){return this._client.download(l)}get selectedPackageChanged(){return this._selectedPackageChanged}get trackerDataChanged(){return this._trackerDataChanged}get bundleNames(){var l;return Object.keys(((l=this._serverResponse)===null||l===void 0?void 0:l.bundles)||{})}get currentBundleName(){return this._currentBundleName?this._currentBundleName:this.bundleNames.length?this.bundleNames[0]:null}set currentBundleName(l){this._currentBundleName!==l&&(this._currentBundleName=l,this.stateChanged.emit(void 0),this._trackerDataChanged.emit(void 0))}get licensesReady(){return this._licensesReady.promise}get bundles(){var l;return((l=this._serverResponse)===null||l===void 0?void 0:l.bundles)||{}}get currentPackageIndex(){return this._currentPackageIndex}set currentPackageIndex(l){this._currentPackageIndex!==l&&(this._currentPackageIndex=l,this._selectedPackageChanged.emit(void 0),this.stateChanged.emit(void 0),this._trackerDataChanged.emit(void 0))}get currentPackage(){var l;return this.currentBundleName&&this.bundles&&this._currentPackageIndex!=null?this.getFilteredPackages(((l=this.bundles[this.currentBundleName])===null||l===void 0?void 0:l.packages)||[])[this._currentPackageIndex]:null}get trans(){return this._trans}get title(){return`${this._currentBundleName||""} ${this._trans.__("Licenses")}`.trim()}get packageFilter(){return this._packageFilter}set packageFilter(l){this._packageFilter=l,this.stateChanged.emit(void 0),this._trackerDataChanged.emit(void 0)}getFilteredPackages(l){let u=[],c=Object.entries(this._packageFilter).filter(([d,h])=>h&&`${h}`.trim().length).map(([d,h])=>[d,`${h}`.toLowerCase().trim().split(" ")]);for(let d of l){let h=0;for(let[f,p]of c){let g=0,v=`${d[f]}`.toLowerCase();for(let _ of p)v.includes(_)&&(g+=1);g&&(h+=1)}h===c.length&&u.push(d)}return Object.values(u)}}i.Model=t;class r extends Ao{constructor(l){super(l),this.renderFilter=u=>{let c=this.model.packageFilter[u]||"";return lt.createElement("input",{type:"text",name:u,defaultValue:c,className:"jp-mod-styled",onInput:this.onFilterInput})},this.onFilterInput=u=>{let c=u.currentTarget,{name:d,value:h}=c;this.model.packageFilter={...this.model.packageFilter,[d]:h}},this.addClass("jp-Licenses-Filters"),this.addClass("jp-RenderedHTMLCommon")}render(){let{trans:l}=this.model;return lt.createElement("div",null,lt.createElement("label",null,lt.createElement("strong",{className:HZ},l.__("Filter Licenses By"))),lt.createElement("ul",null,lt.createElement("li",null,lt.createElement("label",null,l.__("Package")),this.renderFilter("name")),lt.createElement("li",null,lt.createElement("label",null,l.__("Version")),this.renderFilter("versionInfo")),lt.createElement("li",null,lt.createElement("label",null,l.__("License")),this.renderFilter("licenseId"))),lt.createElement("label",null,lt.createElement("strong",{className:HZ},l.__("Distributions"))))}}i.Filters=r;class n extends Ks.Renderer{constructor(l){super(),this.closeIconSelector=".lm-TabBar-tabCloseIcon",this.model=l}renderTab(l){let u=l.title.caption,c=this.createTabKey(l),d=this.createTabStyle(l),h=this.createTabClass(l),f=this.createTabDataset(l);return re.li({key:c,className:h,title:u,style:d,dataset:f},this.renderIcon(l),this.renderLabel(l),this.renderCountBadge(l))}renderCountBadge(l){let u=l.title.label,{bundles:c}=this.model,d=this.model.getFilteredPackages((c&&u?c[u].packages:[])||[]);return re.label({},`${d.length}`)}}i.BundleTabRenderer=n;class s extends Ao{constructor(l){super(l),this.renderRow=(u,c)=>{let d=c===this.model.currentPackageIndex,h=()=>this.model.currentPackageIndex=c;return lt.createElement("tr",{key:u.name,className:d?"jp-mod-selected":"",onClick:h},lt.createElement("td",null,lt.createElement("input",{type:"radio",name:"show-package-license",value:c,onChange:h,checked:d})),lt.createElement("th",null,u.name),lt.createElement("td",null,lt.createElement("code",null,u.versionInfo)),lt.createElement("td",null,lt.createElement("code",null,u.licenseId)))},this.addClass("jp-Licenses-Grid"),this.addClass("jp-RenderedHTMLCommon")}render(){var l;let{bundles:u,currentBundleName:c,trans:d}=this.model,h=this.model.getFilteredPackages(u&&c?((l=u[c])===null||l===void 0?void 0:l.packages)||[]:[]);return h.length?lt.createElement("form",null,lt.createElement("table",null,lt.createElement("thead",null,lt.createElement("tr",null,lt.createElement("td",null),lt.createElement("th",null,d.__("Package")),lt.createElement("th",null,d.__("Version")),lt.createElement("th",null,d.__("License")))),lt.createElement("tbody",null,h.map(this.renderRow)))):lt.createElement("blockquote",null,lt.createElement("em",null,d.__("No Packages found")))}}i.Grid=s;class o extends Ao{constructor(l){super(l),this.addClass("jp-Licenses-Text"),this.addClass("jp-RenderedHTMLCommon"),this.addClass("jp-RenderedMarkdown")}render(){let{currentPackage:l,trans:u}=this.model,c="",d=u.__("No Package selected"),h="";if(l){let{name:f,versionInfo:p,licenseId:g,extractedText:v}=l;c=`${f} v${p}`,d=`${u.__("License")}: ${g||u.__("No License ID found")}`,h=v||u.__("No License Text found")}return[lt.createElement("h1",{key:"h1"},c),lt.createElement("blockquote",{key:"quote"},lt.createElement("em",null,d)),lt.createElement("code",{key:"code"},h)]}}i.FullText=o})(Fa||(Fa={}))});var q4,Cm,H4=b(()=>{q4=N(ws());(function(i){i.symbol=Symbol("printable");function e(d){return typeof d!="object"||!d?!1:i.symbol in d}i.isPrintable=e;function t(d){return e(d)?d[i.symbol]():null}i.getPrintFunction=t;function r(d){return s(d.node)}i.printWidget=r;async function n(d,h){let f=h??q4.ServerConnection.makeSettings(),p=await(await q4.ServerConnection.makeRequest(d,{},f)).text();return s(p)}i.printURL=n;async function s(d){let h=typeof d=="string",f=o(),p=window.document.body;p.appendChild(f),h?(f.srcdoc=d,await l(f)):(f.src="about:blank",await l(f),a(f,d));let g=u();c(f.contentWindow),await g,p.removeChild(f)}function o(){let d=window.document.createElement("iframe");d.setAttribute("sandbox","allow-modals allow-same-origin");let h="visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;";return d.setAttribute("style",h),d.setAttribute("width","0"),d.setAttribute("height","0"),d}function a(d,h){d.contentDocument.body.appendChild(h.cloneNode(!0)),d.contentDocument.close()}function l(d){return new Promise(h=>{d.onload=()=>h()})}function u(){return new Promise(d=>{let h=()=>{document.removeEventListener("mousemove",h,!0),document.removeEventListener("mousedown",h,!0),document.removeEventListener("keydown",h,!0),d()};document.addEventListener("mousemove",h,!0),document.addEventListener("mousedown",h,!0),document.addEventListener("keydown",h,!0)})}function c(d){d.document.execCommand("print",!1)||d.print()}})(Cm||(Cm={}))});var UZ,WZ,GZ=b(()=>{Jn();Mo();$v();Fo();_4();H4();UZ=!0,WZ=class extends V{constructor(e){super(e),this._changeGuard=!1,this._spinner=new xv,this._isRevealed=!1,this._evtMouseDown=()=>{this.node.contains(document.activeElement)||this._focusContent()},this.addClass("jp-MainAreaWidget"),this.addClass("jp-MainAreaWidget-ContainStrict"),this.id=gm.createDomID();let t=(e.translator||St).load("jupyterlab"),r=this._content=e.content;r.node.setAttribute("role","region"),r.node.setAttribute("aria-label",t.__("main area content"));let n=this._toolbar=e.toolbar||new _v({noFocusOnClick:!0});n.node.setAttribute("role","toolbar"),n.node.setAttribute("aria-label",t.__("main area toolbar"));let s=this._contentHeader=e.contentHeader||new qh({direction:"top-to-bottom",spacing:0}),o=this.layout=new ji({spacing:0});o.direction="top-to-bottom",ji.setStretch(n,0),ji.setStretch(s,0),ji.setStretch(r,1),o.addWidget(n),o.addWidget(s),o.addWidget(r),r.id||(r.id=gm.createDomID()),r.node.tabIndex=-1,this._updateTitle(),r.title.changed.connect(this._updateTitle,this),this.title.closable=!0,this.title.changed.connect(this._updateContentTitle,this),e.reveal?(this.node.appendChild(this._spinner.node),this._revealed=e.reveal.then(()=>{if(r.isDisposed){this.dispose();return}r.disposed.connect(()=>this.dispose());let a=document.activeElement===this._spinner.node;this._disposeSpinner(),this._isRevealed=!0,a&&this._focusContent()}).catch(a=>{let l=new V;l.addClass("jp-MainAreaWidget-error");let u=document.createElement("pre");throw u.textContent=String(a),l.node.appendChild(u),ji.setStretch(l,1),this._disposeSpinner(),r.dispose(),this._content=null,n.dispose(),this._toolbar=null,o.addWidget(l),this._isRevealed=!0,l})):(this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict"),r.disposed.connect(()=>this.dispose()),this._isRevealed=!0,this._revealed=Promise.resolve(void 0))}[Cm.symbol](){return this._content?Cm.getPrintFunction(this._content):null}get content(){return this._content}get toolbar(){return this._toolbar}get contentHeader(){return this._contentHeader}get isRevealed(){return this._isRevealed}get revealed(){return this._revealed}onActivateRequest(e){this._isRevealed?this._focusContent():this._spinner.node.focus()}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("mousedown",this._evtMouseDown,UZ)}onBeforeDetach(e){this.node.removeEventListener("mousedown",this._evtMouseDown,UZ),super.onBeforeDetach(e)}onCloseRequest(e){this.dispose()}onUpdateRequest(e){this._content&&se.sendMessage(this._content,e)}_disposeSpinner(){this.node.removeChild(this._spinner.node),this._spinner.dispose(),this.removeClass("jp-MainAreaWidget-ContainStrict")}_updateTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;let e=this.content;this.title.label=e.title.label,this.title.mnemonic=e.title.mnemonic,this.title.icon=e.title.icon,this.title.iconClass=e.title.iconClass,this.title.iconLabel=e.title.iconLabel,this.title.caption=e.title.caption,this.title.className=e.title.className,this.title.dataset=e.title.dataset,this._changeGuard=!1}_updateContentTitle(){if(this._changeGuard||!this.content)return;this._changeGuard=!0;let e=this.content;e.title.label=this.title.label,e.title.mnemonic=this.title.mnemonic,e.title.icon=this.title.icon,e.title.iconClass=this.title.iconClass,e.title.iconLabel=this.title.iconLabel,e.title.caption=this.title.caption,e.title.className=this.title.className,e.title.dataset=this.title.dataset,this._changeGuard=!1}_focusContent(){this.content&&(this.content.node.contains(document.activeElement)||this.content.node.focus(),this.content.activate())}}});var YZ,XZ,KZ,JZ=b(()=>{YZ=N(ci());Mo();XZ=N(Ge());(function(i){function e(a,l){return a.filter(u=>!u.disabled).sort((u,c)=>{var d,h;return((d=u.rank)!==null&&d!==void 0?d:1/0)-((h=c.rank)!==null&&h!==void 0?h:1/0)}).map(u=>t(u,l))}i.createMenus=e;function t(a,l){var u,c;let d=l(a);return d.id=a.id,d.title.label||(d.title.label=(u=a.label)!==null&&u!==void 0?u:YZ.Text.titleCase(d.id.trim())),a.icon&&(d.title.icon=q.resolve({icon:a.icon})),a.mnemonic!==void 0&&(d.title.mnemonic=a.mnemonic),(c=a.items)===null||c===void 0||c.filter(h=>!h.disabled).sort((h,f)=>{var p,g;return((p=h.rank)!==null&&p!==void 0?p:1/0)-((g=f.rank)!==null&&g!==void 0?g:1/0)}).map(h=>{n(h,d,l)}),d}function r(a,l,u){let{submenu:c,...d}=a;l.addItem({...d,submenu:c?t(c,u):null})}i.addContextItem=r;function n(a,l,u){let{submenu:c,...d}=a;l.addItem({...d,submenu:c?t(c,u):null})}function s(a,l,u){let c=[];return l.forEach(d=>{let h=a.find(f=>f.id===d.id);h?o(d,h,u):d.disabled||c.push(t(d,u))}),a.push(...c),c}i.updateMenus=s;function o(a,l,u){var c;a.disabled?l.dispose():(c=a.items)===null||c===void 0||c.forEach(d=>{var h,f;let p=l?.items.find((g,v)=>{var _,x,y;return g.type===d.type&&g.command===((_=d.command)!==null&&_!==void 0?_:"")&&((x=g.submenu)===null||x===void 0?void 0:x.id)===((y=d.submenu)===null||y===void 0?void 0:y.id)});if(p&&d.type!=="separator")if(d.disabled)l.removeItem(p);else switch((h=d.type)!==null&&h!==void 0?h:"command"){case"command":d.command&&(XZ.JSONExt.deepEqual(p.args,(f=d.args)!==null&&f!==void 0?f:{})||n(d,l,u));break;case"submenu":d.submenu&&o(d.submenu,p.submenu,u)}else n(d,l,u)})}})(KZ||(KZ={}))});var QZ,j4,ZZ,eQ=b(()=>{QZ=N(Ge());tt();j4=class{constructor(){this._isDisposed=!1,this._queue=[],this._changed=new G(this)}get changed(){return this._changed}get count(){return this._queue.length}get isDisposed(){return this._isDisposed}get notifications(){return this._queue.slice()}dismiss(e){if(typeof e>"u"){let t=this._queue.slice();this._queue.length=0;for(let r of t)this._changed.emit({type:"removed",notification:r})}else{let t=this._queue.findIndex(r=>r.id===e);if(t>-1){let r=this._queue.splice(t,1)[0];this._changed.emit({type:"removed",notification:r})}}}dispose(){this._isDisposed||(this._isDisposed=!0,G.clearData(this))}has(e){return this._queue.findIndex(t=>t.id===e)>-1}notify(e,t,r){let n=Date.now(),{progress:s,...o}=r,a=Object.freeze({id:QZ.UUID.uuid4(),createdAt:n,modifiedAt:n,message:e,type:t,options:{autoClose:0,progress:typeof s=="number"?Math.min(Math.max(0,s),1):s,...o}});return this._queue.unshift(a),this._changed.emit({type:"added",notification:a}),a.id}update(e){let{id:t,message:r,actions:n,autoClose:s,data:o,progress:a,type:l}=e,u=typeof a=="number"?Math.min(Math.max(0,a),1):a,c=this._queue.findIndex(d=>d.id===t);if(c>-1){let d=this._queue[c],h=Object.freeze({...d,message:r??d.message,type:l??d.type,options:{actions:n??d.options.actions,autoClose:s??d.options.autoClose,data:o??d.options.data,progress:u??d.options.progress},modifiedAt:Date.now()});return this._queue.splice(c,1),this._queue.unshift(h),this._changed.emit({type:"updated",notification:h}),!0}return!1}};(function(i){i.manager=new j4;function e(u){i.manager.dismiss(u)}i.dismiss=e;function t(u,c="default",d={}){return i.manager.notify(u,c,d)}i.emit=t;function r(u,c={}){return i.manager.notify(u,"error",c)}i.error=r;function n(u,c={}){return i.manager.notify(u,"info",c)}i.info=n;function s(u,c){var d;let{pending:h,error:f,success:p}=c,g=i.manager.notify(h.message,"in-progress",(d=h.options)!==null&&d!==void 0?d:{});return u.then(v=>{var _,x,y;i.manager.update({id:g,message:p.message(v,(_=p.options)===null||_===void 0?void 0:_.data),type:"success",...p.options,data:(y=(x=p.options)===null||x===void 0?void 0:x.data)!==null&&y!==void 0?y:v})}).catch(v=>{var _,x,y;i.manager.update({id:g,message:f.message(v,(_=f.options)===null||_===void 0?void 0:_.data),type:"error",...f.options,data:(y=(x=f.options)===null||x===void 0?void 0:x.data)!==null&&y!==void 0?y:v})}),g}i.promise=s;function o(u,c={}){return i.manager.notify(u,"success",c)}i.success=o;function a(u){return i.manager.update(u)}i.update=a;function l(u,c={}){return i.manager.notify(u,"warning",c)}i.warning=l})(ZZ||(ZZ={}))});function rCe(i){var e,t;let r=(e=i.showKernels)!==null&&e!==void 0?e:!0,n=(t=i.showTerminals)!==null&&t!==void 0?t:i.terminals>0;return Na.default.createElement(Lv,{role:"button",tabIndex:0,spacing:V4,onClick:i.handleClick,onKeyDown:i.handleKeyDown,style:{cursor:"pointer"}},n?Na.default.createElement(Lv,{spacing:V4},Na.default.createElement(mm,{source:i.terminals}),Na.default.createElement(LR.react,{verticalAlign:"middle",stylesheet:"statusBar"})):null,r?Na.default.createElement(Lv,{spacing:V4},Na.default.createElement(mm,{source:i.sessions}),Na.default.createElement(TR.react,{verticalAlign:"middle",stylesheet:"statusBar"})):null)}var Na,V4,Wh,tQ=b(()=>{Jn();Mo();Na=N(ue());v4();V4=4;Wh=class extends Ao{constructor(e){super(new Wh.Model),this._serviceManager=e.serviceManager,this._handleClick=e.onClick,this._handleKeyDown=e.onKeyDown,this.translator=e.translator||St,this._showKernels=e.showKernels,this._showTerminals=e.showTerminals,this._trans=this.translator.load("jupyterlab"),this._serviceManager.sessions.runningChanged.connect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.connect(this._onTerminalsRunningChanged,this),this.addClass("jp-mod-highlighted")}render(){if(!this.model)return null;let e=this._trans.__("%1 Terminals, %2 Kernel sessions",this.model.terminals,this.model.sessions);return this.node.title=e,Na.default.createElement(rCe,{sessions:this.model.sessions,terminals:this.model.terminals,handleClick:this._handleClick,handleKeyDown:this._handleKeyDown,showKernels:this._showKernels,showTerminals:this._showTerminals})}dispose(){super.dispose(),this._serviceManager.sessions.runningChanged.disconnect(this._onSessionsRunningChanged,this),this._serviceManager.terminals.runningChanged.disconnect(this._onTerminalsRunningChanged,this)}_onSessionsRunningChanged(e,t){this.model.sessions=t.length}_onTerminalsRunningChanged(e,t){this.model.terminals=t.length}};(function(i){class e extends $u{constructor(){super(...arguments),this._terminals=0,this._sessions=0}get sessions(){return this._sessions}set sessions(r){let n=this._sessions;this._sessions=r,n!==this._sessions&&this.stateChanged.emit(void 0)}get terminals(){return this._terminals}set terminals(r){let n=this._terminals;this._terminals=r,n!==this._terminals&&this.stateChanged.emit(void 0)}}i.Model=e})(Wh||(Wh={}))});var iQ=M(U4=>{"use strict";Object.defineProperty(U4,"__esModule",{value:!0});U4.default=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(i){return i.charCodeAt(0)}))});var rQ=M(W4=>{"use strict";Object.defineProperty(W4,"__esModule",{value:!0});W4.default=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(i){return i.charCodeAt(0)}))});var K4=M(Uu=>{"use strict";var G4;Object.defineProperty(Uu,"__esModule",{value:!0});Uu.replaceCodePoint=Uu.fromCodePoint=void 0;var nCe=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);Uu.fromCodePoint=(G4=String.fromCodePoint)!==null&&G4!==void 0?G4:function(i){var e="";return i>65535&&(i-=65536,e+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),e+=String.fromCharCode(i),e};function nQ(i){var e;return i>=55296&&i<=57343||i>1114111?65533:(e=nCe.get(i))!==null&&e!==void 0?e:i}Uu.replaceCodePoint=nQ;function sCe(i){return(0,Uu.fromCodePoint)(nQ(i))}Uu.default=sCe});var Z4=M(nt=>{"use strict";var oCe=nt&&nt.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),aCe=nt&&nt.__setModuleDefault||(Object.create?function(i,e){Object.defineProperty(i,"default",{enumerable:!0,value:e})}:function(i,e){i.default=e}),lCe=nt&&nt.__importStar||function(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t in i)t!=="default"&&Object.prototype.hasOwnProperty.call(i,t)&&oCe(e,i,t);return aCe(e,i),e},sQ=nt&&nt.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(nt,"__esModule",{value:!0});nt.decodeXML=nt.decodeHTMLStrict=nt.decodeHTMLAttribute=nt.decodeHTML=nt.determineBranch=nt.EntityDecoder=nt.DecodingMode=nt.BinTrieFlags=nt.fromCodePoint=nt.replaceCodePoint=nt.decodeCodePoint=nt.xmlDecodeTree=nt.htmlDecodeTree=void 0;var oQ=sQ(iQ());nt.htmlDecodeTree=oQ.default;var aQ=sQ(rQ());nt.xmlDecodeTree=aQ.default;var X4=lCe(K4());nt.decodeCodePoint=X4.default;var lQ=K4();Object.defineProperty(nt,"replaceCodePoint",{enumerable:!0,get:function(){return lQ.replaceCodePoint}});Object.defineProperty(nt,"fromCodePoint",{enumerable:!0,get:function(){return lQ.fromCodePoint}});var tr;(function(i){i[i.NUM=35]="NUM",i[i.SEMI=59]="SEMI",i[i.EQUALS=61]="EQUALS",i[i.ZERO=48]="ZERO",i[i.NINE=57]="NINE",i[i.LOWER_A=97]="LOWER_A",i[i.LOWER_F=102]="LOWER_F",i[i.LOWER_X=120]="LOWER_X",i[i.LOWER_Z=122]="LOWER_Z",i[i.UPPER_A=65]="UPPER_A",i[i.UPPER_F=70]="UPPER_F",i[i.UPPER_Z=90]="UPPER_Z"})(tr||(tr={}));var uCe=32,sd;(function(i){i[i.VALUE_LENGTH=49152]="VALUE_LENGTH",i[i.BRANCH_LENGTH=16256]="BRANCH_LENGTH",i[i.JUMP_TABLE=127]="JUMP_TABLE"})(sd=nt.BinTrieFlags||(nt.BinTrieFlags={}));function Y4(i){return i>=tr.ZERO&&i<=tr.NINE}function cCe(i){return i>=tr.UPPER_A&&i<=tr.UPPER_F||i>=tr.LOWER_A&&i<=tr.LOWER_F}function dCe(i){return i>=tr.UPPER_A&&i<=tr.UPPER_Z||i>=tr.LOWER_A&&i<=tr.LOWER_Z||Y4(i)}function hCe(i){return i===tr.EQUALS||dCe(i)}var er;(function(i){i[i.EntityStart=0]="EntityStart",i[i.NumericStart=1]="NumericStart",i[i.NumericDecimal=2]="NumericDecimal",i[i.NumericHex=3]="NumericHex",i[i.NamedEntity=4]="NamedEntity"})(er||(er={}));var Bo;(function(i){i[i.Legacy=0]="Legacy",i[i.Strict=1]="Strict",i[i.Attribute=2]="Attribute"})(Bo=nt.DecodingMode||(nt.DecodingMode={}));var uQ=function(){function i(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=er.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Bo.Strict}return i.prototype.startEntity=function(e){this.decodeMode=e,this.state=er.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},i.prototype.write=function(e,t){switch(this.state){case er.EntityStart:return e.charCodeAt(t)===tr.NUM?(this.state=er.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=er.NamedEntity,this.stateNamedEntity(e,t));case er.NumericStart:return this.stateNumericStart(e,t);case er.NumericDecimal:return this.stateNumericDecimal(e,t);case er.NumericHex:return this.stateNumericHex(e,t);case er.NamedEntity:return this.stateNamedEntity(e,t)}},i.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(e.charCodeAt(t)|uCe)===tr.LOWER_X?(this.state=er.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=er.NumericDecimal,this.stateNumericDecimal(e,t))},i.prototype.addToNumericResult=function(e,t,r,n){if(t!==r){var s=r-t;this.result=this.result*Math.pow(n,s)+parseInt(e.substr(t,s),n),this.consumed+=s}},i.prototype.stateNumericHex=function(e,t){for(var r=t;t>14;t>14,s!==0){if(o===tr.SEMI)return this.emitNamedEntityData(this.treeIndex,s,this.consumed+this.excess);this.decodeMode!==Bo.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},i.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this,r=t.result,n=t.decodeTree,s=(n[r]&sd.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,s,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed},i.prototype.emitNamedEntityData=function(e,t,r){var n=this.decodeTree;return this.emitCodePoint(t===1?n[e]&~sd.VALUE_LENGTH:n[e+1],r),t===3&&this.emitCodePoint(n[e+2],r),r},i.prototype.end=function(){var e;switch(this.state){case er.NamedEntity:return this.result!==0&&(this.decodeMode!==Bo.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case er.NumericDecimal:return this.emitNumericEntity(0,2);case er.NumericHex:return this.emitNumericEntity(0,3);case er.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case er.EntityStart:return 0}},i}();nt.EntityDecoder=uQ;function cQ(i){var e="",t=new uQ(i,function(r){return e+=(0,X4.fromCodePoint)(r)});return function(n,s){for(var o=0,a=0;(a=n.indexOf("&",a))>=0;){e+=n.slice(o,a),t.startEntity(s);var l=t.write(n,a+1);if(l<0){o=a+t.end();break}o=a+l,a=l===0?o+1:o}var u=e+n.slice(o);return e="",u}}function dQ(i,e,t,r){var n=(e&sd.BRANCH_LENGTH)>>7,s=e&sd.JUMP_TABLE;if(n===0)return s!==0&&r===s?t:-1;if(s){var o=r-s;return o<0||o>=n?-1:i[t+o]-1}for(var a=t,l=a+n-1;a<=l;){var u=a+l>>>1,c=i[u];if(cr)l=u-1;else return i[u+n]}return-1}nt.determineBranch=dQ;var J4=cQ(oQ.default),fCe=cQ(aQ.default);function pCe(i,e){return e===void 0&&(e=Bo.Legacy),J4(i,e)}nt.decodeHTML=pCe;function mCe(i){return J4(i,Bo.Attribute)}nt.decodeHTMLAttribute=mCe;function gCe(i){return J4(i,Bo.Strict)}nt.decodeHTMLStrict=gCe;function bCe(i){return fCe(i,Bo.Strict)}nt.decodeXML=bCe});var Q4=M(Kh=>{"use strict";Object.defineProperty(Kh,"__esModule",{value:!0});Kh.QuoteType=void 0;var od=Z4(),Se;(function(i){i[i.Tab=9]="Tab",i[i.NewLine=10]="NewLine",i[i.FormFeed=12]="FormFeed",i[i.CarriageReturn=13]="CarriageReturn",i[i.Space=32]="Space",i[i.ExclamationMark=33]="ExclamationMark",i[i.Number=35]="Number",i[i.Amp=38]="Amp",i[i.SingleQuote=39]="SingleQuote",i[i.DoubleQuote=34]="DoubleQuote",i[i.Dash=45]="Dash",i[i.Slash=47]="Slash",i[i.Zero=48]="Zero",i[i.Nine=57]="Nine",i[i.Semi=59]="Semi",i[i.Lt=60]="Lt",i[i.Eq=61]="Eq",i[i.Gt=62]="Gt",i[i.Questionmark=63]="Questionmark",i[i.UpperA=65]="UpperA",i[i.LowerA=97]="LowerA",i[i.UpperF=70]="UpperF",i[i.LowerF=102]="LowerF",i[i.UpperZ=90]="UpperZ",i[i.LowerZ=122]="LowerZ",i[i.LowerX=120]="LowerX",i[i.OpeningSquareBracket=91]="OpeningSquareBracket"})(Se||(Se={}));var J;(function(i){i[i.Text=1]="Text",i[i.BeforeTagName=2]="BeforeTagName",i[i.InTagName=3]="InTagName",i[i.InSelfClosingTag=4]="InSelfClosingTag",i[i.BeforeClosingTagName=5]="BeforeClosingTagName",i[i.InClosingTagName=6]="InClosingTagName",i[i.AfterClosingTagName=7]="AfterClosingTagName",i[i.BeforeAttributeName=8]="BeforeAttributeName",i[i.InAttributeName=9]="InAttributeName",i[i.AfterAttributeName=10]="AfterAttributeName",i[i.BeforeAttributeValue=11]="BeforeAttributeValue",i[i.InAttributeValueDq=12]="InAttributeValueDq",i[i.InAttributeValueSq=13]="InAttributeValueSq",i[i.InAttributeValueNq=14]="InAttributeValueNq",i[i.BeforeDeclaration=15]="BeforeDeclaration",i[i.InDeclaration=16]="InDeclaration",i[i.InProcessingInstruction=17]="InProcessingInstruction",i[i.BeforeComment=18]="BeforeComment",i[i.CDATASequence=19]="CDATASequence",i[i.InSpecialComment=20]="InSpecialComment",i[i.InCommentLike=21]="InCommentLike",i[i.BeforeSpecialS=22]="BeforeSpecialS",i[i.SpecialStartSequence=23]="SpecialStartSequence",i[i.InSpecialTag=24]="InSpecialTag",i[i.BeforeEntity=25]="BeforeEntity",i[i.BeforeNumericEntity=26]="BeforeNumericEntity",i[i.InNamedEntity=27]="InNamedEntity",i[i.InNumericEntity=28]="InNumericEntity",i[i.InHexEntity=29]="InHexEntity"})(J||(J={}));function Ba(i){return i===Se.Space||i===Se.NewLine||i===Se.Tab||i===Se.FormFeed||i===Se.CarriageReturn}function Kv(i){return i===Se.Slash||i===Se.Gt||Ba(i)}function hQ(i){return i>=Se.Zero&&i<=Se.Nine}function vCe(i){return i>=Se.LowerA&&i<=Se.LowerZ||i>=Se.UpperA&&i<=Se.UpperZ}function _Ce(i){return i>=Se.UpperA&&i<=Se.UpperF||i>=Se.LowerA&&i<=Se.LowerF}var Gh;(function(i){i[i.NoValue=0]="NoValue",i[i.Unquoted=1]="Unquoted",i[i.Single=2]="Single",i[i.Double=3]="Double"})(Gh=Kh.QuoteType||(Kh.QuoteType={}));var wn={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},yCe=function(){function i(e,t){var r=e.xmlMode,n=r===void 0?!1:r,s=e.decodeEntities,o=s===void 0?!0:s;this.cbs=t,this.state=J.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=J.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=n,this.decodeEntities=o,this.entityTrie=n?od.xmlDecodeTree:od.htmlDecodeTree}return i.prototype.reset=function(){this.state=J.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=J.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},i.prototype.write=function(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()},i.prototype.end=function(){this.running&&this.finish()},i.prototype.pause=function(){this.running=!1},i.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=J.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===Se.Amp&&(this.state=J.BeforeEntity)},i.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length,r=t?Kv(e):(e|32)===this.currentSequence[this.sequenceIndex];if(!r)this.isSpecial=!1;else if(!t){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=J.InTagName,this.stateInTagName(e)},i.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===Se.Gt||Ba(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&e!==Se.Semi)this.trieIndex+=r;else{var n=this.index-this.entityExcess+1;n>this.sectionStart&&this.emitPartial(this.sectionStart,n),this.entityResult=this.trieIndex,this.trieIndex+=r,this.entityExcess=0,this.sectionStart=this.index+1,r===0&&this.emitNamedEntity()}}},i.prototype.emitNamedEntity=function(){if(this.state=this.baseState,this.entityResult!==0){var e=(this.entityTrie[this.entityResult]&od.BinTrieFlags.VALUE_LENGTH)>>14;switch(e){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~od.BinTrieFlags.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}},i.prototype.stateBeforeNumericEntity=function(e){(e|32)===Se.LowerX?(this.entityExcess++,this.state=J.InHexEntity):(this.state=J.InNumericEntity,this.stateInNumericEntity(e))},i.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1,r=t+2+Number(this.state===J.InHexEntity);r!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint((0,od.replaceCodePoint)(this.entityResult))),this.state=this.baseState},i.prototype.stateInNumericEntity=function(e){e===Se.Semi?this.emitNumericEntity(!0):hQ(e)?(this.entityResult=this.entityResult*10+(e-Se.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},i.prototype.stateInHexEntity=function(e){e===Se.Semi?this.emitNumericEntity(!0):hQ(e)?(this.entityResult=this.entityResult*16+(e-Se.Zero),this.entityExcess++):_Ce(e)?(this.entityResult=this.entityResult*16+((e|32)-Se.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},i.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===J.Text||this.baseState===J.InSpecialTag)},i.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===J.Text||this.state===J.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===J.InAttributeValueDq||this.state===J.InAttributeValueSq||this.state===J.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},i.prototype.shouldContinue=function(){return this.index{"use strict";var xCe=zo&&zo.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),wCe=zo&&zo.__setModuleDefault||(Object.create?function(i,e){Object.defineProperty(i,"default",{enumerable:!0,value:e})}:function(i,e){i.default=e}),SCe=zo&&zo.__importStar||function(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t in i)t!=="default"&&Object.prototype.hasOwnProperty.call(i,t)&&xCe(e,i,t);return wCe(e,i),e};Object.defineProperty(zo,"__esModule",{value:!0});zo.Parser=void 0;var Yv=SCe(Q4()),fQ=Z4(),Yh=new Set(["input","option","optgroup","select","button","datalist","textarea"]),Mt=new Set(["p"]),pQ=new Set(["thead","tbody"]),mQ=new Set(["dd","dt"]),gQ=new Set(["rt","rp"]),CCe=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",Mt],["h1",Mt],["h2",Mt],["h3",Mt],["h4",Mt],["h5",Mt],["h6",Mt],["select",Yh],["input",Yh],["output",Yh],["button",Yh],["datalist",Yh],["textarea",Yh],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",mQ],["dt",mQ],["address",Mt],["article",Mt],["aside",Mt],["blockquote",Mt],["details",Mt],["div",Mt],["dl",Mt],["fieldset",Mt],["figcaption",Mt],["figure",Mt],["footer",Mt],["form",Mt],["header",Mt],["hr",Mt],["main",Mt],["nav",Mt],["ol",Mt],["pre",Mt],["section",Mt],["table",Mt],["ul",Mt],["rt",gQ],["rp",gQ],["tbody",pQ],["tfoot",pQ]]),ICe=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),bQ=new Set(["math","svg"]),vQ=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),ECe=/\s|\//,kCe=function(){function i(e,t){t===void 0&&(t={});var r,n,s,o,a;this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=e??{},this.lowerCaseTagNames=(r=t.lowerCaseTags)!==null&&r!==void 0?r:!t.xmlMode,this.lowerCaseAttributeNames=(n=t.lowerCaseAttributeNames)!==null&&n!==void 0?n:!t.xmlMode,this.tokenizer=new((s=t.Tokenizer)!==null&&s!==void 0?s:Yv.default)(this.options,this),(a=(o=this.cbs).onparserinit)===null||a===void 0||a.call(o,this)}return i.prototype.ontext=function(e,t){var r,n,s=this.getSlice(e,t);this.endIndex=t-1,(n=(r=this.cbs).ontext)===null||n===void 0||n.call(r,s),this.startIndex=t},i.prototype.ontextentity=function(e){var t,r,n=this.tokenizer.getSectionStart();this.endIndex=n-1,(r=(t=this.cbs).ontext)===null||r===void 0||r.call(t,(0,fQ.fromCodePoint)(e)),this.startIndex=n},i.prototype.isVoidElement=function(e){return!this.options.xmlMode&&ICe.has(e)},i.prototype.onopentagname=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);this.lowerCaseTagNames&&(r=r.toLowerCase()),this.emitOpenTag(r)},i.prototype.emitOpenTag=function(e){var t,r,n,s;this.openTagStart=this.startIndex,this.tagname=e;var o=!this.options.xmlMode&&CCe.get(e);if(o)for(;this.stack.length>0&&o.has(this.stack[this.stack.length-1]);){var a=this.stack.pop();(r=(t=this.cbs).onclosetag)===null||r===void 0||r.call(t,a,!0)}this.isVoidElement(e)||(this.stack.push(e),bQ.has(e)?this.foreignContext.push(!0):vQ.has(e)&&this.foreignContext.push(!1)),(s=(n=this.cbs).onopentagname)===null||s===void 0||s.call(n,e),this.cbs.onopentag&&(this.attribs={})},i.prototype.endOpenTag=function(e){var t,r;this.startIndex=this.openTagStart,this.attribs&&((r=(t=this.cbs).onopentag)===null||r===void 0||r.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},i.prototype.onopentagend=function(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1},i.prototype.onclosetag=function(e,t){var r,n,s,o,a,l;this.endIndex=t;var u=this.getSlice(e,t);if(this.lowerCaseTagNames&&(u=u.toLowerCase()),(bQ.has(u)||vQ.has(u))&&this.foreignContext.pop(),this.isVoidElement(u))!this.options.xmlMode&&u==="br"&&((n=(r=this.cbs).onopentagname)===null||n===void 0||n.call(r,"br"),(o=(s=this.cbs).onopentag)===null||o===void 0||o.call(s,"br",{},!0),(l=(a=this.cbs).onclosetag)===null||l===void 0||l.call(a,"br",!1));else{var c=this.stack.lastIndexOf(u);if(c!==-1)if(this.cbs.onclosetag)for(var d=this.stack.length-c;d--;)this.cbs.onclosetag(this.stack.pop(),d!==0);else this.stack.length=c;else!this.options.xmlMode&&u==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1},i.prototype.onselfclosingtag=function(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)},i.prototype.closeCurrentTag=function(e){var t,r,n=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===n&&((r=(t=this.cbs).onclosetag)===null||r===void 0||r.call(t,n,!e),this.stack.pop())},i.prototype.onattribname=function(e,t){this.startIndex=e;var r=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?r.toLowerCase():r},i.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)},i.prototype.onattribentity=function(e){this.attribvalue+=(0,fQ.fromCodePoint)(e)},i.prototype.onattribend=function(e,t){var r,n;this.endIndex=t,(n=(r=this.cbs).onattribute)===null||n===void 0||n.call(r,this.attribname,this.attribvalue,e===Yv.QuoteType.Double?'"':e===Yv.QuoteType.Single?"'":e===Yv.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},i.prototype.getInstructionName=function(e){var t=e.search(ECe),r=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(r=r.toLowerCase()),r},i.prototype.ondeclaration=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var n=this.getInstructionName(r);this.cbs.onprocessinginstruction("!".concat(n),"!".concat(r))}this.startIndex=t+1},i.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var r=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var n=this.getInstructionName(r);this.cbs.onprocessinginstruction("?".concat(n),"?".concat(r))}this.startIndex=t+1},i.prototype.oncomment=function(e,t,r){var n,s,o,a;this.endIndex=t,(s=(n=this.cbs).oncomment)===null||s===void 0||s.call(n,this.getSlice(e,t-r)),(a=(o=this.cbs).oncommentend)===null||a===void 0||a.call(o),this.startIndex=t+1},i.prototype.oncdata=function(e,t,r){var n,s,o,a,l,u,c,d,h,f;this.endIndex=t;var p=this.getSlice(e,t-r);this.options.xmlMode||this.options.recognizeCDATA?((s=(n=this.cbs).oncdatastart)===null||s===void 0||s.call(n),(a=(o=this.cbs).ontext)===null||a===void 0||a.call(o,p),(u=(l=this.cbs).oncdataend)===null||u===void 0||u.call(l)):((d=(c=this.cbs).oncomment)===null||d===void 0||d.call(c,"[CDATA[".concat(p,"]]")),(f=(h=this.cbs).oncommentend)===null||f===void 0||f.call(h)),this.startIndex=t+1},i.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var r=this.stack.length;r>0;this.cbs.onclosetag(this.stack[--r],!0));}(t=(e=this.cbs).onend)===null||t===void 0||t.call(e)},i.prototype.reset=function(){var e,t,r,n;(t=(e=this.cbs).onreset)===null||t===void 0||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(n=(r=this.cbs).onparserinit)===null||n===void 0||n.call(r,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},i.prototype.parseComplete=function(e){this.reset(),this.end(e)},i.prototype.getSlice=function(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var r=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),r+=this.buffers[0].slice(0,t-this.bufferOffset);return r},i.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},i.prototype.write=function(e){var t,r;if(this.ended){(r=(t=this.cbs).onerror)===null||r===void 0||r.call(t,new Error(".write() after done!"));return}this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++)},i.prototype.end=function(e){var t,r;if(this.ended){(r=(t=this.cbs).onerror)===null||r===void 0||r.call(t,new Error(".end() after done!"));return}e&&this.write(e),this.ended=!0,this.tokenizer.end()},i.prototype.pause=function(){this.tokenizer.pause()},i.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex{"use strict";Object.defineProperty(jt,"__esModule",{value:!0});jt.Doctype=jt.CDATA=jt.Tag=jt.Style=jt.Script=jt.Comment=jt.Directive=jt.Text=jt.Root=jt.isTag=jt.ElementType=void 0;var Wn;(function(i){i.Root="root",i.Text="text",i.Directive="directive",i.Comment="comment",i.Script="script",i.Style="style",i.Tag="tag",i.CDATA="cdata",i.Doctype="doctype"})(Wn=jt.ElementType||(jt.ElementType={}));function TCe(i){return i.type===Wn.Tag||i.type===Wn.Script||i.type===Wn.Style}jt.isTag=TCe;jt.Root=Wn.Root;jt.Text=Wn.Text;jt.Directive=Wn.Directive;jt.Comment=Wn.Comment;jt.Script=Wn.Script;jt.Style=Wn.Style;jt.Tag=Wn.Tag;jt.CDATA=Wn.CDATA;jt.Doctype=Wn.Doctype});var nI=M(Ze=>{"use strict";var Wu=Ze&&Ze.__extends||function(){var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(r[s]=n[s])},i(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");i(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}(),Im=Ze&&Ze.__assign||function(){return Im=Object.assign||function(i){for(var e,t=1,r=arguments.length;t0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"childNodes",{get:function(){return this.children},set:function(t){this.children=t},enumerable:!1,configurable:!0}),e}(iI);Ze.NodeWithChildren=Jv;var wQ=function(i){Wu(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=Sn.ElementType.CDATA,t}return Object.defineProperty(e.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),e}(Jv);Ze.CDATA=wQ;var SQ=function(i){Wu(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t.type=Sn.ElementType.Root,t}return Object.defineProperty(e.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),e}(Jv);Ze.Document=SQ;var CQ=function(i){Wu(e,i);function e(t,r,n,s){n===void 0&&(n=[]),s===void 0&&(s=t==="script"?Sn.ElementType.Script:t==="style"?Sn.ElementType.Style:Sn.ElementType.Tag);var o=i.call(this,n)||this;return o.name=t,o.attribs=r,o.type=s,o}return Object.defineProperty(e.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"tagName",{get:function(){return this.name},set:function(t){this.name=t},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"attributes",{get:function(){var t=this;return Object.keys(this.attribs).map(function(r){var n,s;return{name:r,value:t.attribs[r],namespace:(n=t["x-attribsNamespace"])===null||n===void 0?void 0:n[r],prefix:(s=t["x-attribsPrefix"])===null||s===void 0?void 0:s[r]}})},enumerable:!1,configurable:!0}),e}(Jv);Ze.Element=CQ;function IQ(i){return(0,Sn.isTag)(i)}Ze.isTag=IQ;function EQ(i){return i.type===Sn.ElementType.CDATA}Ze.isCDATA=EQ;function kQ(i){return i.type===Sn.ElementType.Text}Ze.isText=kQ;function TQ(i){return i.type===Sn.ElementType.Comment}Ze.isComment=TQ;function AQ(i){return i.type===Sn.ElementType.Directive}Ze.isDirective=AQ;function MQ(i){return i.type===Sn.ElementType.Root}Ze.isDocument=MQ;function ACe(i){return Object.prototype.hasOwnProperty.call(i,"children")}Ze.hasChildren=ACe;function rI(i,e){e===void 0&&(e=!1);var t;if(kQ(i))t=new _Q(i.data);else if(TQ(i))t=new yQ(i.data);else if(IQ(i)){var r=e?tI(i.children):[],n=new CQ(i.name,Im({},i.attribs),r);r.forEach(function(l){return l.parent=n}),i.namespace!=null&&(n.namespace=i.namespace),i["x-attribsNamespace"]&&(n["x-attribsNamespace"]=Im({},i["x-attribsNamespace"])),i["x-attribsPrefix"]&&(n["x-attribsPrefix"]=Im({},i["x-attribsPrefix"])),t=n}else if(EQ(i)){var r=e?tI(i.children):[],s=new wQ(r);r.forEach(function(u){return u.parent=s}),t=s}else if(MQ(i)){var r=e?tI(i.children):[],o=new SQ(r);r.forEach(function(u){return u.parent=o}),i["x-mode"]&&(o["x-mode"]=i["x-mode"]),t=o}else if(AQ(i)){var a=new xQ(i.name,i.data);i["x-name"]!=null&&(a["x-name"]=i["x-name"],a["x-publicId"]=i["x-publicId"],a["x-systemId"]=i["x-systemId"]),t=a}else throw new Error("Not implemented yet: ".concat(i.type));return t.startIndex=i.startIndex,t.endIndex=i.endIndex,i.sourceCodeLocation!=null&&(t.sourceCodeLocation=i.sourceCodeLocation),t}Ze.cloneNode=rI;function tI(i){for(var e=i.map(function(r){return rI(r,!0)}),t=1;t{"use strict";var MCe=qo&&qo.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),RCe=qo&&qo.__exportStar||function(i,e){for(var t in i)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&MCe(e,i,t)};Object.defineProperty(qo,"__esModule",{value:!0});qo.DomHandler=void 0;var sI=Xh(),Gu=nI();RCe(nI(),qo);var RQ={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},DQ=function(){function i(e,t,r){this.dom=[],this.root=new Gu.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,typeof t=="function"&&(r=t,t=RQ),typeof e=="object"&&(t=e,e=void 0),this.callback=e??null,this.options=t??RQ,this.elementCB=r??null}return i.prototype.onparserinit=function(e){this.parser=e},i.prototype.onreset=function(){this.dom=[],this.root=new Gu.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},i.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},i.prototype.onerror=function(e){this.handleCallback(e)},i.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},i.prototype.onopentag=function(e,t){var r=this.options.xmlMode?sI.ElementType.Tag:void 0,n=new Gu.Element(e,t,void 0,r);this.addNode(n),this.tagStack.push(n)},i.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===sI.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var r=new Gu.Text(e);this.addNode(r),this.lastNode=r}},i.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===sI.ElementType.Comment){this.lastNode.data+=e;return}var t=new Gu.Comment(e);this.addNode(t),this.lastNode=t},i.prototype.oncommentend=function(){this.lastNode=null},i.prototype.oncdatastart=function(){var e=new Gu.Text(""),t=new Gu.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},i.prototype.oncdataend=function(){this.lastNode=null},i.prototype.onprocessinginstruction=function(e,t){var r=new Gu.ProcessingInstruction(e,t);this.addNode(r)},i.prototype.handleCallback=function(e){if(typeof this.callback=="function")this.callback(e,this.dom);else if(e)throw e},i.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],r=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),r&&(e.prev=r,r.next=e),e.parent=t,this.lastNode=null},i}();qo.DomHandler=DQ;qo.default=DQ});var OQ=M(oI=>{"use strict";Object.defineProperty(oI,"__esModule",{value:!0});oI.default=new Uint16Array('\u1D41<\xD5\u0131\u028A\u049D\u057B\u05D0\u0675\u06DE\u07A2\u07D6\u080F\u0A4A\u0A91\u0DA1\u0E6D\u0F09\u0F26\u10CA\u1228\u12E1\u1415\u149D\u14C3\u14DF\u1525\0\0\0\0\0\0\u156B\u16CD\u198D\u1C12\u1DDD\u1F7E\u2060\u21B0\u228D\u23C0\u23FB\u2442\u2824\u2912\u2D08\u2E48\u2FCE\u3016\u32BA\u3639\u37AC\u38FE\u3A28\u3A71\u3AE0\u3B2E\u0800EMabcfglmnoprstu\\bfms\x7F\x84\x8B\x90\x95\x98\xA6\xB3\xB9\xC8\xCFlig\u803B\xC6\u40C6P\u803B&\u4026cute\u803B\xC1\u40C1reve;\u4102\u0100iyx}rc\u803B\xC2\u40C2;\u4410r;\uC000\u{1D504}rave\u803B\xC0\u40C0pha;\u4391acr;\u4100d;\u6A53\u0100gp\x9D\xA1on;\u4104f;\uC000\u{1D538}plyFunction;\u6061ing\u803B\xC5\u40C5\u0100cs\xBE\xC3r;\uC000\u{1D49C}ign;\u6254ilde\u803B\xC3\u40C3ml\u803B\xC4\u40C4\u0400aceforsu\xE5\xFB\xFE\u0117\u011C\u0122\u0127\u012A\u0100cr\xEA\xF2kslash;\u6216\u0176\xF6\xF8;\u6AE7ed;\u6306y;\u4411\u0180crt\u0105\u010B\u0114ause;\u6235noullis;\u612Ca;\u4392r;\uC000\u{1D505}pf;\uC000\u{1D539}eve;\u42D8c\xF2\u0113mpeq;\u624E\u0700HOacdefhilorsu\u014D\u0151\u0156\u0180\u019E\u01A2\u01B5\u01B7\u01BA\u01DC\u0215\u0273\u0278\u027Ecy;\u4427PY\u803B\xA9\u40A9\u0180cpy\u015D\u0162\u017Aute;\u4106\u0100;i\u0167\u0168\u62D2talDifferentialD;\u6145leys;\u612D\u0200aeio\u0189\u018E\u0194\u0198ron;\u410Cdil\u803B\xC7\u40C7rc;\u4108nint;\u6230ot;\u410A\u0100dn\u01A7\u01ADilla;\u40B8terDot;\u40B7\xF2\u017Fi;\u43A7rcle\u0200DMPT\u01C7\u01CB\u01D1\u01D6ot;\u6299inus;\u6296lus;\u6295imes;\u6297o\u0100cs\u01E2\u01F8kwiseContourIntegral;\u6232eCurly\u0100DQ\u0203\u020FoubleQuote;\u601Duote;\u6019\u0200lnpu\u021E\u0228\u0247\u0255on\u0100;e\u0225\u0226\u6237;\u6A74\u0180git\u022F\u0236\u023Aruent;\u6261nt;\u622FourIntegral;\u622E\u0100fr\u024C\u024E;\u6102oduct;\u6210nterClockwiseContourIntegral;\u6233oss;\u6A2Fcr;\uC000\u{1D49E}p\u0100;C\u0284\u0285\u62D3ap;\u624D\u0580DJSZacefios\u02A0\u02AC\u02B0\u02B4\u02B8\u02CB\u02D7\u02E1\u02E6\u0333\u048D\u0100;o\u0179\u02A5trahd;\u6911cy;\u4402cy;\u4405cy;\u440F\u0180grs\u02BF\u02C4\u02C7ger;\u6021r;\u61A1hv;\u6AE4\u0100ay\u02D0\u02D5ron;\u410E;\u4414l\u0100;t\u02DD\u02DE\u6207a;\u4394r;\uC000\u{1D507}\u0100af\u02EB\u0327\u0100cm\u02F0\u0322ritical\u0200ADGT\u0300\u0306\u0316\u031Ccute;\u40B4o\u0174\u030B\u030D;\u42D9bleAcute;\u42DDrave;\u4060ilde;\u42DCond;\u62C4ferentialD;\u6146\u0470\u033D\0\0\0\u0342\u0354\0\u0405f;\uC000\u{1D53B}\u0180;DE\u0348\u0349\u034D\u40A8ot;\u60DCqual;\u6250ble\u0300CDLRUV\u0363\u0372\u0382\u03CF\u03E2\u03F8ontourIntegra\xEC\u0239o\u0274\u0379\0\0\u037B\xBB\u0349nArrow;\u61D3\u0100eo\u0387\u03A4ft\u0180ART\u0390\u0396\u03A1rrow;\u61D0ightArrow;\u61D4e\xE5\u02CAng\u0100LR\u03AB\u03C4eft\u0100AR\u03B3\u03B9rrow;\u67F8ightArrow;\u67FAightArrow;\u67F9ight\u0100AT\u03D8\u03DErrow;\u61D2ee;\u62A8p\u0241\u03E9\0\0\u03EFrrow;\u61D1ownArrow;\u61D5erticalBar;\u6225n\u0300ABLRTa\u0412\u042A\u0430\u045E\u047F\u037Crrow\u0180;BU\u041D\u041E\u0422\u6193ar;\u6913pArrow;\u61F5reve;\u4311eft\u02D2\u043A\0\u0446\0\u0450ightVector;\u6950eeVector;\u695Eector\u0100;B\u0459\u045A\u61BDar;\u6956ight\u01D4\u0467\0\u0471eeVector;\u695Fector\u0100;B\u047A\u047B\u61C1ar;\u6957ee\u0100;A\u0486\u0487\u62A4rrow;\u61A7\u0100ct\u0492\u0497r;\uC000\u{1D49F}rok;\u4110\u0800NTacdfglmopqstux\u04BD\u04C0\u04C4\u04CB\u04DE\u04E2\u04E7\u04EE\u04F5\u0521\u052F\u0536\u0552\u055D\u0560\u0565G;\u414AH\u803B\xD0\u40D0cute\u803B\xC9\u40C9\u0180aiy\u04D2\u04D7\u04DCron;\u411Arc\u803B\xCA\u40CA;\u442Dot;\u4116r;\uC000\u{1D508}rave\u803B\xC8\u40C8ement;\u6208\u0100ap\u04FA\u04FEcr;\u4112ty\u0253\u0506\0\0\u0512mallSquare;\u65FBerySmallSquare;\u65AB\u0100gp\u0526\u052Aon;\u4118f;\uC000\u{1D53C}silon;\u4395u\u0100ai\u053C\u0549l\u0100;T\u0542\u0543\u6A75ilde;\u6242librium;\u61CC\u0100ci\u0557\u055Ar;\u6130m;\u6A73a;\u4397ml\u803B\xCB\u40CB\u0100ip\u056A\u056Fsts;\u6203onentialE;\u6147\u0280cfios\u0585\u0588\u058D\u05B2\u05CCy;\u4424r;\uC000\u{1D509}lled\u0253\u0597\0\0\u05A3mallSquare;\u65FCerySmallSquare;\u65AA\u0370\u05BA\0\u05BF\0\0\u05C4f;\uC000\u{1D53D}All;\u6200riertrf;\u6131c\xF2\u05CB\u0600JTabcdfgorst\u05E8\u05EC\u05EF\u05FA\u0600\u0612\u0616\u061B\u061D\u0623\u066C\u0672cy;\u4403\u803B>\u403Emma\u0100;d\u05F7\u05F8\u4393;\u43DCreve;\u411E\u0180eiy\u0607\u060C\u0610dil;\u4122rc;\u411C;\u4413ot;\u4120r;\uC000\u{1D50A};\u62D9pf;\uC000\u{1D53E}eater\u0300EFGLST\u0635\u0644\u064E\u0656\u065B\u0666qual\u0100;L\u063E\u063F\u6265ess;\u62DBullEqual;\u6267reater;\u6AA2ess;\u6277lantEqual;\u6A7Eilde;\u6273cr;\uC000\u{1D4A2};\u626B\u0400Aacfiosu\u0685\u068B\u0696\u069B\u069E\u06AA\u06BE\u06CARDcy;\u442A\u0100ct\u0690\u0694ek;\u42C7;\u405Eirc;\u4124r;\u610ClbertSpace;\u610B\u01F0\u06AF\0\u06B2f;\u610DizontalLine;\u6500\u0100ct\u06C3\u06C5\xF2\u06A9rok;\u4126mp\u0144\u06D0\u06D8ownHum\xF0\u012Fqual;\u624F\u0700EJOacdfgmnostu\u06FA\u06FE\u0703\u0707\u070E\u071A\u071E\u0721\u0728\u0744\u0778\u078B\u078F\u0795cy;\u4415lig;\u4132cy;\u4401cute\u803B\xCD\u40CD\u0100iy\u0713\u0718rc\u803B\xCE\u40CE;\u4418ot;\u4130r;\u6111rave\u803B\xCC\u40CC\u0180;ap\u0720\u072F\u073F\u0100cg\u0734\u0737r;\u412AinaryI;\u6148lie\xF3\u03DD\u01F4\u0749\0\u0762\u0100;e\u074D\u074E\u622C\u0100gr\u0753\u0758ral;\u622Bsection;\u62C2isible\u0100CT\u076C\u0772omma;\u6063imes;\u6062\u0180gpt\u077F\u0783\u0788on;\u412Ef;\uC000\u{1D540}a;\u4399cr;\u6110ilde;\u4128\u01EB\u079A\0\u079Ecy;\u4406l\u803B\xCF\u40CF\u0280cfosu\u07AC\u07B7\u07BC\u07C2\u07D0\u0100iy\u07B1\u07B5rc;\u4134;\u4419r;\uC000\u{1D50D}pf;\uC000\u{1D541}\u01E3\u07C7\0\u07CCr;\uC000\u{1D4A5}rcy;\u4408kcy;\u4404\u0380HJacfos\u07E4\u07E8\u07EC\u07F1\u07FD\u0802\u0808cy;\u4425cy;\u440Cppa;\u439A\u0100ey\u07F6\u07FBdil;\u4136;\u441Ar;\uC000\u{1D50E}pf;\uC000\u{1D542}cr;\uC000\u{1D4A6}\u0580JTaceflmost\u0825\u0829\u082C\u0850\u0863\u09B3\u09B8\u09C7\u09CD\u0A37\u0A47cy;\u4409\u803B<\u403C\u0280cmnpr\u0837\u083C\u0841\u0844\u084Dute;\u4139bda;\u439Bg;\u67EAlacetrf;\u6112r;\u619E\u0180aey\u0857\u085C\u0861ron;\u413Ddil;\u413B;\u441B\u0100fs\u0868\u0970t\u0500ACDFRTUVar\u087E\u08A9\u08B1\u08E0\u08E6\u08FC\u092F\u095B\u0390\u096A\u0100nr\u0883\u088FgleBracket;\u67E8row\u0180;BR\u0899\u089A\u089E\u6190ar;\u61E4ightArrow;\u61C6eiling;\u6308o\u01F5\u08B7\0\u08C3bleBracket;\u67E6n\u01D4\u08C8\0\u08D2eeVector;\u6961ector\u0100;B\u08DB\u08DC\u61C3ar;\u6959loor;\u630Aight\u0100AV\u08EF\u08F5rrow;\u6194ector;\u694E\u0100er\u0901\u0917e\u0180;AV\u0909\u090A\u0910\u62A3rrow;\u61A4ector;\u695Aiangle\u0180;BE\u0924\u0925\u0929\u62B2ar;\u69CFqual;\u62B4p\u0180DTV\u0937\u0942\u094CownVector;\u6951eeVector;\u6960ector\u0100;B\u0956\u0957\u61BFar;\u6958ector\u0100;B\u0965\u0966\u61BCar;\u6952ight\xE1\u039Cs\u0300EFGLST\u097E\u098B\u0995\u099D\u09A2\u09ADqualGreater;\u62DAullEqual;\u6266reater;\u6276ess;\u6AA1lantEqual;\u6A7Dilde;\u6272r;\uC000\u{1D50F}\u0100;e\u09BD\u09BE\u62D8ftarrow;\u61DAidot;\u413F\u0180npw\u09D4\u0A16\u0A1Bg\u0200LRlr\u09DE\u09F7\u0A02\u0A10eft\u0100AR\u09E6\u09ECrrow;\u67F5ightArrow;\u67F7ightArrow;\u67F6eft\u0100ar\u03B3\u0A0Aight\xE1\u03BFight\xE1\u03CAf;\uC000\u{1D543}er\u0100LR\u0A22\u0A2CeftArrow;\u6199ightArrow;\u6198\u0180cht\u0A3E\u0A40\u0A42\xF2\u084C;\u61B0rok;\u4141;\u626A\u0400acefiosu\u0A5A\u0A5D\u0A60\u0A77\u0A7C\u0A85\u0A8B\u0A8Ep;\u6905y;\u441C\u0100dl\u0A65\u0A6FiumSpace;\u605Flintrf;\u6133r;\uC000\u{1D510}nusPlus;\u6213pf;\uC000\u{1D544}c\xF2\u0A76;\u439C\u0480Jacefostu\u0AA3\u0AA7\u0AAD\u0AC0\u0B14\u0B19\u0D91\u0D97\u0D9Ecy;\u440Acute;\u4143\u0180aey\u0AB4\u0AB9\u0ABEron;\u4147dil;\u4145;\u441D\u0180gsw\u0AC7\u0AF0\u0B0Eative\u0180MTV\u0AD3\u0ADF\u0AE8ediumSpace;\u600Bhi\u0100cn\u0AE6\u0AD8\xEB\u0AD9eryThi\xEE\u0AD9ted\u0100GL\u0AF8\u0B06reaterGreate\xF2\u0673essLes\xF3\u0A48Line;\u400Ar;\uC000\u{1D511}\u0200Bnpt\u0B22\u0B28\u0B37\u0B3Areak;\u6060BreakingSpace;\u40A0f;\u6115\u0680;CDEGHLNPRSTV\u0B55\u0B56\u0B6A\u0B7C\u0BA1\u0BEB\u0C04\u0C5E\u0C84\u0CA6\u0CD8\u0D61\u0D85\u6AEC\u0100ou\u0B5B\u0B64ngruent;\u6262pCap;\u626DoubleVerticalBar;\u6226\u0180lqx\u0B83\u0B8A\u0B9Bement;\u6209ual\u0100;T\u0B92\u0B93\u6260ilde;\uC000\u2242\u0338ists;\u6204reater\u0380;EFGLST\u0BB6\u0BB7\u0BBD\u0BC9\u0BD3\u0BD8\u0BE5\u626Fqual;\u6271ullEqual;\uC000\u2267\u0338reater;\uC000\u226B\u0338ess;\u6279lantEqual;\uC000\u2A7E\u0338ilde;\u6275ump\u0144\u0BF2\u0BFDownHump;\uC000\u224E\u0338qual;\uC000\u224F\u0338e\u0100fs\u0C0A\u0C27tTriangle\u0180;BE\u0C1A\u0C1B\u0C21\u62EAar;\uC000\u29CF\u0338qual;\u62ECs\u0300;EGLST\u0C35\u0C36\u0C3C\u0C44\u0C4B\u0C58\u626Equal;\u6270reater;\u6278ess;\uC000\u226A\u0338lantEqual;\uC000\u2A7D\u0338ilde;\u6274ested\u0100GL\u0C68\u0C79reaterGreater;\uC000\u2AA2\u0338essLess;\uC000\u2AA1\u0338recedes\u0180;ES\u0C92\u0C93\u0C9B\u6280qual;\uC000\u2AAF\u0338lantEqual;\u62E0\u0100ei\u0CAB\u0CB9verseElement;\u620CghtTriangle\u0180;BE\u0CCB\u0CCC\u0CD2\u62EBar;\uC000\u29D0\u0338qual;\u62ED\u0100qu\u0CDD\u0D0CuareSu\u0100bp\u0CE8\u0CF9set\u0100;E\u0CF0\u0CF3\uC000\u228F\u0338qual;\u62E2erset\u0100;E\u0D03\u0D06\uC000\u2290\u0338qual;\u62E3\u0180bcp\u0D13\u0D24\u0D4Eset\u0100;E\u0D1B\u0D1E\uC000\u2282\u20D2qual;\u6288ceeds\u0200;EST\u0D32\u0D33\u0D3B\u0D46\u6281qual;\uC000\u2AB0\u0338lantEqual;\u62E1ilde;\uC000\u227F\u0338erset\u0100;E\u0D58\u0D5B\uC000\u2283\u20D2qual;\u6289ilde\u0200;EFT\u0D6E\u0D6F\u0D75\u0D7F\u6241qual;\u6244ullEqual;\u6247ilde;\u6249erticalBar;\u6224cr;\uC000\u{1D4A9}ilde\u803B\xD1\u40D1;\u439D\u0700Eacdfgmoprstuv\u0DBD\u0DC2\u0DC9\u0DD5\u0DDB\u0DE0\u0DE7\u0DFC\u0E02\u0E20\u0E22\u0E32\u0E3F\u0E44lig;\u4152cute\u803B\xD3\u40D3\u0100iy\u0DCE\u0DD3rc\u803B\xD4\u40D4;\u441Eblac;\u4150r;\uC000\u{1D512}rave\u803B\xD2\u40D2\u0180aei\u0DEE\u0DF2\u0DF6cr;\u414Cga;\u43A9cron;\u439Fpf;\uC000\u{1D546}enCurly\u0100DQ\u0E0E\u0E1AoubleQuote;\u601Cuote;\u6018;\u6A54\u0100cl\u0E27\u0E2Cr;\uC000\u{1D4AA}ash\u803B\xD8\u40D8i\u016C\u0E37\u0E3Cde\u803B\xD5\u40D5es;\u6A37ml\u803B\xD6\u40D6er\u0100BP\u0E4B\u0E60\u0100ar\u0E50\u0E53r;\u603Eac\u0100ek\u0E5A\u0E5C;\u63DEet;\u63B4arenthesis;\u63DC\u0480acfhilors\u0E7F\u0E87\u0E8A\u0E8F\u0E92\u0E94\u0E9D\u0EB0\u0EFCrtialD;\u6202y;\u441Fr;\uC000\u{1D513}i;\u43A6;\u43A0usMinus;\u40B1\u0100ip\u0EA2\u0EADncareplan\xE5\u069Df;\u6119\u0200;eio\u0EB9\u0EBA\u0EE0\u0EE4\u6ABBcedes\u0200;EST\u0EC8\u0EC9\u0ECF\u0EDA\u627Aqual;\u6AAFlantEqual;\u627Cilde;\u627Eme;\u6033\u0100dp\u0EE9\u0EEEuct;\u620Fortion\u0100;a\u0225\u0EF9l;\u621D\u0100ci\u0F01\u0F06r;\uC000\u{1D4AB};\u43A8\u0200Ufos\u0F11\u0F16\u0F1B\u0F1FOT\u803B"\u4022r;\uC000\u{1D514}pf;\u611Acr;\uC000\u{1D4AC}\u0600BEacefhiorsu\u0F3E\u0F43\u0F47\u0F60\u0F73\u0FA7\u0FAA\u0FAD\u1096\u10A9\u10B4\u10BEarr;\u6910G\u803B\xAE\u40AE\u0180cnr\u0F4E\u0F53\u0F56ute;\u4154g;\u67EBr\u0100;t\u0F5C\u0F5D\u61A0l;\u6916\u0180aey\u0F67\u0F6C\u0F71ron;\u4158dil;\u4156;\u4420\u0100;v\u0F78\u0F79\u611Cerse\u0100EU\u0F82\u0F99\u0100lq\u0F87\u0F8Eement;\u620Builibrium;\u61CBpEquilibrium;\u696Fr\xBB\u0F79o;\u43A1ght\u0400ACDFTUVa\u0FC1\u0FEB\u0FF3\u1022\u1028\u105B\u1087\u03D8\u0100nr\u0FC6\u0FD2gleBracket;\u67E9row\u0180;BL\u0FDC\u0FDD\u0FE1\u6192ar;\u61E5eftArrow;\u61C4eiling;\u6309o\u01F5\u0FF9\0\u1005bleBracket;\u67E7n\u01D4\u100A\0\u1014eeVector;\u695Dector\u0100;B\u101D\u101E\u61C2ar;\u6955loor;\u630B\u0100er\u102D\u1043e\u0180;AV\u1035\u1036\u103C\u62A2rrow;\u61A6ector;\u695Biangle\u0180;BE\u1050\u1051\u1055\u62B3ar;\u69D0qual;\u62B5p\u0180DTV\u1063\u106E\u1078ownVector;\u694FeeVector;\u695Cector\u0100;B\u1082\u1083\u61BEar;\u6954ector\u0100;B\u1091\u1092\u61C0ar;\u6953\u0100pu\u109B\u109Ef;\u611DndImplies;\u6970ightarrow;\u61DB\u0100ch\u10B9\u10BCr;\u611B;\u61B1leDelayed;\u69F4\u0680HOacfhimoqstu\u10E4\u10F1\u10F7\u10FD\u1119\u111E\u1151\u1156\u1161\u1167\u11B5\u11BB\u11BF\u0100Cc\u10E9\u10EEHcy;\u4429y;\u4428FTcy;\u442Ccute;\u415A\u0280;aeiy\u1108\u1109\u110E\u1113\u1117\u6ABCron;\u4160dil;\u415Erc;\u415C;\u4421r;\uC000\u{1D516}ort\u0200DLRU\u112A\u1134\u113E\u1149ownArrow\xBB\u041EeftArrow\xBB\u089AightArrow\xBB\u0FDDpArrow;\u6191gma;\u43A3allCircle;\u6218pf;\uC000\u{1D54A}\u0272\u116D\0\0\u1170t;\u621Aare\u0200;ISU\u117B\u117C\u1189\u11AF\u65A1ntersection;\u6293u\u0100bp\u118F\u119Eset\u0100;E\u1197\u1198\u628Fqual;\u6291erset\u0100;E\u11A8\u11A9\u6290qual;\u6292nion;\u6294cr;\uC000\u{1D4AE}ar;\u62C6\u0200bcmp\u11C8\u11DB\u1209\u120B\u0100;s\u11CD\u11CE\u62D0et\u0100;E\u11CD\u11D5qual;\u6286\u0100ch\u11E0\u1205eeds\u0200;EST\u11ED\u11EE\u11F4\u11FF\u627Bqual;\u6AB0lantEqual;\u627Dilde;\u627FTh\xE1\u0F8C;\u6211\u0180;es\u1212\u1213\u1223\u62D1rset\u0100;E\u121C\u121D\u6283qual;\u6287et\xBB\u1213\u0580HRSacfhiors\u123E\u1244\u1249\u1255\u125E\u1271\u1276\u129F\u12C2\u12C8\u12D1ORN\u803B\xDE\u40DEADE;\u6122\u0100Hc\u124E\u1252cy;\u440By;\u4426\u0100bu\u125A\u125C;\u4009;\u43A4\u0180aey\u1265\u126A\u126Fron;\u4164dil;\u4162;\u4422r;\uC000\u{1D517}\u0100ei\u127B\u1289\u01F2\u1280\0\u1287efore;\u6234a;\u4398\u0100cn\u128E\u1298kSpace;\uC000\u205F\u200ASpace;\u6009lde\u0200;EFT\u12AB\u12AC\u12B2\u12BC\u623Cqual;\u6243ullEqual;\u6245ilde;\u6248pf;\uC000\u{1D54B}ipleDot;\u60DB\u0100ct\u12D6\u12DBr;\uC000\u{1D4AF}rok;\u4166\u0AE1\u12F7\u130E\u131A\u1326\0\u132C\u1331\0\0\0\0\0\u1338\u133D\u1377\u1385\0\u13FF\u1404\u140A\u1410\u0100cr\u12FB\u1301ute\u803B\xDA\u40DAr\u0100;o\u1307\u1308\u619Fcir;\u6949r\u01E3\u1313\0\u1316y;\u440Eve;\u416C\u0100iy\u131E\u1323rc\u803B\xDB\u40DB;\u4423blac;\u4170r;\uC000\u{1D518}rave\u803B\xD9\u40D9acr;\u416A\u0100di\u1341\u1369er\u0100BP\u1348\u135D\u0100ar\u134D\u1350r;\u405Fac\u0100ek\u1357\u1359;\u63DFet;\u63B5arenthesis;\u63DDon\u0100;P\u1370\u1371\u62C3lus;\u628E\u0100gp\u137B\u137Fon;\u4172f;\uC000\u{1D54C}\u0400ADETadps\u1395\u13AE\u13B8\u13C4\u03E8\u13D2\u13D7\u13F3rrow\u0180;BD\u1150\u13A0\u13A4ar;\u6912ownArrow;\u61C5ownArrow;\u6195quilibrium;\u696Eee\u0100;A\u13CB\u13CC\u62A5rrow;\u61A5own\xE1\u03F3er\u0100LR\u13DE\u13E8eftArrow;\u6196ightArrow;\u6197i\u0100;l\u13F9\u13FA\u43D2on;\u43A5ing;\u416Ecr;\uC000\u{1D4B0}ilde;\u4168ml\u803B\xDC\u40DC\u0480Dbcdefosv\u1427\u142C\u1430\u1433\u143E\u1485\u148A\u1490\u1496ash;\u62ABar;\u6AEBy;\u4412ash\u0100;l\u143B\u143C\u62A9;\u6AE6\u0100er\u1443\u1445;\u62C1\u0180bty\u144C\u1450\u147Aar;\u6016\u0100;i\u144F\u1455cal\u0200BLST\u1461\u1465\u146A\u1474ar;\u6223ine;\u407Ceparator;\u6758ilde;\u6240ThinSpace;\u600Ar;\uC000\u{1D519}pf;\uC000\u{1D54D}cr;\uC000\u{1D4B1}dash;\u62AA\u0280cefos\u14A7\u14AC\u14B1\u14B6\u14BCirc;\u4174dge;\u62C0r;\uC000\u{1D51A}pf;\uC000\u{1D54E}cr;\uC000\u{1D4B2}\u0200fios\u14CB\u14D0\u14D2\u14D8r;\uC000\u{1D51B};\u439Epf;\uC000\u{1D54F}cr;\uC000\u{1D4B3}\u0480AIUacfosu\u14F1\u14F5\u14F9\u14FD\u1504\u150F\u1514\u151A\u1520cy;\u442Fcy;\u4407cy;\u442Ecute\u803B\xDD\u40DD\u0100iy\u1509\u150Drc;\u4176;\u442Br;\uC000\u{1D51C}pf;\uC000\u{1D550}cr;\uC000\u{1D4B4}ml;\u4178\u0400Hacdefos\u1535\u1539\u153F\u154B\u154F\u155D\u1560\u1564cy;\u4416cute;\u4179\u0100ay\u1544\u1549ron;\u417D;\u4417ot;\u417B\u01F2\u1554\0\u155BoWidt\xE8\u0AD9a;\u4396r;\u6128pf;\u6124cr;\uC000\u{1D4B5}\u0BE1\u1583\u158A\u1590\0\u15B0\u15B6\u15BF\0\0\0\0\u15C6\u15DB\u15EB\u165F\u166D\0\u1695\u169B\u16B2\u16B9\0\u16BEcute\u803B\xE1\u40E1reve;\u4103\u0300;Ediuy\u159C\u159D\u15A1\u15A3\u15A8\u15AD\u623E;\uC000\u223E\u0333;\u623Frc\u803B\xE2\u40E2te\u80BB\xB4\u0306;\u4430lig\u803B\xE6\u40E6\u0100;r\xB2\u15BA;\uC000\u{1D51E}rave\u803B\xE0\u40E0\u0100ep\u15CA\u15D6\u0100fp\u15CF\u15D4sym;\u6135\xE8\u15D3ha;\u43B1\u0100ap\u15DFc\u0100cl\u15E4\u15E7r;\u4101g;\u6A3F\u0264\u15F0\0\0\u160A\u0280;adsv\u15FA\u15FB\u15FF\u1601\u1607\u6227nd;\u6A55;\u6A5Clope;\u6A58;\u6A5A\u0380;elmrsz\u1618\u1619\u161B\u161E\u163F\u164F\u1659\u6220;\u69A4e\xBB\u1619sd\u0100;a\u1625\u1626\u6221\u0461\u1630\u1632\u1634\u1636\u1638\u163A\u163C\u163E;\u69A8;\u69A9;\u69AA;\u69AB;\u69AC;\u69AD;\u69AE;\u69AFt\u0100;v\u1645\u1646\u621Fb\u0100;d\u164C\u164D\u62BE;\u699D\u0100pt\u1654\u1657h;\u6222\xBB\xB9arr;\u637C\u0100gp\u1663\u1667on;\u4105f;\uC000\u{1D552}\u0380;Eaeiop\u12C1\u167B\u167D\u1682\u1684\u1687\u168A;\u6A70cir;\u6A6F;\u624Ad;\u624Bs;\u4027rox\u0100;e\u12C1\u1692\xF1\u1683ing\u803B\xE5\u40E5\u0180cty\u16A1\u16A6\u16A8r;\uC000\u{1D4B6};\u402Amp\u0100;e\u12C1\u16AF\xF1\u0288ilde\u803B\xE3\u40E3ml\u803B\xE4\u40E4\u0100ci\u16C2\u16C8onin\xF4\u0272nt;\u6A11\u0800Nabcdefiklnoprsu\u16ED\u16F1\u1730\u173C\u1743\u1748\u1778\u177D\u17E0\u17E6\u1839\u1850\u170D\u193D\u1948\u1970ot;\u6AED\u0100cr\u16F6\u171Ek\u0200ceps\u1700\u1705\u170D\u1713ong;\u624Cpsilon;\u43F6rime;\u6035im\u0100;e\u171A\u171B\u623Dq;\u62CD\u0176\u1722\u1726ee;\u62BDed\u0100;g\u172C\u172D\u6305e\xBB\u172Drk\u0100;t\u135C\u1737brk;\u63B6\u0100oy\u1701\u1741;\u4431quo;\u601E\u0280cmprt\u1753\u175B\u1761\u1764\u1768aus\u0100;e\u010A\u0109ptyv;\u69B0s\xE9\u170Cno\xF5\u0113\u0180ahw\u176F\u1771\u1773;\u43B2;\u6136een;\u626Cr;\uC000\u{1D51F}g\u0380costuvw\u178D\u179D\u17B3\u17C1\u17D5\u17DB\u17DE\u0180aiu\u1794\u1796\u179A\xF0\u0760rc;\u65EFp\xBB\u1371\u0180dpt\u17A4\u17A8\u17ADot;\u6A00lus;\u6A01imes;\u6A02\u0271\u17B9\0\0\u17BEcup;\u6A06ar;\u6605riangle\u0100du\u17CD\u17D2own;\u65BDp;\u65B3plus;\u6A04e\xE5\u1444\xE5\u14ADarow;\u690D\u0180ako\u17ED\u1826\u1835\u0100cn\u17F2\u1823k\u0180lst\u17FA\u05AB\u1802ozenge;\u69EBriangle\u0200;dlr\u1812\u1813\u1818\u181D\u65B4own;\u65BEeft;\u65C2ight;\u65B8k;\u6423\u01B1\u182B\0\u1833\u01B2\u182F\0\u1831;\u6592;\u65914;\u6593ck;\u6588\u0100eo\u183E\u184D\u0100;q\u1843\u1846\uC000=\u20E5uiv;\uC000\u2261\u20E5t;\u6310\u0200ptwx\u1859\u185E\u1867\u186Cf;\uC000\u{1D553}\u0100;t\u13CB\u1863om\xBB\u13CCtie;\u62C8\u0600DHUVbdhmptuv\u1885\u1896\u18AA\u18BB\u18D7\u18DB\u18EC\u18FF\u1905\u190A\u1910\u1921\u0200LRlr\u188E\u1890\u1892\u1894;\u6557;\u6554;\u6556;\u6553\u0280;DUdu\u18A1\u18A2\u18A4\u18A6\u18A8\u6550;\u6566;\u6569;\u6564;\u6567\u0200LRlr\u18B3\u18B5\u18B7\u18B9;\u655D;\u655A;\u655C;\u6559\u0380;HLRhlr\u18CA\u18CB\u18CD\u18CF\u18D1\u18D3\u18D5\u6551;\u656C;\u6563;\u6560;\u656B;\u6562;\u655Fox;\u69C9\u0200LRlr\u18E4\u18E6\u18E8\u18EA;\u6555;\u6552;\u6510;\u650C\u0280;DUdu\u06BD\u18F7\u18F9\u18FB\u18FD;\u6565;\u6568;\u652C;\u6534inus;\u629Flus;\u629Eimes;\u62A0\u0200LRlr\u1919\u191B\u191D\u191F;\u655B;\u6558;\u6518;\u6514\u0380;HLRhlr\u1930\u1931\u1933\u1935\u1937\u1939\u193B\u6502;\u656A;\u6561;\u655E;\u653C;\u6524;\u651C\u0100ev\u0123\u1942bar\u803B\xA6\u40A6\u0200ceio\u1951\u1956\u195A\u1960r;\uC000\u{1D4B7}mi;\u604Fm\u0100;e\u171A\u171Cl\u0180;bh\u1968\u1969\u196B\u405C;\u69C5sub;\u67C8\u016C\u1974\u197El\u0100;e\u1979\u197A\u6022t\xBB\u197Ap\u0180;Ee\u012F\u1985\u1987;\u6AAE\u0100;q\u06DC\u06DB\u0CE1\u19A7\0\u19E8\u1A11\u1A15\u1A32\0\u1A37\u1A50\0\0\u1AB4\0\0\u1AC1\0\0\u1B21\u1B2E\u1B4D\u1B52\0\u1BFD\0\u1C0C\u0180cpr\u19AD\u19B2\u19DDute;\u4107\u0300;abcds\u19BF\u19C0\u19C4\u19CA\u19D5\u19D9\u6229nd;\u6A44rcup;\u6A49\u0100au\u19CF\u19D2p;\u6A4Bp;\u6A47ot;\u6A40;\uC000\u2229\uFE00\u0100eo\u19E2\u19E5t;\u6041\xEE\u0693\u0200aeiu\u19F0\u19FB\u1A01\u1A05\u01F0\u19F5\0\u19F8s;\u6A4Don;\u410Ddil\u803B\xE7\u40E7rc;\u4109ps\u0100;s\u1A0C\u1A0D\u6A4Cm;\u6A50ot;\u410B\u0180dmn\u1A1B\u1A20\u1A26il\u80BB\xB8\u01ADptyv;\u69B2t\u8100\xA2;e\u1A2D\u1A2E\u40A2r\xE4\u01B2r;\uC000\u{1D520}\u0180cei\u1A3D\u1A40\u1A4Dy;\u4447ck\u0100;m\u1A47\u1A48\u6713ark\xBB\u1A48;\u43C7r\u0380;Ecefms\u1A5F\u1A60\u1A62\u1A6B\u1AA4\u1AAA\u1AAE\u65CB;\u69C3\u0180;el\u1A69\u1A6A\u1A6D\u42C6q;\u6257e\u0261\u1A74\0\0\u1A88rrow\u0100lr\u1A7C\u1A81eft;\u61BAight;\u61BB\u0280RSacd\u1A92\u1A94\u1A96\u1A9A\u1A9F\xBB\u0F47;\u64C8st;\u629Birc;\u629Aash;\u629Dnint;\u6A10id;\u6AEFcir;\u69C2ubs\u0100;u\u1ABB\u1ABC\u6663it\xBB\u1ABC\u02EC\u1AC7\u1AD4\u1AFA\0\u1B0Aon\u0100;e\u1ACD\u1ACE\u403A\u0100;q\xC7\xC6\u026D\u1AD9\0\0\u1AE2a\u0100;t\u1ADE\u1ADF\u402C;\u4040\u0180;fl\u1AE8\u1AE9\u1AEB\u6201\xEE\u1160e\u0100mx\u1AF1\u1AF6ent\xBB\u1AE9e\xF3\u024D\u01E7\u1AFE\0\u1B07\u0100;d\u12BB\u1B02ot;\u6A6Dn\xF4\u0246\u0180fry\u1B10\u1B14\u1B17;\uC000\u{1D554}o\xE4\u0254\u8100\xA9;s\u0155\u1B1Dr;\u6117\u0100ao\u1B25\u1B29rr;\u61B5ss;\u6717\u0100cu\u1B32\u1B37r;\uC000\u{1D4B8}\u0100bp\u1B3C\u1B44\u0100;e\u1B41\u1B42\u6ACF;\u6AD1\u0100;e\u1B49\u1B4A\u6AD0;\u6AD2dot;\u62EF\u0380delprvw\u1B60\u1B6C\u1B77\u1B82\u1BAC\u1BD4\u1BF9arr\u0100lr\u1B68\u1B6A;\u6938;\u6935\u0270\u1B72\0\0\u1B75r;\u62DEc;\u62DFarr\u0100;p\u1B7F\u1B80\u61B6;\u693D\u0300;bcdos\u1B8F\u1B90\u1B96\u1BA1\u1BA5\u1BA8\u622Arcap;\u6A48\u0100au\u1B9B\u1B9Ep;\u6A46p;\u6A4Aot;\u628Dr;\u6A45;\uC000\u222A\uFE00\u0200alrv\u1BB5\u1BBF\u1BDE\u1BE3rr\u0100;m\u1BBC\u1BBD\u61B7;\u693Cy\u0180evw\u1BC7\u1BD4\u1BD8q\u0270\u1BCE\0\0\u1BD2re\xE3\u1B73u\xE3\u1B75ee;\u62CEedge;\u62CFen\u803B\xA4\u40A4earrow\u0100lr\u1BEE\u1BF3eft\xBB\u1B80ight\xBB\u1BBDe\xE4\u1BDD\u0100ci\u1C01\u1C07onin\xF4\u01F7nt;\u6231lcty;\u632D\u0980AHabcdefhijlorstuwz\u1C38\u1C3B\u1C3F\u1C5D\u1C69\u1C75\u1C8A\u1C9E\u1CAC\u1CB7\u1CFB\u1CFF\u1D0D\u1D7B\u1D91\u1DAB\u1DBB\u1DC6\u1DCDr\xF2\u0381ar;\u6965\u0200glrs\u1C48\u1C4D\u1C52\u1C54ger;\u6020eth;\u6138\xF2\u1133h\u0100;v\u1C5A\u1C5B\u6010\xBB\u090A\u016B\u1C61\u1C67arow;\u690Fa\xE3\u0315\u0100ay\u1C6E\u1C73ron;\u410F;\u4434\u0180;ao\u0332\u1C7C\u1C84\u0100gr\u02BF\u1C81r;\u61CAtseq;\u6A77\u0180glm\u1C91\u1C94\u1C98\u803B\xB0\u40B0ta;\u43B4ptyv;\u69B1\u0100ir\u1CA3\u1CA8sht;\u697F;\uC000\u{1D521}ar\u0100lr\u1CB3\u1CB5\xBB\u08DC\xBB\u101E\u0280aegsv\u1CC2\u0378\u1CD6\u1CDC\u1CE0m\u0180;os\u0326\u1CCA\u1CD4nd\u0100;s\u0326\u1CD1uit;\u6666amma;\u43DDin;\u62F2\u0180;io\u1CE7\u1CE8\u1CF8\u40F7de\u8100\xF7;o\u1CE7\u1CF0ntimes;\u62C7n\xF8\u1CF7cy;\u4452c\u026F\u1D06\0\0\u1D0Arn;\u631Eop;\u630D\u0280lptuw\u1D18\u1D1D\u1D22\u1D49\u1D55lar;\u4024f;\uC000\u{1D555}\u0280;emps\u030B\u1D2D\u1D37\u1D3D\u1D42q\u0100;d\u0352\u1D33ot;\u6251inus;\u6238lus;\u6214quare;\u62A1blebarwedg\xE5\xFAn\u0180adh\u112E\u1D5D\u1D67ownarrow\xF3\u1C83arpoon\u0100lr\u1D72\u1D76ef\xF4\u1CB4igh\xF4\u1CB6\u0162\u1D7F\u1D85karo\xF7\u0F42\u026F\u1D8A\0\0\u1D8Ern;\u631Fop;\u630C\u0180cot\u1D98\u1DA3\u1DA6\u0100ry\u1D9D\u1DA1;\uC000\u{1D4B9};\u4455l;\u69F6rok;\u4111\u0100dr\u1DB0\u1DB4ot;\u62F1i\u0100;f\u1DBA\u1816\u65BF\u0100ah\u1DC0\u1DC3r\xF2\u0429a\xF2\u0FA6angle;\u69A6\u0100ci\u1DD2\u1DD5y;\u445Fgrarr;\u67FF\u0900Dacdefglmnopqrstux\u1E01\u1E09\u1E19\u1E38\u0578\u1E3C\u1E49\u1E61\u1E7E\u1EA5\u1EAF\u1EBD\u1EE1\u1F2A\u1F37\u1F44\u1F4E\u1F5A\u0100Do\u1E06\u1D34o\xF4\u1C89\u0100cs\u1E0E\u1E14ute\u803B\xE9\u40E9ter;\u6A6E\u0200aioy\u1E22\u1E27\u1E31\u1E36ron;\u411Br\u0100;c\u1E2D\u1E2E\u6256\u803B\xEA\u40EAlon;\u6255;\u444Dot;\u4117\u0100Dr\u1E41\u1E45ot;\u6252;\uC000\u{1D522}\u0180;rs\u1E50\u1E51\u1E57\u6A9Aave\u803B\xE8\u40E8\u0100;d\u1E5C\u1E5D\u6A96ot;\u6A98\u0200;ils\u1E6A\u1E6B\u1E72\u1E74\u6A99nters;\u63E7;\u6113\u0100;d\u1E79\u1E7A\u6A95ot;\u6A97\u0180aps\u1E85\u1E89\u1E97cr;\u4113ty\u0180;sv\u1E92\u1E93\u1E95\u6205et\xBB\u1E93p\u01001;\u1E9D\u1EA4\u0133\u1EA1\u1EA3;\u6004;\u6005\u6003\u0100gs\u1EAA\u1EAC;\u414Bp;\u6002\u0100gp\u1EB4\u1EB8on;\u4119f;\uC000\u{1D556}\u0180als\u1EC4\u1ECE\u1ED2r\u0100;s\u1ECA\u1ECB\u62D5l;\u69E3us;\u6A71i\u0180;lv\u1EDA\u1EDB\u1EDF\u43B5on\xBB\u1EDB;\u43F5\u0200csuv\u1EEA\u1EF3\u1F0B\u1F23\u0100io\u1EEF\u1E31rc\xBB\u1E2E\u0269\u1EF9\0\0\u1EFB\xED\u0548ant\u0100gl\u1F02\u1F06tr\xBB\u1E5Dess\xBB\u1E7A\u0180aei\u1F12\u1F16\u1F1Als;\u403Dst;\u625Fv\u0100;D\u0235\u1F20D;\u6A78parsl;\u69E5\u0100Da\u1F2F\u1F33ot;\u6253rr;\u6971\u0180cdi\u1F3E\u1F41\u1EF8r;\u612Fo\xF4\u0352\u0100ah\u1F49\u1F4B;\u43B7\u803B\xF0\u40F0\u0100mr\u1F53\u1F57l\u803B\xEB\u40EBo;\u60AC\u0180cip\u1F61\u1F64\u1F67l;\u4021s\xF4\u056E\u0100eo\u1F6C\u1F74ctatio\xEE\u0559nential\xE5\u0579\u09E1\u1F92\0\u1F9E\0\u1FA1\u1FA7\0\0\u1FC6\u1FCC\0\u1FD3\0\u1FE6\u1FEA\u2000\0\u2008\u205Allingdotse\xF1\u1E44y;\u4444male;\u6640\u0180ilr\u1FAD\u1FB3\u1FC1lig;\u8000\uFB03\u0269\u1FB9\0\0\u1FBDg;\u8000\uFB00ig;\u8000\uFB04;\uC000\u{1D523}lig;\u8000\uFB01lig;\uC000fj\u0180alt\u1FD9\u1FDC\u1FE1t;\u666Dig;\u8000\uFB02ns;\u65B1of;\u4192\u01F0\u1FEE\0\u1FF3f;\uC000\u{1D557}\u0100ak\u05BF\u1FF7\u0100;v\u1FFC\u1FFD\u62D4;\u6AD9artint;\u6A0D\u0100ao\u200C\u2055\u0100cs\u2011\u2052\u03B1\u201A\u2030\u2038\u2045\u2048\0\u2050\u03B2\u2022\u2025\u2027\u202A\u202C\0\u202E\u803B\xBD\u40BD;\u6153\u803B\xBC\u40BC;\u6155;\u6159;\u615B\u01B3\u2034\0\u2036;\u6154;\u6156\u02B4\u203E\u2041\0\0\u2043\u803B\xBE\u40BE;\u6157;\u615C5;\u6158\u01B6\u204C\0\u204E;\u615A;\u615D8;\u615El;\u6044wn;\u6322cr;\uC000\u{1D4BB}\u0880Eabcdefgijlnorstv\u2082\u2089\u209F\u20A5\u20B0\u20B4\u20F0\u20F5\u20FA\u20FF\u2103\u2112\u2138\u0317\u213E\u2152\u219E\u0100;l\u064D\u2087;\u6A8C\u0180cmp\u2090\u2095\u209Dute;\u41F5ma\u0100;d\u209C\u1CDA\u43B3;\u6A86reve;\u411F\u0100iy\u20AA\u20AErc;\u411D;\u4433ot;\u4121\u0200;lqs\u063E\u0642\u20BD\u20C9\u0180;qs\u063E\u064C\u20C4lan\xF4\u0665\u0200;cdl\u0665\u20D2\u20D5\u20E5c;\u6AA9ot\u0100;o\u20DC\u20DD\u6A80\u0100;l\u20E2\u20E3\u6A82;\u6A84\u0100;e\u20EA\u20ED\uC000\u22DB\uFE00s;\u6A94r;\uC000\u{1D524}\u0100;g\u0673\u061Bmel;\u6137cy;\u4453\u0200;Eaj\u065A\u210C\u210E\u2110;\u6A92;\u6AA5;\u6AA4\u0200Eaes\u211B\u211D\u2129\u2134;\u6269p\u0100;p\u2123\u2124\u6A8Arox\xBB\u2124\u0100;q\u212E\u212F\u6A88\u0100;q\u212E\u211Bim;\u62E7pf;\uC000\u{1D558}\u0100ci\u2143\u2146r;\u610Am\u0180;el\u066B\u214E\u2150;\u6A8E;\u6A90\u8300>;cdlqr\u05EE\u2160\u216A\u216E\u2173\u2179\u0100ci\u2165\u2167;\u6AA7r;\u6A7Aot;\u62D7Par;\u6995uest;\u6A7C\u0280adels\u2184\u216A\u2190\u0656\u219B\u01F0\u2189\0\u218Epro\xF8\u209Er;\u6978q\u0100lq\u063F\u2196les\xF3\u2088i\xED\u066B\u0100en\u21A3\u21ADrtneqq;\uC000\u2269\uFE00\xC5\u21AA\u0500Aabcefkosy\u21C4\u21C7\u21F1\u21F5\u21FA\u2218\u221D\u222F\u2268\u227Dr\xF2\u03A0\u0200ilmr\u21D0\u21D4\u21D7\u21DBrs\xF0\u1484f\xBB\u2024il\xF4\u06A9\u0100dr\u21E0\u21E4cy;\u444A\u0180;cw\u08F4\u21EB\u21EFir;\u6948;\u61ADar;\u610Firc;\u4125\u0180alr\u2201\u220E\u2213rts\u0100;u\u2209\u220A\u6665it\xBB\u220Alip;\u6026con;\u62B9r;\uC000\u{1D525}s\u0100ew\u2223\u2229arow;\u6925arow;\u6926\u0280amopr\u223A\u223E\u2243\u225E\u2263rr;\u61FFtht;\u623Bk\u0100lr\u2249\u2253eftarrow;\u61A9ightarrow;\u61AAf;\uC000\u{1D559}bar;\u6015\u0180clt\u226F\u2274\u2278r;\uC000\u{1D4BD}as\xE8\u21F4rok;\u4127\u0100bp\u2282\u2287ull;\u6043hen\xBB\u1C5B\u0AE1\u22A3\0\u22AA\0\u22B8\u22C5\u22CE\0\u22D5\u22F3\0\0\u22F8\u2322\u2367\u2362\u237F\0\u2386\u23AA\u23B4cute\u803B\xED\u40ED\u0180;iy\u0771\u22B0\u22B5rc\u803B\xEE\u40EE;\u4438\u0100cx\u22BC\u22BFy;\u4435cl\u803B\xA1\u40A1\u0100fr\u039F\u22C9;\uC000\u{1D526}rave\u803B\xEC\u40EC\u0200;ino\u073E\u22DD\u22E9\u22EE\u0100in\u22E2\u22E6nt;\u6A0Ct;\u622Dfin;\u69DCta;\u6129lig;\u4133\u0180aop\u22FE\u231A\u231D\u0180cgt\u2305\u2308\u2317r;\u412B\u0180elp\u071F\u230F\u2313in\xE5\u078Ear\xF4\u0720h;\u4131f;\u62B7ed;\u41B5\u0280;cfot\u04F4\u232C\u2331\u233D\u2341are;\u6105in\u0100;t\u2338\u2339\u621Eie;\u69DDdo\xF4\u2319\u0280;celp\u0757\u234C\u2350\u235B\u2361al;\u62BA\u0100gr\u2355\u2359er\xF3\u1563\xE3\u234Darhk;\u6A17rod;\u6A3C\u0200cgpt\u236F\u2372\u2376\u237By;\u4451on;\u412Ff;\uC000\u{1D55A}a;\u43B9uest\u803B\xBF\u40BF\u0100ci\u238A\u238Fr;\uC000\u{1D4BE}n\u0280;Edsv\u04F4\u239B\u239D\u23A1\u04F3;\u62F9ot;\u62F5\u0100;v\u23A6\u23A7\u62F4;\u62F3\u0100;i\u0777\u23AElde;\u4129\u01EB\u23B8\0\u23BCcy;\u4456l\u803B\xEF\u40EF\u0300cfmosu\u23CC\u23D7\u23DC\u23E1\u23E7\u23F5\u0100iy\u23D1\u23D5rc;\u4135;\u4439r;\uC000\u{1D527}ath;\u4237pf;\uC000\u{1D55B}\u01E3\u23EC\0\u23F1r;\uC000\u{1D4BF}rcy;\u4458kcy;\u4454\u0400acfghjos\u240B\u2416\u2422\u2427\u242D\u2431\u2435\u243Bppa\u0100;v\u2413\u2414\u43BA;\u43F0\u0100ey\u241B\u2420dil;\u4137;\u443Ar;\uC000\u{1D528}reen;\u4138cy;\u4445cy;\u445Cpf;\uC000\u{1D55C}cr;\uC000\u{1D4C0}\u0B80ABEHabcdefghjlmnoprstuv\u2470\u2481\u2486\u248D\u2491\u250E\u253D\u255A\u2580\u264E\u265E\u2665\u2679\u267D\u269A\u26B2\u26D8\u275D\u2768\u278B\u27C0\u2801\u2812\u0180art\u2477\u247A\u247Cr\xF2\u09C6\xF2\u0395ail;\u691Barr;\u690E\u0100;g\u0994\u248B;\u6A8Bar;\u6962\u0963\u24A5\0\u24AA\0\u24B1\0\0\0\0\0\u24B5\u24BA\0\u24C6\u24C8\u24CD\0\u24F9ute;\u413Amptyv;\u69B4ra\xEE\u084Cbda;\u43BBg\u0180;dl\u088E\u24C1\u24C3;\u6991\xE5\u088E;\u6A85uo\u803B\xAB\u40ABr\u0400;bfhlpst\u0899\u24DE\u24E6\u24E9\u24EB\u24EE\u24F1\u24F5\u0100;f\u089D\u24E3s;\u691Fs;\u691D\xEB\u2252p;\u61ABl;\u6939im;\u6973l;\u61A2\u0180;ae\u24FF\u2500\u2504\u6AABil;\u6919\u0100;s\u2509\u250A\u6AAD;\uC000\u2AAD\uFE00\u0180abr\u2515\u2519\u251Drr;\u690Crk;\u6772\u0100ak\u2522\u252Cc\u0100ek\u2528\u252A;\u407B;\u405B\u0100es\u2531\u2533;\u698Bl\u0100du\u2539\u253B;\u698F;\u698D\u0200aeuy\u2546\u254B\u2556\u2558ron;\u413E\u0100di\u2550\u2554il;\u413C\xEC\u08B0\xE2\u2529;\u443B\u0200cqrs\u2563\u2566\u256D\u257Da;\u6936uo\u0100;r\u0E19\u1746\u0100du\u2572\u2577har;\u6967shar;\u694Bh;\u61B2\u0280;fgqs\u258B\u258C\u0989\u25F3\u25FF\u6264t\u0280ahlrt\u2598\u25A4\u25B7\u25C2\u25E8rrow\u0100;t\u0899\u25A1a\xE9\u24F6arpoon\u0100du\u25AF\u25B4own\xBB\u045Ap\xBB\u0966eftarrows;\u61C7ight\u0180ahs\u25CD\u25D6\u25DErrow\u0100;s\u08F4\u08A7arpoon\xF3\u0F98quigarro\xF7\u21F0hreetimes;\u62CB\u0180;qs\u258B\u0993\u25FAlan\xF4\u09AC\u0280;cdgs\u09AC\u260A\u260D\u261D\u2628c;\u6AA8ot\u0100;o\u2614\u2615\u6A7F\u0100;r\u261A\u261B\u6A81;\u6A83\u0100;e\u2622\u2625\uC000\u22DA\uFE00s;\u6A93\u0280adegs\u2633\u2639\u263D\u2649\u264Bppro\xF8\u24C6ot;\u62D6q\u0100gq\u2643\u2645\xF4\u0989gt\xF2\u248C\xF4\u099Bi\xED\u09B2\u0180ilr\u2655\u08E1\u265Asht;\u697C;\uC000\u{1D529}\u0100;E\u099C\u2663;\u6A91\u0161\u2669\u2676r\u0100du\u25B2\u266E\u0100;l\u0965\u2673;\u696Alk;\u6584cy;\u4459\u0280;acht\u0A48\u2688\u268B\u2691\u2696r\xF2\u25C1orne\xF2\u1D08ard;\u696Bri;\u65FA\u0100io\u269F\u26A4dot;\u4140ust\u0100;a\u26AC\u26AD\u63B0che\xBB\u26AD\u0200Eaes\u26BB\u26BD\u26C9\u26D4;\u6268p\u0100;p\u26C3\u26C4\u6A89rox\xBB\u26C4\u0100;q\u26CE\u26CF\u6A87\u0100;q\u26CE\u26BBim;\u62E6\u0400abnoptwz\u26E9\u26F4\u26F7\u271A\u272F\u2741\u2747\u2750\u0100nr\u26EE\u26F1g;\u67ECr;\u61FDr\xEB\u08C1g\u0180lmr\u26FF\u270D\u2714eft\u0100ar\u09E6\u2707ight\xE1\u09F2apsto;\u67FCight\xE1\u09FDparrow\u0100lr\u2725\u2729ef\xF4\u24EDight;\u61AC\u0180afl\u2736\u2739\u273Dr;\u6985;\uC000\u{1D55D}us;\u6A2Dimes;\u6A34\u0161\u274B\u274Fst;\u6217\xE1\u134E\u0180;ef\u2757\u2758\u1800\u65CAnge\xBB\u2758ar\u0100;l\u2764\u2765\u4028t;\u6993\u0280achmt\u2773\u2776\u277C\u2785\u2787r\xF2\u08A8orne\xF2\u1D8Car\u0100;d\u0F98\u2783;\u696D;\u600Eri;\u62BF\u0300achiqt\u2798\u279D\u0A40\u27A2\u27AE\u27BBquo;\u6039r;\uC000\u{1D4C1}m\u0180;eg\u09B2\u27AA\u27AC;\u6A8D;\u6A8F\u0100bu\u252A\u27B3o\u0100;r\u0E1F\u27B9;\u601Arok;\u4142\u8400<;cdhilqr\u082B\u27D2\u2639\u27DC\u27E0\u27E5\u27EA\u27F0\u0100ci\u27D7\u27D9;\u6AA6r;\u6A79re\xE5\u25F2mes;\u62C9arr;\u6976uest;\u6A7B\u0100Pi\u27F5\u27F9ar;\u6996\u0180;ef\u2800\u092D\u181B\u65C3r\u0100du\u2807\u280Dshar;\u694Ahar;\u6966\u0100en\u2817\u2821rtneqq;\uC000\u2268\uFE00\xC5\u281E\u0700Dacdefhilnopsu\u2840\u2845\u2882\u288E\u2893\u28A0\u28A5\u28A8\u28DA\u28E2\u28E4\u0A83\u28F3\u2902Dot;\u623A\u0200clpr\u284E\u2852\u2863\u287Dr\u803B\xAF\u40AF\u0100et\u2857\u2859;\u6642\u0100;e\u285E\u285F\u6720se\xBB\u285F\u0100;s\u103B\u2868to\u0200;dlu\u103B\u2873\u2877\u287Bow\xEE\u048Cef\xF4\u090F\xF0\u13D1ker;\u65AE\u0100oy\u2887\u288Cmma;\u6A29;\u443Cash;\u6014asuredangle\xBB\u1626r;\uC000\u{1D52A}o;\u6127\u0180cdn\u28AF\u28B4\u28C9ro\u803B\xB5\u40B5\u0200;acd\u1464\u28BD\u28C0\u28C4s\xF4\u16A7ir;\u6AF0ot\u80BB\xB7\u01B5us\u0180;bd\u28D2\u1903\u28D3\u6212\u0100;u\u1D3C\u28D8;\u6A2A\u0163\u28DE\u28E1p;\u6ADB\xF2\u2212\xF0\u0A81\u0100dp\u28E9\u28EEels;\u62A7f;\uC000\u{1D55E}\u0100ct\u28F8\u28FDr;\uC000\u{1D4C2}pos\xBB\u159D\u0180;lm\u2909\u290A\u290D\u43BCtimap;\u62B8\u0C00GLRVabcdefghijlmoprstuvw\u2942\u2953\u297E\u2989\u2998\u29DA\u29E9\u2A15\u2A1A\u2A58\u2A5D\u2A83\u2A95\u2AA4\u2AA8\u2B04\u2B07\u2B44\u2B7F\u2BAE\u2C34\u2C67\u2C7C\u2CE9\u0100gt\u2947\u294B;\uC000\u22D9\u0338\u0100;v\u2950\u0BCF\uC000\u226B\u20D2\u0180elt\u295A\u2972\u2976ft\u0100ar\u2961\u2967rrow;\u61CDightarrow;\u61CE;\uC000\u22D8\u0338\u0100;v\u297B\u0C47\uC000\u226A\u20D2ightarrow;\u61CF\u0100Dd\u298E\u2993ash;\u62AFash;\u62AE\u0280bcnpt\u29A3\u29A7\u29AC\u29B1\u29CCla\xBB\u02DEute;\u4144g;\uC000\u2220\u20D2\u0280;Eiop\u0D84\u29BC\u29C0\u29C5\u29C8;\uC000\u2A70\u0338d;\uC000\u224B\u0338s;\u4149ro\xF8\u0D84ur\u0100;a\u29D3\u29D4\u666El\u0100;s\u29D3\u0B38\u01F3\u29DF\0\u29E3p\u80BB\xA0\u0B37mp\u0100;e\u0BF9\u0C00\u0280aeouy\u29F4\u29FE\u2A03\u2A10\u2A13\u01F0\u29F9\0\u29FB;\u6A43on;\u4148dil;\u4146ng\u0100;d\u0D7E\u2A0Aot;\uC000\u2A6D\u0338p;\u6A42;\u443Dash;\u6013\u0380;Aadqsx\u0B92\u2A29\u2A2D\u2A3B\u2A41\u2A45\u2A50rr;\u61D7r\u0100hr\u2A33\u2A36k;\u6924\u0100;o\u13F2\u13F0ot;\uC000\u2250\u0338ui\xF6\u0B63\u0100ei\u2A4A\u2A4Ear;\u6928\xED\u0B98ist\u0100;s\u0BA0\u0B9Fr;\uC000\u{1D52B}\u0200Eest\u0BC5\u2A66\u2A79\u2A7C\u0180;qs\u0BBC\u2A6D\u0BE1\u0180;qs\u0BBC\u0BC5\u2A74lan\xF4\u0BE2i\xED\u0BEA\u0100;r\u0BB6\u2A81\xBB\u0BB7\u0180Aap\u2A8A\u2A8D\u2A91r\xF2\u2971rr;\u61AEar;\u6AF2\u0180;sv\u0F8D\u2A9C\u0F8C\u0100;d\u2AA1\u2AA2\u62FC;\u62FAcy;\u445A\u0380AEadest\u2AB7\u2ABA\u2ABE\u2AC2\u2AC5\u2AF6\u2AF9r\xF2\u2966;\uC000\u2266\u0338rr;\u619Ar;\u6025\u0200;fqs\u0C3B\u2ACE\u2AE3\u2AEFt\u0100ar\u2AD4\u2AD9rro\xF7\u2AC1ightarro\xF7\u2A90\u0180;qs\u0C3B\u2ABA\u2AEAlan\xF4\u0C55\u0100;s\u0C55\u2AF4\xBB\u0C36i\xED\u0C5D\u0100;r\u0C35\u2AFEi\u0100;e\u0C1A\u0C25i\xE4\u0D90\u0100pt\u2B0C\u2B11f;\uC000\u{1D55F}\u8180\xAC;in\u2B19\u2B1A\u2B36\u40ACn\u0200;Edv\u0B89\u2B24\u2B28\u2B2E;\uC000\u22F9\u0338ot;\uC000\u22F5\u0338\u01E1\u0B89\u2B33\u2B35;\u62F7;\u62F6i\u0100;v\u0CB8\u2B3C\u01E1\u0CB8\u2B41\u2B43;\u62FE;\u62FD\u0180aor\u2B4B\u2B63\u2B69r\u0200;ast\u0B7B\u2B55\u2B5A\u2B5Flle\xEC\u0B7Bl;\uC000\u2AFD\u20E5;\uC000\u2202\u0338lint;\u6A14\u0180;ce\u0C92\u2B70\u2B73u\xE5\u0CA5\u0100;c\u0C98\u2B78\u0100;e\u0C92\u2B7D\xF1\u0C98\u0200Aait\u2B88\u2B8B\u2B9D\u2BA7r\xF2\u2988rr\u0180;cw\u2B94\u2B95\u2B99\u619B;\uC000\u2933\u0338;\uC000\u219D\u0338ghtarrow\xBB\u2B95ri\u0100;e\u0CCB\u0CD6\u0380chimpqu\u2BBD\u2BCD\u2BD9\u2B04\u0B78\u2BE4\u2BEF\u0200;cer\u0D32\u2BC6\u0D37\u2BC9u\xE5\u0D45;\uC000\u{1D4C3}ort\u026D\u2B05\0\0\u2BD6ar\xE1\u2B56m\u0100;e\u0D6E\u2BDF\u0100;q\u0D74\u0D73su\u0100bp\u2BEB\u2BED\xE5\u0CF8\xE5\u0D0B\u0180bcp\u2BF6\u2C11\u2C19\u0200;Ees\u2BFF\u2C00\u0D22\u2C04\u6284;\uC000\u2AC5\u0338et\u0100;e\u0D1B\u2C0Bq\u0100;q\u0D23\u2C00c\u0100;e\u0D32\u2C17\xF1\u0D38\u0200;Ees\u2C22\u2C23\u0D5F\u2C27\u6285;\uC000\u2AC6\u0338et\u0100;e\u0D58\u2C2Eq\u0100;q\u0D60\u2C23\u0200gilr\u2C3D\u2C3F\u2C45\u2C47\xEC\u0BD7lde\u803B\xF1\u40F1\xE7\u0C43iangle\u0100lr\u2C52\u2C5Ceft\u0100;e\u0C1A\u2C5A\xF1\u0C26ight\u0100;e\u0CCB\u2C65\xF1\u0CD7\u0100;m\u2C6C\u2C6D\u43BD\u0180;es\u2C74\u2C75\u2C79\u4023ro;\u6116p;\u6007\u0480DHadgilrs\u2C8F\u2C94\u2C99\u2C9E\u2CA3\u2CB0\u2CB6\u2CD3\u2CE3ash;\u62ADarr;\u6904p;\uC000\u224D\u20D2ash;\u62AC\u0100et\u2CA8\u2CAC;\uC000\u2265\u20D2;\uC000>\u20D2nfin;\u69DE\u0180Aet\u2CBD\u2CC1\u2CC5rr;\u6902;\uC000\u2264\u20D2\u0100;r\u2CCA\u2CCD\uC000<\u20D2ie;\uC000\u22B4\u20D2\u0100At\u2CD8\u2CDCrr;\u6903rie;\uC000\u22B5\u20D2im;\uC000\u223C\u20D2\u0180Aan\u2CF0\u2CF4\u2D02rr;\u61D6r\u0100hr\u2CFA\u2CFDk;\u6923\u0100;o\u13E7\u13E5ear;\u6927\u1253\u1A95\0\0\0\0\0\0\0\0\0\0\0\0\0\u2D2D\0\u2D38\u2D48\u2D60\u2D65\u2D72\u2D84\u1B07\0\0\u2D8D\u2DAB\0\u2DC8\u2DCE\0\u2DDC\u2E19\u2E2B\u2E3E\u2E43\u0100cs\u2D31\u1A97ute\u803B\xF3\u40F3\u0100iy\u2D3C\u2D45r\u0100;c\u1A9E\u2D42\u803B\xF4\u40F4;\u443E\u0280abios\u1AA0\u2D52\u2D57\u01C8\u2D5Alac;\u4151v;\u6A38old;\u69BClig;\u4153\u0100cr\u2D69\u2D6Dir;\u69BF;\uC000\u{1D52C}\u036F\u2D79\0\0\u2D7C\0\u2D82n;\u42DBave\u803B\xF2\u40F2;\u69C1\u0100bm\u2D88\u0DF4ar;\u69B5\u0200acit\u2D95\u2D98\u2DA5\u2DA8r\xF2\u1A80\u0100ir\u2D9D\u2DA0r;\u69BEoss;\u69BBn\xE5\u0E52;\u69C0\u0180aei\u2DB1\u2DB5\u2DB9cr;\u414Dga;\u43C9\u0180cdn\u2DC0\u2DC5\u01CDron;\u43BF;\u69B6pf;\uC000\u{1D560}\u0180ael\u2DD4\u2DD7\u01D2r;\u69B7rp;\u69B9\u0380;adiosv\u2DEA\u2DEB\u2DEE\u2E08\u2E0D\u2E10\u2E16\u6228r\xF2\u1A86\u0200;efm\u2DF7\u2DF8\u2E02\u2E05\u6A5Dr\u0100;o\u2DFE\u2DFF\u6134f\xBB\u2DFF\u803B\xAA\u40AA\u803B\xBA\u40BAgof;\u62B6r;\u6A56lope;\u6A57;\u6A5B\u0180clo\u2E1F\u2E21\u2E27\xF2\u2E01ash\u803B\xF8\u40F8l;\u6298i\u016C\u2E2F\u2E34de\u803B\xF5\u40F5es\u0100;a\u01DB\u2E3As;\u6A36ml\u803B\xF6\u40F6bar;\u633D\u0AE1\u2E5E\0\u2E7D\0\u2E80\u2E9D\0\u2EA2\u2EB9\0\0\u2ECB\u0E9C\0\u2F13\0\0\u2F2B\u2FBC\0\u2FC8r\u0200;ast\u0403\u2E67\u2E72\u0E85\u8100\xB6;l\u2E6D\u2E6E\u40B6le\xEC\u0403\u0269\u2E78\0\0\u2E7Bm;\u6AF3;\u6AFDy;\u443Fr\u0280cimpt\u2E8B\u2E8F\u2E93\u1865\u2E97nt;\u4025od;\u402Eil;\u6030enk;\u6031r;\uC000\u{1D52D}\u0180imo\u2EA8\u2EB0\u2EB4\u0100;v\u2EAD\u2EAE\u43C6;\u43D5ma\xF4\u0A76ne;\u660E\u0180;tv\u2EBF\u2EC0\u2EC8\u43C0chfork\xBB\u1FFD;\u43D6\u0100au\u2ECF\u2EDFn\u0100ck\u2ED5\u2EDDk\u0100;h\u21F4\u2EDB;\u610E\xF6\u21F4s\u0480;abcdemst\u2EF3\u2EF4\u1908\u2EF9\u2EFD\u2F04\u2F06\u2F0A\u2F0E\u402Bcir;\u6A23ir;\u6A22\u0100ou\u1D40\u2F02;\u6A25;\u6A72n\u80BB\xB1\u0E9Dim;\u6A26wo;\u6A27\u0180ipu\u2F19\u2F20\u2F25ntint;\u6A15f;\uC000\u{1D561}nd\u803B\xA3\u40A3\u0500;Eaceinosu\u0EC8\u2F3F\u2F41\u2F44\u2F47\u2F81\u2F89\u2F92\u2F7E\u2FB6;\u6AB3p;\u6AB7u\xE5\u0ED9\u0100;c\u0ECE\u2F4C\u0300;acens\u0EC8\u2F59\u2F5F\u2F66\u2F68\u2F7Eppro\xF8\u2F43urlye\xF1\u0ED9\xF1\u0ECE\u0180aes\u2F6F\u2F76\u2F7Approx;\u6AB9qq;\u6AB5im;\u62E8i\xED\u0EDFme\u0100;s\u2F88\u0EAE\u6032\u0180Eas\u2F78\u2F90\u2F7A\xF0\u2F75\u0180dfp\u0EEC\u2F99\u2FAF\u0180als\u2FA0\u2FA5\u2FAAlar;\u632Eine;\u6312urf;\u6313\u0100;t\u0EFB\u2FB4\xEF\u0EFBrel;\u62B0\u0100ci\u2FC0\u2FC5r;\uC000\u{1D4C5};\u43C8ncsp;\u6008\u0300fiopsu\u2FDA\u22E2\u2FDF\u2FE5\u2FEB\u2FF1r;\uC000\u{1D52E}pf;\uC000\u{1D562}rime;\u6057cr;\uC000\u{1D4C6}\u0180aeo\u2FF8\u3009\u3013t\u0100ei\u2FFE\u3005rnion\xF3\u06B0nt;\u6A16st\u0100;e\u3010\u3011\u403F\xF1\u1F19\xF4\u0F14\u0A80ABHabcdefhilmnoprstux\u3040\u3051\u3055\u3059\u30E0\u310E\u312B\u3147\u3162\u3172\u318E\u3206\u3215\u3224\u3229\u3258\u326E\u3272\u3290\u32B0\u32B7\u0180art\u3047\u304A\u304Cr\xF2\u10B3\xF2\u03DDail;\u691Car\xF2\u1C65ar;\u6964\u0380cdenqrt\u3068\u3075\u3078\u307F\u308F\u3094\u30CC\u0100eu\u306D\u3071;\uC000\u223D\u0331te;\u4155i\xE3\u116Emptyv;\u69B3g\u0200;del\u0FD1\u3089\u308B\u308D;\u6992;\u69A5\xE5\u0FD1uo\u803B\xBB\u40BBr\u0580;abcfhlpstw\u0FDC\u30AC\u30AF\u30B7\u30B9\u30BC\u30BE\u30C0\u30C3\u30C7\u30CAp;\u6975\u0100;f\u0FE0\u30B4s;\u6920;\u6933s;\u691E\xEB\u225D\xF0\u272El;\u6945im;\u6974l;\u61A3;\u619D\u0100ai\u30D1\u30D5il;\u691Ao\u0100;n\u30DB\u30DC\u6236al\xF3\u0F1E\u0180abr\u30E7\u30EA\u30EEr\xF2\u17E5rk;\u6773\u0100ak\u30F3\u30FDc\u0100ek\u30F9\u30FB;\u407D;\u405D\u0100es\u3102\u3104;\u698Cl\u0100du\u310A\u310C;\u698E;\u6990\u0200aeuy\u3117\u311C\u3127\u3129ron;\u4159\u0100di\u3121\u3125il;\u4157\xEC\u0FF2\xE2\u30FA;\u4440\u0200clqs\u3134\u3137\u313D\u3144a;\u6937dhar;\u6969uo\u0100;r\u020E\u020Dh;\u61B3\u0180acg\u314E\u315F\u0F44l\u0200;ips\u0F78\u3158\u315B\u109Cn\xE5\u10BBar\xF4\u0FA9t;\u65AD\u0180ilr\u3169\u1023\u316Esht;\u697D;\uC000\u{1D52F}\u0100ao\u3177\u3186r\u0100du\u317D\u317F\xBB\u047B\u0100;l\u1091\u3184;\u696C\u0100;v\u318B\u318C\u43C1;\u43F1\u0180gns\u3195\u31F9\u31FCht\u0300ahlrst\u31A4\u31B0\u31C2\u31D8\u31E4\u31EErrow\u0100;t\u0FDC\u31ADa\xE9\u30C8arpoon\u0100du\u31BB\u31BFow\xEE\u317Ep\xBB\u1092eft\u0100ah\u31CA\u31D0rrow\xF3\u0FEAarpoon\xF3\u0551ightarrows;\u61C9quigarro\xF7\u30CBhreetimes;\u62CCg;\u42DAingdotse\xF1\u1F32\u0180ahm\u320D\u3210\u3213r\xF2\u0FEAa\xF2\u0551;\u600Foust\u0100;a\u321E\u321F\u63B1che\xBB\u321Fmid;\u6AEE\u0200abpt\u3232\u323D\u3240\u3252\u0100nr\u3237\u323Ag;\u67EDr;\u61FEr\xEB\u1003\u0180afl\u3247\u324A\u324Er;\u6986;\uC000\u{1D563}us;\u6A2Eimes;\u6A35\u0100ap\u325D\u3267r\u0100;g\u3263\u3264\u4029t;\u6994olint;\u6A12ar\xF2\u31E3\u0200achq\u327B\u3280\u10BC\u3285quo;\u603Ar;\uC000\u{1D4C7}\u0100bu\u30FB\u328Ao\u0100;r\u0214\u0213\u0180hir\u3297\u329B\u32A0re\xE5\u31F8mes;\u62CAi\u0200;efl\u32AA\u1059\u1821\u32AB\u65B9tri;\u69CEluhar;\u6968;\u611E\u0D61\u32D5\u32DB\u32DF\u332C\u3338\u3371\0\u337A\u33A4\0\0\u33EC\u33F0\0\u3428\u3448\u345A\u34AD\u34B1\u34CA\u34F1\0\u3616\0\0\u3633cute;\u415Bqu\xEF\u27BA\u0500;Eaceinpsy\u11ED\u32F3\u32F5\u32FF\u3302\u330B\u330F\u331F\u3326\u3329;\u6AB4\u01F0\u32FA\0\u32FC;\u6AB8on;\u4161u\xE5\u11FE\u0100;d\u11F3\u3307il;\u415Frc;\u415D\u0180Eas\u3316\u3318\u331B;\u6AB6p;\u6ABAim;\u62E9olint;\u6A13i\xED\u1204;\u4441ot\u0180;be\u3334\u1D47\u3335\u62C5;\u6A66\u0380Aacmstx\u3346\u334A\u3357\u335B\u335E\u3363\u336Drr;\u61D8r\u0100hr\u3350\u3352\xEB\u2228\u0100;o\u0A36\u0A34t\u803B\xA7\u40A7i;\u403Bwar;\u6929m\u0100in\u3369\xF0nu\xF3\xF1t;\u6736r\u0100;o\u3376\u2055\uC000\u{1D530}\u0200acoy\u3382\u3386\u3391\u33A0rp;\u666F\u0100hy\u338B\u338Fcy;\u4449;\u4448rt\u026D\u3399\0\0\u339Ci\xE4\u1464ara\xEC\u2E6F\u803B\xAD\u40AD\u0100gm\u33A8\u33B4ma\u0180;fv\u33B1\u33B2\u33B2\u43C3;\u43C2\u0400;deglnpr\u12AB\u33C5\u33C9\u33CE\u33D6\u33DE\u33E1\u33E6ot;\u6A6A\u0100;q\u12B1\u12B0\u0100;E\u33D3\u33D4\u6A9E;\u6AA0\u0100;E\u33DB\u33DC\u6A9D;\u6A9Fe;\u6246lus;\u6A24arr;\u6972ar\xF2\u113D\u0200aeit\u33F8\u3408\u340F\u3417\u0100ls\u33FD\u3404lsetm\xE9\u336Ahp;\u6A33parsl;\u69E4\u0100dl\u1463\u3414e;\u6323\u0100;e\u341C\u341D\u6AAA\u0100;s\u3422\u3423\u6AAC;\uC000\u2AAC\uFE00\u0180flp\u342E\u3433\u3442tcy;\u444C\u0100;b\u3438\u3439\u402F\u0100;a\u343E\u343F\u69C4r;\u633Ff;\uC000\u{1D564}a\u0100dr\u344D\u0402es\u0100;u\u3454\u3455\u6660it\xBB\u3455\u0180csu\u3460\u3479\u349F\u0100au\u3465\u346Fp\u0100;s\u1188\u346B;\uC000\u2293\uFE00p\u0100;s\u11B4\u3475;\uC000\u2294\uFE00u\u0100bp\u347F\u348F\u0180;es\u1197\u119C\u3486et\u0100;e\u1197\u348D\xF1\u119D\u0180;es\u11A8\u11AD\u3496et\u0100;e\u11A8\u349D\xF1\u11AE\u0180;af\u117B\u34A6\u05B0r\u0165\u34AB\u05B1\xBB\u117Car\xF2\u1148\u0200cemt\u34B9\u34BE\u34C2\u34C5r;\uC000\u{1D4C8}tm\xEE\xF1i\xEC\u3415ar\xE6\u11BE\u0100ar\u34CE\u34D5r\u0100;f\u34D4\u17BF\u6606\u0100an\u34DA\u34EDight\u0100ep\u34E3\u34EApsilo\xEE\u1EE0h\xE9\u2EAFs\xBB\u2852\u0280bcmnp\u34FB\u355E\u1209\u358B\u358E\u0480;Edemnprs\u350E\u350F\u3511\u3515\u351E\u3523\u352C\u3531\u3536\u6282;\u6AC5ot;\u6ABD\u0100;d\u11DA\u351Aot;\u6AC3ult;\u6AC1\u0100Ee\u3528\u352A;\u6ACB;\u628Alus;\u6ABFarr;\u6979\u0180eiu\u353D\u3552\u3555t\u0180;en\u350E\u3545\u354Bq\u0100;q\u11DA\u350Feq\u0100;q\u352B\u3528m;\u6AC7\u0100bp\u355A\u355C;\u6AD5;\u6AD3c\u0300;acens\u11ED\u356C\u3572\u3579\u357B\u3326ppro\xF8\u32FAurlye\xF1\u11FE\xF1\u11F3\u0180aes\u3582\u3588\u331Bppro\xF8\u331Aq\xF1\u3317g;\u666A\u0680123;Edehlmnps\u35A9\u35AC\u35AF\u121C\u35B2\u35B4\u35C0\u35C9\u35D5\u35DA\u35DF\u35E8\u35ED\u803B\xB9\u40B9\u803B\xB2\u40B2\u803B\xB3\u40B3;\u6AC6\u0100os\u35B9\u35BCt;\u6ABEub;\u6AD8\u0100;d\u1222\u35C5ot;\u6AC4s\u0100ou\u35CF\u35D2l;\u67C9b;\u6AD7arr;\u697Bult;\u6AC2\u0100Ee\u35E4\u35E6;\u6ACC;\u628Blus;\u6AC0\u0180eiu\u35F4\u3609\u360Ct\u0180;en\u121C\u35FC\u3602q\u0100;q\u1222\u35B2eq\u0100;q\u35E7\u35E4m;\u6AC8\u0100bp\u3611\u3613;\u6AD4;\u6AD6\u0180Aan\u361C\u3620\u362Drr;\u61D9r\u0100hr\u3626\u3628\xEB\u222E\u0100;o\u0A2B\u0A29war;\u692Alig\u803B\xDF\u40DF\u0BE1\u3651\u365D\u3660\u12CE\u3673\u3679\0\u367E\u36C2\0\0\0\0\0\u36DB\u3703\0\u3709\u376C\0\0\0\u3787\u0272\u3656\0\0\u365Bget;\u6316;\u43C4r\xEB\u0E5F\u0180aey\u3666\u366B\u3670ron;\u4165dil;\u4163;\u4442lrec;\u6315r;\uC000\u{1D531}\u0200eiko\u3686\u369D\u36B5\u36BC\u01F2\u368B\0\u3691e\u01004f\u1284\u1281a\u0180;sv\u3698\u3699\u369B\u43B8ym;\u43D1\u0100cn\u36A2\u36B2k\u0100as\u36A8\u36AEppro\xF8\u12C1im\xBB\u12ACs\xF0\u129E\u0100as\u36BA\u36AE\xF0\u12C1rn\u803B\xFE\u40FE\u01EC\u031F\u36C6\u22E7es\u8180\xD7;bd\u36CF\u36D0\u36D8\u40D7\u0100;a\u190F\u36D5r;\u6A31;\u6A30\u0180eps\u36E1\u36E3\u3700\xE1\u2A4D\u0200;bcf\u0486\u36EC\u36F0\u36F4ot;\u6336ir;\u6AF1\u0100;o\u36F9\u36FC\uC000\u{1D565}rk;\u6ADA\xE1\u3362rime;\u6034\u0180aip\u370F\u3712\u3764d\xE5\u1248\u0380adempst\u3721\u374D\u3740\u3751\u3757\u375C\u375Fngle\u0280;dlqr\u3730\u3731\u3736\u3740\u3742\u65B5own\xBB\u1DBBeft\u0100;e\u2800\u373E\xF1\u092E;\u625Cight\u0100;e\u32AA\u374B\xF1\u105Aot;\u65ECinus;\u6A3Alus;\u6A39b;\u69CDime;\u6A3Bezium;\u63E2\u0180cht\u3772\u377D\u3781\u0100ry\u3777\u377B;\uC000\u{1D4C9};\u4446cy;\u445Brok;\u4167\u0100io\u378B\u378Ex\xF4\u1777head\u0100lr\u3797\u37A0eftarro\xF7\u084Fightarrow\xBB\u0F5D\u0900AHabcdfghlmoprstuw\u37D0\u37D3\u37D7\u37E4\u37F0\u37FC\u380E\u381C\u3823\u3834\u3851\u385D\u386B\u38A9\u38CC\u38D2\u38EA\u38F6r\xF2\u03EDar;\u6963\u0100cr\u37DC\u37E2ute\u803B\xFA\u40FA\xF2\u1150r\u01E3\u37EA\0\u37EDy;\u445Eve;\u416D\u0100iy\u37F5\u37FArc\u803B\xFB\u40FB;\u4443\u0180abh\u3803\u3806\u380Br\xF2\u13ADlac;\u4171a\xF2\u13C3\u0100ir\u3813\u3818sht;\u697E;\uC000\u{1D532}rave\u803B\xF9\u40F9\u0161\u3827\u3831r\u0100lr\u382C\u382E\xBB\u0957\xBB\u1083lk;\u6580\u0100ct\u3839\u384D\u026F\u383F\0\0\u384Arn\u0100;e\u3845\u3846\u631Cr\xBB\u3846op;\u630Fri;\u65F8\u0100al\u3856\u385Acr;\u416B\u80BB\xA8\u0349\u0100gp\u3862\u3866on;\u4173f;\uC000\u{1D566}\u0300adhlsu\u114B\u3878\u387D\u1372\u3891\u38A0own\xE1\u13B3arpoon\u0100lr\u3888\u388Cef\xF4\u382Digh\xF4\u382Fi\u0180;hl\u3899\u389A\u389C\u43C5\xBB\u13FAon\xBB\u389Aparrows;\u61C8\u0180cit\u38B0\u38C4\u38C8\u026F\u38B6\0\0\u38C1rn\u0100;e\u38BC\u38BD\u631Dr\xBB\u38BDop;\u630Eng;\u416Fri;\u65F9cr;\uC000\u{1D4CA}\u0180dir\u38D9\u38DD\u38E2ot;\u62F0lde;\u4169i\u0100;f\u3730\u38E8\xBB\u1813\u0100am\u38EF\u38F2r\xF2\u38A8l\u803B\xFC\u40FCangle;\u69A7\u0780ABDacdeflnoprsz\u391C\u391F\u3929\u392D\u39B5\u39B8\u39BD\u39DF\u39E4\u39E8\u39F3\u39F9\u39FD\u3A01\u3A20r\xF2\u03F7ar\u0100;v\u3926\u3927\u6AE8;\u6AE9as\xE8\u03E1\u0100nr\u3932\u3937grt;\u699C\u0380eknprst\u34E3\u3946\u394B\u3952\u395D\u3964\u3996app\xE1\u2415othin\xE7\u1E96\u0180hir\u34EB\u2EC8\u3959op\xF4\u2FB5\u0100;h\u13B7\u3962\xEF\u318D\u0100iu\u3969\u396Dgm\xE1\u33B3\u0100bp\u3972\u3984setneq\u0100;q\u397D\u3980\uC000\u228A\uFE00;\uC000\u2ACB\uFE00setneq\u0100;q\u398F\u3992\uC000\u228B\uFE00;\uC000\u2ACC\uFE00\u0100hr\u399B\u399Fet\xE1\u369Ciangle\u0100lr\u39AA\u39AFeft\xBB\u0925ight\xBB\u1051y;\u4432ash\xBB\u1036\u0180elr\u39C4\u39D2\u39D7\u0180;be\u2DEA\u39CB\u39CFar;\u62BBq;\u625Alip;\u62EE\u0100bt\u39DC\u1468a\xF2\u1469r;\uC000\u{1D533}tr\xE9\u39AEsu\u0100bp\u39EF\u39F1\xBB\u0D1C\xBB\u0D59pf;\uC000\u{1D567}ro\xF0\u0EFBtr\xE9\u39B4\u0100cu\u3A06\u3A0Br;\uC000\u{1D4CB}\u0100bp\u3A10\u3A18n\u0100Ee\u3980\u3A16\xBB\u397En\u0100Ee\u3992\u3A1E\xBB\u3990igzag;\u699A\u0380cefoprs\u3A36\u3A3B\u3A56\u3A5B\u3A54\u3A61\u3A6Airc;\u4175\u0100di\u3A40\u3A51\u0100bg\u3A45\u3A49ar;\u6A5Fe\u0100;q\u15FA\u3A4F;\u6259erp;\u6118r;\uC000\u{1D534}pf;\uC000\u{1D568}\u0100;e\u1479\u3A66at\xE8\u1479cr;\uC000\u{1D4CC}\u0AE3\u178E\u3A87\0\u3A8B\0\u3A90\u3A9B\0\0\u3A9D\u3AA8\u3AAB\u3AAF\0\0\u3AC3\u3ACE\0\u3AD8\u17DC\u17DFtr\xE9\u17D1r;\uC000\u{1D535}\u0100Aa\u3A94\u3A97r\xF2\u03C3r\xF2\u09F6;\u43BE\u0100Aa\u3AA1\u3AA4r\xF2\u03B8r\xF2\u09EBa\xF0\u2713is;\u62FB\u0180dpt\u17A4\u3AB5\u3ABE\u0100fl\u3ABA\u17A9;\uC000\u{1D569}im\xE5\u17B2\u0100Aa\u3AC7\u3ACAr\xF2\u03CEr\xF2\u0A01\u0100cq\u3AD2\u17B8r;\uC000\u{1D4CD}\u0100pt\u17D6\u3ADCr\xE9\u17D4\u0400acefiosu\u3AF0\u3AFD\u3B08\u3B0C\u3B11\u3B15\u3B1B\u3B21c\u0100uy\u3AF6\u3AFBte\u803B\xFD\u40FD;\u444F\u0100iy\u3B02\u3B06rc;\u4177;\u444Bn\u803B\xA5\u40A5r;\uC000\u{1D536}cy;\u4457pf;\uC000\u{1D56A}cr;\uC000\u{1D4CE}\u0100cm\u3B26\u3B29y;\u444El\u803B\xFF\u40FF\u0500acdefhiosw\u3B42\u3B48\u3B54\u3B58\u3B64\u3B69\u3B6D\u3B74\u3B7A\u3B80cute;\u417A\u0100ay\u3B4D\u3B52ron;\u417E;\u4437ot;\u417C\u0100et\u3B5D\u3B61tr\xE6\u155Fa;\u43B6r;\uC000\u{1D537}cy;\u4436grarr;\u61DDpf;\uC000\u{1D56B}cr;\uC000\u{1D4CF}\u0100jn\u3B85\u3B87;\u600Dj;\u600C'.split("").map(function(i){return i.charCodeAt(0)}))});var LQ=M(aI=>{"use strict";Object.defineProperty(aI,"__esModule",{value:!0});aI.default=new Uint16Array("\u0200aglq \x1B\u026D\0\0p;\u4026os;\u4027t;\u403Et;\u403Cuot;\u4022".split("").map(function(i){return i.charCodeAt(0)}))});var uI=M(Ku=>{"use strict";var lI;Object.defineProperty(Ku,"__esModule",{value:!0});Ku.replaceCodePoint=Ku.fromCodePoint=void 0;var DCe=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);Ku.fromCodePoint=(lI=String.fromCodePoint)!==null&&lI!==void 0?lI:function(i){var e="";return i>65535&&(i-=65536,e+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),e+=String.fromCharCode(i),e};function $Q(i){var e;return i>=55296&&i<=57343||i>1114111?65533:(e=DCe.get(i))!==null&&e!==void 0?e:i}Ku.replaceCodePoint=$Q;function OCe(i){return(0,Ku.fromCodePoint)($Q(i))}Ku.default=OCe});var fI=M(st=>{"use strict";var LCe=st&&st.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),$Ce=st&&st.__setModuleDefault||(Object.create?function(i,e){Object.defineProperty(i,"default",{enumerable:!0,value:e})}:function(i,e){i.default=e}),PCe=st&&st.__importStar||function(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t in i)t!=="default"&&Object.prototype.hasOwnProperty.call(i,t)&&LCe(e,i,t);return $Ce(e,i),e},PQ=st&&st.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(st,"__esModule",{value:!0});st.decodeXML=st.decodeHTMLStrict=st.decodeHTMLAttribute=st.decodeHTML=st.determineBranch=st.EntityDecoder=st.DecodingMode=st.BinTrieFlags=st.fromCodePoint=st.replaceCodePoint=st.decodeCodePoint=st.xmlDecodeTree=st.htmlDecodeTree=void 0;var FQ=PQ(OQ());st.htmlDecodeTree=FQ.default;var NQ=PQ(LQ());st.xmlDecodeTree=NQ.default;var dI=PCe(uI());st.decodeCodePoint=dI.default;var BQ=uI();Object.defineProperty(st,"replaceCodePoint",{enumerable:!0,get:function(){return BQ.replaceCodePoint}});Object.defineProperty(st,"fromCodePoint",{enumerable:!0,get:function(){return BQ.fromCodePoint}});var rr;(function(i){i[i.NUM=35]="NUM",i[i.SEMI=59]="SEMI",i[i.EQUALS=61]="EQUALS",i[i.ZERO=48]="ZERO",i[i.NINE=57]="NINE",i[i.LOWER_A=97]="LOWER_A",i[i.LOWER_F=102]="LOWER_F",i[i.LOWER_X=120]="LOWER_X",i[i.LOWER_Z=122]="LOWER_Z",i[i.UPPER_A=65]="UPPER_A",i[i.UPPER_F=70]="UPPER_F",i[i.UPPER_Z=90]="UPPER_Z"})(rr||(rr={}));var FCe=32,ad;(function(i){i[i.VALUE_LENGTH=49152]="VALUE_LENGTH",i[i.BRANCH_LENGTH=16256]="BRANCH_LENGTH",i[i.JUMP_TABLE=127]="JUMP_TABLE"})(ad=st.BinTrieFlags||(st.BinTrieFlags={}));function cI(i){return i>=rr.ZERO&&i<=rr.NINE}function NCe(i){return i>=rr.UPPER_A&&i<=rr.UPPER_F||i>=rr.LOWER_A&&i<=rr.LOWER_F}function BCe(i){return i>=rr.UPPER_A&&i<=rr.UPPER_Z||i>=rr.LOWER_A&&i<=rr.LOWER_Z||cI(i)}function zCe(i){return i===rr.EQUALS||BCe(i)}var ir;(function(i){i[i.EntityStart=0]="EntityStart",i[i.NumericStart=1]="NumericStart",i[i.NumericDecimal=2]="NumericDecimal",i[i.NumericHex=3]="NumericHex",i[i.NamedEntity=4]="NamedEntity"})(ir||(ir={}));var Ho;(function(i){i[i.Legacy=0]="Legacy",i[i.Strict=1]="Strict",i[i.Attribute=2]="Attribute"})(Ho=st.DecodingMode||(st.DecodingMode={}));var zQ=function(){function i(e,t,r){this.decodeTree=e,this.emitCodePoint=t,this.errors=r,this.state=ir.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Ho.Strict}return i.prototype.startEntity=function(e){this.decodeMode=e,this.state=ir.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},i.prototype.write=function(e,t){switch(this.state){case ir.EntityStart:return e.charCodeAt(t)===rr.NUM?(this.state=ir.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=ir.NamedEntity,this.stateNamedEntity(e,t));case ir.NumericStart:return this.stateNumericStart(e,t);case ir.NumericDecimal:return this.stateNumericDecimal(e,t);case ir.NumericHex:return this.stateNumericHex(e,t);case ir.NamedEntity:return this.stateNamedEntity(e,t)}},i.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(e.charCodeAt(t)|FCe)===rr.LOWER_X?(this.state=ir.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=ir.NumericDecimal,this.stateNumericDecimal(e,t))},i.prototype.addToNumericResult=function(e,t,r,n){if(t!==r){var s=r-t;this.result=this.result*Math.pow(n,s)+parseInt(e.substr(t,s),n),this.consumed+=s}},i.prototype.stateNumericHex=function(e,t){for(var r=t;t>14;t>14,s!==0){if(o===rr.SEMI)return this.emitNamedEntityData(this.treeIndex,s,this.consumed+this.excess);this.decodeMode!==Ho.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1},i.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this,r=t.result,n=t.decodeTree,s=(n[r]&ad.VALUE_LENGTH)>>14;return this.emitNamedEntityData(r,s,this.consumed),(e=this.errors)===null||e===void 0||e.missingSemicolonAfterCharacterReference(),this.consumed},i.prototype.emitNamedEntityData=function(e,t,r){var n=this.decodeTree;return this.emitCodePoint(t===1?n[e]&~ad.VALUE_LENGTH:n[e+1],r),t===3&&this.emitCodePoint(n[e+2],r),r},i.prototype.end=function(){var e;switch(this.state){case ir.NamedEntity:return this.result!==0&&(this.decodeMode!==Ho.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ir.NumericDecimal:return this.emitNumericEntity(0,2);case ir.NumericHex:return this.emitNumericEntity(0,3);case ir.NumericStart:return(e=this.errors)===null||e===void 0||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ir.EntityStart:return 0}},i}();st.EntityDecoder=zQ;function qQ(i){var e="",t=new zQ(i,function(r){return e+=(0,dI.fromCodePoint)(r)});return function(n,s){for(var o=0,a=0;(a=n.indexOf("&",a))>=0;){e+=n.slice(o,a),t.startEntity(s);var l=t.write(n,a+1);if(l<0){o=a+t.end();break}o=a+l,a=l===0?o+1:o}var u=e+n.slice(o);return e="",u}}function HQ(i,e,t,r){var n=(e&ad.BRANCH_LENGTH)>>7,s=e&ad.JUMP_TABLE;if(n===0)return s!==0&&r===s?t:-1;if(s){var o=r-s;return o<0||o>=n?-1:i[t+o]-1}for(var a=t,l=a+n-1;a<=l;){var u=a+l>>>1,c=i[u];if(cr)l=u-1;else return i[u+n]}return-1}st.determineBranch=HQ;var hI=qQ(FQ.default),qCe=qQ(NQ.default);function HCe(i,e){return e===void 0&&(e=Ho.Legacy),hI(i,e)}st.decodeHTML=HCe;function jCe(i){return hI(i,Ho.Attribute)}st.decodeHTMLAttribute=jCe;function VCe(i){return hI(i,Ho.Strict)}st.decodeHTMLStrict=VCe;function UCe(i){return qCe(i,Ho.Strict)}st.decodeXML=UCe});var jQ=M(pI=>{"use strict";Object.defineProperty(pI,"__esModule",{value:!0});function Zv(i){for(var e=1;e{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.escapeText=Vi.escapeAttribute=Vi.escapeUTF8=Vi.escape=Vi.encodeXML=Vi.getCodePoint=Vi.xmlReplacer=void 0;Vi.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var VQ=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);Vi.getCodePoint=String.prototype.codePointAt!=null?function(i,e){return i.codePointAt(e)}:function(i,e){return(i.charCodeAt(e)&64512)===55296?(i.charCodeAt(e)-55296)*1024+i.charCodeAt(e+1)-56320+65536:i.charCodeAt(e)};function UQ(i){for(var e="",t=0,r;(r=Vi.xmlReplacer.exec(i))!==null;){var n=r.index,s=i.charCodeAt(n),o=VQ.get(s);o!==void 0?(e+=i.substring(t,n)+o,t=n+1):(e+="".concat(i.substring(t,n),"&#x").concat((0,Vi.getCodePoint)(i,n).toString(16),";"),t=Vi.xmlReplacer.lastIndex+=Number((s&64512)===55296))}return e+i.substr(t)}Vi.encodeXML=UQ;Vi.escape=UQ;function mI(i,e){return function(r){for(var n,s=0,o="";n=i.exec(r);)s!==n.index&&(o+=r.substring(s,n.index)),o+=e.get(n[0].charCodeAt(0)),s=n.index+1;return o+r.substring(s)}}Vi.escapeUTF8=mI(/[&<>'"]/g,VQ);Vi.escapeAttribute=mI(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]]));Vi.escapeText=mI(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))});var gI=M(Yu=>{"use strict";var WCe=Yu&&Yu.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Yu,"__esModule",{value:!0});Yu.encodeNonAsciiHTML=Yu.encodeHTML=void 0;var GCe=WCe(jQ()),WQ=Qv(),KCe=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function YCe(i){return GQ(KCe,i)}Yu.encodeHTML=YCe;function XCe(i){return GQ(WQ.xmlReplacer,i)}Yu.encodeNonAsciiHTML=XCe;function GQ(i,e){for(var t="",r=0,n;(n=i.exec(e))!==null;){var s=n.index;t+=e.substring(r,s);var o=e.charCodeAt(s),a=GCe.default.get(o);if(typeof a=="object"){if(s+1{"use strict";Object.defineProperty(Re,"__esModule",{value:!0});Re.decodeXMLStrict=Re.decodeHTML5Strict=Re.decodeHTML4Strict=Re.decodeHTML5=Re.decodeHTML4=Re.decodeHTMLAttribute=Re.decodeHTMLStrict=Re.decodeHTML=Re.decodeXML=Re.DecodingMode=Re.EntityDecoder=Re.encodeHTML5=Re.encodeHTML4=Re.encodeNonAsciiHTML=Re.encodeHTML=Re.escapeText=Re.escapeAttribute=Re.escapeUTF8=Re.escape=Re.encodeXML=Re.encode=Re.decodeStrict=Re.decode=Re.EncodingMode=Re.EntityLevel=void 0;var bI=fI(),KQ=gI(),e_=Qv(),Jh;(function(i){i[i.XML=0]="XML",i[i.HTML=1]="HTML"})(Jh=Re.EntityLevel||(Re.EntityLevel={}));var Em;(function(i){i[i.UTF8=0]="UTF8",i[i.ASCII=1]="ASCII",i[i.Extensive=2]="Extensive",i[i.Attribute=3]="Attribute",i[i.Text=4]="Text"})(Em=Re.EncodingMode||(Re.EncodingMode={}));function YQ(i,e){e===void 0&&(e=Jh.XML);var t=typeof e=="number"?e:e.level;if(t===Jh.HTML){var r=typeof e=="object"?e.mode:void 0;return(0,bI.decodeHTML)(i,r)}return(0,bI.decodeXML)(i)}Re.decode=YQ;function JCe(i,e){var t;e===void 0&&(e=Jh.XML);var r=typeof e=="number"?{level:e}:e;return(t=r.mode)!==null&&t!==void 0||(r.mode=bI.DecodingMode.Strict),YQ(i,r)}Re.decodeStrict=JCe;function ZCe(i,e){e===void 0&&(e=Jh.XML);var t=typeof e=="number"?{level:e}:e;return t.mode===Em.UTF8?(0,e_.escapeUTF8)(i):t.mode===Em.Attribute?(0,e_.escapeAttribute)(i):t.mode===Em.Text?(0,e_.escapeText)(i):t.level===Jh.HTML?t.mode===Em.ASCII?(0,KQ.encodeNonAsciiHTML)(i):(0,KQ.encodeHTML)(i):(0,e_.encodeXML)(i)}Re.encode=ZCe;var km=Qv();Object.defineProperty(Re,"encodeXML",{enumerable:!0,get:function(){return km.encodeXML}});Object.defineProperty(Re,"escape",{enumerable:!0,get:function(){return km.escape}});Object.defineProperty(Re,"escapeUTF8",{enumerable:!0,get:function(){return km.escapeUTF8}});Object.defineProperty(Re,"escapeAttribute",{enumerable:!0,get:function(){return km.escapeAttribute}});Object.defineProperty(Re,"escapeText",{enumerable:!0,get:function(){return km.escapeText}});var t_=gI();Object.defineProperty(Re,"encodeHTML",{enumerable:!0,get:function(){return t_.encodeHTML}});Object.defineProperty(Re,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return t_.encodeNonAsciiHTML}});Object.defineProperty(Re,"encodeHTML4",{enumerable:!0,get:function(){return t_.encodeHTML}});Object.defineProperty(Re,"encodeHTML5",{enumerable:!0,get:function(){return t_.encodeHTML}});var Ys=fI();Object.defineProperty(Re,"EntityDecoder",{enumerable:!0,get:function(){return Ys.EntityDecoder}});Object.defineProperty(Re,"DecodingMode",{enumerable:!0,get:function(){return Ys.DecodingMode}});Object.defineProperty(Re,"decodeXML",{enumerable:!0,get:function(){return Ys.decodeXML}});Object.defineProperty(Re,"decodeHTML",{enumerable:!0,get:function(){return Ys.decodeHTML}});Object.defineProperty(Re,"decodeHTMLStrict",{enumerable:!0,get:function(){return Ys.decodeHTMLStrict}});Object.defineProperty(Re,"decodeHTMLAttribute",{enumerable:!0,get:function(){return Ys.decodeHTMLAttribute}});Object.defineProperty(Re,"decodeHTML4",{enumerable:!0,get:function(){return Ys.decodeHTML}});Object.defineProperty(Re,"decodeHTML5",{enumerable:!0,get:function(){return Ys.decodeHTML}});Object.defineProperty(Re,"decodeHTML4Strict",{enumerable:!0,get:function(){return Ys.decodeHTMLStrict}});Object.defineProperty(Re,"decodeHTML5Strict",{enumerable:!0,get:function(){return Ys.decodeHTMLStrict}});Object.defineProperty(Re,"decodeXMLStrict",{enumerable:!0,get:function(){return Ys.decodeXML}})});var JQ=M(Zh=>{"use strict";Object.defineProperty(Zh,"__esModule",{value:!0});Zh.attributeNames=Zh.elementNames=void 0;Zh.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(function(i){return[i.toLowerCase(),i]}));Zh.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(function(i){return[i.toLowerCase(),i]}))});var eee=M(Gn=>{"use strict";var Qh=Gn&&Gn.__assign||function(){return Qh=Object.assign||function(i){for(var e,t=1,r=arguments.length;t0&&(r+=r_(i.children,e)),(e.xmlMode||!ZQ.has(i.name))&&(r+=""))),r}function u6e(i){return"<".concat(i.data,">")}function c6e(i,e){var t,r=i.data||"";return((t=e.encodeEntities)!==null&&t!==void 0?t:e.decodeEntities)!==!1&&!(!e.xmlMode&&i.parent&&i6e.has(i.parent.name))&&(r=e.xmlMode||e.encodeEntities!=="utf8"?(0,i_.encodeXML)(r):(0,i_.escapeText)(r)),r}function d6e(i){return"")}function h6e(i){return"")}});var yI=M(Ha=>{"use strict";var f6e=Ha&&Ha.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ha,"__esModule",{value:!0});Ha.getOuterHTML=tee;Ha.getInnerHTML=g6e;Ha.getText=n_;Ha.textContent=vI;Ha.innerText=_I;var jo=za(),p6e=f6e(eee()),m6e=Xh();function tee(i,e){return(0,p6e.default)(i,e)}function g6e(i,e){return(0,jo.hasChildren)(i)?i.children.map(function(t){return tee(t,e)}).join(""):""}function n_(i){return Array.isArray(i)?i.map(n_).join(""):(0,jo.isTag)(i)?i.name==="br"?` +`:n_(i.children):(0,jo.isCDATA)(i)?n_(i.children):(0,jo.isText)(i)?i.data:""}function vI(i){return Array.isArray(i)?i.map(vI).join(""):(0,jo.hasChildren)(i)&&!(0,jo.isComment)(i)?vI(i.children):(0,jo.isText)(i)?i.data:""}function _I(i){return Array.isArray(i)?i.map(_I).join(""):(0,jo.hasChildren)(i)&&(i.type===m6e.ElementType.Tag||(0,jo.isCDATA)(i))?_I(i.children):(0,jo.isText)(i)?i.data:""}});var nee=M(Vo=>{"use strict";Object.defineProperty(Vo,"__esModule",{value:!0});Vo.getChildren=iee;Vo.getParent=ree;Vo.getSiblings=b6e;Vo.getAttributeValue=v6e;Vo.hasAttrib=_6e;Vo.getName=y6e;Vo.nextElementSibling=x6e;Vo.prevElementSibling=w6e;var xI=za();function iee(i){return(0,xI.hasChildren)(i)?i.children:[]}function ree(i){return i.parent||null}function b6e(i){var e,t,r=ree(i);if(r!=null)return iee(r);for(var n=[i],s=i.prev,o=i.next;s!=null;)n.unshift(s),e=s,s=e.prev;for(;o!=null;)n.push(o),t=o,o=t.next;return n}function v6e(i,e){var t;return(t=i.attribs)===null||t===void 0?void 0:t[e]}function _6e(i,e){return i.attribs!=null&&Object.prototype.hasOwnProperty.call(i.attribs,e)&&i.attribs[e]!=null}function y6e(i){return i.name}function x6e(i){for(var e,t=i.next;t!==null&&!(0,xI.isTag)(t);)e=t,t=e.next;return t}function w6e(i){for(var e,t=i.prev;t!==null&&!(0,xI.isTag)(t);)e=t,t=e.prev;return t}});var see=M(Xu=>{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.removeElement=Tm;Xu.replaceElement=S6e;Xu.appendChild=C6e;Xu.append=I6e;Xu.prependChild=E6e;Xu.prepend=k6e;function Tm(i){if(i.prev&&(i.prev.next=i.next),i.next&&(i.next.prev=i.prev),i.parent){var e=i.parent.children,t=e.lastIndexOf(i);t>=0&&e.splice(t,1)}i.next=null,i.prev=null,i.parent=null}function S6e(i,e){var t=e.prev=i.prev;t&&(t.next=e);var r=e.next=i.next;r&&(r.prev=e);var n=e.parent=i.parent;if(n){var s=n.children;s[s.lastIndexOf(i)]=e,i.parent=null}}function C6e(i,e){if(Tm(e),e.next=null,e.parent=i,i.children.push(e)>1){var t=i.children[i.children.length-2];t.next=e,e.prev=t}else e.prev=null}function I6e(i,e){Tm(e);var t=i.parent,r=i.next;if(e.next=r,e.prev=i,i.next=e,e.parent=t,r){if(r.prev=e,t){var n=t.children;n.splice(n.lastIndexOf(r),0,e)}}else t&&t.children.push(e)}function E6e(i,e){if(Tm(e),e.parent=i,e.prev=null,i.children.unshift(e)!==1){var t=i.children[1];t.prev=e,e.next=t}else e.next=null}function k6e(i,e){Tm(e);var t=i.parent;if(t){var r=t.children;r.splice(r.indexOf(i),0,e)}i.prev&&(i.prev.next=e),e.parent=t,e.prev=i.prev,e.next=i,i.prev=e}});var wI=M(Ju=>{"use strict";Object.defineProperty(Ju,"__esModule",{value:!0});Ju.filter=T6e;Ju.find=oee;Ju.findOneChild=A6e;Ju.findOne=aee;Ju.existsOne=lee;Ju.findAll=M6e;var ld=za();function T6e(i,e,t,r){return t===void 0&&(t=!0),r===void 0&&(r=1/0),oee(i,Array.isArray(e)?e:[e],t,r)}function oee(i,e,t,r){for(var n=[],s=[Array.isArray(e)?e:[e]],o=[0];;){if(o[0]>=s[0].length){if(o.length===1)return n;s.shift(),o.shift();continue}var a=s[0][o[0]++];if(i(a)&&(n.push(a),--r<=0))return n;t&&(0,ld.hasChildren)(a)&&a.children.length>0&&(o.unshift(0),s.unshift(a.children))}}function A6e(i,e){return e.find(i)}function aee(i,e,t){t===void 0&&(t=!0);for(var r=Array.isArray(e)?e:[e],n=0;n0){var o=aee(i,s.children,!0);if(o)return o}}return null}function lee(i,e){return(Array.isArray(e)?e:[e]).some(function(t){return(0,ld.isTag)(t)&&i(t)||(0,ld.hasChildren)(t)&&lee(i,t.children)})}function M6e(i,e){for(var t=[],r=[Array.isArray(e)?e:[e]],n=[0];;){if(n[0]>=r[0].length){if(r.length===1)return t;r.shift(),n.shift();continue}var s=r[0][n[0]++];(0,ld.isTag)(s)&&i(s)&&t.push(s),(0,ld.hasChildren)(s)&&s.children.length>0&&(n.unshift(0),r.unshift(s.children))}}});var CI=M(Zu=>{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.testElement=D6e;Zu.getElements=O6e;Zu.getElementById=L6e;Zu.getElementsByTagName=$6e;Zu.getElementsByClassName=P6e;Zu.getElementsByTagType=F6e;var ud=za(),Am=wI(),s_={tag_name:function(i){return typeof i=="function"?function(e){return(0,ud.isTag)(e)&&i(e.name)}:i==="*"?ud.isTag:function(e){return(0,ud.isTag)(e)&&e.name===i}},tag_type:function(i){return typeof i=="function"?function(e){return i(e.type)}:function(e){return e.type===i}},tag_contains:function(i){return typeof i=="function"?function(e){return(0,ud.isText)(e)&&i(e.data)}:function(e){return(0,ud.isText)(e)&&e.data===i}}};function SI(i,e){return typeof e=="function"?function(t){return(0,ud.isTag)(t)&&e(t.attribs[i])}:function(t){return(0,ud.isTag)(t)&&t.attribs[i]===e}}function R6e(i,e){return function(t){return i(t)||e(t)}}function uee(i){var e=Object.keys(i).map(function(t){var r=i[t];return Object.prototype.hasOwnProperty.call(s_,t)?s_[t](r):SI(t,r)});return e.length===0?null:e.reduce(R6e)}function D6e(i,e){var t=uee(i);return t?t(e):!0}function O6e(i,e,t,r){r===void 0&&(r=1/0);var n=uee(i);return n?(0,Am.filter)(n,e,t,r):[]}function L6e(i,e,t){return t===void 0&&(t=!0),Array.isArray(e)||(e=[e]),(0,Am.findOne)(SI("id",i),e,t)}function $6e(i,e,t,r){return t===void 0&&(t=!0),r===void 0&&(r=1/0),(0,Am.filter)(s_.tag_name(i),e,t,r)}function P6e(i,e,t,r){return t===void 0&&(t=!0),r===void 0&&(r=1/0),(0,Am.filter)(SI("class",i),e,t,r)}function F6e(i,e,t,r){return t===void 0&&(t=!0),r===void 0&&(r=1/0),(0,Am.filter)(s_.tag_type(i),e,t,r)}});var hee=M(cd=>{"use strict";Object.defineProperty(cd,"__esModule",{value:!0});cd.DocumentPosition=void 0;cd.removeSubsets=N6e;cd.compareDocumentPosition=dee;cd.uniqueSort=B6e;var cee=za();function N6e(i){for(var e=i.length;--e>=0;){var t=i[e];if(e>0&&i.lastIndexOf(t,e-1)>=0){i.splice(e,1);continue}for(var r=t.parent;r;r=r.parent)if(i.includes(r)){i.splice(e,1);break}}return i}var Xs;(function(i){i[i.DISCONNECTED=1]="DISCONNECTED",i[i.PRECEDING=2]="PRECEDING",i[i.FOLLOWING=4]="FOLLOWING",i[i.CONTAINS=8]="CONTAINS",i[i.CONTAINED_BY=16]="CONTAINED_BY"})(Xs||(cd.DocumentPosition=Xs={}));function dee(i,e){var t=[],r=[];if(i===e)return 0;for(var n=(0,cee.hasChildren)(i)?i:i.parent;n;)t.unshift(n),n=n.parent;for(n=(0,cee.hasChildren)(e)?e:e.parent;n;)r.unshift(n),n=n.parent;for(var s=Math.min(t.length,r.length),o=0;ol.indexOf(c)?a===e?Xs.FOLLOWING|Xs.CONTAINED_BY:Xs.FOLLOWING:a===i?Xs.PRECEDING|Xs.CONTAINS:Xs.PRECEDING}function B6e(i){return i=i.filter(function(e,t,r){return!r.includes(e,t+1)}),i.sort(function(e,t){var r=dee(e,t);return r&Xs.PRECEDING?-1:r&Xs.FOLLOWING?1:0}),i}});var pee=M(II=>{"use strict";Object.defineProperty(II,"__esModule",{value:!0});II.getFeed=q6e;var z6e=yI(),Mm=CI();function q6e(i){var e=o_(W6e,i);return e?e.name==="feed"?H6e(e):j6e(e):null}function H6e(i){var e,t=i.children,r={type:"atom",items:(0,Mm.getElementsByTagName)("entry",t).map(function(o){var a,l=o.children,u={media:fee(l)};Cn(u,"id","id",l),Cn(u,"title","title",l);var c=(a=o_("link",l))===null||a===void 0?void 0:a.attribs.href;c&&(u.link=c);var d=Qu("summary",l)||Qu("content",l);d&&(u.description=d);var h=Qu("updated",l);return h&&(u.pubDate=new Date(h)),u})};Cn(r,"id","id",t),Cn(r,"title","title",t);var n=(e=o_("link",t))===null||e===void 0?void 0:e.attribs.href;n&&(r.link=n),Cn(r,"description","subtitle",t);var s=Qu("updated",t);return s&&(r.updated=new Date(s)),Cn(r,"author","email",t,!0),r}function j6e(i){var e,t,r=(t=(e=o_("channel",i.children))===null||e===void 0?void 0:e.children)!==null&&t!==void 0?t:[],n={type:i.name.substr(0,3),id:"",items:(0,Mm.getElementsByTagName)("item",i.children).map(function(o){var a=o.children,l={media:fee(a)};Cn(l,"id","guid",a),Cn(l,"title","title",a),Cn(l,"link","link",a),Cn(l,"description","description",a);var u=Qu("pubDate",a)||Qu("dc:date",a);return u&&(l.pubDate=new Date(u)),l})};Cn(n,"title","title",r),Cn(n,"link","link",r),Cn(n,"description","description",r);var s=Qu("lastBuildDate",r);return s&&(n.updated=new Date(s)),Cn(n,"author","managingEditor",r,!0),n}var V6e=["url","type","lang"],U6e=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function fee(i){return(0,Mm.getElementsByTagName)("media:content",i).map(function(e){for(var t=e.attribs,r={medium:t.medium,isDefault:!!t.isDefault},n=0,s=V6e;n{"use strict";var G6e=Vt&&Vt.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),dd=Vt&&Vt.__exportStar||function(i,e){for(var t in i)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&G6e(e,i,t)};Object.defineProperty(Vt,"__esModule",{value:!0});Vt.hasChildren=Vt.isDocument=Vt.isComment=Vt.isText=Vt.isCDATA=Vt.isTag=void 0;dd(yI(),Vt);dd(nee(),Vt);dd(see(),Vt);dd(wI(),Vt);dd(CI(),Vt);dd(hee(),Vt);dd(pee(),Vt);var ef=za();Object.defineProperty(Vt,"isTag",{enumerable:!0,get:function(){return ef.isTag}});Object.defineProperty(Vt,"isCDATA",{enumerable:!0,get:function(){return ef.isCDATA}});Object.defineProperty(Vt,"isText",{enumerable:!0,get:function(){return ef.isText}});Object.defineProperty(Vt,"isComment",{enumerable:!0,get:function(){return ef.isComment}});Object.defineProperty(Vt,"isDocument",{enumerable:!0,get:function(){return ef.isDocument}});Object.defineProperty(Vt,"hasChildren",{enumerable:!0,get:function(){return ef.hasChildren}})});var xee=M(gt=>{"use strict";var K6e=gt&>.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t);var n=Object.getOwnPropertyDescriptor(e,t);(!n||("get"in n?!e.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:function(){return e[t]}}),Object.defineProperty(i,r,n)}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),Y6e=gt&>.__setModuleDefault||(Object.create?function(i,e){Object.defineProperty(i,"default",{enumerable:!0,value:e})}:function(i,e){i.default=e}),mee=gt&>.__importStar||function(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t in i)t!=="default"&&Object.prototype.hasOwnProperty.call(i,t)&&K6e(e,i,t);return Y6e(e,i),e},X6e=gt&>.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(gt,"__esModule",{value:!0});gt.DomUtils=gt.parseFeed=gt.getFeed=gt.ElementType=gt.Tokenizer=gt.createDomStream=gt.parseDOM=gt.parseDocument=gt.DefaultHandler=gt.DomHandler=gt.Parser=void 0;var gee=eI(),J6e=eI();Object.defineProperty(gt,"Parser",{enumerable:!0,get:function(){return J6e.Parser}});var bee=za(),vee=za();Object.defineProperty(gt,"DomHandler",{enumerable:!0,get:function(){return vee.DomHandler}});Object.defineProperty(gt,"DefaultHandler",{enumerable:!0,get:function(){return vee.DomHandler}});function _ee(i,e){var t=new bee.DomHandler(void 0,e);return new gee.Parser(t,e).end(i),t.root}gt.parseDocument=_ee;function yee(i,e){return _ee(i,e).children}gt.parseDOM=yee;function Z6e(i,e,t){var r=new bee.DomHandler(i,e,t);return new gee.Parser(r,e)}gt.createDomStream=Z6e;var Q6e=Q4();Object.defineProperty(gt,"Tokenizer",{enumerable:!0,get:function(){return X6e(Q6e).default}});gt.ElementType=mee(Xh());var e4e=a_(),t4e=a_();Object.defineProperty(gt,"getFeed",{enumerable:!0,get:function(){return t4e.getFeed}});var i4e={xmlMode:!0};function r4e(i,e){return e===void 0&&(e=i4e),(0,e4e.getFeed)(yee(i,e))}gt.parseFeed=r4e;gt.DomUtils=mee(a_())});var See=M((WIt,wee)=>{"use strict";wee.exports=i=>{if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}});var Iee=M(EI=>{"use strict";Object.defineProperty(EI,"__esModule",{value:!0});function Cee(i){return Object.prototype.toString.call(i)==="[object Object]"}function n4e(i){var e,t;return Cee(i)===!1?!1:(e=i.constructor,e===void 0?!0:(t=e.prototype,!(Cee(t)===!1||t.hasOwnProperty("isPrototypeOf")===!1)))}EI.isPlainObject=n4e});var Aee=M((KIt,Tee)=>{"use strict";var s4e=function(e){return o4e(e)&&!a4e(e)};function o4e(i){return!!i&&typeof i=="object"}function a4e(i){var e=Object.prototype.toString.call(i);return e==="[object RegExp]"||e==="[object Date]"||c4e(i)}var l4e=typeof Symbol=="function"&&Symbol.for,u4e=l4e?Symbol.for("react.element"):60103;function c4e(i){return i.$$typeof===u4e}function d4e(i){return Array.isArray(i)?[]:{}}function Rm(i,e){return e.clone!==!1&&e.isMergeableObject(i)?tf(d4e(i),i,e):i}function h4e(i,e,t){return i.concat(e).map(function(r){return Rm(r,t)})}function f4e(i,e){if(!e.customMerge)return tf;var t=e.customMerge(i);return typeof t=="function"?t:tf}function p4e(i){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(i).filter(function(e){return Object.propertyIsEnumerable.call(i,e)}):[]}function Eee(i){return Object.keys(i).concat(p4e(i))}function kee(i,e){try{return e in i}catch{return!1}}function m4e(i,e){return kee(i,e)&&!(Object.hasOwnProperty.call(i,e)&&Object.propertyIsEnumerable.call(i,e))}function g4e(i,e,t){var r={};return t.isMergeableObject(i)&&Eee(i).forEach(function(n){r[n]=Rm(i[n],t)}),Eee(e).forEach(function(n){m4e(i,n)||(kee(i,n)&&t.isMergeableObject(e[n])?r[n]=f4e(n,t)(i[n],e[n],t):r[n]=Rm(e[n],t))}),r}function tf(i,e,t){t=t||{},t.arrayMerge=t.arrayMerge||h4e,t.isMergeableObject=t.isMergeableObject||s4e,t.cloneUnlessOtherwiseSpecified=Rm;var r=Array.isArray(e),n=Array.isArray(i),s=r===n;return s?r?t.arrayMerge(i,e,t):g4e(i,e,t):Rm(e,t)}tf.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(r,n){return tf(r,n,t)},{})};var b4e=tf;Tee.exports=b4e});var Ree=M((Mee,l_)=>{(function(i,e){typeof define=="function"&&define.amd?define([],e):typeof l_=="object"&&l_.exports?l_.exports=e():i.parseSrcset=e()})(Mee,function(){return function(i){function e(y){return y===" "||y===" "||y===` +`||y==="\f"||y==="\r"}function t(y){var C,S=y.exec(i.substring(g));if(S)return C=S[0],g+=C.length,C}for(var r=i.length,n=/^[ \t\n\r\u000c]+/,s=/^[, \t\n\r\u000c]+/,o=/^[^ \t\n\r\u000c]+/,a=/[,]+$/,l=/^\d+$/,u=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,c,d,h,f,p,g=0,v=[];;){if(t(s),g>=r)return v;c=t(o),d=[],c.slice(-1)===","?(c=c.replace(a,""),x()):_()}function _(){for(t(n),h="",f="in descriptor";;){if(p=i.charAt(g),f==="in descriptor")if(e(p))h&&(d.push(h),h="",f="after descriptor");else if(p===","){g+=1,h&&d.push(h),x();return}else if(p==="(")h=h+p,f="in parens";else if(p===""){h&&d.push(h),x();return}else h=h+p;else if(f==="in parens")if(p===")")h=h+p,f="in descriptor";else if(p===""){d.push(h),x();return}else h=h+p;else if(f==="after descriptor"&&!e(p))if(p===""){x();return}else f="in descriptor",g-=1;g+=1}}function x(){var y=!1,C,S,R,I,E={},w,k,O,z,Y;for(I=0;I{var Ke=String,Dee=function(){return{isColorSupported:!1,reset:Ke,bold:Ke,dim:Ke,italic:Ke,underline:Ke,inverse:Ke,hidden:Ke,strikethrough:Ke,black:Ke,red:Ke,green:Ke,yellow:Ke,blue:Ke,magenta:Ke,cyan:Ke,white:Ke,gray:Ke,bgBlack:Ke,bgRed:Ke,bgGreen:Ke,bgYellow:Ke,bgBlue:Ke,bgMagenta:Ke,bgCyan:Ke,bgWhite:Ke,blackBright:Ke,redBright:Ke,greenBright:Ke,yellowBright:Ke,blueBright:Ke,magentaBright:Ke,cyanBright:Ke,whiteBright:Ke,bgBlackBright:Ke,bgRedBright:Ke,bgGreenBright:Ke,bgYellowBright:Ke,bgBlueBright:Ke,bgMagentaBright:Ke,bgCyanBright:Ke,bgWhiteBright:Ke}};kI.exports=Dee();kI.exports.createColors=Dee});var TI=M(()=>{});var u_=M((ZIt,Pee)=>{"use strict";var Lee=Oee(),$ee=TI(),hd=class extends Error{constructor(e,t,r,n,s,o){super(e),this.name="CssSyntaxError",this.reason=e,s&&(this.file=s),n&&(this.source=n),o&&(this.plugin=o),typeof t<"u"&&typeof r<"u"&&(typeof t=="number"?(this.line=t,this.column=r):(this.line=t.line,this.column=t.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,hd)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"",typeof this.line<"u"&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;e==null&&(e=Lee.isColorSupported);let r=c=>c,n=c=>c,s=c=>c;if(e){let{bold:c,gray:d,red:h}=Lee.createColors(!0);n=f=>c(h(f)),r=f=>d(f),$ee&&(s=f=>$ee(f))}let o=t.split(/\r?\n/),a=Math.max(this.line-3,0),l=Math.min(this.line+2,o.length),u=String(l).length;return o.slice(a,l).map((c,d)=>{let h=a+1+d,f=" "+(" "+h).slice(-u)+" | ";if(h===this.line){if(c.length>160){let g=20,v=Math.max(0,this.column-g),_=Math.max(this.column+g,this.endColumn+g),x=c.slice(v,_),y=r(f.replace(/\d/g," "))+c.slice(0,Math.min(this.column-1,g-1)).replace(/[^\t]/g," ");return n(">")+r(f)+s(x)+` + `+y+n("^")}let p=r(f.replace(/\d/g," "))+c.slice(0,this.column-1).replace(/[^\t]/g," ");return n(">")+r(f)+s(c)+` + `+p+n("^")}return" "+r(f)+s(c)}).join(` +`)}toString(){let e=this.showSourceCode();return e&&(e=` + +`+e+` +`),this.name+": "+this.message+e}};Pee.exports=hd;hd.default=hd});var AI=M((QIt,Nee)=>{"use strict";var Fee={after:` +`,beforeClose:` +`,beforeComment:` +`,beforeDecl:` +`,beforeOpen:" ",beforeRule:` +`,colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};function v4e(i){return i[0].toUpperCase()+i.slice(1)}var Dm=class{constructor(e){this.builder=e}atrule(e,t){let r="@"+e.name,n=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName<"u"?r+=e.raws.afterName:n&&(r+=" "),e.nodes)this.block(e,r+n);else{let s=(e.raws.between||"")+(t?";":"");this.builder(r+n+s,e)}}beforeAfter(e,t){let r;e.type==="decl"?r=this.raw(e,null,"beforeDecl"):e.type==="comment"?r=this.raw(e,null,"beforeComment"):t==="before"?r=this.raw(e,null,"beforeRule"):r=this.raw(e,null,"beforeClose");let n=e.parent,s=0;for(;n&&n.type!=="root";)s+=1,n=n.parent;if(r.includes(` +`)){let o=this.raw(e,null,"indent");if(o.length)for(let a=0;a0&&e.nodes[t].type==="comment";)t-=1;let r=this.raw(e,"semicolon");for(let n=0;n{if(n=l.raws[t],typeof n<"u")return!1})}return typeof n>"u"&&(n=Fee[r]),o.rawCache[r]=n,n}rawBeforeClose(e){let t;return e.walk(r=>{if(r.nodes&&r.nodes.length>0&&typeof r.raws.after<"u")return t=r.raws.after,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let r;return e.walkComments(n=>{if(typeof n.raws.before<"u")return r=n.raws.before,r.includes(` +`)&&(r=r.replace(/[^\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(t,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(e,t){let r;return e.walkDecls(n=>{if(typeof n.raws.before<"u")return r=n.raws.before,r.includes(` +`)&&(r=r.replace(/[^\n]+$/,"")),!1}),typeof r>"u"?r=this.raw(t,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeOpen(e){let t;return e.walk(r=>{if(r.type!=="decl"&&(t=r.raws.between,typeof t<"u"))return!1}),t}rawBeforeRule(e){let t;return e.walk(r=>{if(r.nodes&&(r.parent!==e||e.first!==r)&&typeof r.raws.before<"u")return t=r.raws.before,t.includes(` +`)&&(t=t.replace(/[^\n]+$/,"")),!1}),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls(r=>{if(typeof r.raws.between<"u")return t=r.raws.between.replace(/[^\s:]/g,""),!1}),t}rawEmptyBody(e){let t;return e.walk(r=>{if(r.nodes&&r.nodes.length===0&&(t=r.raws.after,typeof t<"u"))return!1}),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk(r=>{let n=r.parent;if(n&&n!==e&&n.parent&&n.parent===e&&typeof r.raws.before<"u"){let s=r.raws.before.split(` +`);return t=s[s.length-1],t=t.replace(/\S/g,""),!1}}),t}rawSemicolon(e){let t;return e.walk(r=>{if(r.nodes&&r.nodes.length&&r.last.type==="decl"&&(t=r.raws.semicolon,typeof t<"u"))return!1}),t}rawValue(e,t){let r=e[t],n=e.raws[t];return n&&n.value===r?n.raw:r}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};Nee.exports=Dm;Dm.default=Dm});var Om=M((eEt,Bee)=>{"use strict";var _4e=AI();function MI(i,e){new _4e(e).stringify(i)}Bee.exports=MI;MI.default=MI});var c_=M((tEt,RI)=>{"use strict";RI.exports.isClean=Symbol("isClean");RI.exports.my=Symbol("my")});var Pm=M((iEt,zee)=>{"use strict";var y4e=u_(),x4e=AI(),w4e=Om(),{isClean:Lm,my:S4e}=c_();function DI(i,e){let t=new i.constructor;for(let r in i){if(!Object.prototype.hasOwnProperty.call(i,r)||r==="proxyCache")continue;let n=i[r],s=typeof n;r==="parent"&&s==="object"?e&&(t[r]=e):r==="source"?t[r]=n:Array.isArray(n)?t[r]=n.map(o=>DI(o,t)):(s==="object"&&n!==null&&(n=DI(n)),t[r]=n)}return t}function ja(i,e){if(e&&typeof e.offset<"u")return e.offset;let t=1,r=1,n=0;for(let s=0;se.root().toProxy():e[t]},set(e,t,r){return e[t]===r||(e[t]=r,(t==="prop"||t==="value"||t==="name"||t==="params"||t==="important"||t==="text")&&e.markDirty()),!0}}}markClean(){this[Lm]=!0}markDirty(){if(this[Lm]){this[Lm]=!1;let e=this;for(;e=e.parent;)e[Lm]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e={}){let t=this.source.start;if(e.index)t=this.positionInside(e.index);else if(e.word){let r="document"in this.source.input?this.source.input.document:this.source.input.css,s=r.slice(ja(r,this.source.start),ja(r,this.source.end)).indexOf(e.word);s!==-1&&(t=this.positionInside(s))}return t}positionInside(e){let t=this.source.start.column,r=this.source.start.line,n="document"in this.source.input?this.source.input.document:this.source.input.css,s=ja(n,this.source.start),o=s+e;for(let a=s;atypeof l=="object"&&l.toJSON?l.toJSON(null,t):l);else if(typeof a=="object"&&a.toJSON)r[o]=a.toJSON(null,t);else if(o==="source"){if(a==null)continue;let l=t.get(a.input);l==null&&(l=s,t.set(a.input,s),s++),r[o]={end:a.end,inputId:l,start:a.start}}else r[o]=a}return n&&(r.inputs=[...t.keys()].map(o=>o.toJSON())),r}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=w4e){e.stringify&&(e=e.stringify);let t="";return e(this,r=>{t+=r}),t}warn(e,t,r={}){let n={node:this};for(let s in r)n[s]=r[s];return e.warn(t,n)}};zee.exports=$m;$m.default=$m});var Nm=M((rEt,qee)=>{"use strict";var C4e=Pm(),Fm=class extends C4e{constructor(e){super(e),this.type="comment"}};qee.exports=Fm;Fm.default=Fm});var zm=M((nEt,Hee)=>{"use strict";var I4e=Pm(),Bm=class extends I4e{get variable(){return this.prop.startsWith("--")||this.prop[0]==="$"}constructor(e){e&&typeof e.value<"u"&&typeof e.value!="string"&&(e={...e,value:String(e.value)}),super(e),this.type="decl"}};Hee.exports=Bm;Bm.default=Bm});var ec=M((sEt,Jee)=>{"use strict";var jee=Nm(),Vee=zm(),E4e=Pm(),{isClean:Uee,my:Wee}=c_(),OI,Gee,Kee,LI;function Yee(i){return i.map(e=>(e.nodes&&(e.nodes=Yee(e.nodes)),delete e.source,e))}function Xee(i){if(i[Uee]=!1,i.proxyOf.nodes)for(let e of i.proxyOf.nodes)Xee(e)}var Kn=class extends E4e{get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}append(...e){for(let t of e){let r=this.normalize(t,this.last);for(let n of r)this.proxyOf.nodes.push(n)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t=this.getIterator(),r,n;for(;this.indexes[t]e[t](...r.map(n=>typeof n=="function"?(s,o)=>n(s.toProxy(),o):n)):t==="every"||t==="some"?r=>e[t]((n,...s)=>r(n.toProxy(),...s)):t==="root"?()=>e.root().toProxy():t==="nodes"?e.nodes.map(r=>r.toProxy()):t==="first"||t==="last"?e[t].toProxy():e[t]:e[t]},set(e,t,r){return e[t]===r||(e[t]=r,(t==="name"||t==="params"||t==="selector")&&e.markDirty()),!0}}}index(e){return typeof e=="number"?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let r=this.index(e),n=this.normalize(t,this.proxyOf.nodes[r]).reverse();r=this.index(e);for(let o of n)this.proxyOf.nodes.splice(r+1,0,o);let s;for(let o in this.indexes)s=this.indexes[o],r"u")e=[];else if(Array.isArray(e)){e=e.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type==="root"&&this.type!=="document"){e=e.nodes.slice(0);for(let n of e)n.parent&&n.parent.removeChild(n,"ignore")}else if(e.type)e=[e];else if(e.prop){if(typeof e.value>"u")throw new Error("Value field is missed in node creation");typeof e.value!="string"&&(e.value=String(e.value)),e=[new Vee(e)]}else if(e.selector||e.selectors)e=[new LI(e)];else if(e.name)e=[new OI(e)];else if(e.text)e=[new jee(e)];else throw new Error("Unknown node type in node creation");return e.map(n=>(n[Wee]||Kn.rebuild(n),n=n.proxyOf,n.parent&&n.parent.removeChild(n),n[Uee]&&Xee(n),n.raws||(n.raws={}),typeof n.raws.before>"u"&&t&&typeof t.raws.before<"u"&&(n.raws.before=t.raws.before.replace(/\S/g,"")),n.parent=this.proxyOf,n))}prepend(...e){e=e.reverse();for(let t of e){let r=this.normalize(t,this.first,"prepend").reverse();for(let n of r)this.proxyOf.nodes.unshift(n);for(let n in this.indexes)this.indexes[n]=this.indexes[n]+r.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);let t;for(let r in this.indexes)t=this.indexes[r],t>=e&&(this.indexes[r]=t-1);return this.markDirty(),this}replaceValues(e,t,r){return r||(r=t,t={}),this.walkDecls(n=>{t.props&&!t.props.includes(n.prop)||t.fast&&!n.value.includes(t.fast)||(n.value=n.value.replace(e,r))}),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each((t,r)=>{let n;try{n=e(t,r)}catch(s){throw t.addToError(s)}return n!==!1&&t.walk&&(n=t.walk(e)),n})}walkAtRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if(r.type==="atrule"&&e.test(r.name))return t(r,n)}):this.walk((r,n)=>{if(r.type==="atrule"&&r.name===e)return t(r,n)}):(t=e,this.walk((r,n)=>{if(r.type==="atrule")return t(r,n)}))}walkComments(e){return this.walk((t,r)=>{if(t.type==="comment")return e(t,r)})}walkDecls(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if(r.type==="decl"&&e.test(r.prop))return t(r,n)}):this.walk((r,n)=>{if(r.type==="decl"&&r.prop===e)return t(r,n)}):(t=e,this.walk((r,n)=>{if(r.type==="decl")return t(r,n)}))}walkRules(e,t){return t?e instanceof RegExp?this.walk((r,n)=>{if(r.type==="rule"&&e.test(r.selector))return t(r,n)}):this.walk((r,n)=>{if(r.type==="rule"&&r.selector===e)return t(r,n)}):(t=e,this.walk((r,n)=>{if(r.type==="rule")return t(r,n)}))}};Kn.registerParse=i=>{Gee=i};Kn.registerRule=i=>{LI=i};Kn.registerAtRule=i=>{OI=i};Kn.registerRoot=i=>{Kee=i};Jee.exports=Kn;Kn.default=Kn;Kn.rebuild=i=>{i.type==="atrule"?Object.setPrototypeOf(i,OI.prototype):i.type==="rule"?Object.setPrototypeOf(i,LI.prototype):i.type==="decl"?Object.setPrototypeOf(i,Vee.prototype):i.type==="comment"?Object.setPrototypeOf(i,jee.prototype):i.type==="root"&&Object.setPrototypeOf(i,Kee.prototype),i[Wee]=!0,i.nodes&&i.nodes.forEach(e=>{Kn.rebuild(e)})}});var d_=M((oEt,Qee)=>{"use strict";var Zee=ec(),rf=class extends Zee{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};Qee.exports=rf;rf.default=rf;Zee.registerAtRule(rf)});var h_=M((aEt,ite)=>{"use strict";var k4e=ec(),ete,tte,fd=class extends k4e{constructor(e){super({type:"document",...e}),this.nodes||(this.nodes=[])}toResult(e={}){return new ete(new tte,this,e).stringify()}};fd.registerLazyResult=i=>{ete=i};fd.registerProcessor=i=>{tte=i};ite.exports=fd;fd.default=fd});var nte=M((lEt,rte)=>{var T4e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",A4e=(i,e=21)=>(t=e)=>{let r="",n=t|0;for(;n--;)r+=i[Math.random()*i.length|0];return r},M4e=(i=21)=>{let e="",t=i|0;for(;t--;)e+=T4e[Math.random()*64|0];return e};rte.exports={nanoid:M4e,customAlphabet:A4e}});var f_=M((uEt,ste)=>{ste.exports={}});var p_=M(()=>{});var $I=M((hEt,ote)=>{ote.exports={}});var lte=M((fEt,ate)=>{ate.exports={}});var FI=M((pEt,dte)=>{"use strict";var{existsSync:R4e,readFileSync:D4e}=lte(),{dirname:PI,join:O4e}=f_(),{SourceMapConsumer:ute,SourceMapGenerator:cte}=p_();function L4e(i){return Buffer?Buffer.from(i,"base64").toString():window.atob(i)}var qm=class{constructor(e,t){if(t.map===!1)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let r=t.map?t.map.prev:void 0,n=this.loadMap(t.from,r);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=PI(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new ute(this.text)),this.consumerCache}decodeInline(e){let t=/^data:application\/json;charset=utf-?8;base64,/,r=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,s=/^data:application\/json,/,o=e.match(n)||e.match(s);if(o)return decodeURIComponent(e.substr(o[0].length));let a=e.match(t)||e.match(r);if(a)return L4e(e.substr(a[0].length));let l=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+l)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return typeof e!="object"?!1:typeof e.mappings=="string"||typeof e._mappings=="string"||Array.isArray(e.sections)}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let r=e.lastIndexOf(t.pop()),n=e.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(e.substring(r,n)))}loadFile(e){if(this.root=PI(e),R4e(e))return this.mapFile=e,D4e(e,"utf-8").toString().trim()}loadMap(e,t){if(t===!1)return!1;if(t){if(typeof t=="string")return t;if(typeof t=="function"){let r=t(e);if(r){let n=this.loadFile(r);if(!n)throw new Error("Unable to load previous source map: "+r.toString());return n}}else{if(t instanceof ute)return cte.fromSourceMap(t).toString();if(t instanceof cte)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let r=this.annotation;return e&&(r=O4e(PI(e),r)),this.loadFile(r)}}}startWith(e,t){return e?e.substr(0,t.length)===t:!1}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};dte.exports=qm;qm.default=qm});var Hm=M((mEt,gte)=>{"use strict";var{nanoid:$4e}=nte(),{isAbsolute:zI,resolve:qI}=f_(),{SourceMapConsumer:P4e,SourceMapGenerator:F4e}=p_(),{fileURLToPath:hte,pathToFileURL:m_}=$I(),fte=u_(),N4e=FI(),NI=TI(),BI=Symbol("lineToIndexCache"),B4e=Boolean(P4e&&F4e),pte=Boolean(qI&&zI);function mte(i){if(i[BI])return i[BI];let e=i.css.split(` +`),t=new Array(e.length),r=0;for(let n=0,s=e.length;n"u"||typeof e=="object"&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),this.css[0]==="\uFEFF"||this.css[0]==="\uFFFE"?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,this.document=this.css,t.document&&(this.document=t.document.toString()),t.from&&(!pte||/^\w+:\/\//.test(t.from)||zI(t.from)?this.file=t.from:this.file=qI(t.from)),pte&&B4e){let r=new N4e(this.css,t);if(r.text){this.map=r;let n=r.consumer().file;!this.file&&n&&(this.file=this.mapResolve(n))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}error(e,t,r,n={}){let s,o,a,l,u;if(t&&typeof t=="object"){let d=t,h=r;if(typeof d.offset=="number"){l=d.offset;let f=this.fromOffset(l);t=f.line,r=f.col}else t=d.line,r=d.column,l=this.fromLineAndColumn(t,r);if(typeof h.offset=="number"){a=h.offset;let f=this.fromOffset(a);o=f.line,s=f.col}else o=h.line,s=h.column,a=this.fromLineAndColumn(h.line,h.column)}else if(r)l=this.fromLineAndColumn(t,r);else{l=t;let d=this.fromOffset(l);t=d.line,r=d.col}let c=this.origin(t,r,o,s);return c?u=new fte(e,c.endLine===void 0?c.line:{column:c.column,line:c.line},c.endLine===void 0?c.column:{column:c.endColumn,line:c.endLine},c.source,c.file,n.plugin):u=new fte(e,o===void 0?t:{column:r,line:t},o===void 0?r:{column:s,line:o},this.css,this.file,n.plugin),u.input={column:r,endColumn:s,endLine:o,endOffset:a,line:t,offset:l,source:this.css},this.file&&(m_&&(u.input.url=m_(this.file).toString()),u.input.file=this.file),u}fromLineAndColumn(e,t){return mte(this)[e-1]+t-1}fromOffset(e){let t=mte(this),r=t[t.length-1],n=0;if(e>=r)n=t.length-1;else{let s=t.length-2,o;for(;n>1),e=t[o+1])n=o+1;else{n=o;break}}return{col:e-t[n]+1,line:n+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:qI(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,r,n){if(!this.map)return!1;let s=this.map.consumer(),o=s.originalPositionFor({column:t,line:e});if(!o.source)return!1;let a;typeof r=="number"&&(a=s.originalPositionFor({column:n,line:r}));let l;zI(o.source)?l=m_(o.source):l=new URL(o.source,this.map.consumer().sourceRoot||m_(this.map.mapFile));let u={column:o.column,endColumn:a&&a.column,endLine:a&&a.line,line:o.line,url:l.toString()};if(l.protocol==="file:")if(hte)u.file=hte(l);else throw new Error("file: protocol is not available in this PostCSS build");let c=s.sourceContentFor(o.source);return c&&(u.source=c),u}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])this[t]!=null&&(e[t]=this[t]);return this.map&&(e.map={...this.map},e.map.consumerCache&&(e.map.consumerCache=void 0)),e}};gte.exports=nf;nf.default=nf;NI&&NI.registerInput&&NI.registerInput(nf)});var sf=M((gEt,yte)=>{"use strict";var bte=ec(),vte,_te,tc=class extends bte{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,r){let n=super.normalize(e);if(t){if(r==="prepend")this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let s of n)s.raws.before=t.raws.before}return n}removeChild(e,t){let r=this.index(e);return!t&&r===0&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(e)}toResult(e={}){return new vte(new _te,this,e).stringify()}};tc.registerLazyResult=i=>{vte=i};tc.registerProcessor=i=>{_te=i};yte.exports=tc;tc.default=tc;bte.registerRoot(tc)});var HI=M((bEt,xte)=>{"use strict";var jm={comma(i){return jm.split(i,[","],!0)},space(i){let e=[" ",` +`," "];return jm.split(i,e)},split(i,e,t){let r=[],n="",s=!1,o=0,a=!1,l="",u=!1;for(let c of i)u?u=!1:c==="\\"?u=!0:a?c===l&&(a=!1):c==='"'||c==="'"?(a=!0,l=c):c==="("?o+=1:c===")"?o>0&&(o-=1):o===0&&e.includes(c)&&(s=!0),s?(n!==""&&r.push(n.trim()),n="",s=!1):n+=c;return(t||n!=="")&&r.push(n.trim()),r}};xte.exports=jm;jm.default=jm});var g_=M((vEt,Ste)=>{"use strict";var wte=ec(),z4e=HI(),of=class extends wte{get selectors(){return z4e.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,r=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(r)}constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}};Ste.exports=of;of.default=of;wte.registerRule(of)});var Ite=M((_Et,Cte)=>{"use strict";var q4e=d_(),H4e=Nm(),j4e=zm(),V4e=Hm(),U4e=FI(),W4e=sf(),G4e=g_();function Vm(i,e){if(Array.isArray(i))return i.map(n=>Vm(n));let{inputs:t,...r}=i;if(t){e=[];for(let n of t){let s={...n,__proto__:V4e.prototype};s.map&&(s.map={...s.map,__proto__:U4e.prototype}),e.push(s)}}if(r.nodes&&(r.nodes=i.nodes.map(n=>Vm(n,e))),r.source){let{inputId:n,...s}=r.source;r.source=s,n!=null&&(r.source.input=e[n])}if(r.type==="root")return new W4e(r);if(r.type==="decl")return new j4e(r);if(r.type==="rule")return new G4e(r);if(r.type==="comment")return new H4e(r);if(r.type==="atrule")return new q4e(r);throw new Error("Unknown node type: "+i.type)}Cte.exports=Vm;Vm.default=Vm});var VI=M((yEt,Rte)=>{"use strict";var{dirname:b_,relative:kte,resolve:Tte,sep:Ate}=f_(),{SourceMapConsumer:Mte,SourceMapGenerator:v_}=p_(),{pathToFileURL:Ete}=$I(),K4e=Hm(),Y4e=Boolean(Mte&&v_),X4e=Boolean(b_&&Tte&&kte&&Ate),jI=class{constructor(e,t,r,n){this.stringify=e,this.mapOpts=r.map||{},this.root=t,this.opts=r,this.css=n,this.originalCSS=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;this.isInline()?e="data:application/json;base64,"+this.toBase64(this.map.toString()):typeof this.mapOpts.annotation=="string"?e=this.mapOpts.annotation:typeof this.mapOpts.annotation=="function"?e=this.mapOpts.annotation(this.opts.to,this.root):e=this.outputFile()+".map";let t=` +`;this.css.includes(`\r +`)&&(t=`\r +`),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t=this.toUrl(this.path(e.file)),r=e.root||b_(e.file),n;this.mapOpts.sourcesContent===!1?(n=new Mte(e.text),n.sourcesContent&&(n.sourcesContent=null)):n=e.consumer(),this.map.applySourceMap(n,t,this.toUrl(this.path(r)))}}clearAnnotation(){if(this.mapOpts.annotation!==!1)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],e.type==="comment"&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),X4e&&Y4e&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,t=>{e+=t}),[e]}}generateMap(){if(this.root)this.generateString();else if(this.previous().length===1){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=v_.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new v_({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):""});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new v_({file:this.outputFile(),ignoreInvalidMapping:!0});let e=1,t=1,r="",n={generated:{column:0,line:0},original:{column:0,line:0},source:""},s,o;this.stringify(this.root,(a,l,u)=>{if(this.css+=a,l&&u!=="end"&&(n.generated.line=e,n.generated.column=t-1,l.source&&l.source.start?(n.source=this.sourcePath(l),n.original.line=l.source.start.line,n.original.column=l.source.start.column-1,this.map.addMapping(n)):(n.source=r,n.original.line=1,n.original.column=0,this.map.addMapping(n))),o=a.match(/\n/g),o?(e+=o.length,s=a.lastIndexOf(` +`),t=a.length-s):t+=a.length,l&&u!=="start"){let c=l.parent||{raws:{}};(!(l.type==="decl"||l.type==="atrule"&&!l.nodes)||l!==c.last||c.raws.semicolon)&&(l.source&&l.source.end?(n.source=this.sourcePath(l),n.original.line=l.source.end.line,n.original.column=l.source.end.column-1,n.generated.line=e,n.generated.column=t-2,this.map.addMapping(n)):(n.source=r,n.original.line=1,n.original.column=0,n.generated.line=e,n.generated.column=t-1,this.map.addMapping(n)))}})}isAnnotation(){return this.isInline()?!0:typeof this.mapOpts.annotation<"u"?this.mapOpts.annotation:this.previous().length?this.previous().some(e=>e.annotation):!0}isInline(){if(typeof this.mapOpts.inline<"u")return this.mapOpts.inline;let e=this.mapOpts.annotation;return typeof e<"u"&&e!==!0?!1:this.previous().length?this.previous().some(t=>t.inline):!0}isMap(){return typeof this.opts.map<"u"?!!this.opts.map:this.previous().length>0}isSourcesContent(){return typeof this.mapOpts.sourcesContent<"u"?this.mapOpts.sourcesContent:this.previous().length?this.previous().some(e=>e.withContent()):!0}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||e.charCodeAt(0)===60||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let r=this.opts.to?b_(this.opts.to):".";typeof this.mapOpts.annotation=="string"&&(r=b_(Tte(r,this.mapOpts.annotation)));let n=kte(r,e);return this.memoizedPaths.set(e,n),n}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk(e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}});else{let e=new K4e(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk(t=>{if(t.source){let r=t.source.input.from;if(r&&!e[r]){e[r]=!0;let n=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(n,t.source.input.css)}}});else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(t,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Ete){let r=Ete(e).toString();return this.memoizedFileURLs.set(e,r),r}else throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;Ate==="\\"&&(e=e.replace(/\\/g,"/"));let r=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,r),r}};Rte.exports=jI});var Pte=M((xEt,$te)=>{"use strict";var UI="'".charCodeAt(0),Dte='"'.charCodeAt(0),__="\\".charCodeAt(0),Ote="/".charCodeAt(0),y_=` +`.charCodeAt(0),Um=" ".charCodeAt(0),x_="\f".charCodeAt(0),w_=" ".charCodeAt(0),S_="\r".charCodeAt(0),J4e="[".charCodeAt(0),Z4e="]".charCodeAt(0),Q4e="(".charCodeAt(0),eIe=")".charCodeAt(0),tIe="{".charCodeAt(0),iIe="}".charCodeAt(0),rIe=";".charCodeAt(0),nIe="*".charCodeAt(0),sIe=":".charCodeAt(0),oIe="@".charCodeAt(0),C_=/[\t\n\f\r "#'()/;[\\\]{}]/g,I_=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,aIe=/.[\r\n"'(/\\]/,Lte=/[\da-f]/i;$te.exports=function(e,t={}){let r=e.css.valueOf(),n=t.ignoreErrors,s,o,a,l,u,c,d,h,f,p,g=r.length,v=0,_=[],x=[];function y(){return v}function C(E){throw e.error("Unclosed "+E,v)}function S(){return x.length===0&&v>=g}function R(E){if(x.length)return x.pop();if(v>=g)return;let w=E?E.ignoreUnclosed:!1;switch(s=r.charCodeAt(v),s){case y_:case Um:case w_:case S_:case x_:{l=v;do l+=1,s=r.charCodeAt(l);while(s===Um||s===y_||s===w_||s===S_||s===x_);c=["space",r.slice(v,l)],v=l-1;break}case J4e:case Z4e:case tIe:case iIe:case sIe:case rIe:case eIe:{let k=String.fromCharCode(s);c=[k,k,v];break}case Q4e:{if(p=_.length?_.pop()[1]:"",f=r.charCodeAt(v+1),p==="url"&&f!==UI&&f!==Dte&&f!==Um&&f!==y_&&f!==w_&&f!==x_&&f!==S_){l=v;do{if(d=!1,l=r.indexOf(")",l+1),l===-1)if(n||w){l=v;break}else C("bracket");for(h=l;r.charCodeAt(h-1)===__;)h-=1,d=!d}while(d);c=["brackets",r.slice(v,l+1),v,l],v=l}else l=r.indexOf(")",v+1),o=r.slice(v,l+1),l===-1||aIe.test(o)?c=["(","(",v]:(c=["brackets",o,v,l],v=l);break}case UI:case Dte:{u=s===UI?"'":'"',l=v;do{if(d=!1,l=r.indexOf(u,l+1),l===-1)if(n||w){l=v+1;break}else C("string");for(h=l;r.charCodeAt(h-1)===__;)h-=1,d=!d}while(d);c=["string",r.slice(v,l+1),v,l],v=l;break}case oIe:{C_.lastIndex=v+1,C_.test(r),C_.lastIndex===0?l=r.length-1:l=C_.lastIndex-2,c=["at-word",r.slice(v,l+1),v,l],v=l;break}case __:{for(l=v,a=!0;r.charCodeAt(l+1)===__;)l+=1,a=!a;if(s=r.charCodeAt(l+1),a&&s!==Ote&&s!==Um&&s!==y_&&s!==w_&&s!==S_&&s!==x_&&(l+=1,Lte.test(r.charAt(l)))){for(;Lte.test(r.charAt(l+1));)l+=1;r.charCodeAt(l+1)===Um&&(l+=1)}c=["word",r.slice(v,l+1),v,l],v=l;break}default:{s===Ote&&r.charCodeAt(v+1)===nIe?(l=r.indexOf("*/",v+2)+1,l===0&&(n||w?l=r.length:C("comment")),c=["comment",r.slice(v,l+1),v,l],v=l):(I_.lastIndex=v+1,I_.test(r),I_.lastIndex===0?l=r.length-1:l=I_.lastIndex-2,c=["word",r.slice(v,l+1),v,l],_.push(c),v=l);break}}return v++,c}function I(E){x.push(E)}return{back:I,endOfFile:S,nextToken:R,position:y}}});var zte=M((wEt,Bte)=>{"use strict";var lIe=d_(),uIe=Nm(),cIe=zm(),dIe=sf(),Fte=g_(),hIe=Pte(),Nte={empty:!0,space:!0};function fIe(i){for(let e=i.length-1;e>=0;e--){let t=i[e],r=t[3]||t[2];if(r)return r}}var WI=class{constructor(e){this.input=e,this.root=new dIe,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new lIe;t.name=e[1].slice(1),t.name===""&&this.unnamedAtrule(t,e),this.init(t,e[2]);let r,n,s,o=!1,a=!1,l=[],u=[];for(;!this.tokenizer.endOfFile();){if(e=this.tokenizer.nextToken(),r=e[0],r==="("||r==="["?u.push(r==="("?")":"]"):r==="{"&&u.length>0?u.push("}"):r===u[u.length-1]&&u.pop(),u.length===0)if(r===";"){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}else if(r==="{"){a=!0;break}else if(r==="}"){if(l.length>0){for(s=l.length-1,n=l[s];n&&n[0]==="space";)n=l[--s];n&&(t.source.end=this.getPosition(n[3]||n[2]),t.source.end.offset++)}this.end(e);break}else l.push(e);else l.push(e);if(this.tokenizer.endOfFile()){o=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),o&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),a&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(t===!1)return;let r=0,n;for(let s=t-1;s>=0&&(n=e[s],!(n[0]!=="space"&&(r+=1,r===2)));s--);throw this.input.error("Missed semicolon",n[0]==="word"?n[3]+1:n[2])}colon(e){let t=0,r,n,s;for(let[o,a]of e.entries()){if(n=a,s=n[0],s==="("&&(t+=1),s===")"&&(t-=1),t===0&&s===":")if(!r)this.doubleColon(n);else{if(r[0]==="word"&&r[1]==="progid")continue;return o}r=n}return!1}comment(e){let t=new uIe;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let r=e[1].slice(2,-2);if(/^\s*$/.test(r))t.text="",t.raws.left=r,t.raws.right="";else{let n=r.match(/^(\s*)([^]*\S)(\s*)$/);t.text=n[2],t.raws.left=n[1],t.raws.right=n[3]}}createTokenizer(){this.tokenizer=hIe(this.input)}decl(e,t){let r=new cIe;this.init(r,e[0][2]);let n=e[e.length-1];for(n[0]===";"&&(this.semicolon=!0,e.pop()),r.source.end=this.getPosition(n[3]||n[2]||fIe(e)),r.source.end.offset++;e[0][0]!=="word";)e.length===1&&this.unknownWord(e),r.raws.before+=e.shift()[1];for(r.source.start=this.getPosition(e[0][2]),r.prop="";e.length;){let u=e[0][0];if(u===":"||u==="space"||u==="comment")break;r.prop+=e.shift()[1]}r.raws.between="";let s;for(;e.length;)if(s=e.shift(),s[0]===":"){r.raws.between+=s[1];break}else s[0]==="word"&&/\w/.test(s[1])&&this.unknownWord([s]),r.raws.between+=s[1];(r.prop[0]==="_"||r.prop[0]==="*")&&(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let o=[],a;for(;e.length&&(a=e[0][0],!(a!=="space"&&a!=="comment"));)o.push(e.shift());this.precheckMissedSemicolon(e);for(let u=e.length-1;u>=0;u--){if(s=e[u],s[1].toLowerCase()==="!important"){r.important=!0;let c=this.stringFrom(e,u);c=this.spacesFromEnd(e)+c,c!==" !important"&&(r.raws.important=c);break}else if(s[1].toLowerCase()==="important"){let c=e.slice(0),d="";for(let h=u;h>0;h--){let f=c[h][0];if(d.trim().startsWith("!")&&f!=="space")break;d=c.pop()[1]+d}d.trim().startsWith("!")&&(r.important=!0,r.raws.important=d,e=c)}if(s[0]!=="space"&&s[0]!=="comment")break}e.some(u=>u[0]!=="space"&&u[0]!=="comment")&&(r.raws.between+=o.map(u=>u[1]).join(""),o=[]),this.raw(r,"value",o.concat(e),t),r.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Fte;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&t.type==="rule"&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="",t.source.end=this.getPosition(e[2]),t.source.end.offset+=t.raws.ownSemicolon.length)}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="",e.type!=="comment"&&(this.semicolon=!1)}other(e){let t=!1,r=null,n=!1,s=null,o=[],a=e[1].startsWith("--"),l=[],u=e;for(;u;){if(r=u[0],l.push(u),r==="("||r==="[")s||(s=u),o.push(r==="("?")":"]");else if(a&&n&&r==="{")s||(s=u),o.push("}");else if(o.length===0)if(r===";")if(n){this.decl(l,a);return}else break;else if(r==="{"){this.rule(l);return}else if(r==="}"){this.tokenizer.back(l.pop()),t=!0;break}else r===":"&&(n=!0);else r===o[o.length-1]&&(o.pop(),o.length===0&&(s=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),o.length>0&&this.unclosedBracket(s),t&&n){if(!a)for(;l.length&&(u=l[l.length-1][0],!(u!=="space"&&u!=="comment"));)this.tokenizer.back(l.pop());this.decl(l,a)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e);break}this.endFile()}precheckMissedSemicolon(){}raw(e,t,r,n){let s,o,a=r.length,l="",u=!0,c,d;for(let h=0;hf+p[1],"");e.raws[t]={raw:h,value:l}}e[t]=l}rule(e){e.pop();let t=new Fte;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],!(t!=="space"&&t!=="comment"));)r=e.pop()[1]+r;return r}spacesAndCommentsFromStart(e){let t,r="";for(;e.length&&(t=e[0][0],!(t!=="space"&&t!=="comment"));)r+=e.shift()[1];return r}spacesFromEnd(e){let t,r="";for(;e.length&&(t=e[e.length-1][0],t==="space");)r=e.pop()[1]+r;return r}stringFrom(e,t){let r="";for(let n=t;n{"use strict";var pIe=ec(),mIe=Hm(),gIe=zte();function E_(i,e){let t=new mIe(i,e),r=new gIe(t);try{r.parse()}catch(n){throw n}return r.root}qte.exports=E_;E_.default=E_;pIe.registerParse(E_)});var GI=M((CEt,Hte)=>{"use strict";var Wm=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let r=t.node.rangeBy(t);this.line=r.start.line,this.column=r.start.column,this.endLine=r.end.line,this.endColumn=r.end.column}for(let r in t)this[r]=t[r]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};Hte.exports=Wm;Wm.default=Wm});var T_=M((IEt,jte)=>{"use strict";var bIe=GI(),Gm=class{get content(){return this.css}constructor(e,t,r){this.processor=e,this.messages=[],this.root=t,this.opts=r,this.css="",this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let r=new bIe(e,t);return this.messages.push(r),r}warnings(){return this.messages.filter(e=>e.type==="warning")}};jte.exports=Gm;Gm.default=Gm});var KI=M((EEt,Ute)=>{"use strict";var Vte={};Ute.exports=function(e){Vte[e]||(Vte[e]=!0,typeof console<"u"&&console.warn&&console.warn(e))}});var JI=M((TEt,Yte)=>{"use strict";var vIe=ec(),_Ie=h_(),yIe=VI(),xIe=k_(),Wte=T_(),wIe=sf(),SIe=Om(),{isClean:Uo,my:CIe}=c_(),kEt=KI(),IIe={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},EIe={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},kIe={Once:!0,postcssPlugin:!0,prepare:!0},af=0;function Km(i){return typeof i=="object"&&typeof i.then=="function"}function Kte(i){let e=!1,t=IIe[i.type];return i.type==="decl"?e=i.prop.toLowerCase():i.type==="atrule"&&(e=i.name.toLowerCase()),e&&i.append?[t,t+"-"+e,af,t+"Exit",t+"Exit-"+e]:e?[t,t+"-"+e,t+"Exit",t+"Exit-"+e]:i.append?[t,af,t+"Exit"]:[t,t+"Exit"]}function Gte(i){let e;return i.type==="document"?e=["Document",af,"DocumentExit"]:i.type==="root"?e=["Root",af,"RootExit"]:e=Kte(i),{eventIndex:0,events:e,iterator:0,node:i,visitorIndex:0,visitors:[]}}function YI(i){return i[Uo]=!1,i.nodes&&i.nodes.forEach(e=>YI(e)),i}var XI={},Wo=class{get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}constructor(e,t,r){this.stringified=!1,this.processed=!1;let n;if(typeof t=="object"&&t!==null&&(t.type==="root"||t.type==="document"))n=YI(t);else if(t instanceof Wo||t instanceof Wte)n=YI(t.root),t.map&&(typeof r.map>"u"&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=t.map);else{let s=xIe;r.syntax&&(s=r.syntax.parse),r.parser&&(s=r.parser),s.parse&&(s=s.parse);try{n=s(t,r)}catch(o){this.processed=!0,this.error=o}n&&!n[CIe]&&vIe.rebuild(n)}this.result=new Wte(e,n,r),this.helpers={...XI,postcss:XI,result:this.result},this.plugins=this.processor.plugins.map(s=>typeof s=="object"&&s.prepare?{...s,...s.prepare(this.result)}:s)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let r=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,e.name==="CssSyntaxError"&&!e.plugin?(e.plugin=r.postcssPlugin,e.setMessage()):r.postcssVersion}catch(n){console&&console.error&&console.error(n)}return e}prepareVisitors(){this.listeners={};let e=(t,r,n)=>{this.listeners[r]||(this.listeners[r]=[]),this.listeners[r].push([t,n])};for(let t of this.plugins)if(typeof t=="object")for(let r in t){if(!EIe[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!kIe[r])if(typeof t[r]=="object")for(let n in t[r])n==="*"?e(t,r,t[r][n]):e(t,r+"-"+n.toLowerCase(),t[r][n]);else typeof t[r]=="function"&&e(t,r,t[r])}this.hasListener=Object.keys(this.listeners).length>0}async runAsync(){this.plugin=0;for(let e=0;e0;){let r=this.visitTick(t);if(Km(r))try{await r}catch(n){let s=t[t.length-1].node;throw this.handleError(n,s)}}}if(this.listeners.OnceExit)for(let[t,r]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if(e.type==="document"){let n=e.nodes.map(s=>r(s,this.helpers));await Promise.all(n)}else await r(e,this.helpers)}catch(n){throw this.handleError(n)}}}return this.processed=!0,this.stringify()}runOnRoot(e){this.result.lastPlugin=e;try{if(typeof e=="object"&&e.Once){if(this.result.root.type==="document"){let t=this.result.root.nodes.map(r=>e.Once(r,this.helpers));return Km(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}else if(typeof e=="function")return e(this.result.root,this.result)}catch(t){throw this.handleError(t)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=SIe;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let n=new yIe(t,this.result.root,this.result.opts).generate();return this.result.css=n[0],this.result.map=n[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins){let t=this.runOnRoot(e);if(Km(t))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Uo];)e[Uo]=!0,this.walkSync(e);if(this.listeners.OnceExit)if(e.type==="document")for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[r,n]of e){this.result.lastPlugin=r;let s;try{s=n(t,this.helpers)}catch(o){throw this.handleError(o,t.proxyOf)}if(t.type!=="root"&&t.type!=="document"&&!t.parent)return!0;if(Km(s))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:r,visitors:n}=t;if(r.type!=="root"&&r.type!=="document"&&!r.parent){e.pop();return}if(n.length>0&&t.visitorIndex{n[Uo]||this.walkSync(n)});else{let n=this.listeners[r];if(n&&this.visitSync(n,e.toProxy()))return}}warnings(){return this.sync().warnings()}};Wo.registerPostcss=i=>{XI=i};Yte.exports=Wo;Wo.default=Wo;wIe.registerLazyResult(Wo);_Ie.registerLazyResult(Wo)});var Jte=M((MEt,Xte)=>{"use strict";var TIe=VI(),AIe=k_(),MIe=T_(),RIe=Om(),AEt=KI(),Ym=class{get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=AIe;try{e=t(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}constructor(e,t,r){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=r,this._map=void 0;let n,s=RIe;this.result=new MIe(this._processor,n,this._opts),this.result.css=t;let o=this;Object.defineProperty(this.result,"root",{get(){return o.root}});let a=new TIe(s,n,this._opts,t);if(a.isMap()){let[l,u]=a.generate();l&&(this.result.css=l),u&&(this.result.map=u)}else a.clearAnnotation(),this.result.css=a.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}};Xte.exports=Ym;Ym.default=Ym});var Qte=M((REt,Zte)=>{"use strict";var DIe=h_(),OIe=JI(),LIe=Jte(),$Ie=sf(),pd=class{constructor(e=[]){this.version="8.5.6",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let r of e)if(r.postcss===!0?r=r():r.postcss&&(r=r.postcss),typeof r=="object"&&Array.isArray(r.plugins))t=t.concat(r.plugins);else if(typeof r=="object"&&r.postcssPlugin)t.push(r);else if(typeof r=="function")t.push(r);else if(!(typeof r=="object"&&(r.parse||r.stringify)))throw new Error(r+" is not a PostCSS plugin");return t}process(e,t={}){return!this.plugins.length&&!t.parser&&!t.stringifier&&!t.syntax?new LIe(this,e,t):new OIe(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};Zte.exports=pd;pd.default=pd;$Ie.registerProcessor(pd);DIe.registerProcessor(pd)});var aie=M((DEt,oie)=>{"use strict";var eie=d_(),tie=Nm(),PIe=ec(),FIe=u_(),iie=zm(),rie=h_(),NIe=Ite(),BIe=Hm(),zIe=JI(),qIe=HI(),HIe=Pm(),jIe=k_(),ZI=Qte(),VIe=T_(),nie=sf(),sie=g_(),UIe=Om(),WIe=GI();function It(...i){return i.length===1&&Array.isArray(i[0])&&(i=i[0]),new ZI(i)}It.plugin=function(e,t){let r=!1;function n(...o){console&&console.warn&&!r&&(r=!0,console.warn(e+`: postcss.plugin was deprecated. Migration guide: +https://evilmartians.com/chronicles/postcss-8-plugin-migration`),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+`: \u91CC\u9762 postcss.plugin \u88AB\u5F03\u7528. \u8FC1\u79FB\u6307\u5357: +https://www.w3ctech.com/topic/2226`));let a=t(...o);return a.postcssPlugin=e,a.postcssVersion=new ZI().version,a}let s;return Object.defineProperty(n,"postcss",{get(){return s||(s=n()),s}}),n.process=function(o,a,l){return It([n(l)]).process(o,a)},n};It.stringify=UIe;It.parse=jIe;It.fromJSON=NIe;It.list=qIe;It.comment=i=>new tie(i);It.atRule=i=>new eie(i);It.decl=i=>new iie(i);It.rule=i=>new sie(i);It.root=i=>new nie(i);It.document=i=>new rie(i);It.CssSyntaxError=FIe;It.Declaration=iie;It.Container=PIe;It.Processor=ZI;It.Document=rie;It.Comment=tie;It.Warning=WIe;It.AtRule=eie;It.Result=VIe;It.Input=BIe;It.Rule=sie;It.Root=nie;It.Node=HIe;zIe.registerPostcss(It);oie.exports=It;It.default=It});var hie=M((OEt,die)=>{var GIe=xee(),lie=See(),{isPlainObject:KIe}=Iee(),uie=Aee(),YIe=Ree(),{parse:XIe}=aie(),JIe=["img","audio","video","picture","svg","object","map","iframe","embed"],ZIe=["script","style"];function Xm(i,e){i&&Object.keys(i).forEach(function(t){e(i[t],t)})}function Va(i,e){return{}.hasOwnProperty.call(i,e)}function cie(i,e){let t=[];return Xm(i,function(r){e(r)&&t.push(r)}),t}function QIe(i){for(let e in i)if(Va(i,e))return!1;return!0}function eEe(i){return i.map(function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")}).join(", ")}die.exports=Jm;var tEe=/^[^\0\t\n\f\r /<=>]+$/;function Jm(i,e,t){if(i==null)return"";typeof i=="number"&&(i=i.toString());let r="",n="";function s(U,ne){let le=this;this.tag=U,this.attribs=ne||{},this.tagPosition=r.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(v.length){let De=v[v.length-1];De.text+=le.text}},this.updateParentNodeMediaChildren=function(){v.length&&JIe.includes(this.tag)&&v[v.length-1].mediaChildren.push(this.tag)}}e=Object.assign({},Jm.defaults,e),e.parser=Object.assign({},iEe,e.parser);let o=function(U){return e.allowedTags===!1||(e.allowedTags||[]).indexOf(U)>-1};ZIe.forEach(function(U){o(U)&&!e.allowVulnerableTags&&console.warn(` + +\u26A0\uFE0F Your \`allowedTags\` option includes, \`${U}\`, which is inherently +vulnerable to XSS attacks. Please remove it from \`allowedTags\`. +Or, to disable this warning, add the \`allowVulnerableTags\` option +and ensure you are accounting for this risk. + +`)});let a=e.nonTextTags||["script","style","textarea","option"],l,u;e.allowedAttributes&&(l={},u={},Xm(e.allowedAttributes,function(U,ne){l[ne]=[];let le=[];U.forEach(function(De){typeof De=="string"&&De.indexOf("*")>=0?le.push(lie(De).replace(/\\\*/g,".*")):l[ne].push(De)}),le.length&&(u[ne]=new RegExp("^("+le.join("|")+")$"))}));let c={},d={},h={};Xm(e.allowedClasses,function(U,ne){if(l&&(Va(l,ne)||(l[ne]=[]),l[ne].push("class")),c[ne]=U,Array.isArray(U)){let le=[];c[ne]=[],h[ne]=[],U.forEach(function(De){typeof De=="string"&&De.indexOf("*")>=0?le.push(lie(De).replace(/\\\*/g,".*")):De instanceof RegExp?h[ne].push(De):c[ne].push(De)}),le.length&&(d[ne]=new RegExp("^("+le.join("|")+")$"))}});let f={},p;Xm(e.transformTags,function(U,ne){let le;typeof U=="function"?le=U:typeof U=="string"&&(le=Jm.simpleTransform(U)),ne==="*"?p=le:f[ne]=le});let g,v,_,x,y,C,S=!1;I();let R=new GIe.Parser({onopentag:function(U,ne){if(e.enforceHtmlBoundary&&U==="html"&&I(),y){C++;return}let le=new s(U,ne);v.push(le);let De=!1,Et=!!le.text,Qe;if(Va(f,U)&&(Qe=f[U](U,ne),le.attribs=ne=Qe.attribs,Qe.text!==void 0&&(le.innerText=Qe.text),U!==Qe.tagName&&(le.name=U=Qe.tagName,x[g]=Qe.tagName)),p&&(Qe=p(U,ne),le.attribs=ne=Qe.attribs,U!==Qe.tagName&&(le.name=U=Qe.tagName,x[g]=Qe.tagName)),(!o(U)||e.disallowedTagsMode==="recursiveEscape"&&!QIe(_)||e.nestingLimit!=null&&g>=e.nestingLimit)&&(De=!0,_[g]=!0,e.disallowedTagsMode==="discard"&&a.indexOf(U)!==-1&&(y=!0,C=1),_[g]=!0),g++,De){if(e.disallowedTagsMode==="discard")return;n=r,r=""}r+="<"+U,U==="script"&&(e.allowedScriptHostnames||e.allowedScriptDomains)&&(le.innerText=""),(!l||Va(l,U)||l["*"])&&Xm(ne,function(ot,Ve){if(!tEe.test(Ve)){delete le.attribs[Ve];return}if(ot===""&&!e.allowedEmptyAttributes.includes(Ve)&&(e.nonBooleanAttributes.includes(Ve)||e.nonBooleanAttributes.includes("*"))){delete le.attribs[Ve];return}let Yt=!1;if(!l||Va(l,U)&&l[U].indexOf(Ve)!==-1||l["*"]&&l["*"].indexOf(Ve)!==-1||Va(u,U)&&u[U].test(Ve)||u["*"]&&u["*"].test(Ve))Yt=!0;else if(l&&l[U]){for(let bt of l[U])if(KIe(bt)&&bt.name&&bt.name===Ve){Yt=!0;let et="";if(bt.multiple===!0){let In=ot.split(" ");for(let Pr of In)bt.values.indexOf(Pr)!==-1&&(et===""?et=Pr:et+=" "+Pr)}else bt.values.indexOf(ot)>=0&&(et=ot);ot=et}}if(Yt){if(e.allowedSchemesAppliedToAttributes.indexOf(Ve)!==-1&&w(U,ot)){delete le.attribs[Ve];return}if(U==="script"&&Ve==="src"){let bt=!0;try{let et=k(ot);if(e.allowedScriptHostnames||e.allowedScriptDomains){let In=(e.allowedScriptHostnames||[]).find(function(_s){return _s===et.url.hostname}),Pr=(e.allowedScriptDomains||[]).find(function(_s){return et.url.hostname===_s||et.url.hostname.endsWith(`.${_s}`)});bt=In||Pr}}catch{bt=!1}if(!bt){delete le.attribs[Ve];return}}if(U==="iframe"&&Ve==="src"){let bt=!0;try{let et=k(ot);if(et.isRelativeUrl)bt=Va(e,"allowIframeRelativeUrls")?e.allowIframeRelativeUrls:!e.allowedIframeHostnames&&!e.allowedIframeDomains;else if(e.allowedIframeHostnames||e.allowedIframeDomains){let In=(e.allowedIframeHostnames||[]).find(function(_s){return _s===et.url.hostname}),Pr=(e.allowedIframeDomains||[]).find(function(_s){return et.url.hostname===_s||et.url.hostname.endsWith(`.${_s}`)});bt=In||Pr}}catch{bt=!1}if(!bt){delete le.attribs[Ve];return}}if(Ve==="srcset")try{let bt=YIe(ot);if(bt.forEach(function(et){w("srcset",et.url)&&(et.evil=!0)}),bt=cie(bt,function(et){return!et.evil}),bt.length)ot=eEe(cie(bt,function(et){return!et.evil})),le.attribs[Ve]=ot;else{delete le.attribs[Ve];return}}catch{delete le.attribs[Ve];return}if(Ve==="class"){let bt=c[U],et=c["*"],In=d[U],Pr=h[U],_s=d["*"],QI=[In,_s].concat(Pr).filter(function(wie){return wie});if(bt&&et?ot=pe(ot,uie(bt,et),QI):ot=pe(ot,bt||et,QI),!ot.length){delete le.attribs[Ve];return}}if(Ve==="style"){if(e.parseStyleAttributes)try{let bt=XIe(U+" {"+ot+"}",{map:!1}),et=O(bt,e.allowedStyles);if(ot=z(et),ot.length===0){delete le.attribs[Ve];return}}catch{typeof window<"u"&&console.warn('Failed to parse "'+U+" {"+ot+`}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`),delete le.attribs[Ve];return}else if(e.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.")}r+=" "+Ve,ot&&ot.length?r+='="'+E(ot,!0)+'"':e.allowedEmptyAttributes.includes(Ve)&&(r+='=""')}else delete le.attribs[Ve]}),e.selfClosing.indexOf(U)!==-1?r+=" />":(r+=">",le.innerText&&!Et&&!e.textFilter&&(r+=E(le.innerText),S=!0)),De&&(r=n+E(r),n="")},ontext:function(U){if(y)return;let ne=v[v.length-1],le;if(ne&&(le=ne.tag,U=ne.innerText!==void 0?ne.innerText:U),e.disallowedTagsMode==="discard"&&(le==="script"||le==="style"))r+=U;else{let De=E(U,!1);e.textFilter&&!S?r+=e.textFilter(De,le):S||(r+=De)}if(v.length){let De=v[v.length-1];De.text+=U}},onclosetag:function(U,ne){if(y)if(C--,!C)y=!1;else return;let le=v.pop();if(!le)return;if(le.tag!==U){v.push(le);return}y=e.enforceHtmlBoundary?U==="html":!1,g--;let De=_[g];if(De){if(delete _[g],e.disallowedTagsMode==="discard"){le.updateParentNodeText();return}n=r,r=""}if(x[g]&&(U=x[g],delete x[g]),e.exclusiveFilter&&e.exclusiveFilter(le)){r=r.substr(0,le.tagPosition);return}if(le.updateParentNodeMediaChildren(),le.updateParentNodeText(),e.selfClosing.indexOf(U)!==-1||ne&&!o(U)&&["escape","recursiveEscape"].indexOf(e.disallowedTagsMode)>=0){De&&(r=n,n="");return}r+="",De&&(r=n+E(r),n=""),S=!1}},e.parser);return R.write(i),R.end(),r;function I(){r="",g=0,v=[],_={},x={},y=!1,C=0}function E(U,ne){return typeof U!="string"&&(U=U+""),e.parser.decodeEntities&&(U=U.replace(/&/g,"&").replace(//g,">"),ne&&(U=U.replace(/"/g,"""))),U=U.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),ne&&(U=U.replace(/"/g,""")),U}function w(U,ne){for(ne=ne.replace(/[\x00-\x20]+/g,"");;){let Et=ne.indexOf("",Et+4);if(Qe===-1)break;ne=ne.substring(0,Et)+ne.substring(Qe+3)}let le=ne.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!le)return ne.match(/^[/\\]{2}/)?!e.allowProtocolRelative:!1;let De=le[1].toLowerCase();return Va(e.allowedSchemesByTag,U)?e.allowedSchemesByTag[U].indexOf(De)===-1:!e.allowedSchemes||e.allowedSchemes.indexOf(De)===-1}function k(U){if(U=U.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),U.startsWith("relative:"))throw new Error("relative: exploit attempt");let ne="relative://relative-site";for(let Et=0;Et<100;Et++)ne+=`/${Et}`;let le=new URL(U,ne);return{isRelativeUrl:le&&le.hostname==="relative-site"&&le.protocol==="relative:",url:le}}function O(U,ne){if(!ne)return U;let le=U.nodes[0],De;return ne[le.selector]&&ne["*"]?De=uie(ne[le.selector],ne["*"]):De=ne[le.selector]||ne["*"],De&&(U.nodes[0].nodes=le.nodes.reduce(Y(De),[])),U}function z(U){return U.nodes[0].nodes.reduce(function(ne,le){return ne.push(`${le.prop}:${le.value}${le.important?" !important":""}`),ne},[]).join(";")}function Y(U){return function(ne,le){return Va(U,le.prop)&&U[le.prop].some(function(Et){return Et.test(le.value)})&&ne.push(le),ne}}function pe(U,ne,le){return ne?(U=U.split(/\s+/),U.filter(function(De){return ne.indexOf(De)!==-1||le.some(function(Et){return Et.test(De)})}).join(" ")):U}}var iEe={decodeEntities:!0};Jm.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0};Jm.simpleTransform=function(i,e,t){return t=t===void 0?!0:t,e=e||{},function(r,n){let s;if(t)for(s in e)n[s]=e[s];else n=e;return{tagName:i,attribs:n}}}});var Zm,m,fie,pie=b(()=>{Zm=N(hie()),m=class{static reg(e){return new RegExp("^"+e+"$","i")}};m.N={integer:"[+-]?[0-9]+",integer_pos:"[+]?[0-9]+",integer_zero_ff:"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",integer_non_zero:"[+-]?([1-9][0-9]*)",integer_pos_non_zero:"[+]?([1-9][0-9]*)",number:"[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_pos:"[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_zero_hundred:"[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)",number_zero_one:"[+]?(1([.][0]+)?|0?([.][0-9]+)?)"};m._B={angle:`(${m.N.number}(deg|rad|grad|turn)|0)`,frequency:`${m.N.number}(Hz|kHz)`,ident:String.raw`-?([_a-z]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*`,len_or_perc:`(0|${m.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,length:`(${m.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,length_pos:`(${m.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,percentage:`${m.N.number}%`,percentage_pos:`${m.N.number_pos}%`,percentage_zero_hundred:`${m.N.number_zero_hundred}%`,string:String.raw`(\"([^\n\r\f\\"]|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\")|(\'([^\n\r\f\\']|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\')`,time:`${m.N.number}(s|ms)`,url:"url\\(.*?\\)",z_index:"[+-]?[0-9]{1,7}"};m._B1={flex:`(${m.N.number}|${m._B.len_or_perc}|none|auto)\\s*((${m.N.number}|${m._B.len_or_perc}|auto)\\s*){0,2}`,fixed_breadth:`${m._B.len_or_perc}`,grid_line:`auto|${m._B.ident}|(${m.N.integer_non_zero}(\\s+${m._B.ident})?)|(span\\s+(${m.N.integer_pos_non_zero}|${m._B.ident}))`,line_names:String.raw`\[\s*${m._B.ident}(\s+${m._B.ident})*\s*\]`};m._B2={inflexible_breadth:`${m._B.len_or_perc}|auto|min-content|max-content`,track_breadth:`${m._B.len_or_perc}|${m._B1.flex}|auto|min-content|max-content`};m._B3={fixed_size:`${m._B1.fixed_breadth}|minmax\\(\\s*${m._B2.inflexible_breadth}\\s*,\\s*${m._B1.fixed_breadth}\\s*\\)|minmax\\(\\s*${m._B1.fixed_breadth}\\s*,\\s*${m._B2.track_breadth}\\s*\\)`,track_size:`${m._B2.track_breadth}|minmax\\(\\s*${m._B2.inflexible_breadth}\\s*,\\s*${m._B2.track_breadth}\\s*\\)|fit-content\\(\\s*(${m._B.len_or_perc}\\s*)*\\)`};m._B4={name_repeat:`repeat\\(\\s*(${m.N.integer_pos_non_zero}|auto-fill)\\s*,\\s*(${m._B1.line_names})+\\s*\\)`,auto_repeat:`repeat\\(\\s*(auto-fill|auto-fit)\\s*,\\s*((${m._B1.line_names}\\s+)?${m._B3.fixed_size}\\s*)+(${m._B1.line_names})?\\s*\\)`,fixed_repeat:`repeat\\(\\s*(${m.N.integer_pos_non_zero})\\s*,\\s*((${m._B1.line_names}\\s+)?${m._B3.fixed_size}\\s*)+(${m._B1.line_names})?\\s*\\)`};m._B5={auto_track_list:`(${m._B1.line_names}\\s*)?(${m._B3.fixed_size}|${m._B4.fixed_repeat})*(${m._B1.line_names}\\s*)?${m._B4.auto_repeat}(${m._B1.line_names}\\s*)?(${m._B3.fixed_size}|${m._B4.fixed_repeat})*(${m._B1.line_names}\\s*)?`,explicit_track_list:`(${m._B1.line_names}\\s*)?(${m._B3.track_size})+(${m._B1.line_names}\\s*)?`,track_list:`(${m._B1.line_names}\\s*)?(${m._B3.track_size}|${m._B4.name_repeat})+(${m._B1.line_names}\\s*)?`};m._B6={grid_template_rows:`none|${m._B5.track_list}|${m._B5.auto_track_list}|subgrid\\s*(${m._B1.line_names})?`,grid_template_columns:`none|${m._B5.track_list}|${m._B5.auto_track_list}|subgrid\\s*(${m._B1.line_names})?`};m.B={...m._B,...m._B1,...m._B2,...m._B3,...m._B4,...m._B5,...m._B6};m.A={absolute_size:"xx-small|x-small|small|medium|large|x-large|xx-large",attachment:"scroll|fixed|local",bg_origin:"border-box|padding-box|content-box",border_style:"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset",box:"border-box|padding-box|content-box",display_inside:"auto|block|table|flex|grid",display_outside:"block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption",ending_shape:"circle|ellipse",generic_family:"serif|sans-serif|cursive|fantasy|monospace",generic_voice:"male|female|child",relative_size:"smaller|larger",repeat_style:"repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\s*(?:repeat|space|round|no-repeat))?)",side_or_corner:"(left|right)?\\s*(top|bottom)?",single_animation_direction:"normal|reverse|alternate|alternate-reverse",single_animation_fill_mode:"none|forwards|backwards|both",single_animation_play_state:"running|paused"};m._COLOR={hex:"\\#(0x)?[0-9a-f]+",name:"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen",rgb:String.raw`rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)`,rgba:String.raw`rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(${m.N.integer_zero_ff}|${m.N.number_zero_one}|${m.B.percentage_zero_hundred})\s*\)`};m._C={alpha:`${m.N.integer_zero_ff}|${m.N.number_zero_one}|${m.B.percentage_zero_hundred}`,alphavalue:m.N.number_zero_one,bg_position:`((${m.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,bg_size:`(${m.B.length_pos}|${m.B.percentage}|auto){1,2}|cover|contain`,border_width:`thin|medium|thick|${m.B.length}`,bottom:`${m.B.length}|auto`,color:`${m._COLOR.hex}|${m._COLOR.rgb}|${m._COLOR.rgba}|${m._COLOR.name}`,color_stop_length:`(${m.B.len_or_perc}\\s*){1,2}`,linear_color_hint:`${m.B.len_or_perc}`,family_name:`${m.B.string}|(${m.B.ident}\\s*)+`,image_decl:m.B.url,left:`${m.B.length}|auto`,loose_quotable_words:`(${m.B.ident})+`,margin_width:`${m.B.len_or_perc}|auto`,padding_width:`${m.B.length_pos}|${m.B.percentage_pos}`,page_url:m.B.url,position:`((${m.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,right:`${m.B.length}|auto`,shadow:"",size:`closest-side|farthest-side|closest-corner|farthest-corner|${m.B.length}|(${m.B.len_or_perc})\\s+(${m.B.len_or_perc})`,top:`${m.B.length}|auto`};m._C1={image_list:`image\\(\\s*(${m.B.url})*\\s*(${m.B.url}|${m._C.color})\\s*\\)`,linear_color_stop:`(${m._C.color})(\\s*${m._C.color_stop_length})?`,shadow:`((${m._C.color})\\s+((${m.B.length})\\s*){2,4}(s+inset)?)|((inset\\s+)?((${m.B.length})\\s*){2,4}\\s*(${m._C.color})?)`};m._C2={color_stop_list:`((${m._C1.linear_color_stop})(\\s*(${m._C.linear_color_hint}))?\\s*,\\s*)+(${m._C1.linear_color_stop})`,shape:`rect\\(\\s*(${m._C.top})\\s*,\\s*(${m._C.right})\\s*,\\s*(${m._C.bottom})\\s*,\\s*(${m._C.left})\\s*\\)`};m._C3={linear_gradient:`linear-gradient\\((((${m.B.angle})|to\\s+(${m.A.side_or_corner}))\\s*,\\s*)?\\s*(${m._C2.color_stop_list})\\s*\\)`,radial_gradient:`radial-gradient\\(((((${m.A.ending_shape})|(${m._C.size}))\\s*)*\\s*(at\\s+${m._C.position})?\\s*,\\s*)?\\s*(${m._C2.color_stop_list})\\s*\\)`};m._C4={image:`${m.B.url}|${m._C3.linear_gradient}|${m._C3.radial_gradient}|${m._C1.image_list}`,bg_image:`(${m.B.url}|${m._C3.linear_gradient}|${m._C3.radial_gradient}|${m._C1.image_list})|none`};m.C={...m._C,...m._C1,...m._C2,...m._C3,...m._C4};m.AP={baseline_position:"baseline|first baseline|last baseline",border_collapse:"collapse|separate",box:"normal|none|contents",box_sizing:"content-box|padding-box|border-box",caption_side:"top|bottom",clear:"none|left|right|both",content_position:"start|end|center|flex-start|flex-end",content_distribution:"stretch|space-between|space-around|space-evenly",direction:"ltr|rtl",empty_cells:"show|hide",flex_direction:"row|row-reverse|column|column-reverse",flex_wrap:"nowrap|wrap|wrap-reverse",float:"left|right|none",font_stretch:"normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",font_style:"normal|italic|oblique",font_variant:"normal|small-caps",font_weight:"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900",list_style_position:"inside|outside",gap:"normal",grid_auto_flow:"row|column|dense|row dense|column dense",justify_content:"start|end|center|stretch|space-between|space-around|space-evenly",justify_items:"start|end|center|stretch",justify_self:"auto|start|end|center|stretch",list_style_type:"disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none",overflow:"visible|hidden|scroll|auto",overflow_position:"unsafe|safe",overflow_wrap:"normal|break-word",overflow_x:"visible|hidden|scroll|auto|no-display|no-content",page_break_after:"auto|always|avoid|left|right",page_break_before:"auto|always|avoid|left|right",page_break_inside:"avoid|auto",place_content:"(center|start|end|space-between|space-around|space-evenly|stretch){1,2}",place_items:"(center|start|end|baseline|stretch){1,2}",place_self:"(center|start|end|baseline|stretch){1,2}",position:"static|relative|absolute",resize:"none|both|horizontal|vertical",speak:"normal|none|spell-out",self_position:"center|start|end|self-start|self-end|flex-start|flex-end",speak_header:"once|always",speak_numeral:"digits|continuous",speak_punctuation:"code|none",table_layout:"auto|fixed",text_align:"left|right|center|justify",text_decoration:"none|((underline|overline|line-through|blink)\\s*)+",text_transform:"capitalize|uppercase|lowercase|none",text_wrap:"normal|unrestricted|none|suppress",unicode_bidi:"normal|embed|bidi-override",visibility:"visible|hidden|collapse",white_space:"normal|pre|nowrap|pre-wrap|pre-line",word_break:"normal|keep-all|break-all"};m._CP={align_content:`normal|${m.AP.baseline_position}|${m.AP.content_distribution}|${m.AP.overflow_position}|${m.AP.content_position}`,align_items:`normal|stretch|${m.AP.baseline_position}|(${m.AP.overflow_position})?\\s*${m.AP.self_position}|anchor-center`,align_self:`auto|normal|stretch|${m.AP.baseline_position}|(${m.AP.overflow_position})?\\s*${m.AP.self_position}|anchor-center`,background_attachment:`${m.A.attachment}(,\\s*${m.A.attachment})*`,background_color:m.C.color,background_origin:`${m.A.box}(,\\s*${m.A.box})*`,background_repeat:`${m.A.repeat_style}(,\\s*${m.A.repeat_style})*`,border:`((${m.C.border_width}|${m.A.border_style}|${m.C.color})\\s*){1,3}`,border_radius:`((${m.B.len_or_perc})\\s*){1,4}(\\/\\s*((${m.B.len_or_perc})\\s*){1,4})?`,border_spacing:`${m.B.length}\\s*(${m.B.length})?`,border_top_color:m.C.color,border_top_style:m.A.border_style,border_width:`((${m.C.border_width})\\s*){1,4}`,color:m.C.color,cursor:`(${m.B.url}(\\s*,\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,display:`inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${m.A.display_inside}|${m.A.display_outside}|inherit|inline-box|inline-stack`,display_outside:m.A.display_outside,elevation:`${m.B.angle}|below|level|above|higher|lower`,font_family:`(${m.C.family_name}|${m.A.generic_family})(,\\s*(${m.C.family_name}|${m.A.generic_family}))*`,height:`${m.B.length}|${m.B.percentage}|auto`,letter_spacing:`normal|${m.B.length}`,list_style_image:`${m.C.image}|none`,margin_right:m.C.margin_width,max_height:`${m.B.length_pos}|${m.B.percentage_pos}|none|auto`,min_height:`${m.B.length_pos}|${m.B.percentage_pos}|auto`,opacity:m.C.alphavalue,outline_color:`${m.C.color}|invert`,outline_width:m.C.border_width,padding:`((${m.C.padding_width})\\s*){1,4}`,padding_top:m.C.padding_width,pitch_range:m.N.number,right:`${m.B.length}|${m.B.percentage}|auto`,stress:m.N.number,text_indent:`${m.B.length}|${m.B.percentage}`,text_shadow:`none|${m.C.shadow}(,\\s*(${m.C.shadow}))*`,volume:`${m.N.number_pos}|${m.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,word_wrap:m.AP.overflow_wrap,zoom:`normal|${m.N.number_pos}|${m.B.percentage_pos}`,backface_visibility:m.AP.visibility,background_clip:`${m.A.box}(,\\s*(${m.A.box}))*`,background_position:`${m.C.bg_position}(,\\s*(${m.C.bg_position}))*`,border_bottom_color:m.C.color,border_bottom_style:m.A.border_style,border_color:`((${m.C.color})\\s*){1,4}`,border_left_color:m.C.color,border_right_color:m.C.color,border_style:`((${m.A.border_style})\\s*){1,4}`,border_top_left_radius:`(${m.B.length}|${m.B.percentage})(\\s*(${m.B.length}|${m.B.percentage}))?`,border_top_width:m.C.border_width,box_shadow:`none|${m.C.shadow}(,\\s*(${m.C.shadow}))*`,clip:`${m.C.shape}|auto`,display_inside:m.A.display_inside,font_size:`${m.A.absolute_size}|${m.A.relative_size}|${m.B.length_pos}|${m.B.percentage_pos}`,line_height:`normal|${m.N.number_pos}|${m.B.length_pos}|${m.B.percentage_pos}`,margin_left:m.C.margin_width,max_width:`${m.B.length_pos}|${m.B.percentage_pos}|none|auto`,outline_style:m.A.border_style,padding_bottom:m.C.padding_width,padding_right:m.C.padding_width,perspective:`none|${m.B.length}`,richness:m.N.number,text_overflow:`((clip|ellipsis|${m.B.string})\\s*){1,2}`,top:`${m.B.length}|${m.B.percentage}|auto`,width:`${m.B.length_pos}|${m.B.percentage_pos}|auto`,z_index:`auto|${m.B.z_index}`,background:`(((${m.C.bg_position}\\s*(\\/\\s*${m.C.bg_size})?)|(${m.A.repeat_style})|(${m.A.attachment})|(${m.A.bg_origin})|(${m.C.bg_image})|(${m.C.color}))\\s*)+`,background_size:`${m.C.bg_size}(,\\s*${m.C.bg_size})*`,border_bottom_left_radius:`(${m.B.length}|${m.B.percentage})(\\s*(${m.B.length}|${m.B.percentage}))?`,border_bottom_width:m.C.border_width,border_left_style:m.A.border_style,border_right_style:m.A.border_style,border_top:`((${m.C.border_width}|${m.A.border_style}|${m.C.color})\\s*){1,3}`,bottom:`${m.B.len_or_perc}|auto`,list_style:`((${m.AP.list_style_type}|${m.AP.list_style_position}|${m.C.image}|none})\\s*){1,3}`,margin_top:m.C.margin_width,outline:`((${m.C.color}|invert|${m.A.border_style}|${m.C.border_width})\\s*){1,3}`,overflow_y:m.AP.overflow_x,pitch:`${m.B.frequency}|x-low|low|medium|high|x-high`,vertical_align:`baseline|sub|super|top|text-top|middle|bottom|text-bottom|${m.B.len_or_perc}`,word_spacing:`normal|${m.B.length}`,background_image:`${m.C.bg_image}(,\\s*${m.C.bg_image})*`,border_bottom_right_radius:`(${m.B.length}|${m.B.percentage})(\\s*(${m.B.length}|${m.B.percentage}))?`,border_left_width:m.C.border_width,border_right_width:m.C.border_width,left:`${m.B.len_or_perc}|auto`,margin_bottom:m.C.margin_width,pause_after:`${m.B.time}|${m.B.percentage}`,speech_rate:`${m.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,transition_duration:`${m.B.time}(,\\s*${m.B.time})*`,border_bottom:`((${m.C.border_width}|${m.A.border_style}|${m.C.color})\\s*){1,3}`,border_right:`((${m.C.border_width}|${m.A.border_style}|${m.C.color})\\s*){1,3}`,margin:`((${m.C.margin_width})\\s*){1,4}`,padding_left:m.C.padding_width,border_left:`((${m.C.border_width}|${m.A.border_style}|${m.C.color})\\s*){1,3}`,quotes:`(${m.B.string}\\s*${m.B.string})+|none`,border_top_right_radius:`(${m.B.length}|${m.B.percentage})(\\s*(${m.B.length}|${m.B.percentage}))?`,min_width:`${m.B.length_pos}|${m.B.percentage_pos}|auto`,flex_basis:`${m.B.len_or_perc}|auto|content|max-content|min-content|fit-content\\(\\s*(${m.B.len_or_perc}\\s*)*\\)`,flex_grow:m.N.number_pos,flex_shrink:m.N.number_pos,grid:`(${m.B.string}|none|subgrid)\\s*(\\/\\s*(${m.B.string}|none|subgrid))?`,grid_area:`${m.B.ident}|auto|(${m.N.integer}\\s*\\/\\s*${m.N.integer}\\s*\\/\\s*${m.N.integer}\\s*\\/\\s*${m.N.integer})`,grid_auto_columns:`(${m.B.track_size})+`,grid_auto_rows:`(${m.B.track_size})+`,grid_column:`${m.B.grid_line}(\\s*\\/\\s*${m.B.grid_line})?`,grid_column_start:`${m.B.grid_line}`,grid_column_end:`${m.B.grid_line}`,grid_column_gap:`${m.B.len_or_perc}|normal`,grid_gap:`(${m.B.len_or_perc}|normal)(\\s*(${m.B.len_or_perc}|normal))?`,grid_row:`${m.B.grid_line}(\\s*\\/\\s*${m.B.grid_line})?`,grid_row_start:`${m.B.grid_line}`,grid_row_end:`${m.B.grid_line}`,grid_row_gap:`${m.B.len_or_perc}|normal`,grid_template:`none|(${m.B.grid_template_rows}\\s*\\/\\s*${m.B.grid_template_columns})|(${m.B.line_names}\\s*)?(${m.B.string}\\s*${m.B.track_size}\\s*(${m.B.line_names}\\s*)?)+\\s*(\\/\\s*${m.B.explicit_track_list})?`,grid_template_areas:`none|(${m.B.string})+`,grid_template_columns:`${m.B.grid_template_columns}`,grid_template_rows:`${m.B.grid_template_rows}`,row_gap:`${m.B.len_or_perc}|normal`,column_gap:`${m.B.len_or_perc}|normal`,gap:`(${m.B.len_or_perc}|normal)(\\s*(${m.B.len_or_perc}|normal))?`,order:m.N.integer};m._CP1={font:`(((((${m.AP.font_style}|${m.AP.font_variant}|${m.AP.font_weight})\\s*){1,3})?\\s*(${m._CP.font_size})\\s*(\\/\\s*(${m._CP.line_height}))?\\s+(${m._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`};m.CP={...m._CP,...m._CP1};m.BORDER_COLLAPSE=m.reg(m.AP.border_collapse);m.BOX=m.reg(m.AP.box);m.BOX_SIZING=m.reg(m.AP.box_sizing);m.CAPTION_SIDE=m.reg(m.AP.caption_side);m.CLEAR=m.reg(m.AP.clear);m.DIRECTION=m.reg(m.AP.direction);m.EMPTY_CELLS=m.reg(m.AP.empty_cells);m.FLOAT=m.reg(m.AP.float);m.FONT_STRETCH=m.reg(m.AP.font_stretch);m.FONT_STYLE=m.reg(m.AP.font_style);m.FONT_VARIANT=m.reg(m.AP.font_variant);m.FONT_WEIGHT=m.reg(m.AP.font_weight);m.LIST_STYLE_POSITION=m.reg(m.AP.list_style_position);m.LIST_STYLE_TYPE=m.reg(m.AP.list_style_type);m.OVERFLOW=m.reg(m.AP.overflow);m.OVERFLOW_WRAP=m.reg(m.AP.overflow_wrap);m.OVERFLOW_X=m.reg(m.AP.overflow_x);m.PAGE_BREAK_AFTER=m.reg(m.AP.page_break_after);m.PAGE_BREAK_BEFORE=m.reg(m.AP.page_break_before);m.PAGE_BREAK_INSIDE=m.reg(m.AP.page_break_inside);m.POSITION=m.reg(m.AP.position);m.RESIZE=m.reg(m.AP.resize);m.SPEAK=m.reg(m.AP.speak);m.SPEAK_HEADER=m.reg(m.AP.speak_header);m.SPEAK_NUMERAL=m.reg(m.AP.speak_numeral);m.SPEAK_PUNCTUATION=m.reg(m.AP.speak_punctuation);m.TABLE_LAYOUT=m.reg(m.AP.table_layout);m.TEXT_ALIGN=m.reg(m.AP.text_align);m.TEXT_DECORATION=m.reg(m.AP.text_decoration);m.TEXT_TRANSFORM=m.reg(m.AP.text_transform);m.TEXT_WRAP=m.reg(m.AP.text_wrap);m.UNICODE_BIDI=m.reg(m.AP.unicode_bidi);m.VISIBILITY=m.reg(m.AP.visibility);m.WHITE_SPACE=m.reg(m.AP.white_space);m.WORD_BREAK=m.reg(m.AP.word_break);m.BACKGROUND_ATTACHMENT=m.reg(m.CP.background_attachment);m.BACKGROUND_COLOR=m.reg(m.CP.background_color);m.BACKGROUND_ORIGIN=m.reg(m.CP.background_origin);m.BACKGROUND_REPEAT=m.reg(m.CP.background_repeat);m.BORDER=m.reg(m.CP.border);m.BORDER_RADIUS=m.reg(m.CP.border_radius);m.BORDER_SPACING=m.reg(m.CP.border_spacing);m.BORDER_TOP_COLOR=m.reg(m.CP.border_top_color);m.BORDER_TOP_STYLE=m.reg(m.CP.border_top_style);m.BORDER_WIDTH=m.reg(m.CP.border_width);m.COLOR=m.reg(m.CP.color);m.CURSOR=m.reg(m.CP.cursor);m.DISPLAY=m.reg(m.CP.display);m.DISPLAY_OUTSIDE=m.reg(m.CP.display_outside);m.ELEVATION=m.reg(m.CP.elevation);m.FONT_FAMILY=m.reg(m.CP.font_family);m.HEIGHT=m.reg(m.CP.height);m.LETTER_SPACING=m.reg(m.CP.letter_spacing);m.LIST_STYLE_IMAGE=m.reg(m.CP.list_style_image);m.MARGIN_RIGHT=m.reg(m.CP.margin_right);m.MAX_HEIGHT=m.reg(m.CP.max_height);m.MIN_HEIGHT=m.reg(m.CP.min_height);m.OPACITY=m.reg(m.CP.opacity);m.OUTLINE_COLOR=m.reg(m.CP.outline_color);m.OUTLINE_WIDTH=m.reg(m.CP.outline_width);m.PADDING=m.reg(m.CP.padding);m.PADDING_TOP=m.reg(m.CP.padding_top);m.PITCH_RANGE=m.reg(m.CP.pitch_range);m.RIGHT=m.reg(m.CP.right);m.STRESS=m.reg(m.CP.stress);m.TEXT_INDENT=m.reg(m.CP.text_indent);m.TEXT_SHADOW=m.reg(m.CP.text_shadow);m.VOLUME=m.reg(m.CP.volume);m.WORD_WRAP=m.reg(m.CP.word_wrap);m.ZOOM=m.reg(m.CP.zoom);m.BACKFACE_VISIBILITY=m.reg(m.CP.backface_visibility);m.BACKGROUND_CLIP=m.reg(m.CP.background_clip);m.BACKGROUND_POSITION=m.reg(m.CP.background_position);m.BORDER_BOTTOM_COLOR=m.reg(m.CP.border_bottom_color);m.BORDER_BOTTOM_STYLE=m.reg(m.CP.border_bottom_style);m.BORDER_COLOR=m.reg(m.CP.border_color);m.BORDER_LEFT_COLOR=m.reg(m.CP.border_left_color);m.BORDER_RIGHT_COLOR=m.reg(m.CP.border_right_color);m.BORDER_STYLE=m.reg(m.CP.border_style);m.BORDER_TOP_LEFT_RADIUS=m.reg(m.CP.border_top_left_radius);m.BORDER_TOP_WIDTH=m.reg(m.CP.border_top_width);m.BOX_SHADOW=m.reg(m.CP.box_shadow);m.CLIP=m.reg(m.CP.clip);m.DISPLAY_INSIDE=m.reg(m.CP.display_inside);m.FONT_SIZE=m.reg(m.CP.font_size);m.LINE_HEIGHT=m.reg(m.CP.line_height);m.MARGIN_LEFT=m.reg(m.CP.margin_left);m.MAX_WIDTH=m.reg(m.CP.max_width);m.OUTLINE_STYLE=m.reg(m.CP.outline_style);m.PADDING_BOTTOM=m.reg(m.CP.padding_bottom);m.PADDING_RIGHT=m.reg(m.CP.padding_right);m.PERSPECTIVE=m.reg(m.CP.perspective);m.RICHNESS=m.reg(m.CP.richness);m.TEXT_OVERFLOW=m.reg(m.CP.text_overflow);m.TOP=m.reg(m.CP.top);m.WIDTH=m.reg(m.CP.width);m.Z_INDEX=m.reg(m.CP.z_index);m.BACKGROUND=m.reg(m.CP.background);m.BACKGROUND_SIZE=m.reg(m.CP.background_size);m.BORDER_BOTTOM_LEFT_RADIUS=m.reg(m.CP.border_bottom_left_radius);m.BORDER_BOTTOM_WIDTH=m.reg(m.CP.border_bottom_width);m.BORDER_LEFT_STYLE=m.reg(m.CP.border_left_style);m.BORDER_RIGHT_STYLE=m.reg(m.CP.border_right_style);m.BORDER_TOP=m.reg(m.CP.border_top);m.BOTTOM=m.reg(m.CP.bottom);m.LIST_STYLE=m.reg(m.CP.list_style);m.MARGIN_TOP=m.reg(m.CP.margin_top);m.OUTLINE=m.reg(m.CP.outline);m.OVERFLOW_Y=m.reg(m.CP.overflow_y);m.PITCH=m.reg(m.CP.pitch);m.VERTICAL_ALIGN=m.reg(m.CP.vertical_align);m.WORD_SPACING=m.reg(m.CP.word_spacing);m.BACKGROUND_IMAGE=m.reg(m.CP.background_image);m.BORDER_BOTTOM_RIGHT_RADIUS=m.reg(m.CP.border_bottom_right_radius);m.BORDER_LEFT_WIDTH=m.reg(m.CP.border_left_width);m.BORDER_RIGHT_WIDTH=m.reg(m.CP.border_right_width);m.LEFT=m.reg(m.CP.left);m.MARGIN_BOTTOM=m.reg(m.CP.margin_bottom);m.PAUSE_AFTER=m.reg(m.CP.pause_after);m.SPEECH_RATE=m.reg(m.CP.speech_rate);m.TRANSITION_DURATION=m.reg(m.CP.transition_duration);m.BORDER_BOTTOM=m.reg(m.CP.border_bottom);m.BORDER_RIGHT=m.reg(m.CP.border_right);m.MARGIN=m.reg(m.CP.margin);m.PADDING_LEFT=m.reg(m.CP.padding_left);m.BORDER_LEFT=m.reg(m.CP.border_left);m.FONT=m.reg(m.CP.font);m.QUOTES=m.reg(m.CP.quotes);m.BORDER_TOP_RIGHT_RADIUS=m.reg(m.CP.border_top_right_radius);m.MIN_WIDTH=m.reg(m.CP.min_width);m.ALIGN_CONTENT=m.reg(m.CP.align_content);m.ALIGN_ITEMS=m.reg(m.CP.align_items);m.ALIGN_SELF=m.reg(m.CP.align_self);m.FLEX=m.reg(m.B.flex);m.FLEX_BASIS=m.reg(m.CP.flex_basis);m.FLEX_DIRECTION=m.reg(m.AP.flex_direction);m.FLEX_GROW=m.reg(m.CP.flex_grow);m.FLEX_SHRINK=m.reg(m.CP.flex_shrink);m.FLEX_WRAP=m.reg(m.AP.flex_wrap);m.JUSTIFY_CONTENT=m.reg(m.AP.justify_content);m.JUSTIFY_ITEMS=m.reg(m.AP.justify_items);m.JUSTIFY_SELF=m.reg(m.AP.justify_self);m.ORDER=m.reg(m.CP.order);m.GRID=m.reg(m.CP.grid);m.GRID_AREA=m.reg(m.CP.grid_area);m.GRID_AUTO_COLUMNS=m.reg(m.CP.grid_auto_columns);m.GRID_AUTO_FLOW=m.reg(m.AP.grid_auto_flow);m.GRID_AUTO_ROWS=m.reg(m.CP.grid_auto_rows);m.GRID_COLUMN=m.reg(m.CP.grid_column);m.GRID_COLUMN_END=m.reg(m.CP.grid_column_end);m.GRID_COLUMN_GAP=m.reg(m.CP.grid_column_gap);m.GRID_COLUMN_START=m.reg(m.CP.grid_column_start);m.GRID_GAP=m.reg(m.CP.grid_gap);m.GRID_ROW=m.reg(m.CP.grid_row);m.GRID_ROW_END=m.reg(m.CP.grid_row_end);m.GRID_ROW_GAP=m.reg(m.CP.grid_row_gap);m.GRID_ROW_START=m.reg(m.CP.grid_row_start);m.GRID_TEMPLATE=m.reg(m.CP.grid_template);m.GRID_TEMPLATE_AREAS=m.reg(m.CP.grid_template_areas);m.GRID_TEMPLATE_COLUMNS=m.reg(m.CP.grid_template_columns);m.GRID_TEMPLATE_ROWS=m.reg(m.CP.grid_template_rows);m.GAP=m.reg(m.CP.gap);m.ROW_GAP=m.reg(m.CP.row_gap);m.COLUMN_GAP=m.reg(m.CP.column_gap);m.PLACE_CONTENT=m.reg(m.AP.place_content);m.PLACE_ITEMS=m.reg(m.AP.place_items);m.PLACE_SELF=m.reg(m.AP.place_self);fie=class{constructor(){this._autolink=!0,this._allowNamedProperties=!1,this._generateOptions=()=>{let e=Array.isArray(this._customAllowedSchemes)?this._customAllowedSchemes:[...Zm.default.defaults.allowedSchemes];return{allowedTags:["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","colspan","command","data","datalist","dd","del","details","dfn","dir","div","dl","dt","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","img","input","ins","kbd","label","legend","li","map","mark","menu","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rowspan","s","samp","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],allowedAttributes:{"*":["class","data-jupyter-id","dir","draggable","hidden","id","inert","itemprop","itemref","itemscope","lang","spellcheck","style","title","translate"],a:["accesskey","coords","href","hreflang",...this._allowNamedProperties?["name"]:[],"rel","shape","tabindex","target","type"],area:["accesskey","alt","coords","href","nohref","shape","tabindex"],audio:["autoplay","controls","loop","mediagroup","muted","preload","src"],bdo:["dir"],blockquote:["cite"],br:["clear"],button:["accesskey","data-commandlinker-args","data-commandlinker-command","disabled",...this._allowNamedProperties?["name"]:[],"tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],command:["checked","command","disabled","icon","label","radiogroup","type"],data:["value"],del:["cite","datetime"],details:["open"],dir:["compact"],div:["align"],dl:["compact"],fieldset:["disabled"],font:["color","face","size"],form:["accept","autocomplete","enctype","method",...this._allowNamedProperties?["name"]:[],"novalidate"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],hr:["align","noshade","size","width"],iframe:["align","frameborder","height","marginheight","marginwidth","width"],img:["align","alt","border","height","hspace","ismap",...this._allowNamedProperties?["name"]:[],"src","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","checked","disabled","inputmode","ismap","list","max","maxlength","min","multiple",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","size","src","step","tabindex","type","usemap","value"],ins:["cite","datetime"],label:["accesskey","for"],legend:["accesskey","align"],li:["type","value"],map:this._allowNamedProperties?["name"]:[],menu:["compact","label","type"],meter:["high","low","max","min","value"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for",...this._allowNamedProperties?["name"]:[]],p:["align"],pre:["width"],progress:["max","min","value"],q:["cite"],select:["autocomplete","disabled","multiple",...this._allowNamedProperties?["name"]:[],"required","size","tabindex"],source:["type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","cols","disabled","inputmode",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","srclang"],ul:["compact","type"],video:["autoplay","controls","height","loop","mediagroup","muted","poster","preload","src","width"]},allowedStyles:{"*":{"backface-visibility":[m.BACKFACE_VISIBILITY],background:[m.BACKGROUND],"background-attachment":[m.BACKGROUND_ATTACHMENT],"background-clip":[m.BACKGROUND_CLIP],"background-color":[m.BACKGROUND_COLOR],"background-image":[m.BACKGROUND_IMAGE],"background-origin":[m.BACKGROUND_ORIGIN],"background-position":[m.BACKGROUND_POSITION],"background-repeat":[m.BACKGROUND_REPEAT],"background-size":[m.BACKGROUND_SIZE],border:[m.BORDER],"border-bottom":[m.BORDER_BOTTOM],"border-bottom-color":[m.BORDER_BOTTOM_COLOR],"border-bottom-left-radius":[m.BORDER_BOTTOM_LEFT_RADIUS],"border-bottom-right-radius":[m.BORDER_BOTTOM_RIGHT_RADIUS],"border-bottom-style":[m.BORDER_BOTTOM_STYLE],"border-bottom-width":[m.BORDER_BOTTOM_WIDTH],"border-collapse":[m.BORDER_COLLAPSE],"border-color":[m.BORDER_COLOR],"border-left":[m.BORDER_LEFT],"border-left-color":[m.BORDER_LEFT_COLOR],"border-left-style":[m.BORDER_LEFT_STYLE],"border-left-width":[m.BORDER_LEFT_WIDTH],"border-radius":[m.BORDER_RADIUS],"border-right":[m.BORDER_RIGHT],"border-right-color":[m.BORDER_RIGHT_COLOR],"border-right-style":[m.BORDER_RIGHT_STYLE],"border-right-width":[m.BORDER_RIGHT_WIDTH],"border-spacing":[m.BORDER_SPACING],"border-style":[m.BORDER_STYLE],"border-top":[m.BORDER_TOP],"border-top-color":[m.BORDER_TOP_COLOR],"border-top-left-radius":[m.BORDER_TOP_LEFT_RADIUS],"border-top-right-radius":[m.BORDER_TOP_RIGHT_RADIUS],"border-top-style":[m.BORDER_TOP_STYLE],"border-top-width":[m.BORDER_TOP_WIDTH],"border-width":[m.BORDER_WIDTH],bottom:[m.BOTTOM],box:[m.BOX],"box-shadow":[m.BOX_SHADOW],"box-sizing":[m.BOX_SIZING],"caption-side":[m.CAPTION_SIDE],clear:[m.CLEAR],clip:[m.CLIP],color:[m.COLOR],cursor:[m.CURSOR],direction:[m.DIRECTION],display:[m.DISPLAY],"display-inside":[m.DISPLAY_INSIDE],"display-outside":[m.DISPLAY_OUTSIDE],elevation:[m.ELEVATION],"empty-cells":[m.EMPTY_CELLS],float:[m.FLOAT],font:[m.FONT],"font-family":[m.FONT_FAMILY],"font-size":[m.FONT_SIZE],"font-stretch":[m.FONT_STRETCH],"font-style":[m.FONT_STYLE],"font-variant":[m.FONT_VARIANT],"font-weight":[m.FONT_WEIGHT],height:[m.HEIGHT],left:[m.LEFT],"letter-spacing":[m.LETTER_SPACING],"line-height":[m.LINE_HEIGHT],"list-style":[m.LIST_STYLE],"list-style-image":[m.LIST_STYLE_IMAGE],"list-style-position":[m.LIST_STYLE_POSITION],"list-style-type":[m.LIST_STYLE_TYPE],margin:[m.MARGIN],"margin-bottom":[m.MARGIN_BOTTOM],"margin-left":[m.MARGIN_LEFT],"margin-right":[m.MARGIN_RIGHT],"margin-top":[m.MARGIN_TOP],"max-height":[m.MAX_HEIGHT],"max-width":[m.MAX_WIDTH],"min-height":[m.MIN_HEIGHT],"min-width":[m.MIN_WIDTH],opacity:[m.OPACITY],outline:[m.OUTLINE],"outline-color":[m.OUTLINE_COLOR],"outline-style":[m.OUTLINE_STYLE],"outline-width":[m.OUTLINE_WIDTH],overflow:[m.OVERFLOW],"overflow-wrap":[m.OVERFLOW_WRAP],"overflow-x":[m.OVERFLOW_X],"overflow-y":[m.OVERFLOW_Y],padding:[m.PADDING],"padding-bottom":[m.PADDING_BOTTOM],"padding-left":[m.PADDING_LEFT],"padding-right":[m.PADDING_RIGHT],"padding-top":[m.PADDING_TOP],"page-break-after":[m.PAGE_BREAK_AFTER],"page-break-before":[m.PAGE_BREAK_BEFORE],"page-break-inside":[m.PAGE_BREAK_INSIDE],"pause-after":[m.PAUSE_AFTER],perspective:[m.PERSPECTIVE],pitch:[m.PITCH],"pitch-range":[m.PITCH_RANGE],position:[m.POSITION],quotes:[m.QUOTES],resize:[m.RESIZE],richness:[m.RICHNESS],right:[m.RIGHT],speak:[m.SPEAK],"speak-header":[m.SPEAK_HEADER],"speak-numeral":[m.SPEAK_NUMERAL],"speak-punctuation":[m.SPEAK_PUNCTUATION],"speech-rate":[m.SPEECH_RATE],stress:[m.STRESS],"table-layout":[m.TABLE_LAYOUT],"text-align":[m.TEXT_ALIGN],"text-decoration":[m.TEXT_DECORATION],"text-indent":[m.TEXT_INDENT],"text-overflow":[m.TEXT_OVERFLOW],"text-shadow":[m.TEXT_SHADOW],"text-transform":[m.TEXT_TRANSFORM],"text-wrap":[m.TEXT_WRAP],top:[m.TOP],"unicode-bidi":[m.UNICODE_BIDI],"vertical-align":[m.VERTICAL_ALIGN],visibility:[m.VISIBILITY],volume:[m.VOLUME],"white-space":[m.WHITE_SPACE],width:[m.WIDTH],"word-break":[m.WORD_BREAK],"word-spacing":[m.WORD_SPACING],"word-wrap":[m.WORD_WRAP],"z-index":[m.Z_INDEX],zoom:[m.ZOOM],"align-content":[m.ALIGN_CONTENT],"align-items":[m.ALIGN_ITEMS],"align-self":[m.ALIGN_SELF],flex:[m.FLEX],"flex-basis":[m.FLEX_BASIS],"flex-direction":[m.FLEX_DIRECTION],"flex-grow":[m.FLEX_GROW],"flex-shrink":[m.FLEX_SHRINK],"flex-wrap":[m.FLEX_WRAP],grid:[m.GRID],"grid-area":[m.GRID_AREA],"grid-auto-columns":[m.GRID_AUTO_COLUMNS],"grid-auto-flow":[m.GRID_AUTO_FLOW],"grid-auto-rows":[m.GRID_AUTO_ROWS],"grid-column":[m.GRID_COLUMN],"grid-column-end":[m.GRID_COLUMN_END],"grid-column-gap":[m.GRID_COLUMN_GAP],"grid-column-start":[m.GRID_COLUMN_START],"grid-gap":[m.GRID_GAP],"grid-row":[m.GRID_ROW],"grid-row-end":[m.GRID_ROW_END],"grid-row-gap":[m.GRID_ROW_GAP],"grid-row-start":[m.GRID_ROW_START],"grid-template":[m.GRID_TEMPLATE],"grid-template-areas":[m.GRID_TEMPLATE_AREAS],"grid-template-columns":[m.GRID_TEMPLATE_COLUMNS],"grid-template-rows":[m.GRID_TEMPLATE_ROWS],gap:[m.GAP],"row-gap":[m.ROW_GAP],"column-gap":[m.COLUMN_GAP],"justify-content":[m.JUSTIFY_CONTENT],"justify-items":[m.JUSTIFY_ITEMS],"justify-self":[m.JUSTIFY_SELF],order:[m.ORDER],"place-content":[m.PLACE_CONTENT],"place-items":[m.PLACE_ITEMS],"place-self":[m.PLACE_SELF]}},transformTags:{a:Zm.default.simpleTransform("a",{rel:"nofollow"}),input:Zm.default.simpleTransform("input",{disabled:"disabled"}),...this._allowNamedProperties?{}:{"*":function(t,r){return r.id!==void 0&&(r["data-jupyter-id"]=r.id,delete r.id),{tagName:t,attribs:{...r}}}}},allowedSchemes:e,allowedSchemesByTag:{img:[...e,"attachment"]},allowedSchemesAppliedToAttributes:["href","cite"]}},this._options=this._generateOptions()}sanitize(e,t){return(0,Zm.default)(e,{...this._options,...t||{}})}getAutolink(){return this._autolink}get allowNamedProperties(){return this._allowNamedProperties}setAllowedSchemes(e){this._customAllowedSchemes=[...e],this._options=this._generateOptions()}setAutolink(e){this._autolink=e}setAllowNamedProperties(e){this._allowNamedProperties=e,this._options=this._generateOptions()}}});var lf,mie=b(()=>{lf=class{constructor(){this._commands=new Array}get ids(){return this._commands.map(e=>e.id)}add(e){if(this._commands.map(t=>t.id).includes(e.id))throw Error(`Command ${e.id} is already defined.`);this._commands.push({isEnabled:()=>!0,rank:lf.DEFAULT_RANK,...e})}getActiveCommandId(e){var t;return((t=this._commands.filter(s=>s.isEnabled(e)).sort((s,o)=>s.rank-o.rank||(s.idr.id===e);t>=0&&this._commands.splice(t,1)}};lf.DEFAULT_RANK=500;lf.WIDGET="semanticWidget"});var gie,bie=b(()=>{Jn();Nr();tt();(function(i){function e(t){for(let r of t.children())e(r);t.fit()}i.fitAll=e})(gie||(gie={}))});var Go,zEt,qEt,HEt,jEt,VEt,UEt,WEt,GEt,KEt,vie=b(()=>{Go=N(Ge()),zEt=new Go.Token("@jupyterlab/apputils:ICommandPalette",`A service for the application command palette + in the left panel. Use this to add commands to the palette.`),qEt=new Go.Token("@jupyterlab/apputils:IKernelStatusModel","A service to register kernel session provider to the kernel status indicator."),HEt=new Go.Token("@jupyterlab/apputils:ILicensesClient","A service for fetching licenses."),jEt=new Go.Token("@jupyterlab/apputils:ISessionContextDialogs","A service for handling the session dialogs."),VEt=new Go.Token("@jupyterlab/apputils:IThemeManager","A service for the theme manager for the application. This is used primarily in theme extensions to register new themes."),UEt=new Go.Token("@jupyterlab/apputils:ISanitizer","A service for sanitizing HTML strings."),WEt=new Go.Token("@jupyterlab/apputils:ISplashScreen",`A service for the splash screen for the application. + Use this if you want to show the splash screen for your own purposes.`),GEt=new Go.Token("@jupyterlab/apputils:IWindowResolver",`A service for a window resolver for the + application. JupyterLab workspaces are given a name, which are determined using + the window resolver. Require this if you want to use the name of the current workspace.`),KEt=new Go.Token("@jupyterlab/apputils:IToolbarWidgetRegistry",`A registry for toolbar widgets. Require this + if you want to build the toolbar dynamically from a data definition (stored in settings for example).`)});var yie,_ie,xie=b(()=>{yie=N(Ge());(function(i){let e="@jupyterlab/statedb:StateDB",t=`${e}:beacon`,r=Math.floor(200+Math.random()*300),n=`${e}:window`,s=null,o=null,a=new yie.PromiseDelegate,l={},u=null,c=!1;function d(){window.addEventListener("storage",g=>{let{key:v,newValue:_}=g;if(_===null)return;if(v===t&&_!==s&&o!==null){h(c?u:o);return}if(c||v!==n)return;let x=_.replace(/\-\d+$/,"");l[x]=null,(!o||o in l)&&f()})}function h(g){if(g===null)return;let{localStorage:v}=window;v.setItem(n,`${g}-${new Date().getTime()}`)}function f(){c=!0,s=null,a.reject(`Window name candidate "${o}" already exists`)}function p(g){if(c)return a.promise;if(o=g,o in l)return f(),a.promise;let{localStorage:v,setTimeout:_}=window;return _(()=>{if(!c){if(!o||o in l)return f();c=!0,s=null,a.resolve(u=o),h(u)}},r),s=`${Math.random()}-${new Date().getTime()}`,v.setItem(t,s),a.promise}i.resolve=p,d()})(_ie||(_ie={}))});var A_,rEe=b(()=>{Mo();LZ();FZ();NZ();BZ();qv();_4();qZ();D4();VZ();GZ();JZ();eQ();H4();tQ();pie();mie();A4();bie();vie();k4();xie();A_=class extends Pu{};(function(i){i.createInterruptButton=rd.createInterruptButton,i.createKernelNameItem=rd.createKernelNameItem,i.createKernelStatusItem=rd.createKernelStatusItem,i.createRestartButton=rd.createRestartButton,i.createSpacerItem=Pu.createSpacerItem})(A_||(A_={}))});export{r4 as a,WJ as b,TCt as c,VSe as d,Kc as e,i4 as f,jJ as g,VJ as h,SCt as i,HSe as j,UJ as k,jSe as l,J1 as m,lK as n,mK as o,yK as p,ySe as q,yn as r,L as s,Oi as t,Ui as u,Rie as v,Js as w,ys as x,Qm as y,Ko as z,gr as A,Zt as B,Ge as C,G as D,tt as E,ci as F,Li as G,Nr as H,Ye as I,md as J,ws as K,he as L,Ft as M,pi as N,Ad as O,Qn as P,Hf as Q,ti as R,jf as S,re as T,Pt as U,el as V,fi as W,jRe as X,St as Y,Jn as Z,$x as _,H9e as $,Or as aa,Ao as ba,$u as ca,Mo as da,Cv as ea,Ev as fa,JJ as ga,kv as ha,USe as ia,x6t as ja,mm as ka,v4 as la,zv as ma,gm as na,Cm as oa,xee as pa,See as qa,Iee as ra,Aee as sa,Ree as ta,aie as ua,fie as va,rEe as wa}; +/*! Bundled license information: + +react-is/cjs/react-is.production.min.js: + (** + * @license React + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +tslib/tslib.es6.js: + (*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** *) + +tabbable/dist/index.esm.js: + (*! + * tabbable 5.3.3 + * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE + *) + +is-plain-object/dist/is-plain-object.js: + (*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + *) +*/ diff --git a/build/_shared/chunk-C6JN4LTC.js b/build/_shared/chunk-C6JN4LTC.js new file mode 100644 index 00000000..f39fa338 --- /dev/null +++ b/build/_shared/chunk-C6JN4LTC.js @@ -0,0 +1 @@ +import{c as t}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var i=t((s,a)=>{a.exports=n;n.displayName="dhall";n.aliases=[];function n(e){e.languages.dhall={comment:/--.*|\{-(?:[^-{]|-(?!\})|\{(?!-)|\{-(?:[^-{]|-(?!\})|\{(?!-))*-\})*-\}/,string:{pattern:/"(?:[^"\\]|\\.)*"|''(?:[^']|'(?!')|'''|''\$\{)*''(?!'|\$)/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^{}]*\}/,inside:{expression:{pattern:/(^\$\{)[\s\S]+(?=\}$)/,lookbehind:!0,alias:"language-dhall",inside:null},punctuation:/\$\{|\}/}}}},label:{pattern:/`[^`]*`/,greedy:!0},url:{pattern:/\bhttps?:\/\/[\w.:%!$&'*+;=@~-]+(?:\/[\w.:%!$&'*+;=@~-]*)*(?:\?[/?\w.:%!$&'*+;=@~-]*)?/,greedy:!0},env:{pattern:/\benv:(?:(?!\d)\w+|"(?:[^"\\=]|\\.)*")/,greedy:!0,inside:{function:/^env/,operator:/^:/,variable:/[\s\S]+/}},hash:{pattern:/\bsha256:[\da-fA-F]{64}\b/,inside:{function:/sha256/,operator:/:/,number:/[\da-fA-F]{64}/}},keyword:/\b(?:as|assert|else|forall|if|in|let|merge|missing|then|toMap|using|with)\b|\u2200/,builtin:/\b(?:None|Some)\b/,boolean:/\b(?:False|True)\b/,number:/\bNaN\b|-?\bInfinity\b|[+-]?\b(?:0x[\da-fA-F]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/,operator:/\/\\|\/\/\\\\|&&|\|\||===|[!=]=|\/\/|->|\+\+|::|[+*#@=:?<>|\\\u2227\u2a53\u2261\u2afd\u03bb\u2192]/,punctuation:/\.\.|[{}\[\](),./]/,"class-name":/\b[A-Z]\w*\b/},e.languages.dhall.string.inside.interpolation.inside.expression.inside=e.languages.dhall}});export{i as a}; diff --git a/build/_shared/chunk-CBDDV5MN.js b/build/_shared/chunk-CBDDV5MN.js new file mode 100644 index 00000000..a37cd7c6 --- /dev/null +++ b/build/_shared/chunk-CBDDV5MN.js @@ -0,0 +1 @@ +import{c as a}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var r=a((s,n)=>{n.exports=t;t.displayName="c";t.aliases=[];function t(e){e.languages.c=e.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}});export{r as a}; diff --git a/build/_shared/chunk-CH4FVTDV.js b/build/_shared/chunk-CH4FVTDV.js new file mode 100644 index 00000000..41930e27 --- /dev/null +++ b/build/_shared/chunk-CH4FVTDV.js @@ -0,0 +1,176 @@ +import{A as Jr,B as Pn,C as Zr,D as Me,E as As,F as cL,G as Ls,H as lc,I as ht,J as qp,K as J1,L as Ce,M as Mi,N as tr,O as Up,P as Ns,Q as qb,R as Qr,S as Ub,T as ye,U as Ht,V as Vb,Y as Ds,Z as Vp,_ as SW,a as QA,b as bW,c as eL,d as vW,e as tL,f as xW,fa as Gb,g as iL,ga as dL,h as yW,ha as uL,i as Ms,ia as Z1,j as Y1,k as $b,l as rL,m as Rs,ma as hL,n as vh,o as ut,oa as Q1,p as nL,pa as CW,q as vd,qa as EW,r as Oi,ra as IW,s as z,sa as kW,t as Si,ta as MW,u as Ts,ua as RW,v as aL,va as fL,w as sc,wa as eS,x as oc,y as lL,z as ac}from"/numpy-tutorials/build/_shared/chunk-C4DFGG5C.js";import{a as Xo,b as Xb,c as pr,d as Kb,e as Os,f as mL,g as xd}from"/numpy-tutorials/build/_shared/chunk-J7TUH54J.js";import{a as Wb,d as wW}from"/numpy-tutorials/build/_shared/chunk-KQM5FBHR.js";import{a as wi}from"/numpy-tutorials/build/_shared/chunk-OCWQY3HK.js";import{g as KA,n as YA}from"/numpy-tutorials/build/_shared/chunk-7HNKBP4B.js";import{a as sL,b as oL}from"/numpy-tutorials/build/_shared/chunk-CUKUDK3R.js";import{a as et}from"/numpy-tutorials/build/_shared/chunk-3EBOCCHJ.js";import{b as Wp}from"/numpy-tutorials/build/_shared/chunk-O4VQNZ62.js";import{B as JA,D as ZA,a as UA,n as VA,r as GA,s as XA,t as kr,y as bh}from"/numpy-tutorials/build/_shared/chunk-4OEDG4JQ.js";import{a as OA,b as zA,c as PA,d as nc,e as BA,g as X1,h as K1,i as jA,j as HA,k as FA,m as $A,n as WA,p as qA}from"/numpy-tutorials/build/_shared/chunk-AQ2CODAG.js";import{a as Z,b as Fb,c as _W,d as ce}from"/numpy-tutorials/build/_shared/chunk-JJXTQVMA.js";import{b as j,c as Fe,d as Go,f as L,g as Va}from"/numpy-tutorials/build/_shared/chunk-OZE3FFNP.js";var nC=Fe((mde,ug)=>{function IU(i,e){this.v=i,this.k=e}ug.exports=IU,ug.exports.__esModule=!0,ug.exports.default=ug.exports});var sC=Fe((pde,tl)=>{function Fv(i,e,t,r){var n=Object.defineProperty;try{n({},"",{})}catch{n=0}tl.exports=Fv=function(o,a,l,c){function u(d,f){Fv(o,d,function(h){return this._invoke(d,f,h)})}a?n?n(o,a,{value:l,enumerable:!c,configurable:!c,writable:!c}):o[a]=l:(u("next",0),u("throw",1),u("return",2))},tl.exports.__esModule=!0,tl.exports.default=tl.exports,Fv(i,e,t,r)}tl.exports=Fv,tl.exports.__esModule=!0,tl.exports.default=tl.exports});var oC=Fe((gde,il)=>{var aa=sC();function AD(){var i,e,t=typeof Symbol=="function"?Symbol:{},r=t.iterator||"@@iterator",n=t.toStringTag||"@@toStringTag";function s(h,m,p,_){var x=m&&m.prototype instanceof a?m:a,y=Object.create(x.prototype);return aa(y,"_invoke",function(S,I,C){var b,k,M,N=0,P=C||[],W=!1,ee={p:0,n:0,v:i,a:be,f:be.bind(i,4),d:function(Y,te){return b=Y,k=0,M=i,ee.n=te,o}};function be(fe,Y){for(k=fe,M=Y,e=0;!W&&N&&!te&&e3?(te=we===Y)&&(M=ie[(k=ie[4])?5:(k=3,3)],ie[4]=ie[5]=i):ie[0]<=me&&((te=fe<2&&meY||Y>we)&&(ie[4]=fe,ie[5]=Y,ee.n=we,k=0))}if(te||fe>1)return o;throw W=!0,Y}return function(fe,Y,te){if(N>1)throw TypeError("Generator is already running");for(W&&Y===1&&be(Y,te),k=Y,M=te;(e=k<2?i:M)||!W;){b||(k?k<3?(k>1&&(ee.n=-1),be(k,M)):ee.n=M:ee.v=M);try{if(N=2,b){if(k||(fe="next"),e=b[fe]){if(!(e=e.call(b,M)))throw TypeError("iterator result is not an object");if(!e.done)return e;M=e.value,k<2&&(k=0)}else k===1&&(e=b.return)&&e.call(b),k<2&&(M=TypeError("The iterator does not provide a '"+fe+"' method"),k=1);b=i}else if((e=(W=ee.n<0)?M:S.call(I,ee))!==o)break}catch(ie){b=i,k=1,M=ie}finally{N=1}}return{value:e,done:W}}}(h,p,_),!0),y}var o={};function a(){}function l(){}function c(){}e=Object.getPrototypeOf;var u=[][r]?e(e([][r]())):(aa(e={},r,function(){return this}),e),d=c.prototype=a.prototype=Object.create(u);function f(h){return Object.setPrototypeOf?Object.setPrototypeOf(h,c):(h.__proto__=c,aa(h,n,"GeneratorFunction")),h.prototype=Object.create(d),h}return l.prototype=c,aa(d,"constructor",c),aa(c,"constructor",l),l.displayName="GeneratorFunction",aa(c,n,"GeneratorFunction"),aa(d),aa(d,n,"Generator"),aa(d,r,function(){return this}),aa(d,"toString",function(){return"[object Generator]"}),(il.exports=AD=function(){return{w:s,m:f}},il.exports.__esModule=!0,il.exports.default=il.exports)()}il.exports=AD,il.exports.__esModule=!0,il.exports.default=il.exports});var cC=Fe((_de,hg)=>{var kU=nC(),aC=sC();function lC(i,e){function t(n,s,o,a){try{var l=i[n](s),c=l.value;return c instanceof kU?e.resolve(c.v).then(function(u){t("next",u,o,a)},function(u){t("throw",u,o,a)}):e.resolve(c).then(function(u){l.value=u,o(l)},function(u){return t("throw",u,o,a)})}catch(u){a(u)}}var r;this.next||(aC(lC.prototype),aC(lC.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),aC(this,"_invoke",function(n,s,o){function a(){return new e(function(l,c){t(n,o,l,c)})}return r=r?r.then(a,a):a()},!0)}hg.exports=lC,hg.exports.__esModule=!0,hg.exports.default=hg.exports});var dC=Fe((bde,fg)=>{var MU=oC(),RU=cC();function TU(i,e,t,r,n){return new RU(MU().w(i,e,t,r),n||Promise)}fg.exports=TU,fg.exports.__esModule=!0,fg.exports.default=fg.exports});var LD=Fe((vde,mg)=>{var AU=dC();function LU(i,e,t,r,n){var s=AU(i,e,t,r,n);return s.next().then(function(o){return o.done?o.value:s.next()})}mg.exports=LU,mg.exports.__esModule=!0,mg.exports.default=mg.exports});var ND=Fe((xde,pg)=>{function NU(i){var e=Object(i),t=[];for(var r in e)t.unshift(r);return function n(){for(;t.length;)if((r=t.pop())in e)return n.value=r,n.done=!1,n;return n.done=!0,n}}pg.exports=NU,pg.exports.__esModule=!0,pg.exports.default=pg.exports});var DD=Fe((yde,rl)=>{function uC(i){return rl.exports=uC=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},rl.exports.__esModule=!0,rl.exports.default=rl.exports,uC(i)}rl.exports=uC,rl.exports.__esModule=!0,rl.exports.default=rl.exports});var OD=Fe((wde,gg)=>{var DU=DD().default;function OU(i){if(i!=null){var e=i[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],t=0;if(e)return e.call(i);if(typeof i.next=="function")return i;if(!isNaN(i.length))return{next:function(){return i&&t>=i.length&&(i=void 0),{value:i&&i[t++],done:!i}}}}throw new TypeError(DU(i)+" is not iterable")}gg.exports=OU,gg.exports.__esModule=!0,gg.exports.default=gg.exports});var PD=Fe((Sde,nl)=>{var zU=nC(),PU=oC(),BU=LD(),jU=dC(),HU=cC(),FU=ND(),zD=OD();function hC(){"use strict";var i=PU(),e=i.m(hC),t=(Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__).constructor;function r(o){var a=typeof o=="function"&&o.constructor;return!!a&&(a===t||(a.displayName||a.name)==="GeneratorFunction")}var n={throw:1,return:2,break:3,continue:3};function s(o){var a,l;return function(c){a||(a={stop:function(){return l(c.a,2)},catch:function(){return c.v},abrupt:function(d,f){return l(c.a,n[d],f)},delegateYield:function(d,f,h){return a.resultName=f,l(c.d,zD(d),h)},finish:function(d){return l(c.f,d)}},l=function(d,f,h){c.p=a.prev,c.n=a.next;try{return d(f,h)}finally{a.next=c.n}}),a.resultName&&(a[a.resultName]=c.v,a.resultName=void 0),a.sent=c.v,a.next=c.n;try{return o.call(this,a)}finally{c.p=a.prev,c.n=a.next}}}return(nl.exports=hC=function(){return{wrap:function(l,c,u,d){return i.w(s(l),c,u,d&&d.reverse())},isGeneratorFunction:r,mark:i.m,awrap:function(l,c){return new zU(l,c)},AsyncIterator:HU,async:function(l,c,u,d,f){return(r(c)?jU:BU)(s(l),c,u,d,f)},keys:FU,values:zD}},nl.exports.__esModule=!0,nl.exports.default=nl.exports)()}nl.exports=hC,nl.exports.__esModule=!0,nl.exports.default=nl.exports});var fC=Fe((Cde,BD)=>{var $v=PD()();BD.exports=$v;try{regeneratorRuntime=$v}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=$v:Function("r","regeneratorRuntime = r")($v)}});var QD=Fe(ZD=>{"use strict";var Ef=Z();function aV(i,e){return i===e&&(i!==0||1/i===1/e)||i!==i&&e!==e}var lV=typeof Object.is=="function"?Object.is:aV,cV=Ef.useState,dV=Ef.useEffect,uV=Ef.useLayoutEffect,hV=Ef.useDebugValue;function fV(i,e){var t=e(),r=cV({inst:{value:t,getSnapshot:e}}),n=r[0].inst,s=r[1];return uV(function(){n.value=t,n.getSnapshot=e,vC(n)&&s({inst:n})},[i,t,e]),dV(function(){return vC(n)&&s({inst:n}),i(function(){vC(n)&&s({inst:n})})},[i]),hV(t),t}function vC(i){var e=i.getSnapshot;i=i.value;try{var t=e();return!lV(i,t)}catch{return!0}}function mV(i,e){return e()}var pV=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?mV:fV;ZD.useSyncExternalStore=Ef.useSyncExternalStore!==void 0?Ef.useSyncExternalStore:pV});var tO=Fe((sue,eO)=>{"use strict";eO.exports=QD()});var lz=Fe((Vfe,az)=>{var oz="Expected a function",nz=NaN,PX="[object Symbol]",BX=/^\s+|\s+$/g,jX=/^[-+]0x[0-9a-f]+$/i,HX=/^0b[01]+$/i,FX=/^0o[0-7]+$/i,$X=parseInt,WX=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,qX=typeof self=="object"&&self&&self.Object===Object&&self,UX=WX||qX||Function("return this")(),VX=Object.prototype,GX=VX.toString,XX=Math.max,KX=Math.min,qC=function(){return UX.Date.now()};function YX(i,e,t){var r,n,s,o,a,l,c=0,u=!1,d=!1,f=!0;if(typeof i!="function")throw new TypeError(oz);e=sz(e)||0,c0(t)&&(u=!!t.leading,d="maxWait"in t,s=d?XX(sz(t.maxWait)||0,e):s,f="trailing"in t?!!t.trailing:f);function h(b){var k=r,M=n;return r=n=void 0,c=b,o=i.apply(M,k),o}function m(b){return c=b,a=setTimeout(x,e),u?h(b):o}function p(b){var k=b-l,M=b-c,N=e-k;return d?KX(N,s-M):N}function _(b){var k=b-l,M=b-c;return l===void 0||k>=e||k<0||d&&M>=s}function x(){var b=qC();if(_(b))return y(b);a=setTimeout(x,p(b))}function y(b){return a=void 0,f&&r?h(b):(r=n=void 0,o)}function S(){a!==void 0&&clearTimeout(a),c=0,r=l=n=a=void 0}function I(){return a===void 0?o:y(qC())}function C(){var b=qC(),k=_(b);if(r=arguments,n=this,l=b,k){if(a===void 0)return m(l);if(d)return a=setTimeout(x,e),h(l)}return a===void 0&&(a=setTimeout(x,e)),o}return C.cancel=S,C.flush=I,C}function JX(i,e,t){var r=!0,n=!0;if(typeof i!="function")throw new TypeError(oz);return c0(t)&&(r="leading"in t?!!t.leading:r,n="trailing"in t?!!t.trailing:n),YX(i,e,{leading:r,maxWait:e,trailing:n})}function c0(i){var e=typeof i;return!!i&&(e=="object"||e=="function")}function ZX(i){return!!i&&typeof i=="object"}function QX(i){return typeof i=="symbol"||ZX(i)&&GX.call(i)==PX}function sz(i){if(typeof i=="number")return i;if(QX(i))return nz;if(c0(i)){var e=typeof i.valueOf=="function"?i.valueOf():i;i=c0(e)?e+"":e}if(typeof i!="string")return i===0?i:+i;i=i.replace(BX,"");var t=HX.test(i);return t||FX.test(i)?$X(i.slice(2),t?2:8):jX.test(i)?nz:+i}az.exports=JX});var tZ=Fe((C0e,VB)=>{VB.exports={}});var XB=Fe(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});ex.OutputAreaByRef=void 0;var rZ=(Oi(),Va(vd)),Q0=ce(),nZ=rZ.__importDefault(Z());ex.OutputAreaByRef=nZ.default.forwardRef(({busy:i,content:e},t)=>(0,Q0.jsx)("div",{children:(0,Q0.jsxs)("div",Object.assign({className:"m-1 hover:delay-15"},{children:[(0,Q0.jsx)("div",Object.assign({className:"p-1 rounded",ref:t},{children:e||"[Output Area]"})),i&&(0,Q0.jsx)("div",{children:"Cell is running..."})]}))}))});var GE=Fe(VE=>{"use strict";Object.defineProperty(VE,"__esModule",{value:!0});var sZ="0.5.0";VE.default=sZ});function oZ(i,e){let t=new URL(e);return`${i}-${t.origin+t.pathname}`}function tx(i,e,t){let r=`${e}/build/${t}`,n=`${e}/v2/${t}`;return{build:r,launch:n,storageKey:oZ(i,r)}}function aZ(i){if(!i.binder.repo)throw Error("repo is required for git provider");let{repo:e,binderUrl:t,ref:r}=i.binder,n=encodeURIComponent(e.replace(/(^\/)|(\/?$)/g,"")),s=t?.replace(/(\/?$)/g,""),o=`git/${n}/${r??"HEAD"}`;return tx(i.savedSessions.storagePrefix,s,o)}function lZ(i){var e,t,r;if(!i.binder.repo)throw Error("repo is required for gitlab provider");let n=(e=i.binder.binderUrl)===null||e===void 0?void 0:e.replace(/(\/?$)/g,""),o=`gl/${encodeURIComponent(((t=i.binder.repo)!==null&&t!==void 0?t:"").replace(/^(https?:\/\/)?gitlab.com\//,"").replace(/(^\/)|(\/?$)/g,""))}/${(r=i.binder.ref)!==null&&r!==void 0?r:"HEAD"}`;return tx(i.savedSessions.storagePrefix,n,o)}function cZ(i){var e,t;if(!i.binder.repo)throw Error("repo is required for github provider");let r=i.binder.repo.replace(/^(https?:\/\/)?github.com\//,"").replace(/(^\/)|(\/?$)/g,""),n=(e=i.binder.binderUrl)===null||e===void 0?void 0:e.replace(/(\/?$)/g,""),s=`gh/${r}/${(t=i.binder.ref)!==null&&t!==void 0?t:"HEAD"}`;return tx(i.savedSessions.storagePrefix,n,s)}function dZ(i){var e,t;if(!i.binder.repo)throw Error("repo is required for gist provider");let r=i.binder.repo.replace(/^(https?:\/\/)?github.com\//,"").replace(/(^\/)|(\/?$)/g,""),n=(e=i.binder.binderUrl)===null||e===void 0?void 0:e.replace(/(\/?$)/g,""),s=`gist/${r}/${(t=i.binder.ref)!==null&&t!==void 0?t:"HEAD"}`;return tx(i.savedSessions.storagePrefix,n,s)}function rx(i,e){var t,r;let n=(t=e.reduce((o,a)=>Object.assign(Object.assign({},o),{[a.name]:a}),{}))!==null&&t!==void 0?t:{},s=(r=i.binder.repoProvider)!==null&&r!==void 0?r:"github";if(!Object.keys(n).includes(s))throw Error(`Unknown provider ${i.binder.repoProvider}`);if(!n[s].makeUrls)throw Error(`No makeUrls function for ${s}`);return n[s].makeUrls(i)}var uZ,hZ,fZ,mZ,ix,KB=j(()=>{uZ={name:"github",makeUrls:cZ},hZ={name:"gitlab",makeUrls:lZ},fZ={name:"git",makeUrls:aZ},mZ={name:"gist",makeUrls:dZ},ix=[uZ,hZ,fZ,mZ]});function pZ(i){let e=window.localStorage.getItem(i);if(!e)return;let t=JSON.parse(e);window.localStorage.setItem(i,JSON.stringify(Object.assign(Object.assign({},t),{lastUsed:new Date})))}function YB(i,e,t){try{let{baseUrl:r,token:n,wsUrl:s}=t;window.localStorage.setItem(i,JSON.stringify({id:e,baseUrl:r,token:n,wsUrl:s,lastUsed:new Date}))}catch(r){console.warn("Couldn't save thebe binder connection info to local storage",r)}}function JB(i,e){return ut(this,void 0,void 0,function*(){if(!i.enabled)return null;let t=window.localStorage.getItem(e);if(t==null)return console.debug("thebe:getExistingServer No session saved in ",e),null;console.debug("thebe:getExistingServer Saved binder session found");let r=JSON.parse(t??""),n=new Date(r.lastUsed);if((new Date().getTime()-n.getTime())/1e3>i.maxAge)return console.debug(`thebe:getExistingServer Not using expired binder session for ${r.baseUrl} from ${n}`),window.localStorage.removeItem(e),null;try{yield nx.KernelAPI.listRunning(nx.ServerConnection.makeSettings(r))}catch(a){return console.debug("thebe:getExistingServer Saved binder connection appears to be invalid, requesting new session",a),window.localStorage.removeItem(e),null}return pZ(e),console.debug(`thebe:getExistingServer Saved binder session is valid and will be reused ${r.baseUrl}`),r})}function ZB(i="thebe-binder"){let e=[];for(let t=0;twindow.localStorage.removeItem(t))}function QB(i){console.debug(`thebe:clearSavedSession - removing ${i}`),window.localStorage.removeItem(i)}var nx,XE=j(()=>{Oi();nx=L(J1())});function sx(i){var e;return i.traceback?Array.isArray(i.traceback)?`${i.evalue} +${((e=i.traceback)!==null&&e!==void 0?e:[]).join("")}`:`${i.evalue} +${JSON.stringify(i.traceback)}`:i.evalue}var Xi,Gs,KE,Gn,Tc,ko,qr,nm,tu,ul=j(()=>{(function(i){i.launching="launching",i.ready="server-ready",i.closed="closed",i.unknown="unknown"})(Xi||(Xi={}));(function(i){i.starting="starting",i.ready="ready",i.shutdown="shutdown"})(Gs||(Gs={}));(function(i){i.starting="starting",i.ready="ready",i.shutdown="shutdown"})(KE||(KE={}));(function(i){i.attached="attached",i.detached="detached",i.executing="executing",i.idle="idle"})(Gn||(Gn={}));(function(i){i.attached="attached",i.detached="detached",i.executing="executing",i.idle="idle"})(Tc||(Tc={}));(function(i){i.server="server",i.session="session",i.kernel="kernel",i.notebook="notebook",i.cell="cell"})(ko||(ko={}));(function(i){i.warning="warning",i.executeError="execute-error",i.error="error",i.server="server-error",i.session="session-error"})(qr||(qr={}));(function(i){i.status="status",i.error="error"})(nm||(nm={}));tu=class{constructor(){this.listeners={}}_ensureMap(e){e in this.listeners||(this.listeners[e]=new Map)}trigger(e,t){e in this.listeners&&this.listeners[e].forEach(({unbind:r},n)=>{n(e,t),r&&this.listeners[e].delete(n)})}on(e,t){return this._ensureMap(e),this.listeners[e].set(t,{unbind:!1}),()=>this.off(e,t)}one(e,t){return this._ensureMap(e),this.listeners[e].set(t,{unbind:!0}),()=>this.off(e,t)}off(e,t){e in this.listeners&&this.listeners[e].delete(t)}}});var sm,hl,e5=j(()=>{sm=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new hl.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new hl.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof hl.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new hl.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof hl.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new hl.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof hl.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})(sm||(sm={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(hl||(hl={}))});var yn,Ac,Te,ox=j(()=>{Pn();e5();yn=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},Ac=class extends yn{get isConflatable(){return!0}conflate(e){return!0}};(function(i){let e=null,t=(M=>N=>{let P=!1;return M.then(()=>!P&&N()),()=>{P=!0}})(Promise.resolve());function r(M,N){let P=f.get(M);if(!P||P.length===0){x(M,N);return}sc(ac(P),ee=>ee?_(ee,M,N):!0)&&x(M,N)}i.sendMessage=r;function n(M,N){if(!N.isConflatable){y(M,N);return}oc(d,W=>W.handler!==M||!W.msg||W.msg.type!==N.type||!W.msg.isConflatable?!1:W.msg.conflate(N))||y(M,N)}i.postMessage=n;function s(M,N){let P=f.get(M);P&&P.indexOf(N)!==-1||(P?P.push(N):f.set(M,[N]))}i.installMessageHook=s;function o(M,N){let P=f.get(M);if(!P)return;let W=P.indexOf(N);W!==-1&&(P[W]=null,I(P))}i.removeMessageHook=o;function a(M){let N=f.get(M);N&&N.length>0&&(z.fill(N,null),I(N));for(let P of d)P.handler===M&&(P.handler=null,P.msg=null)}i.clearData=a;function l(){p||e===null||(e(),e=null,p=!0,S(),p=!1)}i.flush=l;function c(){return m}i.getExceptionHandler=c;function u(M){let N=m;return m=M,N}i.setExceptionHandler=u;let d=new sm,f=new WeakMap,h=new Set,m=M=>{console.error(M)},p=!1;function _(M,N,P){let W=!0;try{typeof M=="function"?W=M(N,P):W=M.messageHook(N,P)}catch(ee){m(ee)}return W}function x(M,N){try{M.processMessage(N)}catch(P){m(P)}}function y(M,N){d.addLast({handler:M,msg:N}),e===null&&(e=t(S))}function S(){if(e=null,d.isEmpty)return;let M={handler:null,msg:null};for(d.addLast(M);;){let N=d.removeFirst();if(N===M)return;N.handler&&N.msg&&r(N.handler,N.msg)}}function I(M){h.size===0&&t(C),h.add(M)}function C(){h.forEach(b),h.clear()}function b(M){z.removeAllWhere(M,k)}function k(M){return M===null}})(Te||(Te={}))});var lr,rn,t5=j(()=>{lc();lr=class{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:r,distance:n}=this._scrollTarget,s=rn.SCROLL_EDGE_SIZE-n,o=Math.pow(s/rn.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*rn.SCROLL_EDGE_SIZE));switch(r){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});rn.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(n=>{this._resolve=n});let r=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(r),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let r=this.dragImage.style;r.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){rn.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=rn.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=rn.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,r=this._currentTarget,n=this._currentElement,s=rn.findElementBehindBackdrop(e,this.document);this._currentElement=s,s!==n&&s!==r&&rn.dispatchDragExit(this,r,s,e),s!==n&&s!==r&&(r=rn.dispatchDragEnter(this,s,r,e)),r!==t&&(this._currentTarget=r,rn.dispatchDragLeave(this,t,r,e));let o=rn.dispatchDragOver(this,r,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=rn.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=lr.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=lr.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=lr.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=lr.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(i){class e extends DragEvent{constructor(n,s){super(s.type,{bubbles:!0,cancelable:!0,altKey:n.altKey,button:n.button,clientX:n.clientX,clientY:n.clientY,ctrlKey:n.ctrlKey,detail:0,metaKey:n.metaKey,relatedTarget:s.related,screenX:n.screenX,screenY:n.screenY,shiftKey:n.shiftKey,view:window});let{drag:o}=s;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}i.Event=e;function t(r,n=document){return rn.overrideCursor(r,n)}i.overrideCursor=t})(lr||(lr={}));(function(i){i.SCROLL_EDGE_SIZE=20;function e(I,C){return d[I]&f[C]?I:"none"}i.validateAction=e;function t(I,C=document){if(I){if(r&&I==r.event)return r.element;i.cursorBackdrop.style.zIndex="-1000";let b=C.elementFromPoint(I.clientX,I.clientY);return i.cursorBackdrop.style.zIndex="",r={event:I,element:b},b}else{let b=i.cursorBackdrop.style.transform;if(n&&b===n.transform)return n.element;let k=i.cursorBackdrop.getBoundingClientRect();i.cursorBackdrop.style.zIndex="-1000";let M=C.elementFromPoint(k.left+k.width/2,k.top+k.height/2);return i.cursorBackdrop.style.zIndex="",n={transform:b,element:M},M}}i.findElementBehindBackdrop=t;let r=null,n=null;function s(I){let C=I.clientX,b=I.clientY,k=t(I);for(;k;k=k.parentElement){if(!k.hasAttribute("data-lm-dragscroll"))continue;let M=0,N=0;k===document.body&&(M=window.pageXOffset,N=window.pageYOffset);let P=k.getBoundingClientRect(),W=P.top+N,ee=P.left+M,be=ee+P.width,fe=W+P.height;if(C=be||b=fe)continue;let Y=C-ee+1,te=b-W+1,ie=be-C,me=fe-b,we=Math.min(Y,te,ie,me);if(we>i.SCROLL_EDGE_SIZE)continue;let He;switch(we){case me:He="bottom";break;case te:He="top";break;case ie:He="right";break;case Y:He="left";break;default:throw"unreachable"}let nt=k.scrollWidth-k.clientWidth,at=k.scrollHeight-k.clientHeight,Le;switch(He){case"top":Le=at>0&&k.scrollTop>0;break;case"left":Le=nt>0&&k.scrollLeft>0;break;case"right":Le=nt>0&&k.scrollLeft0&&k.scrollTop{b===S&&i.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",m,!0),i.cursorBackdrop.removeEventListener("scroll",p,!0),k.removeChild(i.cursorBackdrop))})}i.overrideCursor=h;function m(I){i.cursorBackdrop&&(i.cursorBackdrop.style.transform=`translate(${I.clientX}px, ${I.clientY}px)`)}function p(I){if(!i.cursorBackdrop)return;let C=t();if(!C)return;let b=C.closest("[data-lm-dragscroll]");b&&(b.scrollTop+=i.cursorBackdrop.scrollTop-x,b.scrollLeft+=i.cursorBackdrop.scrollLeft-x,_())}function _(){i.cursorBackdrop.scrollTop=x,i.cursorBackdrop.scrollLeft=x}let x=500;function y(){let I=document.createElement("div");return I.classList.add("lm-cursor-backdrop"),I}let S=0;i.cursorBackdrop=y()})(rn||(rn={}))});var gl,fa,os,Lg,he,ax,pa,ru,om,am,Ng,Dg,Mo,ml,YE,lx,cx,JE,nu,ZE,Og,QE,as,iu,dx,eI,lm,fl,ma,wn,i5,gZ,Lc,Xs,tI,Ki,su,ji,pl,vr,cm,ux,r5,n5,iI,s5,o5,nI=j(()=>{Pn();gl=L(Zr());Up();ox();qp();As();t5();Ub();Vb();lc();qb();fa=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}};(function(i){function e(s,o){let a=s.length;if(a===0)return o;let l=0,c=0,u=0,d=0,f=0;for(let p=0;p0&&(d+=_.stretch,f++)}if(o===u)return 0;if(o<=l){for(let p=0;p=c){for(let p=0;p0&&p>h;){let _=p,x=d;for(let y=0;y0&&p>h;){let _=p/m;for(let x=0;x0&&p>h;){let _=p,x=d;for(let y=0;y=S.maxSize?(p-=S.maxSize-S.size,d-=S.stretch,S.size=S.maxSize,S.done=!0,m--,f--):(p-=I,S.size+=I)}}for(;m>0&&p>h;){let _=p/m;for(let x=0;x=y.maxSize?(p-=y.maxSize-y.size,y.size=y.maxSize,y.done=!0,m--):(p-=_,y.size+=_))}}}return 0}i.calc=e;function t(s,o,a){s.length===0||a===0||(a>0?r(s,o,a):n(s,o,-a))}i.adjust=t;function r(s,o,a){let l=0;for(let f=0;f<=o;++f){let h=s[f];l+=h.maxSize-h.size}let c=0;for(let f=o+1,h=s.length;f=0&&u>0;--f){let h=s[f],m=h.maxSize-h.size;m>=u?(h.sizeHint=h.size+u,u=0):(h.sizeHint=h.size+m,u-=m)}let d=a;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.size-m.minSize;p>=d?(m.sizeHint=m.size-d,d=0):(m.sizeHint=m.size-p,d-=p)}}function n(s,o,a){let l=0;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.maxSize-m.size;p>=u?(m.sizeHint=m.size+u,u=0):(m.sizeHint=m.size+p,u-=p)}let d=a;for(let f=o;f>=0&&d>0;--f){let h=s[f],m=h.size-h.minSize;m>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-m,d-=m)}}})(os||(os={}));Lg=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new Me(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,Me.clearData(this))}},he=class{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new Me(this),this._hiddenMode=he.HiddenMode.Display,this.node=ax.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(he.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&he.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),Me.clearData(this),Te.clearData(this),ht.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(he.Flag.IsDisposed)}get isAttached(){return this.testFlag(he.Flag.IsAttached)}get isHidden(){return this.testFlag(he.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return ax.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==he.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new he.ChildMessage("child-removed",this);Te.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new he.ChildMessage("child-added",this);Te.sendMessage(this._parent,t)}this.isDisposed||Te.sendMessage(this,he.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(he.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){Te.postMessage(this,he.Msg.UpdateRequest)}fit(){Te.postMessage(this,he.Msg.FitRequest)}activate(){Te.postMessage(this,he.Msg.ActivateRequest)}close(){Te.sendMessage(this,he.Msg.CloseRequest)}show(){if(this.testFlag(he.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&Te.sendMessage(this,he.Msg.BeforeShow),this.clearFlag(he.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&Te.sendMessage(this,he.Msg.AfterShow),this.parent)){let e=new he.ChildMessage("child-shown",this);Te.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(he.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&Te.sendMessage(this,he.Msg.BeforeHide),this.setFlag(he.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&Te.sendMessage(this,he.Msg.AfterHide),this.parent)){let e=new he.ChildMessage("child-hidden",this);Te.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(he.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(he.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(he.Flag.IsVisible),this.setFlag(he.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(he.Flag.IsVisible),this.clearFlag(he.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&he.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case he.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case he.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case he.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case he.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case he.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case he.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(i){(function(s){s[s.Display=0]="Display",s[s.Scale=1]="Scale",s[s.ContentVisibility=2]="ContentVisibility"})(i.HiddenMode||(i.HiddenMode={})),function(s){s[s.IsDisposed=1]="IsDisposed",s[s.IsAttached=2]="IsAttached",s[s.IsHidden=4]="IsHidden",s[s.IsVisible=8]="IsVisible",s[s.DisallowLayout=16]="DisallowLayout"}(i.Flag||(i.Flag={})),function(s){s.BeforeShow=new yn("before-show"),s.AfterShow=new yn("after-show"),s.BeforeHide=new yn("before-hide"),s.AfterHide=new yn("after-hide"),s.BeforeAttach=new yn("before-attach"),s.AfterAttach=new yn("after-attach"),s.BeforeDetach=new yn("before-detach"),s.AfterDetach=new yn("after-detach"),s.ParentChanged=new yn("parent-changed"),s.UpdateRequest=new Ac("update-request"),s.FitRequest=new Ac("fit-request"),s.ActivateRequest=new Ac("activate-request"),s.CloseRequest=new Ac("close-request")}(i.Msg||(i.Msg={}));class e extends yn{constructor(o,a){super(o),this.child=a}}i.ChildMessage=e;class t extends yn{constructor(o,a){super("resize"),this.width=o,this.height=a}}i.ResizeMessage=t,function(s){s.UnknownSize=new s(-1,-1)}(t=i.ResizeMessage||(i.ResizeMessage={}));function r(s,o,a=null){if(s.parent)throw new Error("Cannot attach a child widget.");if(s.isAttached||s.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");Te.sendMessage(s,i.Msg.BeforeAttach),o.insertBefore(s.node,a),Te.sendMessage(s,i.Msg.AfterAttach)}i.attach=r;function n(s){if(s.parent)throw new Error("Cannot detach a child widget.");if(!s.isAttached||!s.node.isConnected)throw new Error("Widget is not attached.");Te.sendMessage(s,i.Msg.BeforeDetach),s.node.parentNode.removeChild(s.node),Te.sendMessage(s,i.Msg.AfterDetach)}i.detach=n})(he||(he={}));(function(i){i.titleProperty=new ht({name:"title",create:t=>new Lg({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}i.createNode=e})(ax||(ax={}));pa=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,Me.clearData(this),ht.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)Te.sendMessage(t,he.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)Te.sendMessage(t,he.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)Te.sendMessage(t,e)}onAfterAttach(e){for(let t of this)Te.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)Te.sendMessage(t,e)}onAfterDetach(e){for(let t of this)Te.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||Te.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||Te.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||Te.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||Te.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(i){function e(s){return om.horizontalAlignmentProperty.get(s)}i.getHorizontalAlignment=e;function t(s,o){om.horizontalAlignmentProperty.set(s,o)}i.setHorizontalAlignment=t;function r(s){return om.verticalAlignmentProperty.get(s)}i.getVerticalAlignment=r;function n(s,o){om.verticalAlignmentProperty.set(s,o)}i.setVerticalAlignment=n})(pa||(pa={}));ru=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=Ce.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,r,n){let s=Math.max(this._minWidth,Math.min(r,this._maxWidth)),o=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(s"center",changed:e}),i.verticalAlignmentProperty=new ht({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(om||(om={}));am=class extends pa{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let r=this._widgets.indexOf(t),n=Math.max(0,Math.min(e,this._widgets.length));if(r===-1){z.insert(this._widgets,n,t),this.parent&&this.attachWidget(n,t);return}n===this._widgets.length&&n--,r!==n&&(z.move(this._widgets,r,n),this.parent&&this.moveWidget(r,n,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=z.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let r=this.parent.node.children[e];this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,r),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterAttach)}moveWidget(e,t,r){this.parent.isAttached&&Te.sendMessage(r,he.Msg.BeforeDetach),this.parent.node.removeChild(r.node),this.parent.isAttached&&Te.sendMessage(r,he.Msg.AfterDetach);let n=this.parent.node.children[t];this.parent.isAttached&&Te.sendMessage(r,he.Msg.BeforeAttach),this.parent.node.insertBefore(r.node,n),this.parent.isAttached&&Te.sendMessage(r,he.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterDetach)}};(function(i){function e(t){return Math.max(0,Math.floor(t))}i.clampDimension=e})(Ng||(Ng={}));Dg=Ng,Mo=class extends am{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=Ng.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=Ng.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return ml.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let r=this._sizers.length,n=e.slice(0,r);for(;n.length0&&(s.sizeHint=s.size);os.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let r=new ru(t),n=ml.createHandle(this.renderer),s=ml.averageSize(this._sizers),o=ml.createSizer(s);z.insert(this._items,e,r),z.insert(this._sizers,e,o),z.insert(this._handles,e,n),this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(n),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),z.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let r=z.removeAt(this._items,e),n=z.removeAt(this._handles,e);z.removeAt(this._sizers,e),this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(n),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,r,n,s,o,a){let l=this._items[e];if(l.isHidden)return;let c=this._handles[e].style;t?(r+=this.widgetOffset,l.update(r,n,a,s),r+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${this._spacing}px`,c.height=`${s}px`):(n+=this.widgetOffset,l.update(r,n,o,a),n+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${o}px`,c.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,c=this._items.length;l0&&(d.sizeHint=d.size),u.isHidden){d.minSize=0,d.maxSize=0;continue}u.fit(),d.stretch=Mo.getStretch(u.widget),r?(d.minSize=u.minWidth,d.maxSize=u.maxWidth,n+=u.minWidth,s=Math.max(s,u.minHeight)):(d.minSize=u.minHeight,d.maxSize=u.maxHeight,s+=u.minHeight,n=Math.max(n,u.minWidth))}let o=this._box=Ce.boxSizing(this.parent.node);n+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${n}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&Te.sendMessage(this.parent.parent,he.Msg.FitRequest),this._dirty&&Te.sendMessage(this.parent,he.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let r=0;for(let d=0,f=this._items.length;d0){let d;if(u?d=Math.max(0,o-this._fixed):d=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let h of this._sizers)h.sizeHint*=d;this._hasNormedSizes=!1}let f=os.calc(this._sizers,d);if(f>0)switch(this._alignment){case"start":break;case"center":l=0,c=f/2;break;case"end":l=0,c=f;break;case"justify":l=f/r,c=0;break;default:throw"unreachable"}}for(let d=0,f=this._items.length;d0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:s});function e(o){let a=new fa;return a.sizeHint=Math.floor(o),a}i.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}i.createHandle=t;function r(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}i.averageSize=r;function n(o){let a=o.length;if(a===0)return[];let l=o.reduce((c,u)=>c+Math.abs(u),0);return l===0?o.map(c=>1/a):o.map(c=>c/l)}i.normalize=n;function s(o){o.parent&&o.parent.layout instanceof Mo&&o.parent.fit()}})(ml||(ml={}));YE=class extends Mo{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=Dg.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let r=this._titles[e],n=r.classList.contains("lm-mod-expanded"),s=lx.createTitle(this.renderer,t.title,n);this._titles[e]=s,this.parent.node.replaceChild(s,r)}insertWidget(e,t){t.id||(t.id=`id-${gl.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let r=lx.createTitle(this.renderer,t.title);z.insert(this._titles,e,r),this.parent.node.appendChild(r),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",r.id),super.attachWidget(e,t)}moveWidget(e,t,r){z.move(this._titles,e,t),super.moveWidget(e,t,r)}detachWidget(e,t){let r=z.removeAt(this._titles,e);this.parent.node.removeChild(r),super.detachWidget(e,t)}updateItemPosition(e,t,r,n,s,o,a){let l=this._titles[e].style;l.top=`${n}px`,l.left=`${r}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${s}px`:l.width=`${o}px`,super.updateItemPosition(e,t,r,n,s,o,a)}};(function(i){function e(t,r,n=!0){let s=t.createSectionTitle(r);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${r.label} Section`),s.setAttribute("aria-expanded",n?"true":"false"),s.setAttribute("aria-controls",r.owner.id),n&&s.classList.add("lm-mod-expanded"),s}i.createTitle=e})(lx||(lx={}));cx=class extends he{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=JE.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}};(function(i){function e(t){return t.layout||new am}i.createLayout=e})(JE||(JE={}));nu=class extends cx{constructor(e={}){super({layout:ZE.createLayout(e)}),this._handleMoved=new Me(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=z.findFirstIndex(t.handles,c=>c.contains(e.target));if(r===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let n,s=t.handles[r],o=s.getBoundingClientRect();t.orientation==="horizontal"?n=e.clientX-o.left:n=e.clientY-o.top;let a=window.getComputedStyle(s),l=lr.overrideCursor(a.cursor);this._pressData={index:r,delta:n,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,r=this.layout,n=this.node.getBoundingClientRect();r.orientation==="horizontal"?t=e.clientX-n.left-this._pressData.delta:t=e.clientY-n.top-this._pressData.delta,r.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(i){class e{createHandle(){let s=document.createElement("div");return s.className="lm-SplitPanel-handle",s}}i.Renderer=e,i.defaultRenderer=new e;function t(n){return Mo.getStretch(n)}i.getStretch=t;function r(n,s){Mo.setStretch(n,s)}i.setStretch=r})(nu||(nu={}));(function(i){function e(t){return t.layout||new Mo({renderer:t.renderer||nu.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}i.createLayout=e})(ZE||(ZE={}));Og=class extends nu{constructor(e={}){super({...e,layout:QE.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new Me(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=z.findFirstIndex(this.widgets,r=>r.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,r=t.widgets[e];if(!r)return;let n=r.isHidden,s=t.absoluteSizes(),o=(n?-1:1)*this.spacing,a=s.reduce((c,u)=>c+u),l=[...s];if(n){let c=this._widgetSizesCache.get(r);if(!c)return;l[e]+=c;let u=l.map(d=>d-c>0).lastIndexOf(!0);u===-1?l.forEach((d,f)=>{f!==e&&(l[f]-=s[f]/a*(c-o))}):l[u]-=c-o}else{let c=s[e];this._widgetSizesCache.set(r,c),l[e]=0;let u=l.map(d=>d>0).lastIndexOf(!0);if(u===-1)return;l[u]=s[u]+c+o}return l.map(c=>c/(a+o))}_evtClick(e){let t=e.target;if(t){let r=z.findFirstIndex(this.titles,n=>n.contains(t));r>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(r))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,r=!1;if(t){let n=z.findFirstIndex(this.titles,s=>s.contains(t));if(n>=0){let s=e.keyCode.toString();if(e.key.match(/Space|Enter/)||s.match(/13|32/))t.click(),r=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||s.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||s.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||s.match(/37|38/)?-1:1,a=this.titles.length,l=(n+a+o)%a;this.titles[l].focus(),r=!0}else e.key==="End"||s==="35"?(this.titles[this.titles.length-1].focus(),r=!0):(e.key==="Home"||s==="36")&&(this.titles[0].focus(),r=!0)}r&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],r=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),r.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),r.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),r.hide()),this._expansionToggled.emit(e)}};(function(i){class e extends nu.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(r){return document.createElement("span")}createSectionTitle(r){let n=document.createElement("h3");n.setAttribute("tabindex","0"),n.id=this.createTitleKey(r),n.className=this.titleClassName;for(let a in r.dataset)n.dataset[a]=r.dataset[a];let s=n.appendChild(this.createCollapseIcon(r));s.className="lm-AccordionPanel-titleCollapser";let o=n.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=r.label,o.title=r.caption||r.label,n}createTitleKey(r){let n=this._titleKeys.get(r);return n===void 0&&(n=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(r,n)),n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e})(Og||(Og={}));(function(i){function e(t){return t.layout||new YE({renderer:t.renderer||Og.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}i.createLayout=e})(QE||(QE={}));as=class extends am{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=Dg.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=Dg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){z.insert(this._items,e,new ru(t)),z.insert(this._sizers,e,new fa),this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);z.removeAt(this._sizers,e),this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a0)switch(this._alignment){case"start":break;case"center":c=0,u=l/2;break;case"end":c=0,u=l;break;case"justify":c=l/r,u=0;break;default:throw"unreachable"}for(let d=0,f=this._items.length;d0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r}),i.sizeBasisProperty=new ht({name:"sizeBasis",create:()=>0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r});function e(n){return n==="left-to-right"||n==="right-to-left"}i.isHorizontal=e;function t(n){return Math.max(0,Math.floor(n))}i.clampSpacing=t;function r(n){n.parent&&n.parent.layout instanceof as&&n.parent.fit()}})(iu||(iu={}));dx=class extends cx{constructor(e={}){super({layout:eI.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(i){function e(s){return as.getStretch(s)}i.getStretch=e;function t(s,o){as.setStretch(s,o)}i.setStretch=t;function r(s){return as.getSizeBasis(s)}i.getSizeBasis=r;function n(s,o){as.setSizeBasis(s,o)}i.setSizeBasis=n})(dx||(dx={}));(function(i){function e(t){return t.layout||new as(t)}i.createLayout=e})(eI||(eI={}));lm=class extends he{constructor(e){super({node:fl.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(he.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||lm.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=fl.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(r=>fl.createItem(this.commands,r));return t.forEach(r=>this._items.push(r)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){z.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){Ht.render(null,this.contentNode);return}let t=this.inputNode.value,r=this.contentNode,n=this._results;if(n||(n=this._results=fl.search(this._items,t),this._activeIndex=t?z.findFirstIndex(n,fl.canActivate):-1),!t&&n.length===0){Ht.render(null,r);return}if(t&&n.length===0){let l=this.renderer.renderEmptyMessage({query:t});Ht.render(l,r);return}let s=this.renderer,o=this._activeIndex,a=new Array(n.length);for(let l=0,c=n.length;l=n.length)r.scrollTop=0;else{let l=r.children[o];Ce.scrollIntoViewIfNeeded(r,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=z.findFirstIndex(this.contentNode.children,r=>r.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,r=eM-N),b=y.slice(0,C),k=y.slice(C);for(let M=0,N=k.length;Mp.command===h&&gl.JSONExt.deepEqual(p.args,m))||null}}})(fl||(fl={}));ma=class extends he{constructor(e){super({node:wn.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new Me(this),this._menuRequested=new Me(this),this.addClass("lm-Menu"),this.setFlag(he.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||ma.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!wn.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,r=t{this.activeIndex=a}})}Ht.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let r=this._parentMenu;r&&(this._parentMenu=null,r._childIndex=-1,r._childMenu=null,r.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let r=Ns().keyForKeydownEvent(e);if(!r)return;let n=this._activeIndex+1,s=wn.findMnemonic(this._items,r,n);s.index!==-1&&!s.multiple?(this.activeIndex=s.index,this.triggerActiveItem()):s.index!==-1?this.activeIndex=s.index:s.auto!==-1&&(this.activeIndex=s.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let r=this.activeItem;!r||r.type!=="submenu"||!r.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:r}=e;if(Ce.hitTest(this._childMenu.node,t,r)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(wn.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let r=t.submenu;if(r===this._childMenu)return;ma.saveWindowData(),this._closeChildMenu(),this._childMenu=r,this._childIndex=this._activeIndex,r._parentMenu=this,Te.sendMessage(this,he.Msg.UpdateRequest);let n=this.contentNode.children[this._activeIndex];wn.openSubmenu(r,n),e&&(r.activeIndex=-1,r.activateNextItem()),r.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},wn.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},wn.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){wn.saveWindowData()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,tabindex:"0",onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r),this.renderShortcut(r),this.renderSubmenu(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.item.icon,r.item.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-Menu-itemLabel"},n)}renderShortcut(r){let n=this.formatShortcut(r);return ye.div({className:"lm-Menu-itemShortcut"},n)}renderSubmenu(r){return ye.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(r){let n="lm-Menu-item";r.item.isEnabled||(n+=" lm-mod-disabled"),r.item.isToggled&&(n+=" lm-mod-toggled"),r.item.isVisible||(n+=" lm-mod-hidden"),r.active&&(n+=" lm-mod-active"),r.collapsed&&(n+=" lm-mod-collapsed");let s=r.item.className;return s&&(n+=` ${s}`),n}createItemDataset(r){let n,{type:s,command:o,dataset:a}=r.item;return s==="command"?n={...a,type:s,command:o}:n={...a,type:s},n}createIconClass(r){let n="lm-Menu-itemIcon",s=r.item.iconClass;return s?`${n} ${s}`:n}createItemARIA(r){let n={};switch(r.item.type){case"separator":n.role="presentation";break;case"submenu":n["aria-haspopup"]="true",r.item.isEnabled||(n["aria-disabled"]="true");break;default:r.item.isEnabled||(n["aria-disabled"]="true"),r.item.isToggled?(n.role="menuitemcheckbox",n["aria-checked"]="true"):n.role="menuitem"}return n}formatLabel(r){let{label:n,mnemonic:s}=r.item;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-Menu-itemMnemonic"},l);return[o,c,a]}formatShortcut(r){let n=r.item.keyBinding;return n?Qr.formatKeystroke(n.keys):null}}i.Renderer=e,i.defaultRenderer=new e})(ma||(ma={}));(function(i){i.TIMER_DELAY=300,i.SUBMENU_OVERLAP=3;let e=null,t=0;function r(){return t>0?(t--,e):u()}function n(){e=u(),t++}i.saveWindowData=n;function s(){let p=document.createElement("div"),_=document.createElement("ul");return _.className="lm-Menu-content",p.appendChild(_),_.setAttribute("role","menu"),p.tabIndex=0,p}i.createNode=s;function o(p){return p.type!=="separator"&&p.isEnabled&&p.isVisible}i.canActivate=o;function a(p,_){return new m(p.commands,_)}i.createItem=a;function l(p,_,x){for(let y=p;y;y=y.childMenu)if(Ce.hitTest(y.node,_,x))return!0;return!1}i.hitTestMenus=l;function c(p){let _=new Array(p.length);z.fill(_,!1);let x=0,y=p.length;for(;x=0;--S){let C=p[S];if(C.isVisible){if(C.type!=="separator")break;_[S]=!0}}let I=!1;for(;++xM+P&&(_=M+P-Y),!S&&x+te>N+W&&(x>N+W?x=N+W-te:x=x-te),fe.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,x)}px`,fe.opacity="1"}i.openRootMenu=d;function f(p,_){let x=r(),y=x.pageXOffset,S=x.pageYOffset,I=x.clientWidth,C=x.clientHeight;Te.sendMessage(p,he.Msg.UpdateRequest);let b=C,k=p.node,M=k.style;M.opacity="0",M.maxHeight=`${b}px`,he.attach(p,document.body);let{width:N,height:P}=k.getBoundingClientRect(),W=Ce.boxSizing(p.node),ee=_.getBoundingClientRect(),be=ee.right-i.SUBMENU_OVERLAP;be+N>y+I&&(be=ee.left+i.SUBMENU_OVERLAP-N);let fe=ee.top-W.borderTop-W.paddingTop;fe+P>S+C&&(fe=ee.bottom+W.borderBottom+W.paddingBottom-P),M.transform=`translate(${Math.max(0,be)}px, ${Math.max(0,fe)}px`,M.opacity="1"}i.openSubmenu=f;function h(p,_,x){let y=-1,S=-1,I=!1,C=_.toUpperCase();for(let b=0,k=p.length;b=0&&Wy.command===_&&gl.JSONExt.deepEqual(y.args,x))||null}return null}}})(wn||(wn={}));(function(i){function e(o,a){let l=r(o.selector),c=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:c,id:a}}i.createItem=e;function t(o,a,l,c){let u=a.target;if(!u)return null;let d=a.currentTarget;if(!d||!d.contains(u)&&(u=document.elementFromPoint(a.clientX,a.clientY),!u||!d.contains(u)))return null;let f=[],h=o.slice();for(;u!==null;){let m=[];for(let p=0,_=h.length;p<_;++p){let x=h[p];x&&tr.matches(u,x.selector)&&(m.push(x),h[p]=null)}if(m.length!==0&&(l&&m.sort(c?s:n),f.push(...m)),u===d)break;u=u.parentElement}return l||f.sort(c?s:n),f}i.matchItems=t;function r(o){if(o.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${o}`);if(!tr.isValid(o))throw new Error(`Invalid selector: ${o}`);return o}function n(o,a){let l=o.rank,c=a.rank;return l!==c?l=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,r=this._titles[t]||null,n=e,s=this._titles[n]||null;this._currentIndex=n,this._previousTitle=r,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:r,currentIndex:n,currentTitle:s})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let r=Xs.asTitle(t),n=this._titles.indexOf(r),s=Math.max(0,Math.min(e,this._titles.length));return n===-1?(z.insert(this._titles,s,r),r.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,r),r):(s===this._titles.length&&s--,n===s||(z.move(this._titles,n,s),this.update(),this._adjustCurrentForMove(n,s)),r)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=z.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let r of this._titles)r.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let r=this._titles,n=this.renderer,s=this.currentTitle,o=new Array(r.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,c=r.length;lCe.hitTest(o,e.clientX,e.clientY));if(r===-1)return;let n=this.titles[r],s=t[r].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let o=n.label||"",a=s.innerHTML;s.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,s.appendChild(l);let c=()=>{l.removeEventListener("blur",c),s.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",u=>u.stopPropagation()),l.addEventListener("blur",c),l.addEventListener("keydown",u=>{u.key==="Enter"?(l.value!==""&&(n.label=n.caption=l.value),c()):u.key==="Escape"&&c()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,r,n;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let s=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(s))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=z.findFirstIndex(this.contentNode.children,a=>a.contains(s));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(gZ.includes(e.key)){let s=[...this.contentNode.children];if(this.addButtonEnabled&&s.push(this.addButtonNode),s.length<=1)return;e.preventDefault(),e.stopPropagation();let o=s.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=s[o+1])!==null&&t!==void 0?t:s[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(r=s[o-1])!==null&&r!==void 0?r:s[s.length-1]:e.key==="Home"?a=s[0]:e.key==="End"&&(a=s[s.length-1]),a&&((n=s[o])===null||n===void 0||n.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),r=this.contentNode.children,n=z.findFirstIndex(r,o=>Ce.hitTest(o,e.clientX,e.clientY));if(n===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:r[n],index:n,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let s=r[n].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===n?this.currentIndex=-1:this.currentIndex=n,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let r=this.contentNode.children;if(!(!t.dragActive&&!Xs.dragExceeded(t,e))){if(!t.dragActive){let n=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabPressOffset={x:t.pressX-n.left,y:t.pressY-n.top},t.tabLayout=Xs.snapTabLayout(r,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=lr.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&Xs.detachExceeded(t,e)){t.detachRequested=!0;let n=t.index,s=e.clientX,o=e.clientY,a=r[n],l=this._titles[n];if(this._tabDetachRequested.emit({index:n,title:l,tab:a,clientX:s,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}Xs.layoutTabs(r,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let s=this.contentNode.children,o=z.findFirstIndex(s,c=>Ce.hitTest(c,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;Xs.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let r=Xs.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,Xs.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let n=t.index,s=t.targetIndex;s===-1||n===s||(z.move(this._titles,n,s),this._adjustCurrentForMove(n,s),this._tabMoved.emit({fromIndex:n,toIndex:s,title:this._titles[s]}),Te.sendMessage(this,he.Msg.UpdateRequest))},r)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(Xs.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let r=this.currentTitle,n=this._currentIndex,s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&n===-1){this._currentIndex=e,this._previousTitle=r,this._currentChanged.emit({previousIndex:n,previousTitle:r,currentIndex:e,currentTitle:t});return}n>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let r=this._currentIndex,n=this.removeBehavior;if(r!==e){r>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(n==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(i){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(r){let n=r.title.caption,s=this.createTabKey(r),o=s,a=this.createTabStyle(r),l=this.createTabClass(r),c=this.createTabDataset(r),u=this.createTabARIA(r);return r.title.closable?ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r),this.renderCloseIcon(r)):ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let{title:n}=r,s=this.createIconClass(r);return ye.div({className:s},n.icon,n.iconLabel)}renderLabel(r){return ye.div({className:"lm-TabBar-tabLabel"},r.title.label)}renderCloseIcon(r){return ye.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(r){let n=this._tabKeys.get(r.title);return n===void 0&&(n=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(r.title,n)),n}createTabStyle(r){return{zIndex:`${r.zIndex}`}}createTabClass(r){let n="lm-TabBar-tab";return r.title.className&&(n+=` ${r.title.className}`),r.title.closable&&(n+=" lm-mod-closable"),r.current&&(n+=" lm-mod-current"),n}createTabDataset(r){return r.title.dataset}createTabARIA(r){var n;return{role:"tab","aria-selected":r.current.toString(),tabindex:`${(n=r.tabIndex)!==null&&n!==void 0?n:"-1"}`}}createIconClass(r){let n="lm-TabBar-tabIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e,i.addButtonSelector=".lm-TabBar-addButton"})(Lc||(Lc={}));(function(i){i.DRAG_THRESHOLD=5,i.DETACH_THRESHOLD=20;function e(){let u=document.createElement("div"),d=document.createElement("ul");d.setAttribute("role","tablist"),d.className="lm-TabBar-content",u.appendChild(d);let f=document.createElement("div");return f.className="lm-TabBar-addButton lm-mod-hidden",f.setAttribute("tabindex","-1"),f.setAttribute("role","button"),u.appendChild(f),u}i.createNode=e;function t(u){return u instanceof Lg?u:new Lg(u)}i.asTitle=t;function r(u){let d=window.getComputedStyle(u);return 1e3*(parseFloat(d.transitionDuration)||0)}i.parseTransitionDuration=r;function n(u,d){let f=new Array(u.length);for(let h=0,m=u.length;h=i.DRAG_THRESHOLD||h>=i.DRAG_THRESHOLD}i.dragExceeded=s;function o(u,d){let f=u.contentRect;return d.clientX=f.right+i.DETACH_THRESHOLD||d.clientY=f.bottom+i.DETACH_THRESHOLD}i.detachExceeded=o;function a(u,d,f,h){let m,p,_,x;h==="horizontal"?(m=d.pressX,p=f.clientX-d.contentRect.left,_=f.clientX,x=d.contentRect.width):(m=d.pressY,p=f.clientY-d.contentRect.top,_=f.clientY,x=d.contentRect.height);let y=d.index,S=p-d.tabPressPos,I=S+d.tabSize;for(let C=0,b=u.length;C>1);if(Cd.index&&I>N)k=`${-d.tabSize-M.margin}px`,y=Math.max(y,C);else if(C===d.index){let P=_-m,W=x-(d.tabPos+d.tabSize);k=`${Math.max(-d.tabPos,Math.min(P,W))}px`}else k="";h==="horizontal"?u[C].style.left=k:u[C].style.top=k}d.targetIndex=y}i.layoutTabs=a;function l(u,d){let f;d==="horizontal"?f=u.contentRect.width:f=u.contentRect.height;let h;if(u.targetIndex===u.index)h=0;else if(u.targetIndex>u.index){let _=u.tabLayout[u.targetIndex];h=_.pos+_.size-u.tabSize-u.tabPos}else h=u.tabLayout[u.targetIndex].pos-u.tabPos;let m=f-(u.tabPos+u.tabSize),p=Math.max(-u.tabPos,Math.min(h,m));d==="horizontal"?u.tab.style.left=`${p}px`:u.tab.style.top=`${p}px`}i.finalizeTabPosition=l;function c(u,d){for(let f of u)d==="horizontal"?f.style.left="":f.style.top=""}i.resetTabPositions=c})(Xs||(Xs={}));tI=class extends pa{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=Dg.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:he.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let r of t.titles)r.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=Dg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():Si()}widgets(){return this._root?this._root.iterUserWidgets():Si()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():Si()}tabBars(){return this._root?this._root.iterTabBars():Si()}handles(){return this._root?this._root.iterHandles():Si()}moveHandle(e,t,r){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let s=this._root.findSplitNode(e);if(!s)return;let o;s.node.orientation==="horizontal"?o=t-e.offsetLeft:o=r-e.offsetTop,o!==0&&(s.node.holdSizes(),os.adjust(s.node.sizers,s.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,r;e.main?r=Ki.normalizeAreaConfig(e.main,t):r=null;let n=this.widgets(),s=this.tabBars(),o=this.handles();this._root=null;for(let a of n)t.has(a)||(a.parent=null);for(let a of s)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;r?this._root=Ki.realizeAreaConfig(r,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let r=t.ref||null,n=t.mode||"tab-after",s=null;if(this._root&&r&&(s=this._root.findTabNode(r)),r&&!s)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,r,s,!0);break;case"tab-before":this._insertTab(e,r,s,!1);break;case"split-top":this._insertSplit(e,r,s,"vertical",!1);break;case"split-left":this._insertSplit(e,r,s,"horizontal",!1);break;case"split-right":this._insertSplit(e,r,s,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,r,s,"vertical",!0);break;case"merge-top":this._insertSplit(e,r,s,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,r,s,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,r,s,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,r,s,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=Ce.boxSizing(this.parent.node));let r=this.parent.node.getBoundingClientRect(),n=e-r.left-this._box.borderLeft,s=t-r.top-this._box.borderTop,o=this._root.hitTestTabNodes(n,s);if(!o)return null;let{tabBar:a,top:l,left:c,width:u,height:d}=o,f=this._box.borderLeft+this._box.borderRight,h=this._box.borderTop+this._box.borderBottom,m=r.width-f-(c+u),p=r.height-h-(l+d);return{tabBar:a,x:n,y:s,top:l,left:c,right:m,bottom:p,width:u,height:d}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new ru(e)),this.parent.isAttached&&Te.sendMessage(e,he.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&Te.sendMessage(e,he.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&Te.sendMessage(e,he.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&Te.sendMessage(e,he.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(Ki.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===he.HiddenMode.Scale&&t.tabBar.titles.length==1){let f=t.tabBar.titles[0].owner;f.hiddenMode=he.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let r=t.parent;t.parent=null;let n=z.removeFirstOf(r.children,t),s=z.removeAt(r.handles,n);if(z.removeAt(r.sizers,n),s.parentNode&&s.parentNode.removeChild(s),r.children.length>1){r.syncHandles();return}let o=r.parent;r.parent=null;let a=r.children[0],l=r.handles[0];if(r.children.length=0,r.handles.length=0,r.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===r){a.parent=null,this._root=a;return}let c=o,u=c.children.indexOf(r);if(a instanceof Ki.TabLayoutNode){a.parent=c,c.children[u]=a;return}let d=z.removeAt(c.handles,u);z.removeAt(c.children,u),z.removeAt(c.sizers,u),d.parentNode&&d.parentNode.removeChild(d);for(let f=0,h=a.children.length;f=this._left+this._width||m=this._top+this._height?null:this}createConfig(){let h=this.tabBar.titles.map(p=>p.owner),m=this.tabBar.currentIndex;return{type:"tab-area",widgets:h,currentIndex:m}}holdAllSizes(){}fit(h,m){let p=0,_=0,x=1/0,y=1/0,S=m.get(this.tabBar),I=this.tabBar.currentTitle,C=I?m.get(I.owner):void 0,[b,k]=this.sizers;return S&&S.fit(),C&&C.fit(),S&&!S.isHidden?(p=Math.max(p,S.minWidth),_+=S.minHeight,b.minSize=S.minHeight,b.maxSize=S.maxHeight):(b.minSize=0,b.maxSize=0),C&&!C.isHidden?(p=Math.max(p,C.minWidth),_+=C.minHeight,k.minSize=C.minHeight,k.maxSize=1/0):(k.minSize=0,k.maxSize=1/0),{minWidth:p,minHeight:_,maxWidth:x,maxHeight:y}}update(h,m,p,_,x,y){this._top=m,this._left=h,this._width=p,this._height=_;let S=y.get(this.tabBar),I=this.tabBar.currentTitle,C=I?y.get(I.owner):void 0;if(os.calc(this.sizers,_),S&&!S.isHidden){let b=this.sizers[0].size;S.update(h,m,p,b),m+=b}if(C&&!C.isHidden){let b=this.sizers[1].size;C.update(h,m,p,b)}}}i.TabLayoutNode=n;class s{constructor(h){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=h}*iterAllWidgets(){for(let h of this.children)yield*h.iterAllWidgets()}*iterUserWidgets(){for(let h of this.children)yield*h.iterUserWidgets()}*iterSelectedWidgets(){for(let h of this.children)yield*h.iterSelectedWidgets()}*iterTabBars(){for(let h of this.children)yield*h.iterTabBars()}*iterHandles(){yield*this.handles;for(let h of this.children)yield*h.iterHandles()}findTabNode(h){for(let m=0,p=this.children.length;m_.createConfig());return{type:"split-area",orientation:h,children:p,sizes:m}}syncHandles(){this.handles.forEach((h,m)=>{h.setAttribute("data-orientation",this.orientation),m===this.handles.length-1?h.classList.add("lm-mod-hidden"):h.classList.remove("lm-mod-hidden")})}holdSizes(){for(let h of this.sizers)h.sizeHint=h.size}holdAllSizes(){for(let h of this.children)h.holdAllSizes();this.holdSizes()}normalizeSizes(){let h=this.sizers.length;if(h===0)return;this.holdSizes();let m=this.sizers.reduce((p,_)=>p+_.sizeHint,0);if(m===0)for(let p of this.sizers)p.size=p.sizeHint=1/h;else for(let p of this.sizers)p.size=p.sizeHint/=m;this.normalized=!0}createNormalizedSizes(){let h=this.sizers.length;if(h===0)return[];let m=this.sizers.map(_=>_.size),p=m.reduce((_,x)=>_+x,0);if(p===0)for(let _=m.length-1;_>-1;_--)m[_]=1/h;else for(let _=m.length-1;_>-1;_--)m[_]/=p;return m}fit(h,m){let p=this.orientation==="horizontal",_=Math.max(0,this.children.length-1)*h,x=p?_:0,y=p?0:_,S=1/0,I=1/0;for(let C=0,b=this.children.length;C=m.length)&&(p=0),{type:"tab-area",widgets:m,currentIndex:p}}function c(f,h){let m=f.orientation,p=[],_=[];for(let x=0,y=f.children.length;x{let y=r(_,h,m),S=e(f.sizes[x]),I=h.createHandle();p.children.push(y),p.handles.push(I),p.sizers.push(S),y.parent=p}),p.syncHandles(),p.normalizeSizes(),p}})(Ki||(Ki={}));su=class extends he{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new Me(this),this._addRequested=new Me(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||su.defaultRenderer,this._edges=e.edges||ji.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new tI({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new su.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let r of t.tabBars())r.show();break;case"single-document":t.restoreLayout(ji.createSingleDocumentConfig(this));break;default:throw"unreachable"}Te.postMessage(this,ji.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=Ts(this.tabBars(),r=>r.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(Mi.IS_EDGE||Mi.IS_IE)&&Te.flush(),Te.postMessage(this,ji.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),Te.postMessage(this,ji.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){ji.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){ji.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),Te.postMessage(this,ji.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:r}=e,{zone:n,target:s}=ji.findDropTarget(this,t,r,this._edges);if(this._tabsConstrained&&e.source!==this||n==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof he)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let c=s?ji.getDropRef(s.tabBar):null;switch(n){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:c});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:c});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:c});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:c});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:c});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:c});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),Te.postMessage(this,ji.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=e.target,n=Ts(t.handles(),u=>u.contains(r));if(!n)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let s=n.getBoundingClientRect(),o=e.clientX-s.left,a=e.clientY-s.top,l=window.getComputedStyle(n),c=lr.overrideCursor(l.cursor,this._document);this._pressData={handle:n,deltaX:o,deltaY:a,override:c}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),r=e.clientX-t.left-this._pressData.deltaX,n=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,r,n)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),Te.postMessage(this,ji.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:r,target:n}=ji.findDropTarget(this,e,t,this._edges);if(r==="invalid")return this.overlay.hide(100),r;let s,o,a,l,c=Ce.boxSizing(this.node),u=this.node.getBoundingClientRect();switch(r){case"root-all":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"root-top":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=u.height*ji.GOLDEN_RATIO;break;case"root-left":s=c.paddingTop,o=c.paddingLeft,a=u.width*ji.GOLDEN_RATIO,l=c.paddingBottom;break;case"root-right":s=c.paddingTop,o=u.width*ji.GOLDEN_RATIO,a=c.paddingRight,l=c.paddingBottom;break;case"root-bottom":s=u.height*ji.GOLDEN_RATIO,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"widget-all":s=n.top,o=n.left,a=n.right,l=n.bottom;break;case"widget-top":s=n.top,o=n.left,a=n.right,l=n.bottom+n.height/2;break;case"widget-left":s=n.top,o=n.left,a=n.right+n.width/2,l=n.bottom;break;case"widget-right":s=n.top,o=n.left+n.width/2,a=n.right,l=n.bottom;break;case"widget-bottom":s=n.top+n.height/2,o=n.left,a=n.right,l=n.bottom;break;case"widget-tab":{let d=n.tabBar.node.getBoundingClientRect().height;s=n.top,o=n.left,a=n.right,l=n.bottom+n.height-d;break}default:throw"unreachable"}return this.overlay.show({top:s,left:o,right:a,bottom:l}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return ji.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){Te.postMessage(this,ji.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:r,currentTitle:n}=t;r&&r.owner.hide(),n&&n.owner.show(),(Mi.IS_EDGE||Mi.IS_IE)&&Te.flush(),Te.postMessage(this,ji.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:r,tab:n,clientX:s,clientY:o,offset:a}=t,l=new gl.MimeData,c=()=>r.owner;l.setData("application/vnd.lumino.widget-factory",c);let u=n.cloneNode(!0);a&&(u.style.top=`-${a.y}px`,u.style.left=`-${a.x}px`),this._drag=new lr({document:this._document,mimeData:l,dragImage:u,proposedAction:"move",supportedActions:"move",source:this}),n.classList.add("lm-mod-hidden");let d=()=>{this._drag=null,n.classList.remove("lm-mod-hidden")};this._drag.start(s,o).then(d)}};(function(i){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(n){let s=this.node.style;s.top=`${n.top}px`,s.left=`${n.left}px`,s.right=`${n.right}px`,s.bottom=`${n.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(n){if(!this._hidden){if(n<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},n))}}}i.Overlay=e;class t{createTabBar(n){let s=new Lc({document:n});return s.addClass("lm-DockPanel-tabBar"),s}createHandle(){let n=document.createElement("div");return n.className="lm-DockPanel-handle",n}}i.Renderer=t,i.defaultRenderer=new t})(su||(su={}));(function(i){i.GOLDEN_RATIO=.618,i.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},i.LayoutModified=new Ac("layout-modified"),i.isGeneratedTabBarProperty=new ht({name:"isGeneratedTabBar",create:()=>!1});function e(n){if(n.isEmpty)return{main:null};let s=Array.from(n.widgets()),o=n.selectedWidgets().next().value,a=o?s.indexOf(o):-1;return{main:{type:"tab-area",widgets:s,currentIndex:a}}}i.createSingleDocumentConfig=e;function t(n,s,o,a){if(!Ce.hitTest(n.node,s,o))return{zone:"invalid",target:null};let l=n.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(n.mode==="multiple-document"){let S=n.node.getBoundingClientRect(),I=s-S.left+1,C=o-S.top+1,b=S.right-s,k=S.bottom-o;switch(Math.min(C,b,k,I)){case C:if(Cp&&f>p&&d>_&&h>_)return{zone:"widget-all",target:c};u/=p,d/=_,f/=p,h/=_;let x=Math.min(u,d,f,h),y;switch(x){case u:y="widget-left";break;case d:y="widget-top";break;case f:y="widget-right";break;case h:y="widget-bottom";break;default:throw"unreachable"}return{zone:y,target:c}}i.findDropTarget=t;function r(n){return n.titles.length===0?null:n.currentTitle?n.currentTitle.owner:n.titles[n.titles.length-1].owner}i.getDropRef=r})(ji||(ji={}));pl=class extends pa{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new fa],this._columnSizers=[new fa],this._box=null,e.rowCount!==void 0&&vr.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&vr.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=vr.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=vr.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(vr.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(vr.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=vr.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=vr.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let r=this._rowSizers[e];r&&(t=vr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let r=this._columnSizers[e];r&&(t=vr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){z.findFirstIndex(this._items,r=>r.widget===e)===-1&&(this._items.push(new ru(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=z.findFirstIndex(this._items,n=>n.widget===e);if(t===-1)return;let r=z.removeAt(this._items,t);this.parent&&this.detachWidget(e),r.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&Te.sendMessage(e,he.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&Te.sendMessage(e,he.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&Te.sendMessage(e,he.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&Te.sendMessage(e,he.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,c=this.rowCount;l!l.isHidden);for(let l=0,c=e.length;l({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let c=Math.max(0,Math.floor(l.row||0)),u=Math.max(0,Math.floor(l.column||0)),d=Math.max(1,Math.floor(l.rowSpan||0)),f=Math.max(1,Math.floor(l.columnSpan||0));return{row:c,column:u,rowSpan:d,columnSpan:f}}i.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}i.clampValue=t;function r(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.rowSpan-d.rowSpan}i.rowSpanCmp=r;function n(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.columnSpan-d.columnSpan}i.columnSpanCmp=n;function s(l,c){for(c=Math.max(1,Math.floor(c));l.lengthc&&(l.length=c)}i.reallocSizers=s;function o(l,c,u,d){if(u=d)return;let h=(d-f)/(u-c+1);for(let m=c;m<=u;++m)l[m].minSize+=h}i.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof pl&&l.parent.fit()}})(vr||(vr={}));cm=class extends he{constructor(e={}){super({node:ux.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(he.Flag.DisallowLayout),this.renderer=e.renderer||cm.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,r=!0){this._closeChildMenu();let n=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(n===-1){z.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),r&&this.update();return}s===this._menus.length&&s--,n!==s&&(z.move(this._menus,n,s),r&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let r=z.removeAt(this._menus,e);r&&(r.aboutToClose.disconnect(this._onMenuAboutToClose,this),r.menuRequested.disconnect(this._onMenuMenuRequested,this),r.title.changed.disconnect(this._onTitleChanged,this),r.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":case"mouseleave":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let r=this._menus,n=this.renderer,s=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:r.length,l=0,c=!1;a=this._overflowMenu!==null?a-1:a;let u=new Array(a);for(let d=0;d{this._tabFocusIndex=d,this.activeIndex=d}}),l+=this._menuItemSizes[d],r[d].title.label===this._overflowMenuOptions.title&&(c=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!c){if(this._overflowMenu===null){let d=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new ma({commands:new Qr}),this._overflowMenu.title.label=d,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let d=r.length-2;d>=a;d--){let f=this.menus[d];f.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:f}),this.removeMenu(f,!1)}u[a]=n.renderItem({title:this._overflowMenu.title,active:a===s&&r[a].items.length!==0,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let d=this._overflowMenu.items,f=this.node.offsetWidth,h=this._overflowMenu.items.length;for(let m=0;mthis._menuItemSizes[p]){let _=d[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,_,!1),u[a]=n.renderItem({title:_.title,active:!1,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),u.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}Ht.render(u,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,r=0,n=-1,s=e.length;if(this._menuItemSizes.length==0)for(let o=0;ot&&n===-1&&(n=o)}else for(let o=0;ot){n=o;break}this._overflowIndex=n}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let c=0;cCe.hitTest(r,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let r=this._positionForMenu(t);ma.saveWindowData(),this.activeIndex=t,this._openChildMenu(r)}}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let r=t>=0&&this._childMenu?this._positionForMenu(t):null;ma.saveWindowData(),this.activeIndex=t,r&&this._openChildMenu(r)}_positionForMenu(e){let t=this.contentNode.children[e],{left:r,bottom:n}=t.getBoundingClientRect();return{top:n,left:r}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let r=this._childMenu;if(r===t)return;this._childMenu=t,r?r.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,Te.sendMessage(this,he.Msg.UpdateRequest);let{left:n,top:s}=e;(typeof n>"u"||typeof s>"u")&&({left:n,top:s}=this._positionForMenu(this._activeIndex)),r||this.addClass("lm-mod-active"),t.items.length>0&&t.open(n,s,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let r=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=r===n-1?0:r+1;break;case"previous":this.activeIndex=r===0?n-1:r-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,...r.disabled?{}:{tabindex:r.tabbable?"0":"-1"},onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.title.icon,r.title.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-MenuBar-itemLabel"},n)}createItemClass(r){let n="lm-MenuBar-item";return r.title.className&&(n+=` ${r.title.className}`),r.active&&!r.disabled&&(n+=" lm-mod-active"),n}createItemDataset(r){return r.title.dataset}createItemARIA(r){return{role:"menuitem","aria-haspopup":"true","aria-disabled":r.disabled?"true":"false"}}createIconClass(r){let n="lm-MenuBar-itemIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}formatLabel(r){let{label:n,mnemonic:s}=r.title;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,c,a]}}i.Renderer=e,i.defaultRenderer=new e})(cm||(cm={}));(function(i){function e(){let r=document.createElement("div"),n=document.createElement("ul");return n.className="lm-MenuBar-content",r.appendChild(n),n.setAttribute("role","menubar"),r}i.createNode=e;function t(r,n,s){let o=-1,a=-1,l=!1,c=n.toUpperCase();for(let u=0,d=r.length;u=0&&m1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===he.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=he.HiddenMode.Scale),t.hiddenMode=he.HiddenMode.Scale):t.hiddenMode=he.HiddenMode.Display,z.insert(this._items,e,new ru(t)),this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);this.parent.isAttached&&Te.sendMessage(t,he.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Te.sendMessage(t,he.Msg.AfterDetach),r.widget.node.style.zIndex="",this._hiddenMode===he.HiddenMode.Scale&&(t.hiddenMode=he.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=he.HiddenMode.Display)),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let s=0,o=this._items.length;s{});var sI,hx,dm,l5=j(()=>{Z1();sI=L(Zr());As();hx=class{constructor(e){this.trusted=!1,this._changed=new Me(this),this._raw={};let t=dm.getData(e.value);this._data=new Gb({values:t}),this._rawData=t;let r=e.value;for(let n in r)switch(n){case"data":break;default:this._raw[n]=dm.extract(r,n)}}get changed(){return this._changed}dispose(){this._data.dispose(),Me.clearData(this)}get data(){return this._rawData}get metadata(){return{}}setData(e){e.data&&(this._updateObservable(this._data,e.data),this._rawData=e.data),this._changed.emit(void 0)}toJSON(){let e={};for(let t in this._raw)e[t]=dm.extract(this._raw,t);return e}_updateObservable(e,t){let r=e.keys(),n=Object.keys(t);for(let s of r)n.indexOf(s)===-1&&e.delete(s);for(let s of n){let o=e.get(s),a=t[s];o!==a&&e.set(s,a)}}};(function(i){function e(t){return dm.getData(t)}i.getData=e})(hx||(hx={}));(function(i){function e(s){return n(s)}i.getData=e;function t(s){return{data:e(s.value)}}i.getBundleOptions=t;function r(s,o){let a=s[o];return a===void 0||sI.JSONExt.isPrimitive(a)?a:sI.JSONExt.deepCopy(a)}i.extract=r;function n(s){let o=Object.create(null);for(let a in s)o[a]=r(s,a);return o}})(dm||(dm={}))});var um,_l,c5=j(()=>{um=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new _l.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new _l.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof _l.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new _l.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof _l.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new _l.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof _l.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})(um||(um={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(_l||(_l={}))});var Sn,Nc,Ne,d5=j(()=>{Pn();c5();Sn=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},Nc=class extends Sn{get isConflatable(){return!0}conflate(e){return!0}};(function(i){let e=null,t=(M=>N=>{let P=!1;return M.then(()=>!P&&N()),()=>{P=!0}})(Promise.resolve());function r(M,N){let P=f.get(M);if(!P||P.length===0){x(M,N);return}sc(ac(P),ee=>ee?_(ee,M,N):!0)&&x(M,N)}i.sendMessage=r;function n(M,N){if(!N.isConflatable){y(M,N);return}oc(d,W=>W.handler!==M||!W.msg||W.msg.type!==N.type||!W.msg.isConflatable?!1:W.msg.conflate(N))||y(M,N)}i.postMessage=n;function s(M,N){let P=f.get(M);P&&P.indexOf(N)!==-1||(P?P.push(N):f.set(M,[N]))}i.installMessageHook=s;function o(M,N){let P=f.get(M);if(!P)return;let W=P.indexOf(N);W!==-1&&(P[W]=null,I(P))}i.removeMessageHook=o;function a(M){let N=f.get(M);N&&N.length>0&&(z.fill(N,null),I(N));for(let P of d)P.handler===M&&(P.handler=null,P.msg=null)}i.clearData=a;function l(){p||e===null||(e(),e=null,p=!0,S(),p=!1)}i.flush=l;function c(){return m}i.getExceptionHandler=c;function u(M){let N=m;return m=M,N}i.setExceptionHandler=u;let d=new um,f=new WeakMap,h=new Set,m=M=>{console.error(M)},p=!1;function _(M,N,P){let W=!0;try{typeof M=="function"?W=M(N,P):W=M.messageHook(N,P)}catch(ee){m(ee)}return W}function x(M,N){try{M.processMessage(N)}catch(P){m(P)}}function y(M,N){d.addLast({handler:M,msg:N}),e===null&&(e=t(S))}function S(){if(e=null,d.isEmpty)return;let M={handler:null,msg:null};for(d.addLast(M);;){let N=d.removeFirst();if(N===M)return;N.handler&&N.msg&&r(N.handler,N.msg)}}function I(M){h.size===0&&t(C),h.add(M)}function C(){h.forEach(b),h.clear()}function b(M){z.removeAllWhere(M,k)}function k(M){return M===null}})(Ne||(Ne={}))});var cr,nn,u5=j(()=>{lc();cr=class{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:r,distance:n}=this._scrollTarget,s=nn.SCROLL_EDGE_SIZE-n,o=Math.pow(s/nn.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*nn.SCROLL_EDGE_SIZE));switch(r){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});nn.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(n=>{this._resolve=n});let r=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(r),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let r=this.dragImage.style;r.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){nn.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=nn.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=nn.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,r=this._currentTarget,n=this._currentElement,s=nn.findElementBehindBackdrop(e,this.document);this._currentElement=s,s!==n&&s!==r&&nn.dispatchDragExit(this,r,s,e),s!==n&&s!==r&&(r=nn.dispatchDragEnter(this,s,r,e)),r!==t&&(this._currentTarget=r,nn.dispatchDragLeave(this,t,r,e));let o=nn.dispatchDragOver(this,r,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=nn.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=cr.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=cr.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=cr.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=cr.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(i){class e extends DragEvent{constructor(n,s){super(s.type,{bubbles:!0,cancelable:!0,altKey:n.altKey,button:n.button,clientX:n.clientX,clientY:n.clientY,ctrlKey:n.ctrlKey,detail:0,metaKey:n.metaKey,relatedTarget:s.related,screenX:n.screenX,screenY:n.screenY,shiftKey:n.shiftKey,view:window});let{drag:o}=s;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}i.Event=e;function t(r,n=document){return nn.overrideCursor(r,n)}i.overrideCursor=t})(cr||(cr={}));(function(i){i.SCROLL_EDGE_SIZE=20;function e(I,C){return d[I]&f[C]?I:"none"}i.validateAction=e;function t(I,C=document){if(I){if(r&&I==r.event)return r.element;i.cursorBackdrop.style.zIndex="-1000";let b=C.elementFromPoint(I.clientX,I.clientY);return i.cursorBackdrop.style.zIndex="",r={event:I,element:b},b}else{let b=i.cursorBackdrop.style.transform;if(n&&b===n.transform)return n.element;let k=i.cursorBackdrop.getBoundingClientRect();i.cursorBackdrop.style.zIndex="-1000";let M=C.elementFromPoint(k.left+k.width/2,k.top+k.height/2);return i.cursorBackdrop.style.zIndex="",n={transform:b,element:M},M}}i.findElementBehindBackdrop=t;let r=null,n=null;function s(I){let C=I.clientX,b=I.clientY,k=t(I);for(;k;k=k.parentElement){if(!k.hasAttribute("data-lm-dragscroll"))continue;let M=0,N=0;k===document.body&&(M=window.pageXOffset,N=window.pageYOffset);let P=k.getBoundingClientRect(),W=P.top+N,ee=P.left+M,be=ee+P.width,fe=W+P.height;if(C=be||b=fe)continue;let Y=C-ee+1,te=b-W+1,ie=be-C,me=fe-b,we=Math.min(Y,te,ie,me);if(we>i.SCROLL_EDGE_SIZE)continue;let He;switch(we){case me:He="bottom";break;case te:He="top";break;case ie:He="right";break;case Y:He="left";break;default:throw"unreachable"}let nt=k.scrollWidth-k.clientWidth,at=k.scrollHeight-k.clientHeight,Le;switch(He){case"top":Le=at>0&&k.scrollTop>0;break;case"left":Le=nt>0&&k.scrollLeft>0;break;case"right":Le=nt>0&&k.scrollLeft0&&k.scrollTop{b===S&&i.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",m,!0),i.cursorBackdrop.removeEventListener("scroll",p,!0),k.removeChild(i.cursorBackdrop))})}i.overrideCursor=h;function m(I){i.cursorBackdrop&&(i.cursorBackdrop.style.transform=`translate(${I.clientX}px, ${I.clientY}px)`)}function p(I){if(!i.cursorBackdrop)return;let C=t();if(!C)return;let b=C.closest("[data-lm-dragscroll]");b&&(b.scrollTop+=i.cursorBackdrop.scrollTop-x,b.scrollLeft+=i.cursorBackdrop.scrollLeft-x,_())}function _(){i.cursorBackdrop.scrollTop=x,i.cursorBackdrop.scrollLeft=x}let x=500;function y(){let I=document.createElement("div");return I.classList.add("lm-cursor-backdrop"),I}let S=0;i.cursorBackdrop=y()})(nn||(nn={}))});var yl,ga,ls,zg,pe,fx,ba,au,hm,fm,Pg,Bg,Ro,vl,oI,mx,px,aI,lu,lI,jg,cI,cs,ou,gx,dI,mm,bl,_a,Cn,h5,bZ,Dc,Ks,uI,Yi,cu,Hi,xl,xr,pm,_x,f5,m5,hI,p5,g5,_5=j(()=>{Pn();yl=L(Zr());Up();d5();qp();As();u5();Ub();Vb();lc();qb();ga=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}};(function(i){function e(s,o){let a=s.length;if(a===0)return o;let l=0,c=0,u=0,d=0,f=0;for(let p=0;p0&&(d+=_.stretch,f++)}if(o===u)return 0;if(o<=l){for(let p=0;p=c){for(let p=0;p0&&p>h;){let _=p,x=d;for(let y=0;y0&&p>h;){let _=p/m;for(let x=0;x0&&p>h;){let _=p,x=d;for(let y=0;y=S.maxSize?(p-=S.maxSize-S.size,d-=S.stretch,S.size=S.maxSize,S.done=!0,m--,f--):(p-=I,S.size+=I)}}for(;m>0&&p>h;){let _=p/m;for(let x=0;x=y.maxSize?(p-=y.maxSize-y.size,y.size=y.maxSize,y.done=!0,m--):(p-=_,y.size+=_))}}}return 0}i.calc=e;function t(s,o,a){s.length===0||a===0||(a>0?r(s,o,a):n(s,o,-a))}i.adjust=t;function r(s,o,a){let l=0;for(let f=0;f<=o;++f){let h=s[f];l+=h.maxSize-h.size}let c=0;for(let f=o+1,h=s.length;f=0&&u>0;--f){let h=s[f],m=h.maxSize-h.size;m>=u?(h.sizeHint=h.size+u,u=0):(h.sizeHint=h.size+m,u-=m)}let d=a;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.size-m.minSize;p>=d?(m.sizeHint=m.size-d,d=0):(m.sizeHint=m.size-p,d-=p)}}function n(s,o,a){let l=0;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.maxSize-m.size;p>=u?(m.sizeHint=m.size+u,u=0):(m.sizeHint=m.size+p,u-=p)}let d=a;for(let f=o;f>=0&&d>0;--f){let h=s[f],m=h.size-h.minSize;m>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-m,d-=m)}}})(ls||(ls={}));zg=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new Me(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,Me.clearData(this))}},pe=class{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new Me(this),this._hiddenMode=pe.HiddenMode.Display,this.node=fx.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(pe.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&pe.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),Me.clearData(this),Ne.clearData(this),ht.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(pe.Flag.IsDisposed)}get isAttached(){return this.testFlag(pe.Flag.IsAttached)}get isHidden(){return this.testFlag(pe.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return fx.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==pe.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new pe.ChildMessage("child-removed",this);Ne.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new pe.ChildMessage("child-added",this);Ne.sendMessage(this._parent,t)}this.isDisposed||Ne.sendMessage(this,pe.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(pe.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){Ne.postMessage(this,pe.Msg.UpdateRequest)}fit(){Ne.postMessage(this,pe.Msg.FitRequest)}activate(){Ne.postMessage(this,pe.Msg.ActivateRequest)}close(){Ne.sendMessage(this,pe.Msg.CloseRequest)}show(){if(this.testFlag(pe.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&Ne.sendMessage(this,pe.Msg.BeforeShow),this.clearFlag(pe.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&Ne.sendMessage(this,pe.Msg.AfterShow),this.parent)){let e=new pe.ChildMessage("child-shown",this);Ne.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(pe.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&Ne.sendMessage(this,pe.Msg.BeforeHide),this.setFlag(pe.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&Ne.sendMessage(this,pe.Msg.AfterHide),this.parent)){let e=new pe.ChildMessage("child-hidden",this);Ne.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(pe.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(pe.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(pe.Flag.IsVisible),this.setFlag(pe.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(pe.Flag.IsVisible),this.clearFlag(pe.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&pe.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case pe.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case pe.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case pe.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case pe.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case pe.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case pe.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(i){(function(s){s[s.Display=0]="Display",s[s.Scale=1]="Scale",s[s.ContentVisibility=2]="ContentVisibility"})(i.HiddenMode||(i.HiddenMode={})),function(s){s[s.IsDisposed=1]="IsDisposed",s[s.IsAttached=2]="IsAttached",s[s.IsHidden=4]="IsHidden",s[s.IsVisible=8]="IsVisible",s[s.DisallowLayout=16]="DisallowLayout"}(i.Flag||(i.Flag={})),function(s){s.BeforeShow=new Sn("before-show"),s.AfterShow=new Sn("after-show"),s.BeforeHide=new Sn("before-hide"),s.AfterHide=new Sn("after-hide"),s.BeforeAttach=new Sn("before-attach"),s.AfterAttach=new Sn("after-attach"),s.BeforeDetach=new Sn("before-detach"),s.AfterDetach=new Sn("after-detach"),s.ParentChanged=new Sn("parent-changed"),s.UpdateRequest=new Nc("update-request"),s.FitRequest=new Nc("fit-request"),s.ActivateRequest=new Nc("activate-request"),s.CloseRequest=new Nc("close-request")}(i.Msg||(i.Msg={}));class e extends Sn{constructor(o,a){super(o),this.child=a}}i.ChildMessage=e;class t extends Sn{constructor(o,a){super("resize"),this.width=o,this.height=a}}i.ResizeMessage=t,function(s){s.UnknownSize=new s(-1,-1)}(t=i.ResizeMessage||(i.ResizeMessage={}));function r(s,o,a=null){if(s.parent)throw new Error("Cannot attach a child widget.");if(s.isAttached||s.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");Ne.sendMessage(s,i.Msg.BeforeAttach),o.insertBefore(s.node,a),Ne.sendMessage(s,i.Msg.AfterAttach)}i.attach=r;function n(s){if(s.parent)throw new Error("Cannot detach a child widget.");if(!s.isAttached||!s.node.isConnected)throw new Error("Widget is not attached.");Ne.sendMessage(s,i.Msg.BeforeDetach),s.node.parentNode.removeChild(s.node),Ne.sendMessage(s,i.Msg.AfterDetach)}i.detach=n})(pe||(pe={}));(function(i){i.titleProperty=new ht({name:"title",create:t=>new zg({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}i.createNode=e})(fx||(fx={}));ba=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,Me.clearData(this),ht.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)Ne.sendMessage(t,pe.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)Ne.sendMessage(t,pe.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)Ne.sendMessage(t,e)}onAfterAttach(e){for(let t of this)Ne.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)Ne.sendMessage(t,e)}onAfterDetach(e){for(let t of this)Ne.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||Ne.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||Ne.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||Ne.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||Ne.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(i){function e(s){return hm.horizontalAlignmentProperty.get(s)}i.getHorizontalAlignment=e;function t(s,o){hm.horizontalAlignmentProperty.set(s,o)}i.setHorizontalAlignment=t;function r(s){return hm.verticalAlignmentProperty.get(s)}i.getVerticalAlignment=r;function n(s,o){hm.verticalAlignmentProperty.set(s,o)}i.setVerticalAlignment=n})(ba||(ba={}));au=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=Ce.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,r,n){let s=Math.max(this._minWidth,Math.min(r,this._maxWidth)),o=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(s"center",changed:e}),i.verticalAlignmentProperty=new ht({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(hm||(hm={}));fm=class extends ba{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let r=this._widgets.indexOf(t),n=Math.max(0,Math.min(e,this._widgets.length));if(r===-1){z.insert(this._widgets,n,t),this.parent&&this.attachWidget(n,t);return}n===this._widgets.length&&n--,r!==n&&(z.move(this._widgets,r,n),this.parent&&this.moveWidget(r,n,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=z.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let r=this.parent.node.children[e];this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,r),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterAttach)}moveWidget(e,t,r){this.parent.isAttached&&Ne.sendMessage(r,pe.Msg.BeforeDetach),this.parent.node.removeChild(r.node),this.parent.isAttached&&Ne.sendMessage(r,pe.Msg.AfterDetach);let n=this.parent.node.children[t];this.parent.isAttached&&Ne.sendMessage(r,pe.Msg.BeforeAttach),this.parent.node.insertBefore(r.node,n),this.parent.isAttached&&Ne.sendMessage(r,pe.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterDetach)}};(function(i){function e(t){return Math.max(0,Math.floor(t))}i.clampDimension=e})(Pg||(Pg={}));Bg=Pg,Ro=class extends fm{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=Pg.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=Pg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return vl.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let r=this._sizers.length,n=e.slice(0,r);for(;n.length0&&(s.sizeHint=s.size);ls.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let r=new au(t),n=vl.createHandle(this.renderer),s=vl.averageSize(this._sizers),o=vl.createSizer(s);z.insert(this._items,e,r),z.insert(this._sizers,e,o),z.insert(this._handles,e,n),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(n),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),z.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let r=z.removeAt(this._items,e),n=z.removeAt(this._handles,e);z.removeAt(this._sizers,e),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(n),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,r,n,s,o,a){let l=this._items[e];if(l.isHidden)return;let c=this._handles[e].style;t?(r+=this.widgetOffset,l.update(r,n,a,s),r+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${this._spacing}px`,c.height=`${s}px`):(n+=this.widgetOffset,l.update(r,n,o,a),n+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${o}px`,c.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,c=this._items.length;l0&&(d.sizeHint=d.size),u.isHidden){d.minSize=0,d.maxSize=0;continue}u.fit(),d.stretch=Ro.getStretch(u.widget),r?(d.minSize=u.minWidth,d.maxSize=u.maxWidth,n+=u.minWidth,s=Math.max(s,u.minHeight)):(d.minSize=u.minHeight,d.maxSize=u.maxHeight,s+=u.minHeight,n=Math.max(n,u.minWidth))}let o=this._box=Ce.boxSizing(this.parent.node);n+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${n}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&Ne.sendMessage(this.parent.parent,pe.Msg.FitRequest),this._dirty&&Ne.sendMessage(this.parent,pe.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let r=0;for(let d=0,f=this._items.length;d0){let d;if(u?d=Math.max(0,o-this._fixed):d=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let h of this._sizers)h.sizeHint*=d;this._hasNormedSizes=!1}let f=ls.calc(this._sizers,d);if(f>0)switch(this._alignment){case"start":break;case"center":l=0,c=f/2;break;case"end":l=0,c=f;break;case"justify":l=f/r,c=0;break;default:throw"unreachable"}}for(let d=0,f=this._items.length;d0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:s});function e(o){let a=new ga;return a.sizeHint=Math.floor(o),a}i.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}i.createHandle=t;function r(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}i.averageSize=r;function n(o){let a=o.length;if(a===0)return[];let l=o.reduce((c,u)=>c+Math.abs(u),0);return l===0?o.map(c=>1/a):o.map(c=>c/l)}i.normalize=n;function s(o){o.parent&&o.parent.layout instanceof Ro&&o.parent.fit()}})(vl||(vl={}));oI=class extends Ro{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=Bg.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let r=this._titles[e],n=r.classList.contains("lm-mod-expanded"),s=mx.createTitle(this.renderer,t.title,n);this._titles[e]=s,this.parent.node.replaceChild(s,r)}insertWidget(e,t){t.id||(t.id=`id-${yl.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let r=mx.createTitle(this.renderer,t.title);z.insert(this._titles,e,r),this.parent.node.appendChild(r),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",r.id),super.attachWidget(e,t)}moveWidget(e,t,r){z.move(this._titles,e,t),super.moveWidget(e,t,r)}detachWidget(e,t){let r=z.removeAt(this._titles,e);this.parent.node.removeChild(r),super.detachWidget(e,t)}updateItemPosition(e,t,r,n,s,o,a){let l=this._titles[e].style;l.top=`${n}px`,l.left=`${r}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${s}px`:l.width=`${o}px`,super.updateItemPosition(e,t,r,n,s,o,a)}};(function(i){function e(t,r,n=!0){let s=t.createSectionTitle(r);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${r.label} Section`),s.setAttribute("aria-expanded",n?"true":"false"),s.setAttribute("aria-controls",r.owner.id),n&&s.classList.add("lm-mod-expanded"),s}i.createTitle=e})(mx||(mx={}));px=class extends pe{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=aI.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}};(function(i){function e(t){return t.layout||new fm}i.createLayout=e})(aI||(aI={}));lu=class extends px{constructor(e={}){super({layout:lI.createLayout(e)}),this._handleMoved=new Me(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=z.findFirstIndex(t.handles,c=>c.contains(e.target));if(r===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let n,s=t.handles[r],o=s.getBoundingClientRect();t.orientation==="horizontal"?n=e.clientX-o.left:n=e.clientY-o.top;let a=window.getComputedStyle(s),l=cr.overrideCursor(a.cursor);this._pressData={index:r,delta:n,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,r=this.layout,n=this.node.getBoundingClientRect();r.orientation==="horizontal"?t=e.clientX-n.left-this._pressData.delta:t=e.clientY-n.top-this._pressData.delta,r.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(i){class e{createHandle(){let s=document.createElement("div");return s.className="lm-SplitPanel-handle",s}}i.Renderer=e,i.defaultRenderer=new e;function t(n){return Ro.getStretch(n)}i.getStretch=t;function r(n,s){Ro.setStretch(n,s)}i.setStretch=r})(lu||(lu={}));(function(i){function e(t){return t.layout||new Ro({renderer:t.renderer||lu.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}i.createLayout=e})(lI||(lI={}));jg=class extends lu{constructor(e={}){super({...e,layout:cI.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new Me(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=z.findFirstIndex(this.widgets,r=>r.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,r=t.widgets[e];if(!r)return;let n=r.isHidden,s=t.absoluteSizes(),o=(n?-1:1)*this.spacing,a=s.reduce((c,u)=>c+u),l=[...s];if(n){let c=this._widgetSizesCache.get(r);if(!c)return;l[e]+=c;let u=l.map(d=>d-c>0).lastIndexOf(!0);u===-1?l.forEach((d,f)=>{f!==e&&(l[f]-=s[f]/a*(c-o))}):l[u]-=c-o}else{let c=s[e];this._widgetSizesCache.set(r,c),l[e]=0;let u=l.map(d=>d>0).lastIndexOf(!0);if(u===-1)return;l[u]=s[u]+c+o}return l.map(c=>c/(a+o))}_evtClick(e){let t=e.target;if(t){let r=z.findFirstIndex(this.titles,n=>n.contains(t));r>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(r))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,r=!1;if(t){let n=z.findFirstIndex(this.titles,s=>s.contains(t));if(n>=0){let s=e.keyCode.toString();if(e.key.match(/Space|Enter/)||s.match(/13|32/))t.click(),r=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||s.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||s.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||s.match(/37|38/)?-1:1,a=this.titles.length,l=(n+a+o)%a;this.titles[l].focus(),r=!0}else e.key==="End"||s==="35"?(this.titles[this.titles.length-1].focus(),r=!0):(e.key==="Home"||s==="36")&&(this.titles[0].focus(),r=!0)}r&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],r=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),r.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),r.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),r.hide()),this._expansionToggled.emit(e)}};(function(i){class e extends lu.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(r){return document.createElement("span")}createSectionTitle(r){let n=document.createElement("h3");n.setAttribute("tabindex","0"),n.id=this.createTitleKey(r),n.className=this.titleClassName;for(let a in r.dataset)n.dataset[a]=r.dataset[a];let s=n.appendChild(this.createCollapseIcon(r));s.className="lm-AccordionPanel-titleCollapser";let o=n.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=r.label,o.title=r.caption||r.label,n}createTitleKey(r){let n=this._titleKeys.get(r);return n===void 0&&(n=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(r,n)),n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e})(jg||(jg={}));(function(i){function e(t){return t.layout||new oI({renderer:t.renderer||jg.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}i.createLayout=e})(cI||(cI={}));cs=class extends fm{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=Bg.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=Bg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){z.insert(this._items,e,new au(t)),z.insert(this._sizers,e,new ga),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);z.removeAt(this._sizers,e),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a0)switch(this._alignment){case"start":break;case"center":c=0,u=l/2;break;case"end":c=0,u=l;break;case"justify":c=l/r,u=0;break;default:throw"unreachable"}for(let d=0,f=this._items.length;d0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r}),i.sizeBasisProperty=new ht({name:"sizeBasis",create:()=>0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r});function e(n){return n==="left-to-right"||n==="right-to-left"}i.isHorizontal=e;function t(n){return Math.max(0,Math.floor(n))}i.clampSpacing=t;function r(n){n.parent&&n.parent.layout instanceof cs&&n.parent.fit()}})(ou||(ou={}));gx=class extends px{constructor(e={}){super({layout:dI.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(i){function e(s){return cs.getStretch(s)}i.getStretch=e;function t(s,o){cs.setStretch(s,o)}i.setStretch=t;function r(s){return cs.getSizeBasis(s)}i.getSizeBasis=r;function n(s,o){cs.setSizeBasis(s,o)}i.setSizeBasis=n})(gx||(gx={}));(function(i){function e(t){return t.layout||new cs(t)}i.createLayout=e})(dI||(dI={}));mm=class extends pe{constructor(e){super({node:bl.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(pe.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||mm.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=bl.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(r=>bl.createItem(this.commands,r));return t.forEach(r=>this._items.push(r)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){z.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){Ht.render(null,this.contentNode);return}let t=this.inputNode.value,r=this.contentNode,n=this._results;if(n||(n=this._results=bl.search(this._items,t),this._activeIndex=t?z.findFirstIndex(n,bl.canActivate):-1),!t&&n.length===0){Ht.render(null,r);return}if(t&&n.length===0){let l=this.renderer.renderEmptyMessage({query:t});Ht.render(l,r);return}let s=this.renderer,o=this._activeIndex,a=new Array(n.length);for(let l=0,c=n.length;l=n.length)r.scrollTop=0;else{let l=r.children[o];Ce.scrollIntoViewIfNeeded(r,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=z.findFirstIndex(this.contentNode.children,r=>r.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,r=eM-N),b=y.slice(0,C),k=y.slice(C);for(let M=0,N=k.length;Mp.command===h&&yl.JSONExt.deepEqual(p.args,m))||null}}})(bl||(bl={}));_a=class extends pe{constructor(e){super({node:Cn.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new Me(this),this._menuRequested=new Me(this),this.addClass("lm-Menu"),this.setFlag(pe.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||_a.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!Cn.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,r=t{this.activeIndex=a}})}Ht.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let r=this._parentMenu;r&&(this._parentMenu=null,r._childIndex=-1,r._childMenu=null,r.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let r=Ns().keyForKeydownEvent(e);if(!r)return;let n=this._activeIndex+1,s=Cn.findMnemonic(this._items,r,n);s.index!==-1&&!s.multiple?(this.activeIndex=s.index,this.triggerActiveItem()):s.index!==-1?this.activeIndex=s.index:s.auto!==-1&&(this.activeIndex=s.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let r=this.activeItem;!r||r.type!=="submenu"||!r.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:r}=e;if(Ce.hitTest(this._childMenu.node,t,r)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(Cn.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let r=t.submenu;if(r===this._childMenu)return;_a.saveWindowData(),this._closeChildMenu(),this._childMenu=r,this._childIndex=this._activeIndex,r._parentMenu=this,Ne.sendMessage(this,pe.Msg.UpdateRequest);let n=this.contentNode.children[this._activeIndex];Cn.openSubmenu(r,n),e&&(r.activeIndex=-1,r.activateNextItem()),r.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},Cn.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},Cn.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){Cn.saveWindowData()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,tabindex:"0",onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r),this.renderShortcut(r),this.renderSubmenu(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.item.icon,r.item.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-Menu-itemLabel"},n)}renderShortcut(r){let n=this.formatShortcut(r);return ye.div({className:"lm-Menu-itemShortcut"},n)}renderSubmenu(r){return ye.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(r){let n="lm-Menu-item";r.item.isEnabled||(n+=" lm-mod-disabled"),r.item.isToggled&&(n+=" lm-mod-toggled"),r.item.isVisible||(n+=" lm-mod-hidden"),r.active&&(n+=" lm-mod-active"),r.collapsed&&(n+=" lm-mod-collapsed");let s=r.item.className;return s&&(n+=` ${s}`),n}createItemDataset(r){let n,{type:s,command:o,dataset:a}=r.item;return s==="command"?n={...a,type:s,command:o}:n={...a,type:s},n}createIconClass(r){let n="lm-Menu-itemIcon",s=r.item.iconClass;return s?`${n} ${s}`:n}createItemARIA(r){let n={};switch(r.item.type){case"separator":n.role="presentation";break;case"submenu":n["aria-haspopup"]="true",r.item.isEnabled||(n["aria-disabled"]="true");break;default:r.item.isEnabled||(n["aria-disabled"]="true"),r.item.isToggled?(n.role="menuitemcheckbox",n["aria-checked"]="true"):n.role="menuitem"}return n}formatLabel(r){let{label:n,mnemonic:s}=r.item;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-Menu-itemMnemonic"},l);return[o,c,a]}formatShortcut(r){let n=r.item.keyBinding;return n?Qr.formatKeystroke(n.keys):null}}i.Renderer=e,i.defaultRenderer=new e})(_a||(_a={}));(function(i){i.TIMER_DELAY=300,i.SUBMENU_OVERLAP=3;let e=null,t=0;function r(){return t>0?(t--,e):u()}function n(){e=u(),t++}i.saveWindowData=n;function s(){let p=document.createElement("div"),_=document.createElement("ul");return _.className="lm-Menu-content",p.appendChild(_),_.setAttribute("role","menu"),p.tabIndex=0,p}i.createNode=s;function o(p){return p.type!=="separator"&&p.isEnabled&&p.isVisible}i.canActivate=o;function a(p,_){return new m(p.commands,_)}i.createItem=a;function l(p,_,x){for(let y=p;y;y=y.childMenu)if(Ce.hitTest(y.node,_,x))return!0;return!1}i.hitTestMenus=l;function c(p){let _=new Array(p.length);z.fill(_,!1);let x=0,y=p.length;for(;x=0;--S){let C=p[S];if(C.isVisible){if(C.type!=="separator")break;_[S]=!0}}let I=!1;for(;++xM+P&&(_=M+P-Y),!S&&x+te>N+W&&(x>N+W?x=N+W-te:x=x-te),fe.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,x)}px`,fe.opacity="1"}i.openRootMenu=d;function f(p,_){let x=r(),y=x.pageXOffset,S=x.pageYOffset,I=x.clientWidth,C=x.clientHeight;Ne.sendMessage(p,pe.Msg.UpdateRequest);let b=C,k=p.node,M=k.style;M.opacity="0",M.maxHeight=`${b}px`,pe.attach(p,document.body);let{width:N,height:P}=k.getBoundingClientRect(),W=Ce.boxSizing(p.node),ee=_.getBoundingClientRect(),be=ee.right-i.SUBMENU_OVERLAP;be+N>y+I&&(be=ee.left+i.SUBMENU_OVERLAP-N);let fe=ee.top-W.borderTop-W.paddingTop;fe+P>S+C&&(fe=ee.bottom+W.borderBottom+W.paddingBottom-P),M.transform=`translate(${Math.max(0,be)}px, ${Math.max(0,fe)}px`,M.opacity="1"}i.openSubmenu=f;function h(p,_,x){let y=-1,S=-1,I=!1,C=_.toUpperCase();for(let b=0,k=p.length;b=0&&Wy.command===_&&yl.JSONExt.deepEqual(y.args,x))||null}return null}}})(Cn||(Cn={}));(function(i){function e(o,a){let l=r(o.selector),c=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:c,id:a}}i.createItem=e;function t(o,a,l,c){let u=a.target;if(!u)return null;let d=a.currentTarget;if(!d||!d.contains(u)&&(u=document.elementFromPoint(a.clientX,a.clientY),!u||!d.contains(u)))return null;let f=[],h=o.slice();for(;u!==null;){let m=[];for(let p=0,_=h.length;p<_;++p){let x=h[p];x&&tr.matches(u,x.selector)&&(m.push(x),h[p]=null)}if(m.length!==0&&(l&&m.sort(c?s:n),f.push(...m)),u===d)break;u=u.parentElement}return l||f.sort(c?s:n),f}i.matchItems=t;function r(o){if(o.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${o}`);if(!tr.isValid(o))throw new Error(`Invalid selector: ${o}`);return o}function n(o,a){let l=o.rank,c=a.rank;return l!==c?l=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,r=this._titles[t]||null,n=e,s=this._titles[n]||null;this._currentIndex=n,this._previousTitle=r,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:r,currentIndex:n,currentTitle:s})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let r=Ks.asTitle(t),n=this._titles.indexOf(r),s=Math.max(0,Math.min(e,this._titles.length));return n===-1?(z.insert(this._titles,s,r),r.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,r),r):(s===this._titles.length&&s--,n===s||(z.move(this._titles,n,s),this.update(),this._adjustCurrentForMove(n,s)),r)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=z.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let r of this._titles)r.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let r=this._titles,n=this.renderer,s=this.currentTitle,o=new Array(r.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,c=r.length;lCe.hitTest(o,e.clientX,e.clientY));if(r===-1)return;let n=this.titles[r],s=t[r].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let o=n.label||"",a=s.innerHTML;s.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,s.appendChild(l);let c=()=>{l.removeEventListener("blur",c),s.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",u=>u.stopPropagation()),l.addEventListener("blur",c),l.addEventListener("keydown",u=>{u.key==="Enter"?(l.value!==""&&(n.label=n.caption=l.value),c()):u.key==="Escape"&&c()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,r,n;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let s=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(s))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=z.findFirstIndex(this.contentNode.children,a=>a.contains(s));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(bZ.includes(e.key)){let s=[...this.contentNode.children];if(this.addButtonEnabled&&s.push(this.addButtonNode),s.length<=1)return;e.preventDefault(),e.stopPropagation();let o=s.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=s[o+1])!==null&&t!==void 0?t:s[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(r=s[o-1])!==null&&r!==void 0?r:s[s.length-1]:e.key==="Home"?a=s[0]:e.key==="End"&&(a=s[s.length-1]),a&&((n=s[o])===null||n===void 0||n.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),r=this.contentNode.children,n=z.findFirstIndex(r,o=>Ce.hitTest(o,e.clientX,e.clientY));if(n===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:r[n],index:n,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let s=r[n].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===n?this.currentIndex=-1:this.currentIndex=n,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let r=this.contentNode.children;if(!(!t.dragActive&&!Ks.dragExceeded(t,e))){if(!t.dragActive){let n=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabPressOffset={x:t.pressX-n.left,y:t.pressY-n.top},t.tabLayout=Ks.snapTabLayout(r,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=cr.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&Ks.detachExceeded(t,e)){t.detachRequested=!0;let n=t.index,s=e.clientX,o=e.clientY,a=r[n],l=this._titles[n];if(this._tabDetachRequested.emit({index:n,title:l,tab:a,clientX:s,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}Ks.layoutTabs(r,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let s=this.contentNode.children,o=z.findFirstIndex(s,c=>Ce.hitTest(c,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;Ks.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let r=Ks.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,Ks.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let n=t.index,s=t.targetIndex;s===-1||n===s||(z.move(this._titles,n,s),this._adjustCurrentForMove(n,s),this._tabMoved.emit({fromIndex:n,toIndex:s,title:this._titles[s]}),Ne.sendMessage(this,pe.Msg.UpdateRequest))},r)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(Ks.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let r=this.currentTitle,n=this._currentIndex,s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&n===-1){this._currentIndex=e,this._previousTitle=r,this._currentChanged.emit({previousIndex:n,previousTitle:r,currentIndex:e,currentTitle:t});return}n>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let r=this._currentIndex,n=this.removeBehavior;if(r!==e){r>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(n==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(i){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(r){let n=r.title.caption,s=this.createTabKey(r),o=s,a=this.createTabStyle(r),l=this.createTabClass(r),c=this.createTabDataset(r),u=this.createTabARIA(r);return r.title.closable?ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r),this.renderCloseIcon(r)):ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let{title:n}=r,s=this.createIconClass(r);return ye.div({className:s},n.icon,n.iconLabel)}renderLabel(r){return ye.div({className:"lm-TabBar-tabLabel"},r.title.label)}renderCloseIcon(r){return ye.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(r){let n=this._tabKeys.get(r.title);return n===void 0&&(n=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(r.title,n)),n}createTabStyle(r){return{zIndex:`${r.zIndex}`}}createTabClass(r){let n="lm-TabBar-tab";return r.title.className&&(n+=` ${r.title.className}`),r.title.closable&&(n+=" lm-mod-closable"),r.current&&(n+=" lm-mod-current"),n}createTabDataset(r){return r.title.dataset}createTabARIA(r){var n;return{role:"tab","aria-selected":r.current.toString(),tabindex:`${(n=r.tabIndex)!==null&&n!==void 0?n:"-1"}`}}createIconClass(r){let n="lm-TabBar-tabIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e,i.addButtonSelector=".lm-TabBar-addButton"})(Dc||(Dc={}));(function(i){i.DRAG_THRESHOLD=5,i.DETACH_THRESHOLD=20;function e(){let u=document.createElement("div"),d=document.createElement("ul");d.setAttribute("role","tablist"),d.className="lm-TabBar-content",u.appendChild(d);let f=document.createElement("div");return f.className="lm-TabBar-addButton lm-mod-hidden",f.setAttribute("tabindex","-1"),f.setAttribute("role","button"),u.appendChild(f),u}i.createNode=e;function t(u){return u instanceof zg?u:new zg(u)}i.asTitle=t;function r(u){let d=window.getComputedStyle(u);return 1e3*(parseFloat(d.transitionDuration)||0)}i.parseTransitionDuration=r;function n(u,d){let f=new Array(u.length);for(let h=0,m=u.length;h=i.DRAG_THRESHOLD||h>=i.DRAG_THRESHOLD}i.dragExceeded=s;function o(u,d){let f=u.contentRect;return d.clientX=f.right+i.DETACH_THRESHOLD||d.clientY=f.bottom+i.DETACH_THRESHOLD}i.detachExceeded=o;function a(u,d,f,h){let m,p,_,x;h==="horizontal"?(m=d.pressX,p=f.clientX-d.contentRect.left,_=f.clientX,x=d.contentRect.width):(m=d.pressY,p=f.clientY-d.contentRect.top,_=f.clientY,x=d.contentRect.height);let y=d.index,S=p-d.tabPressPos,I=S+d.tabSize;for(let C=0,b=u.length;C>1);if(Cd.index&&I>N)k=`${-d.tabSize-M.margin}px`,y=Math.max(y,C);else if(C===d.index){let P=_-m,W=x-(d.tabPos+d.tabSize);k=`${Math.max(-d.tabPos,Math.min(P,W))}px`}else k="";h==="horizontal"?u[C].style.left=k:u[C].style.top=k}d.targetIndex=y}i.layoutTabs=a;function l(u,d){let f;d==="horizontal"?f=u.contentRect.width:f=u.contentRect.height;let h;if(u.targetIndex===u.index)h=0;else if(u.targetIndex>u.index){let _=u.tabLayout[u.targetIndex];h=_.pos+_.size-u.tabSize-u.tabPos}else h=u.tabLayout[u.targetIndex].pos-u.tabPos;let m=f-(u.tabPos+u.tabSize),p=Math.max(-u.tabPos,Math.min(h,m));d==="horizontal"?u.tab.style.left=`${p}px`:u.tab.style.top=`${p}px`}i.finalizeTabPosition=l;function c(u,d){for(let f of u)d==="horizontal"?f.style.left="":f.style.top=""}i.resetTabPositions=c})(Ks||(Ks={}));uI=class extends ba{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=Bg.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:pe.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let r of t.titles)r.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=Bg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():Si()}widgets(){return this._root?this._root.iterUserWidgets():Si()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():Si()}tabBars(){return this._root?this._root.iterTabBars():Si()}handles(){return this._root?this._root.iterHandles():Si()}moveHandle(e,t,r){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let s=this._root.findSplitNode(e);if(!s)return;let o;s.node.orientation==="horizontal"?o=t-e.offsetLeft:o=r-e.offsetTop,o!==0&&(s.node.holdSizes(),ls.adjust(s.node.sizers,s.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,r;e.main?r=Yi.normalizeAreaConfig(e.main,t):r=null;let n=this.widgets(),s=this.tabBars(),o=this.handles();this._root=null;for(let a of n)t.has(a)||(a.parent=null);for(let a of s)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;r?this._root=Yi.realizeAreaConfig(r,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let r=t.ref||null,n=t.mode||"tab-after",s=null;if(this._root&&r&&(s=this._root.findTabNode(r)),r&&!s)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,r,s,!0);break;case"tab-before":this._insertTab(e,r,s,!1);break;case"split-top":this._insertSplit(e,r,s,"vertical",!1);break;case"split-left":this._insertSplit(e,r,s,"horizontal",!1);break;case"split-right":this._insertSplit(e,r,s,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,r,s,"vertical",!0);break;case"merge-top":this._insertSplit(e,r,s,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,r,s,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,r,s,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,r,s,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=Ce.boxSizing(this.parent.node));let r=this.parent.node.getBoundingClientRect(),n=e-r.left-this._box.borderLeft,s=t-r.top-this._box.borderTop,o=this._root.hitTestTabNodes(n,s);if(!o)return null;let{tabBar:a,top:l,left:c,width:u,height:d}=o,f=this._box.borderLeft+this._box.borderRight,h=this._box.borderTop+this._box.borderBottom,m=r.width-f-(c+u),p=r.height-h-(l+d);return{tabBar:a,x:n,y:s,top:l,left:c,right:m,bottom:p,width:u,height:d}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new au(e)),this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(Yi.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===pe.HiddenMode.Scale&&t.tabBar.titles.length==1){let f=t.tabBar.titles[0].owner;f.hiddenMode=pe.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let r=t.parent;t.parent=null;let n=z.removeFirstOf(r.children,t),s=z.removeAt(r.handles,n);if(z.removeAt(r.sizers,n),s.parentNode&&s.parentNode.removeChild(s),r.children.length>1){r.syncHandles();return}let o=r.parent;r.parent=null;let a=r.children[0],l=r.handles[0];if(r.children.length=0,r.handles.length=0,r.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===r){a.parent=null,this._root=a;return}let c=o,u=c.children.indexOf(r);if(a instanceof Yi.TabLayoutNode){a.parent=c,c.children[u]=a;return}let d=z.removeAt(c.handles,u);z.removeAt(c.children,u),z.removeAt(c.sizers,u),d.parentNode&&d.parentNode.removeChild(d);for(let f=0,h=a.children.length;f=this._left+this._width||m=this._top+this._height?null:this}createConfig(){let h=this.tabBar.titles.map(p=>p.owner),m=this.tabBar.currentIndex;return{type:"tab-area",widgets:h,currentIndex:m}}holdAllSizes(){}fit(h,m){let p=0,_=0,x=1/0,y=1/0,S=m.get(this.tabBar),I=this.tabBar.currentTitle,C=I?m.get(I.owner):void 0,[b,k]=this.sizers;return S&&S.fit(),C&&C.fit(),S&&!S.isHidden?(p=Math.max(p,S.minWidth),_+=S.minHeight,b.minSize=S.minHeight,b.maxSize=S.maxHeight):(b.minSize=0,b.maxSize=0),C&&!C.isHidden?(p=Math.max(p,C.minWidth),_+=C.minHeight,k.minSize=C.minHeight,k.maxSize=1/0):(k.minSize=0,k.maxSize=1/0),{minWidth:p,minHeight:_,maxWidth:x,maxHeight:y}}update(h,m,p,_,x,y){this._top=m,this._left=h,this._width=p,this._height=_;let S=y.get(this.tabBar),I=this.tabBar.currentTitle,C=I?y.get(I.owner):void 0;if(ls.calc(this.sizers,_),S&&!S.isHidden){let b=this.sizers[0].size;S.update(h,m,p,b),m+=b}if(C&&!C.isHidden){let b=this.sizers[1].size;C.update(h,m,p,b)}}}i.TabLayoutNode=n;class s{constructor(h){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=h}*iterAllWidgets(){for(let h of this.children)yield*h.iterAllWidgets()}*iterUserWidgets(){for(let h of this.children)yield*h.iterUserWidgets()}*iterSelectedWidgets(){for(let h of this.children)yield*h.iterSelectedWidgets()}*iterTabBars(){for(let h of this.children)yield*h.iterTabBars()}*iterHandles(){yield*this.handles;for(let h of this.children)yield*h.iterHandles()}findTabNode(h){for(let m=0,p=this.children.length;m_.createConfig());return{type:"split-area",orientation:h,children:p,sizes:m}}syncHandles(){this.handles.forEach((h,m)=>{h.setAttribute("data-orientation",this.orientation),m===this.handles.length-1?h.classList.add("lm-mod-hidden"):h.classList.remove("lm-mod-hidden")})}holdSizes(){for(let h of this.sizers)h.sizeHint=h.size}holdAllSizes(){for(let h of this.children)h.holdAllSizes();this.holdSizes()}normalizeSizes(){let h=this.sizers.length;if(h===0)return;this.holdSizes();let m=this.sizers.reduce((p,_)=>p+_.sizeHint,0);if(m===0)for(let p of this.sizers)p.size=p.sizeHint=1/h;else for(let p of this.sizers)p.size=p.sizeHint/=m;this.normalized=!0}createNormalizedSizes(){let h=this.sizers.length;if(h===0)return[];let m=this.sizers.map(_=>_.size),p=m.reduce((_,x)=>_+x,0);if(p===0)for(let _=m.length-1;_>-1;_--)m[_]=1/h;else for(let _=m.length-1;_>-1;_--)m[_]/=p;return m}fit(h,m){let p=this.orientation==="horizontal",_=Math.max(0,this.children.length-1)*h,x=p?_:0,y=p?0:_,S=1/0,I=1/0;for(let C=0,b=this.children.length;C=m.length)&&(p=0),{type:"tab-area",widgets:m,currentIndex:p}}function c(f,h){let m=f.orientation,p=[],_=[];for(let x=0,y=f.children.length;x{let y=r(_,h,m),S=e(f.sizes[x]),I=h.createHandle();p.children.push(y),p.handles.push(I),p.sizers.push(S),y.parent=p}),p.syncHandles(),p.normalizeSizes(),p}})(Yi||(Yi={}));cu=class extends pe{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new Me(this),this._addRequested=new Me(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||cu.defaultRenderer,this._edges=e.edges||Hi.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new uI({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new cu.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let r of t.tabBars())r.show();break;case"single-document":t.restoreLayout(Hi.createSingleDocumentConfig(this));break;default:throw"unreachable"}Ne.postMessage(this,Hi.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=Ts(this.tabBars(),r=>r.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(Mi.IS_EDGE||Mi.IS_IE)&&Ne.flush(),Ne.postMessage(this,Hi.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),Ne.postMessage(this,Hi.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){Hi.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){Hi.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),Ne.postMessage(this,Hi.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:r}=e,{zone:n,target:s}=Hi.findDropTarget(this,t,r,this._edges);if(this._tabsConstrained&&e.source!==this||n==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof pe)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let c=s?Hi.getDropRef(s.tabBar):null;switch(n){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:c});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:c});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:c});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:c});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:c});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:c});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),Ne.postMessage(this,Hi.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=e.target,n=Ts(t.handles(),u=>u.contains(r));if(!n)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let s=n.getBoundingClientRect(),o=e.clientX-s.left,a=e.clientY-s.top,l=window.getComputedStyle(n),c=cr.overrideCursor(l.cursor,this._document);this._pressData={handle:n,deltaX:o,deltaY:a,override:c}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),r=e.clientX-t.left-this._pressData.deltaX,n=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,r,n)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),Ne.postMessage(this,Hi.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:r,target:n}=Hi.findDropTarget(this,e,t,this._edges);if(r==="invalid")return this.overlay.hide(100),r;let s,o,a,l,c=Ce.boxSizing(this.node),u=this.node.getBoundingClientRect();switch(r){case"root-all":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"root-top":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=u.height*Hi.GOLDEN_RATIO;break;case"root-left":s=c.paddingTop,o=c.paddingLeft,a=u.width*Hi.GOLDEN_RATIO,l=c.paddingBottom;break;case"root-right":s=c.paddingTop,o=u.width*Hi.GOLDEN_RATIO,a=c.paddingRight,l=c.paddingBottom;break;case"root-bottom":s=u.height*Hi.GOLDEN_RATIO,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"widget-all":s=n.top,o=n.left,a=n.right,l=n.bottom;break;case"widget-top":s=n.top,o=n.left,a=n.right,l=n.bottom+n.height/2;break;case"widget-left":s=n.top,o=n.left,a=n.right+n.width/2,l=n.bottom;break;case"widget-right":s=n.top,o=n.left+n.width/2,a=n.right,l=n.bottom;break;case"widget-bottom":s=n.top+n.height/2,o=n.left,a=n.right,l=n.bottom;break;case"widget-tab":{let d=n.tabBar.node.getBoundingClientRect().height;s=n.top,o=n.left,a=n.right,l=n.bottom+n.height-d;break}default:throw"unreachable"}return this.overlay.show({top:s,left:o,right:a,bottom:l}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return Hi.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){Ne.postMessage(this,Hi.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:r,currentTitle:n}=t;r&&r.owner.hide(),n&&n.owner.show(),(Mi.IS_EDGE||Mi.IS_IE)&&Ne.flush(),Ne.postMessage(this,Hi.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:r,tab:n,clientX:s,clientY:o,offset:a}=t,l=new yl.MimeData,c=()=>r.owner;l.setData("application/vnd.lumino.widget-factory",c);let u=n.cloneNode(!0);a&&(u.style.top=`-${a.y}px`,u.style.left=`-${a.x}px`),this._drag=new cr({document:this._document,mimeData:l,dragImage:u,proposedAction:"move",supportedActions:"move",source:this}),n.classList.add("lm-mod-hidden");let d=()=>{this._drag=null,n.classList.remove("lm-mod-hidden")};this._drag.start(s,o).then(d)}};(function(i){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(n){let s=this.node.style;s.top=`${n.top}px`,s.left=`${n.left}px`,s.right=`${n.right}px`,s.bottom=`${n.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(n){if(!this._hidden){if(n<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},n))}}}i.Overlay=e;class t{createTabBar(n){let s=new Dc({document:n});return s.addClass("lm-DockPanel-tabBar"),s}createHandle(){let n=document.createElement("div");return n.className="lm-DockPanel-handle",n}}i.Renderer=t,i.defaultRenderer=new t})(cu||(cu={}));(function(i){i.GOLDEN_RATIO=.618,i.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},i.LayoutModified=new Nc("layout-modified"),i.isGeneratedTabBarProperty=new ht({name:"isGeneratedTabBar",create:()=>!1});function e(n){if(n.isEmpty)return{main:null};let s=Array.from(n.widgets()),o=n.selectedWidgets().next().value,a=o?s.indexOf(o):-1;return{main:{type:"tab-area",widgets:s,currentIndex:a}}}i.createSingleDocumentConfig=e;function t(n,s,o,a){if(!Ce.hitTest(n.node,s,o))return{zone:"invalid",target:null};let l=n.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(n.mode==="multiple-document"){let S=n.node.getBoundingClientRect(),I=s-S.left+1,C=o-S.top+1,b=S.right-s,k=S.bottom-o;switch(Math.min(C,b,k,I)){case C:if(Cp&&f>p&&d>_&&h>_)return{zone:"widget-all",target:c};u/=p,d/=_,f/=p,h/=_;let x=Math.min(u,d,f,h),y;switch(x){case u:y="widget-left";break;case d:y="widget-top";break;case f:y="widget-right";break;case h:y="widget-bottom";break;default:throw"unreachable"}return{zone:y,target:c}}i.findDropTarget=t;function r(n){return n.titles.length===0?null:n.currentTitle?n.currentTitle.owner:n.titles[n.titles.length-1].owner}i.getDropRef=r})(Hi||(Hi={}));xl=class extends ba{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new ga],this._columnSizers=[new ga],this._box=null,e.rowCount!==void 0&&xr.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&xr.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=xr.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=xr.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(xr.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(xr.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=xr.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=xr.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let r=this._rowSizers[e];r&&(t=xr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let r=this._columnSizers[e];r&&(t=xr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){z.findFirstIndex(this._items,r=>r.widget===e)===-1&&(this._items.push(new au(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=z.findFirstIndex(this._items,n=>n.widget===e);if(t===-1)return;let r=z.removeAt(this._items,t);this.parent&&this.detachWidget(e),r.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&Ne.sendMessage(e,pe.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,c=this.rowCount;l!l.isHidden);for(let l=0,c=e.length;l({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let c=Math.max(0,Math.floor(l.row||0)),u=Math.max(0,Math.floor(l.column||0)),d=Math.max(1,Math.floor(l.rowSpan||0)),f=Math.max(1,Math.floor(l.columnSpan||0));return{row:c,column:u,rowSpan:d,columnSpan:f}}i.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}i.clampValue=t;function r(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.rowSpan-d.rowSpan}i.rowSpanCmp=r;function n(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.columnSpan-d.columnSpan}i.columnSpanCmp=n;function s(l,c){for(c=Math.max(1,Math.floor(c));l.lengthc&&(l.length=c)}i.reallocSizers=s;function o(l,c,u,d){if(u=d)return;let h=(d-f)/(u-c+1);for(let m=c;m<=u;++m)l[m].minSize+=h}i.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof xl&&l.parent.fit()}})(xr||(xr={}));pm=class extends pe{constructor(e={}){super({node:_x.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(pe.Flag.DisallowLayout),this.renderer=e.renderer||pm.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,r=!0){this._closeChildMenu();let n=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(n===-1){z.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),r&&this.update();return}s===this._menus.length&&s--,n!==s&&(z.move(this._menus,n,s),r&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let r=z.removeAt(this._menus,e);r&&(r.aboutToClose.disconnect(this._onMenuAboutToClose,this),r.menuRequested.disconnect(this._onMenuMenuRequested,this),r.title.changed.disconnect(this._onTitleChanged,this),r.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":case"mouseleave":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let r=this._menus,n=this.renderer,s=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:r.length,l=0,c=!1;a=this._overflowMenu!==null?a-1:a;let u=new Array(a);for(let d=0;d{this._tabFocusIndex=d,this.activeIndex=d}}),l+=this._menuItemSizes[d],r[d].title.label===this._overflowMenuOptions.title&&(c=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!c){if(this._overflowMenu===null){let d=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new _a({commands:new Qr}),this._overflowMenu.title.label=d,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let d=r.length-2;d>=a;d--){let f=this.menus[d];f.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:f}),this.removeMenu(f,!1)}u[a]=n.renderItem({title:this._overflowMenu.title,active:a===s&&r[a].items.length!==0,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let d=this._overflowMenu.items,f=this.node.offsetWidth,h=this._overflowMenu.items.length;for(let m=0;mthis._menuItemSizes[p]){let _=d[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,_,!1),u[a]=n.renderItem({title:_.title,active:!1,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),u.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}Ht.render(u,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,r=0,n=-1,s=e.length;if(this._menuItemSizes.length==0)for(let o=0;ot&&n===-1&&(n=o)}else for(let o=0;ot){n=o;break}this._overflowIndex=n}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let c=0;cCe.hitTest(r,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let r=this._positionForMenu(t);_a.saveWindowData(),this.activeIndex=t,this._openChildMenu(r)}}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let r=t>=0&&this._childMenu?this._positionForMenu(t):null;_a.saveWindowData(),this.activeIndex=t,r&&this._openChildMenu(r)}_positionForMenu(e){let t=this.contentNode.children[e],{left:r,bottom:n}=t.getBoundingClientRect();return{top:n,left:r}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let r=this._childMenu;if(r===t)return;this._childMenu=t,r?r.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,Ne.sendMessage(this,pe.Msg.UpdateRequest);let{left:n,top:s}=e;(typeof n>"u"||typeof s>"u")&&({left:n,top:s}=this._positionForMenu(this._activeIndex)),r||this.addClass("lm-mod-active"),t.items.length>0&&t.open(n,s,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let r=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=r===n-1?0:r+1;break;case"previous":this.activeIndex=r===0?n-1:r-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,...r.disabled?{}:{tabindex:r.tabbable?"0":"-1"},onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.title.icon,r.title.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-MenuBar-itemLabel"},n)}createItemClass(r){let n="lm-MenuBar-item";return r.title.className&&(n+=` ${r.title.className}`),r.active&&!r.disabled&&(n+=" lm-mod-active"),n}createItemDataset(r){return r.title.dataset}createItemARIA(r){return{role:"menuitem","aria-haspopup":"true","aria-disabled":r.disabled?"true":"false"}}createIconClass(r){let n="lm-MenuBar-itemIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}formatLabel(r){let{label:n,mnemonic:s}=r.title;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,c,a]}}i.Renderer=e,i.defaultRenderer=new e})(pm||(pm={}));(function(i){function e(){let r=document.createElement("div"),n=document.createElement("ul");return n.className="lm-MenuBar-content",r.appendChild(n),n.setAttribute("role","menubar"),r}i.createNode=e;function t(r,n,s){let o=-1,a=-1,l=!1,c=n.toUpperCase();for(let u=0,d=r.length;u=0&&m1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===pe.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=pe.HiddenMode.Scale),t.hiddenMode=pe.HiddenMode.Scale):t.hiddenMode=pe.HiddenMode.Display,z.insert(this._items,e,new au(t)),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&Ne.sendMessage(t,pe.Msg.AfterDetach),r.widget.node.style.zIndex="",this._hiddenMode===pe.HiddenMode.Scale&&(t.hiddenMode=pe.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=pe.HiddenMode.Display)),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let s=0,o=this._items.length;s{var vZ=1/0,xZ="[object Symbol]",y5=/[&<>"'`]/g,yZ=RegExp(y5.source),wZ={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},SZ=typeof globalThis=="object"&&globalThis&&globalThis.Object===Object&&globalThis,CZ=typeof self=="object"&&self&&self.Object===Object&&self,EZ=SZ||CZ||Function("return this")();function IZ(i){return function(e){return i?.[e]}}var kZ=IZ(wZ),MZ=Object.prototype,RZ=MZ.toString,b5=EZ.Symbol,v5=b5?b5.prototype:void 0,x5=v5?v5.toString:void 0;function TZ(i){if(typeof i=="string")return i;if(LZ(i))return x5?x5.call(i):"";var e=i+"";return e=="0"&&1/i==-vZ?"-0":e}function AZ(i){return!!i&&typeof i=="object"}function LZ(i){return typeof i=="symbol"||AZ(i)&&RZ.call(i)==xZ}function NZ(i){return i==null?"":TZ(i)}function DZ(i){return i=NZ(i),i&&yZ.test(i)?i.replace(y5,kZ):i}w5.exports=DZ});function E5(i){let e=[],t=null,r=null,n=null,s=0,o;i.includes("`")||i.includes("~~~")?(i=i.replace(/~/g,"~T").replace(/^(?`{3,}|(~T){3,})[^`\n]*\n([\s\S]*?)^\k`*$/gm,c=>c.replace(/\$/g,"~D")).replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm,c=>c.replace(/\$/g,"~D")),o=c=>c.replace(/~([TD])/g,(u,d)=>d==="T"?"~":C5)):o=c=>c;let l=i.replace(/\r\n?/g,` +`).split(OZ);for(let c=1,u=l.length;c{let s=e[n];return s.substr(0,3)==="\\\\("&&s.substr(s.length-3)==="\\\\)"?s="\\("+s.substring(3,s.length-3)+"\\)":s.substr(0,3)==="\\\\["&&s.substr(s.length-3)==="\\\\]"&&(s="\\["+s.substring(3,s.length-3)+"\\]"),s};return i.replace(/@@(\d+)@@/g,t)}function fI(i,e,t,r,n){let s=n.slice(i,e+1).join("").replace(/&/g,"&").replace(//g,">");for(navigator&&navigator.appName==="Microsoft Internet Explorer"&&(s=s.replace(/(%[^\n]*)\n/g,`$1
+`));e>i;)n[e]="",e--;return n[i]="@@"+r.length+"@@",t&&(s=t(s)),r.push(s),n}var C5,OZ,mI=j(()=>{C5="$",OZ=/(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[{}$]|[{}]|(?:\n\s*)+|@@\d+@@|\\\\(?:\(|\)|\[|\]))/i});async function _I(i){let{host:e,source:t,trusted:r,sanitizer:n,resolver:s,linkHandler:o,shouldTypeset:a,latexTypesetter:l,translator:c}=i;c=c||Ds;let u=c?.load("jupyterlab"),d=t;if(!t){e.textContent="";return}if(r||(d=`${t}`,t=n.sanitize(t)),e.innerHTML=t,e.getElementsByTagName("script").length>0)if(r)To.evalInnerHTMLScriptTags(e);else{let f=document.createElement("div"),h=document.createElement("pre");h.textContent=u.__("This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");let m=document.createElement("button");m.textContent=u.__("Run"),m.onclick=p=>{e.innerHTML=d,To.evalInnerHTMLScriptTags(e),e.firstChild&&e.removeChild(e.firstChild)},f.appendChild(h),f.appendChild(m),e.insertBefore(f,e.firstChild)}if(To.handleDefaults(e),a&&l){let f=l.typeset(e);f instanceof Promise?f.then(()=>Oc(e,s)).catch(console.warn):Oc(e,s)}else Oc(e,s);s&&await To.handleUrls(e,s,o)}async function A5(i){let{host:e,mimeType:t,source:r,width:n,height:s,needsBackground:o,unconfined:a}=i;e.textContent="";let l=document.createElement("img");l.src=`data:${t};base64,${r}`,typeof s=="number"&&(l.height=s),typeof n=="number"&&(l.width=n),o==="light"?l.classList.add("jp-needs-light-background"):o==="dark"&&l.classList.add("jp-needs-dark-background"),a===!0&&l.classList.add("jp-mod-unconfined"),e.appendChild(l)}async function L5(i){let{host:e,source:t,shouldTypeset:r,latexTypesetter:n,resolver:s}=i;if(e.textContent=t,r&&n){let o=n.typeset(e);o instanceof Promise?o.then(()=>Oc(e,s)).catch(console.warn):Oc(e,s)}}async function Hg(i){var e;let{host:t,source:r,markdownParser:n,...s}=i;if(!r){t.textContent="";return}let o="";if(n){let a=E5(r);o=await n.render(a.text),o=I5(o,a.math)}else o=`
${r}
`;await _I({host:t,source:o,...s}),To.headerAnchors(t,(e=i.sanitizer.allowNamedProperties)!==null&&e!==void 0?e:!1)}async function N5(i){let{host:e,source:t,trusted:r,unconfined:n}=i;if(!t){e.textContent="";return}if(!r){e.textContent="Cannot display an untrusted SVG. Maybe you need to run the cell?";return}let s="]+xmlns=[^>]+svg";t.search(s)<0&&(t=t.replace("{if(o>=t.length){r.push(document.createTextNode(s));return}let a=t[o],l,c=0,u=a.regex;for(u.lastIndex=0;(l=u.exec(s))!=null;){let f=s.substring(c,l.index);f&&n(f,o+1);let{path:h,...m}=l.groups,p=a.processPath?a.processPath(h):h,_=a.processLabel?a.processLabel(l[0]):l[0];r.push(a.createAnchor(p,_,m)),c=l.index+_.length}let d=s.substring(c);d&&n(d,o+1)};return n(i,0),r}function M5(i,e){var t,r;let n=i.cloneNode();n.textContent=(t=i.textContent)===null||t===void 0?void 0:t.slice(0,e);let s=i.cloneNode();return s.textContent=(r=i.textContent)===null||r===void 0?void 0:r.slice(e),{pre:n,post:s}}function*R5(i){var e;let t=0,r;for(let n of i)r=t+(((e=n.textContent)===null||e===void 0?void 0:e.length)||0),yield{node:n,start:t,end:r,isText:n.nodeType===Node.TEXT_NODE},t=r}function*zZ(i,e){var t,r;let n=R5(i),s=R5(e),o=n.next(),a=s.next();for(;!o.done&&!a.done;){let l=o.value,c=a.value;if(l.isText&&l.start<=c.start&&l.end>=c.end)yield[null,c.node],a=s.next();else if(c.isText&&c.start<=l.start&&c.end>=l.end)yield[l.node,null],o=n.next();else if(l.end===c.end&&l.start===c.start)yield[l.node,c.node],o=n.next(),a=s.next();else if(l.end>c.end){let{pre:u,post:d}=M5(l.node,c.end-l.start);c.startl.end){let{pre:u,post:d}=M5(c.node,l.end-c.start);l.starty.cloneNode(!0))})}else p=[document.createTextNode(l)];let _=Array.from(c.childNodes);m=HZ(_,p)}else m=document.createElement("pre");n.appendChild(m)}function jZ(i,e){if(!i||e.length{gm=L(cL());Vp();T5=L(S5());mI();(function(i){function e(t){var r;return((r=t.textContent)!==null&&r!==void 0?r:"").replace(/ /g,"-")}i.createHeaderId=e})(Hg||(Hg={}));(function(i){let t="\\u0000-\\u0020\\u007f-\\u009f";i.webLinkRegex=new RegExp("(?(?:[a-zA-Z][a-zA-Z0-9+.-]{2,40}:\\/\\/|data:|www\\.)[^\\s"+t+'"]{2,}[^\\s'+t+`"'(){}\\[\\],:;.!?])`,"ug");let r=/(?:[a-zA-Z]:(?:(?:\\|\/)[\w\.-]*)+)/,n=/(?:(?:\~|\.)(?:(?:\\|\/)[\w\.-]*)+)/,s=new RegExp(`(${r.source}|${n.source})`),o=/((?:\~|\.)?(?:\/[\w\.-]*)+)/,a=/(?:(?:\:|", line )(?[\d]+))?(?:\:(?[\d]+))?/,l=navigator.userAgent.indexOf("Windows")>=0;i.pathLinkRegex=new RegExp(`(?${l?s.source:o.source})${a.source}`,"g")})(bx||(bx={}));pI=class{constructor(){this.regex=bx.webLinkRegex}createAnchor(e,t){let r=document.createElement("a");return r.href=e.startsWith("www.")?"https://"+e:e,r.rel="noopener",r.target="_blank",r.appendChild(document.createTextNode(t)),r}processPath(e){let t=e.slice(-1),n=[">","<"].indexOf(t)!==-1?e.length-1:e.length;return e=e.slice(0,n),e}processLabel(e){return this.processPath(e)}},gI=class{constructor(){this.regex=bx.pathLinkRegex}createAnchor(e,t,r){let n=document.createElement("a");n.dataset.path=e;let s=parseInt(r.line,10),o=isNaN(s)?"":`line=${s-1}`;return n.dataset.locator=o,n.appendChild(document.createTextNode(t)),n}};BZ="\x1B";(function(i){i.autoLinkCache=new Map;function e(h){let m=Array.from(h.getElementsByTagName("script"));for(let p of m){if(!p.parentNode)continue;let _=document.createElement("script"),x=p.attributes;for(let y=0,S=x.length;yl(x,m,p)))}i.handlePaths=n;function s(h,m){let p=["h1","h2","h3","h4","h5","h6"];for(let _ of p){let x=h.getElementsByTagName(_);for(let y=0;y{let I=decodeURIComponent(S);return p&&p.handleLink(h,I,y),m.getDownloadUrl(S)}).then(S=>{h.href=S+y}).catch(S=>{h.href=""})}async function l(h,m,p){let _=h.dataset.path||"",x=h.dataset.locator?"#"+h.dataset.locator:"";delete h.dataset.path,delete h.dataset.locator;let y=!0,S=m.isLocal?m.isLocal(_,y):gm.URLExt.isLocal(_,y);if(!_||!S||!m.resolvePath||!p||!p.handlePath){h.replaceWith(...h.childNodes);return}try{let I=await m.resolvePath(_);if(!I){console.log("Path resolution bailing: does not exist");return}p.handlePath(h,I.path,I.scope,x),h.href=I.path+x}catch(I){console.warn("Path anchor error:",I),h.href="#linking-failed-see-console"}}let c=["ansi-black","ansi-red","ansi-green","ansi-yellow","ansi-blue","ansi-magenta","ansi-cyan","ansi-white","ansi-black-intense","ansi-red-intense","ansi-green-intense","ansi-yellow-intense","ansi-blue-intense","ansi-magenta-intense","ansi-cyan-intense","ansi-white-intense"];function u(h,m,p,_,x,y,S){if(h){let I=[],C=[];_&&typeof m=="number"&&0<=m&&m<8&&(m+=8),y&&([m,p]=[p,m]),typeof m=="number"?I.push(c[m]+"-fg"):m.length?C.push(`color: rgb(${m})`):y&&I.push("ansi-default-inverse-fg"),typeof p=="number"?I.push(c[p]+"-bg"):p.length?C.push(`background-color: rgb(${p})`):y&&I.push("ansi-default-inverse-bg"),_&&I.push("ansi-bold"),x&&I.push("ansi-underline"),I.length||C.length?(S.push(""),S.push(h),S.push("")):S.push(h)}}function d(h){let m,p,_,x=h.shift();if(x===2&&h.length>=3){if(m=h.shift(),p=h.shift(),_=h.shift(),[m,p,_].some(y=>y<0||255=1){let y=h.shift();if(y<0)throw new RangeError("Color index must be >= 0");if(y<16)return y;if(y<232)m=Math.floor((y-16)/36),m=m>0?55+m*40:0,p=Math.floor((y-16)%36/6),p=p>0?55+p*40:0,_=(y-16)%6,_=_>0?55+_*40:0;else if(y<256)m=p=_=(y-232)*10+8;else throw new RangeError("Color index must be < 256")}else throw new RangeError("Invalid extended color specification");return[m,p,_]}function f(h){let m=/\x1b\[(.*?)([@-~])/g,p=[],_=[],x=!1,y=!1,S=!1,I,C=[],b=[],k=0;for(h=(0,T5.default)(h),h+="\x1B[m";I=m.exec(h);){if(I[2]==="m"){let N=I[1].split(";");for(let P=0;P{Vp();_5();vI();wl=class extends pe{constructor(e){var t,r;super(),this.mimeType=e.mimeType,this.sanitizer=e.sanitizer,this.resolver=e.resolver,this.linkHandler=e.linkHandler,this.translator=(t=e.translator)!==null&&t!==void 0?t:Ds,this.latexTypesetter=e.latexTypesetter,this.markdownParser=(r=e.markdownParser)!==null&&r!==void 0?r:null,this.node.dataset.mimeType=this.mimeType}async renderModel(e,t){if(!t)for(;this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.toggleClass("jp-mod-trusted",e.trusted),await this.render(e);let{fragment:r}=e.metadata;r&&this.setFragment(r)}setFragment(e){}},vx=class extends wl{constructor(e){super(e),this.addClass("jp-RenderedHTMLCommon")}setFragment(e){let t;try{t=this.node.querySelector(e.startsWith("#")?`#${CSS.escape(e.slice(1))}`:e)}catch(r){console.warn("Unable to set URI fragment identifier.",r)}t&&t.scrollIntoView()}},xx=class extends vx{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedHTML")}render(e){return this._rendered=_I({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,translator:this.translator})}onAfterAttach(e){this._rendered.then(()=>{this.latexTypesetter&&_m.typeset(this.node,this.latexTypesetter,this.resolver)}).catch(console.warn)}},yx=class extends wl{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedLatex")}render(e){return this._rendered=L5({host:this.node,source:String(e.data[this.mimeType]),shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,resolver:this.resolver})}onAfterAttach(e){this._rendered.then(()=>{this.latexTypesetter&&_m.typeset(this.node,this.latexTypesetter,this.resolver)}).catch(console.warn)}},wx=class extends wl{constructor(e){super(e),this.addClass("jp-RenderedImage")}render(e){let t=e.metadata[this.mimeType];return A5({host:this.node,mimeType:this.mimeType,source:String(e.data[this.mimeType]),width:t&&t.width,height:t&&t.height,needsBackground:e.metadata.needs_background,unconfined:t&&t.unconfined})}},Sx=class extends vx{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedMarkdown")}render(e){return this._rendered=Hg({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}async renderModel(e){await super.renderModel(e,!0)}onAfterAttach(e){this._rendered.then(()=>{this.latexTypesetter&&_m.typeset(this.node,this.latexTypesetter,this.resolver)}).catch(console.warn)}},Cx=class extends wl{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedSVG")}render(e){let t=e.metadata[this.mimeType];return this._rendered=N5({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,unconfined:t&&t.unconfined,translator:this.translator})}onAfterAttach(e){this._rendered.then(()=>{this.latexTypesetter&&_m.typeset(this.node,this.latexTypesetter,this.resolver)}).catch(console.warn)}},Ex=class extends wl{constructor(e){super(e),this.addClass("jp-RenderedText")}render(e){return bI({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),translator:this.translator})}},Ix=class extends wl{constructor(e){super(e),this.addClass("jp-RenderedText")}render(e){return O5({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),linkHandler:this.linkHandler,resolver:this.resolver,translator:this.translator})}},Fg=class extends wl{constructor(e){super(e),this.addClass("jp-RenderedJavaScript")}render(e){let t=this.translator.load("jupyterlab");return bI({host:this.node,sanitizer:this.sanitizer,source:t.__("JavaScript output is disabled in JupyterLab"),translator:this.translator})}};(function(i){function e(t,r,n){let s=r.typeset(t);s instanceof Promise?s.then(()=>Oc(t,n)).catch(console.warn):Oc(t,n)}i.typeset=e})(_m||(_m={}))});var z5,P5,B5,j5,H5,F5,$5,W5=j(()=>{xI();z5={safe:!0,mimeTypes:["text/html"],defaultRank:50,createRenderer:i=>new xx(i)},P5={safe:!0,mimeTypes:["image/bmp","image/png","image/jpeg","image/gif","image/webp"],defaultRank:90,createRenderer:i=>new wx(i)},B5={safe:!0,mimeTypes:["text/latex"],defaultRank:70,createRenderer:i=>new yx(i)},j5={safe:!0,mimeTypes:["text/markdown"],defaultRank:60,createRenderer:i=>new Sx(i)},H5={safe:!1,mimeTypes:["image/svg+xml"],defaultRank:80,createRenderer:i=>new Cx(i)},F5={safe:!0,mimeTypes:["application/vnd.jupyter.stderr"],defaultRank:110,createRenderer:i=>new Ix(i)},$5={safe:!0,mimeTypes:["text/plain","application/vnd.jupyter.stdout"],defaultRank:120,createRenderer:i=>new Ex(i)}});var kx,yI,wI=j(()=>{kx=class{constructor(e={}){this.trusted=!!e.trusted,this._data=e.data||{},this._metadata=e.metadata||{},this._callback=e.callback||yI.noOp}get data(){return this._data}get metadata(){return this._metadata}setData(e){this._data=e.data||this._data,this._metadata=e.metadata||this._metadata,this._callback(e)}};(function(i){function e(){}i.noOp=e})(yI||(yI={}))});function Mx(i){return i.output_type==="execute_result"}function SI(i){return i.output_type==="display_data"}function q5(i){return i.output_type==="update_display_data"}function zc(i){return i.output_type==="stream"}function U5(i){return i.output_type==="error"}var WZ,CI=j(()=>{WZ=L(Zr())});var G5,bm,Pc,X5=j(()=>{CI();Z1();G5=L(Zr());As();bm=class{constructor(e){this._changed=new Me(this),this._raw={},this._text=void 0;let{data:t,metadata:r,trusted:n}=Pc.getBundleOptions(e);this._rawData=t,e.value!==void 0&&zc(e.value)&&(this._text=new dL(typeof e.value.text=="string"?e.value.text:e.value.text.join(""))),this._metadata=new Gb({values:r}),this._rawMetadata=r,this.trusted=n;let s=e.value;for(let o in s)switch(o){case"data":case"metadata":break;default:this._raw[o]=Pc.extract(s,o)}this.type=s.output_type,Mx(s)?this.executionCount=s.execution_count:this.executionCount=null}get changed(){return this._changed}dispose(){var e;(e=this._text)===null||e===void 0||e.dispose(),this._metadata.dispose(),Me.clearData(this)}get data(){return Pc.getData(this.toJSON())}get streamText(){return this._text}get metadata(){return this._rawMetadata}setData(e){e.data&&(this._rawData=e.data),e.metadata&&(this._updateObservable(this._metadata,e.metadata),this._rawMetadata=e.metadata),this._changed.emit()}toJSON(){let e={};for(let t in this._raw)e[t]=Pc.extract(this._raw,t);switch(this._text!==void 0&&(e.text=this._text.text),this.type){case"display_data":case"execute_result":case"update_display_data":e.data=this._rawData,e.metadata=this.metadata;break;default:break}return delete e.transient,e}_updateObservable(e,t){let r=e.keys(),n=Object.keys(t);for(let s of r)n.indexOf(s)===-1&&e.delete(s);for(let s of n){let o=e.get(s),a=t[s];o!==a&&e.set(s,a)}}};(function(i){function e(r){return Pc.getData(r)}i.getData=e;function t(r){return Pc.getMetadata(r)}i.getMetadata=t})(bm||(bm={}));(function(i){function e(o){let a={};if(Mx(o)||SI(o)||q5(o))a=o.data;else if(zc(o))o.name==="stderr"?a["application/vnd.jupyter.stderr"]=o.text:a["application/vnd.jupyter.stdout"]=o.text;else if(U5(o)){a["application/vnd.jupyter.error"]=o;let l=o.traceback.join(` +`);a["application/vnd.jupyter.stderr"]=l||`${o.ename}: ${o.evalue}`}return s(a)}i.getData=e;function t(o){let a=Object.create(null);if(Mx(o)||SI(o))for(let l in o.metadata)a[l]=n(o.metadata,l);return a}i.getMetadata=t;function r(o){let a=e(o.value),l=t(o.value),c=!!o.trusted;return{data:a,metadata:l,trusted:c}}i.getBundleOptions=r;function n(o,a){let l=o[a];return l===void 0||G5.JSONExt.isPrimitive(l)?l:JSON.parse(JSON.stringify(l))}i.extract=n;function s(o){let a=Object.create(null);for(let l in o)a[l]=n(o,l);return a}})(Pc||(Pc={}))});var du,Bc,EI,K5=j(()=>{eS();du=L(cL());Vp();wI();Bc=class{constructor(e={}){var t,r,n,s,o,a;if(this._id=0,this._ranks={},this._types=null,this._factories={},this.translator=(t=e.translator)!==null&&t!==void 0?t:Ds,this.resolver=(r=e.resolver)!==null&&r!==void 0?r:null,this.linkHandler=(n=e.linkHandler)!==null&&n!==void 0?n:null,this.latexTypesetter=(s=e.latexTypesetter)!==null&&s!==void 0?s:null,this.markdownParser=(o=e.markdownParser)!==null&&o!==void 0?o:null,this.sanitizer=(a=e.sanitizer)!==null&&a!==void 0?a:new fL,e.initialFactories)for(let l of e.initialFactories)this.addFactory(l)}get mimeTypes(){return this._types||(this._types=EI.sortedTypes(this._ranks))}preferredMimeType(e,t="ensure"){if(t==="ensure"||t==="prefer"){for(let r of this.mimeTypes)if(r in e&&this._factories[r].safe)return r}if(t!=="ensure"){for(let r of this.mimeTypes)if(r in e)return r}}createRenderer(e){if(!(e in this._factories))throw new Error(`No factory for mime type: '${e}'`);return this._factories[e].createRenderer({mimeType:e,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}createModel(e={}){return new kx(e)}clone(e={}){var t,r,n,s,o,a,l,c,u,d;let f=new Bc({resolver:(r=(t=e.resolver)!==null&&t!==void 0?t:this.resolver)!==null&&r!==void 0?r:void 0,sanitizer:(s=(n=e.sanitizer)!==null&&n!==void 0?n:this.sanitizer)!==null&&s!==void 0?s:void 0,linkHandler:(a=(o=e.linkHandler)!==null&&o!==void 0?o:this.linkHandler)!==null&&a!==void 0?a:void 0,latexTypesetter:(c=(l=e.latexTypesetter)!==null&&l!==void 0?l:this.latexTypesetter)!==null&&c!==void 0?c:void 0,markdownParser:(d=(u=e.markdownParser)!==null&&u!==void 0?u:this.markdownParser)!==null&&d!==void 0?d:void 0,translator:this.translator});return f._factories={...this._factories},f._ranks={...this._ranks},f._id=this._id,f}getFactory(e){return this._factories[e]}addFactory(e,t){t===void 0&&(t=e.defaultRank,t===void 0&&(t=100));for(let r of e.mimeTypes)this._factories[r]=e,this._ranks[r]={rank:t,id:this._id++};this._types=null}removeMimeType(e){delete this._factories[e],delete this._ranks[e],this._types=null}getRank(e){let t=this._ranks[e];return t&&t.rank}setRank(e,t){if(!this._ranks[e])return;let r=this._id++;this._ranks[e]={rank:t,id:r},this._types=null}};(function(i){class e{constructor(r){this._path=r.path,this._contents=r.contents}get path(){return this._path}set path(r){this._path=r}async resolveUrl(r){if(this.isLocal(r)){let n=encodeURI(du.PathExt.dirname(this.path));r=du.PathExt.resolve(n,r)}return r}async getDownloadUrl(r){return this.isLocal(r)?this._contents.getDownloadUrl(decodeURIComponent(r)):r}isLocal(r,n=!1){return this.isMalformed(r)?!1:du.URLExt.isLocal(r,n)||!!this._contents.driveName(decodeURI(r))}async resolvePath(r){let n=du.PageConfig.getOption("rootUri").replace("file://","");if(r.startsWith("~/")&&n.startsWith("/home/")&&(r=n.split("/").slice(0,3).join("/")+r.substring(1)),r.startsWith(n)||r.startsWith("./"))try{let s=r.replace(n,"");return{path:(await this._contents.get(s,{content:!1})).path,scope:"server"}}catch{return console.warn(`Could not resolve location of ${r} on server`),null}return{path:r,scope:"kernel"}}isMalformed(r){try{return decodeURI(r),!1}catch(n){if(n instanceof URIError)return!0;throw n}}}i.UrlResolver=e})(Bc||(Bc={}));(function(i){function e(t){return Object.keys(t).sort((r,n)=>{let s=t[r],o=t[n];return s.rank!==o.rank?s.rank-o.rank:s.id-o.id})}i.sortedTypes=e})(EI||(EI={}))});var $g,Rxe,Txe,Axe,Lxe,Y5=j(()=>{$g=L(Zr()),Rxe=new $g.Token("@jupyterlab/rendermime:IRenderMimeRegistry",'A service for the rendermime registry for the application. Use this to create renderers for various mime-types in your extension. Many times it will be easier to create a "mime renderer extension" rather than using this service directly.'),Txe=new $g.Token("@jupyterlab/rendermime:ILatexTypesetter","A service for the LaTeX typesetter for the application. Use this if you want to typeset math in your extension."),Axe=new $g.Token("@jupyterlab/rendermime:IMarkdownParser","A service for rendering markdown syntax as HTML content."),Lxe=new $g.Token("@jupyterlab/rendermime:IUrlResolverFactory","A factory for resolver of asset URLs.")});var Rx=j(()=>{a5();l5();W5();mI();wI();X5();K5();vI();Y5();xI()});var II,va,vm,J5=j(()=>{CI();Z1();Rx();Pn();II=L(Zr());As();va=class{constructor(e={}){if(this.clearNext=!1,this._lastStreamName="",this._trusted=!1,this._isDisposed=!1,this._stateChanged=new Me(this),this._changed=new Me(this),this._streamIndex=0,this._trusted=!!e.trusted,this.contentFactory=e.contentFactory||va.defaultContentFactory,this.list=new uL,e.values)for(let t of e.values){let r=this._add(t)-1;this.list.get(r).changed.connect(this._onGenericChange,this)}this.list.changed.connect(this._onListChanged,this)}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get length(){return this.list?this.list.length:0}get trusted(){return this._trusted}set trusted(e){if(e===this._trusted)return;let t=this._trusted=e;for(let r=0;re.toJSON()))}_add(e){let t=this._trusted;if(e=II.JSONExt.deepCopy(e),vm.normalize(e),zc(e)&&e.name===this._lastStreamName&&this.length>0&&this.shouldCombine({value:e,lastModel:this.list.get(this.length-1)})){let o=this.list.get(this.length-1).streamText,a=typeof e.text=="string"?e.text:e.text.join("");return this._streamIndex=vm.addText(this._streamIndex,o,a),this.length}if(zc(e)){typeof e.text!="string"&&(e.text=e.text.join(""));let{text:s,index:o}=vm.processText(0,e.text);this._streamIndex=o,e.text=s}let r=this._createItem({value:e,trusted:t}),n=this.list.push(r);return zc(e)?this._lastStreamName=e.name:this._lastStreamName="",n}shouldCombine(e){return!0}_createItem(e){return this.contentFactory.createOutputModel(e)}_onListChanged(e,t){switch(t.type){case"add":t.newValues.forEach(r=>{r.changed.connect(this._onGenericChange,this)});break;case"remove":t.oldValues.forEach(r=>{r.changed.disconnect(this._onGenericChange,this)});break;case"set":t.newValues.forEach(r=>{r.changed.connect(this._onGenericChange,this)}),t.oldValues.forEach(r=>{r.changed.disconnect(this._onGenericChange,this)});break;case"move":break;case"clear":t.oldValues.forEach(r=>{r.changed.disconnect(this._onGenericChange,this)});break}this._changed.emit(t)}_onGenericChange(e){let t,r=null;for(t=0;t=0?c+l:c}function r(o,a,l){if(l===void 0&&(l=""),!(a.includes("\b")||a.includes("\r")||a.includes(` +`)))return l=l.slice(0,o)+a+l.slice(o+a.length),{text:l,index:o+a.length};let c=o,u=-1,d=0,f=/[\n\b\r]/;for(;;){u=t(a,f,d);let h=a.slice(d,u===-1?a.length:u);if(l=l.slice(0,c)+h+l.slice(c+h.length),d=u+1,c+=h.length,u===-1)break;let m=a[u];if(m==="\b")c>0&&l[c-1]!==` +`&&(l=l.slice(0,c-1)+l.slice(c+1),c--);else if(m==="\r"){let p=!1;for(;!p;)c===0||l[c-1]===` +`?p=!0:c--}else if(m===` +`)l=l+` +`,c=l.length;else throw Error("This should not happen")}return{text:l,index:c}}i.processText=r;function n(o){return JSON.parse(JSON.stringify(o))}function s(o,a,l){let{text:c,index:u}=r(o,l,a.text),d=!1,f=0;for(;!d;)f===c.length?(f===a.text.length||a.remove(f,a.text.length),d=!0):f===a.text.length?f!==c.length&&(a.insert(a.text.length,n(c.slice(f))),d=!0):c[f]!==a.text[f]?(a.remove(f,a.text.length),a.insert(f,n(c.slice(f))),d=!0):f++;return u}i.addText=s})(vm||(vm={}))});var xm,Sl,Z5=j(()=>{xm=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Sl.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Sl.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Sl.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Sl.LinkedListNode(this,e),n=t,s=n.prev;return r.next=n,r.prev=s,n.prev=r,s.next=r,this._size++,r}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Sl.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let r=new Sl.LinkedListNode(this,e),n=t,s=n.next;return r.next=s,r.prev=n,n.next=r,s.prev=r,this._size++,r}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Sl.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(i){function e(t){let r=new i;return r.assign(t),r}i.from=e})(xm||(xm={}));(function(i){class e{constructor(r,n){this.list=null,this.next=null,this.prev=null,this.list=r,this.value=n}}i.LinkedListNode=e})(Sl||(Sl={}))});var En,jc,De,Q5=j(()=>{Pn();Z5();En=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},jc=class extends En{get isConflatable(){return!0}conflate(e){return!0}};(function(i){let e=null,t=(M=>N=>{let P=!1;return M.then(()=>!P&&N()),()=>{P=!0}})(Promise.resolve());function r(M,N){let P=f.get(M);if(!P||P.length===0){x(M,N);return}sc(ac(P),ee=>ee?_(ee,M,N):!0)&&x(M,N)}i.sendMessage=r;function n(M,N){if(!N.isConflatable){y(M,N);return}oc(d,W=>W.handler!==M||!W.msg||W.msg.type!==N.type||!W.msg.isConflatable?!1:W.msg.conflate(N))||y(M,N)}i.postMessage=n;function s(M,N){let P=f.get(M);P&&P.indexOf(N)!==-1||(P?P.push(N):f.set(M,[N]))}i.installMessageHook=s;function o(M,N){let P=f.get(M);if(!P)return;let W=P.indexOf(N);W!==-1&&(P[W]=null,I(P))}i.removeMessageHook=o;function a(M){let N=f.get(M);N&&N.length>0&&(z.fill(N,null),I(N));for(let P of d)P.handler===M&&(P.handler=null,P.msg=null)}i.clearData=a;function l(){p||e===null||(e(),e=null,p=!0,S(),p=!1)}i.flush=l;function c(){return m}i.getExceptionHandler=c;function u(M){let N=m;return m=M,N}i.setExceptionHandler=u;let d=new xm,f=new WeakMap,h=new Set,m=M=>{console.error(M)},p=!1;function _(M,N,P){let W=!0;try{typeof M=="function"?W=M(N,P):W=M.messageHook(N,P)}catch(ee){m(ee)}return W}function x(M,N){try{M.processMessage(N)}catch(P){m(P)}}function y(M,N){d.addLast({handler:M,msg:N}),e===null&&(e=t(S))}function S(){if(e=null,d.isEmpty)return;let M={handler:null,msg:null};for(d.addLast(M);;){let N=d.removeFirst();if(N===M)return;N.handler&&N.msg&&r(N.handler,N.msg)}}function I(M){h.size===0&&t(C),h.add(M)}function C(){h.forEach(b),h.clear()}function b(M){z.removeAllWhere(M,k)}function k(M){return M===null}})(De||(De={}))});var dr,sn,e3=j(()=>{lc();dr=class{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:r,distance:n}=this._scrollTarget,s=sn.SCROLL_EDGE_SIZE-n,o=Math.pow(s/sn.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*sn.SCROLL_EDGE_SIZE));switch(r){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});sn.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(n=>{this._resolve=n});let r=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(r),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let r=this.dragImage.style;r.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){sn.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=sn.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=sn.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,r=this._currentTarget,n=this._currentElement,s=sn.findElementBehindBackdrop(e,this.document);this._currentElement=s,s!==n&&s!==r&&sn.dispatchDragExit(this,r,s,e),s!==n&&s!==r&&(r=sn.dispatchDragEnter(this,s,r,e)),r!==t&&(this._currentTarget=r,sn.dispatchDragLeave(this,t,r,e));let o=sn.dispatchDragOver(this,r,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let r=this.dragImage.style;r.pointerEvents="none",r.position="fixed",r.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=sn.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=dr.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=dr.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=dr.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=dr.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(i){class e extends DragEvent{constructor(n,s){super(s.type,{bubbles:!0,cancelable:!0,altKey:n.altKey,button:n.button,clientX:n.clientX,clientY:n.clientY,ctrlKey:n.ctrlKey,detail:0,metaKey:n.metaKey,relatedTarget:s.related,screenX:n.screenX,screenY:n.screenY,shiftKey:n.shiftKey,view:window});let{drag:o}=s;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}i.Event=e;function t(r,n=document){return sn.overrideCursor(r,n)}i.overrideCursor=t})(dr||(dr={}));(function(i){i.SCROLL_EDGE_SIZE=20;function e(I,C){return d[I]&f[C]?I:"none"}i.validateAction=e;function t(I,C=document){if(I){if(r&&I==r.event)return r.element;i.cursorBackdrop.style.zIndex="-1000";let b=C.elementFromPoint(I.clientX,I.clientY);return i.cursorBackdrop.style.zIndex="",r={event:I,element:b},b}else{let b=i.cursorBackdrop.style.transform;if(n&&b===n.transform)return n.element;let k=i.cursorBackdrop.getBoundingClientRect();i.cursorBackdrop.style.zIndex="-1000";let M=C.elementFromPoint(k.left+k.width/2,k.top+k.height/2);return i.cursorBackdrop.style.zIndex="",n={transform:b,element:M},M}}i.findElementBehindBackdrop=t;let r=null,n=null;function s(I){let C=I.clientX,b=I.clientY,k=t(I);for(;k;k=k.parentElement){if(!k.hasAttribute("data-lm-dragscroll"))continue;let M=0,N=0;k===document.body&&(M=window.pageXOffset,N=window.pageYOffset);let P=k.getBoundingClientRect(),W=P.top+N,ee=P.left+M,be=ee+P.width,fe=W+P.height;if(C=be||b=fe)continue;let Y=C-ee+1,te=b-W+1,ie=be-C,me=fe-b,we=Math.min(Y,te,ie,me);if(we>i.SCROLL_EDGE_SIZE)continue;let He;switch(we){case me:He="bottom";break;case te:He="top";break;case ie:He="right";break;case Y:He="left";break;default:throw"unreachable"}let nt=k.scrollWidth-k.clientWidth,at=k.scrollHeight-k.clientHeight,Le;switch(He){case"top":Le=at>0&&k.scrollTop>0;break;case"left":Le=nt>0&&k.scrollLeft>0;break;case"right":Le=nt>0&&k.scrollLeft0&&k.scrollTop{b===S&&i.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",m,!0),i.cursorBackdrop.removeEventListener("scroll",p,!0),k.removeChild(i.cursorBackdrop))})}i.overrideCursor=h;function m(I){i.cursorBackdrop&&(i.cursorBackdrop.style.transform=`translate(${I.clientX}px, ${I.clientY}px)`)}function p(I){if(!i.cursorBackdrop)return;let C=t();if(!C)return;let b=C.closest("[data-lm-dragscroll]");b&&(b.scrollTop+=i.cursorBackdrop.scrollTop-x,b.scrollLeft+=i.cursorBackdrop.scrollLeft-x,_())}function _(){i.cursorBackdrop.scrollTop=x,i.cursorBackdrop.scrollLeft=x}let x=500;function y(){let I=document.createElement("div");return I.classList.add("lm-cursor-backdrop"),I}let S=0;i.cursorBackdrop=y()})(sn||(sn={}))});var kl,xa,ds,Wg,ue,Tx,wa,hu,ym,Hc,qg,Ug,Ao,El,kI,Ax,fu,MI,mu,RI,Vg,TI,us,uu,Lx,AI,wm,Cl,ya,In,t3,qZ,Fc,Ys,LI,Ji,pu,Fi,Il,yr,Sm,Nx,i3,r3,NI,n3,s3,o3=j(()=>{Pn();kl=L(Zr());Up();Q5();qp();As();e3();Ub();Vb();lc();qb();xa=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}};(function(i){function e(s,o){let a=s.length;if(a===0)return o;let l=0,c=0,u=0,d=0,f=0;for(let p=0;p0&&(d+=_.stretch,f++)}if(o===u)return 0;if(o<=l){for(let p=0;p=c){for(let p=0;p0&&p>h;){let _=p,x=d;for(let y=0;y0&&p>h;){let _=p/m;for(let x=0;x0&&p>h;){let _=p,x=d;for(let y=0;y=S.maxSize?(p-=S.maxSize-S.size,d-=S.stretch,S.size=S.maxSize,S.done=!0,m--,f--):(p-=I,S.size+=I)}}for(;m>0&&p>h;){let _=p/m;for(let x=0;x=y.maxSize?(p-=y.maxSize-y.size,y.size=y.maxSize,y.done=!0,m--):(p-=_,y.size+=_))}}}return 0}i.calc=e;function t(s,o,a){s.length===0||a===0||(a>0?r(s,o,a):n(s,o,-a))}i.adjust=t;function r(s,o,a){let l=0;for(let f=0;f<=o;++f){let h=s[f];l+=h.maxSize-h.size}let c=0;for(let f=o+1,h=s.length;f=0&&u>0;--f){let h=s[f],m=h.maxSize-h.size;m>=u?(h.sizeHint=h.size+u,u=0):(h.sizeHint=h.size+m,u-=m)}let d=a;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.size-m.minSize;p>=d?(m.sizeHint=m.size-d,d=0):(m.sizeHint=m.size-p,d-=p)}}function n(s,o,a){let l=0;for(let f=o+1,h=s.length;f0;++f){let m=s[f],p=m.maxSize-m.size;p>=u?(m.sizeHint=m.size+u,u=0):(m.sizeHint=m.size+p,u-=p)}let d=a;for(let f=o;f>=0&&d>0;--f){let h=s[f],m=h.size-h.minSize;m>=d?(h.sizeHint=h.size-d,d=0):(h.sizeHint=h.size-m,d-=m)}}})(ds||(ds={}));Wg=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new Me(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,Me.clearData(this))}},ue=class{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new Me(this),this._hiddenMode=ue.HiddenMode.Display,this.node=Tx.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(ue.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&ue.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),Me.clearData(this),De.clearData(this),ht.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(ue.Flag.IsDisposed)}get isAttached(){return this.testFlag(ue.Flag.IsAttached)}get isHidden(){return this.testFlag(ue.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return Tx.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==ue.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new ue.ChildMessage("child-removed",this);De.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new ue.ChildMessage("child-added",this);De.sendMessage(this._parent,t)}this.isDisposed||De.sendMessage(this,ue.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(ue.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){De.postMessage(this,ue.Msg.UpdateRequest)}fit(){De.postMessage(this,ue.Msg.FitRequest)}activate(){De.postMessage(this,ue.Msg.ActivateRequest)}close(){De.sendMessage(this,ue.Msg.CloseRequest)}show(){if(this.testFlag(ue.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&De.sendMessage(this,ue.Msg.BeforeShow),this.clearFlag(ue.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&De.sendMessage(this,ue.Msg.AfterShow),this.parent)){let e=new ue.ChildMessage("child-shown",this);De.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(ue.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&De.sendMessage(this,ue.Msg.BeforeHide),this.setFlag(ue.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&De.sendMessage(this,ue.Msg.AfterHide),this.parent)){let e=new ue.ChildMessage("child-hidden",this);De.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(ue.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(ue.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(ue.Flag.IsVisible),this.setFlag(ue.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(ue.Flag.IsVisible),this.clearFlag(ue.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&ue.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case ue.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case ue.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case ue.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case ue.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case ue.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case ue.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(i){(function(s){s[s.Display=0]="Display",s[s.Scale=1]="Scale",s[s.ContentVisibility=2]="ContentVisibility"})(i.HiddenMode||(i.HiddenMode={})),function(s){s[s.IsDisposed=1]="IsDisposed",s[s.IsAttached=2]="IsAttached",s[s.IsHidden=4]="IsHidden",s[s.IsVisible=8]="IsVisible",s[s.DisallowLayout=16]="DisallowLayout"}(i.Flag||(i.Flag={})),function(s){s.BeforeShow=new En("before-show"),s.AfterShow=new En("after-show"),s.BeforeHide=new En("before-hide"),s.AfterHide=new En("after-hide"),s.BeforeAttach=new En("before-attach"),s.AfterAttach=new En("after-attach"),s.BeforeDetach=new En("before-detach"),s.AfterDetach=new En("after-detach"),s.ParentChanged=new En("parent-changed"),s.UpdateRequest=new jc("update-request"),s.FitRequest=new jc("fit-request"),s.ActivateRequest=new jc("activate-request"),s.CloseRequest=new jc("close-request")}(i.Msg||(i.Msg={}));class e extends En{constructor(o,a){super(o),this.child=a}}i.ChildMessage=e;class t extends En{constructor(o,a){super("resize"),this.width=o,this.height=a}}i.ResizeMessage=t,function(s){s.UnknownSize=new s(-1,-1)}(t=i.ResizeMessage||(i.ResizeMessage={}));function r(s,o,a=null){if(s.parent)throw new Error("Cannot attach a child widget.");if(s.isAttached||s.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");De.sendMessage(s,i.Msg.BeforeAttach),o.insertBefore(s.node,a),De.sendMessage(s,i.Msg.AfterAttach)}i.attach=r;function n(s){if(s.parent)throw new Error("Cannot detach a child widget.");if(!s.isAttached||!s.node.isConnected)throw new Error("Widget is not attached.");De.sendMessage(s,i.Msg.BeforeDetach),s.node.parentNode.removeChild(s.node),De.sendMessage(s,i.Msg.AfterDetach)}i.detach=n})(ue||(ue={}));(function(i){i.titleProperty=new ht({name:"title",create:t=>new Wg({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}i.createNode=e})(Tx||(Tx={}));wa=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,Me.clearData(this),ht.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)De.sendMessage(t,ue.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)De.sendMessage(t,ue.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)De.sendMessage(t,e)}onAfterAttach(e){for(let t of this)De.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)De.sendMessage(t,e)}onAfterDetach(e){for(let t of this)De.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||De.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||De.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||De.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||De.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(i){function e(s){return ym.horizontalAlignmentProperty.get(s)}i.getHorizontalAlignment=e;function t(s,o){ym.horizontalAlignmentProperty.set(s,o)}i.setHorizontalAlignment=t;function r(s){return ym.verticalAlignmentProperty.get(s)}i.getVerticalAlignment=r;function n(s,o){ym.verticalAlignmentProperty.set(s,o)}i.setVerticalAlignment=n})(wa||(wa={}));hu=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=Ce.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,r,n){let s=Math.max(this._minWidth,Math.min(r,this._maxWidth)),o=Math.max(this._minHeight,Math.min(n,this._maxHeight));if(s"center",changed:e}),i.verticalAlignmentProperty=new ht({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(ym||(ym={}));Hc=class extends wa{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let r=this._widgets.indexOf(t),n=Math.max(0,Math.min(e,this._widgets.length));if(r===-1){z.insert(this._widgets,n,t),this.parent&&this.attachWidget(n,t);return}n===this._widgets.length&&n--,r!==n&&(z.move(this._widgets,r,n),this.parent&&this.moveWidget(r,n,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=z.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let r=this.parent.node.children[e];this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,r),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterAttach)}moveWidget(e,t,r){this.parent.isAttached&&De.sendMessage(r,ue.Msg.BeforeDetach),this.parent.node.removeChild(r.node),this.parent.isAttached&&De.sendMessage(r,ue.Msg.AfterDetach);let n=this.parent.node.children[t];this.parent.isAttached&&De.sendMessage(r,ue.Msg.BeforeAttach),this.parent.node.insertBefore(r.node,n),this.parent.isAttached&&De.sendMessage(r,ue.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterDetach)}};(function(i){function e(t){return Math.max(0,Math.floor(t))}i.clampDimension=e})(qg||(qg={}));Ug=qg,Ao=class extends Hc{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=qg.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=qg.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return El.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let r=this._sizers.length,n=e.slice(0,r);for(;n.length0&&(s.sizeHint=s.size);ds.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let r=new hu(t),n=El.createHandle(this.renderer),s=El.averageSize(this._sizers),o=El.createSizer(s);z.insert(this._items,e,r),z.insert(this._sizers,e,o),z.insert(this._handles,e,n),this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(n),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),z.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let r=z.removeAt(this._items,e),n=z.removeAt(this._handles,e);z.removeAt(this._sizers,e),this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(n),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,r,n,s,o,a){let l=this._items[e];if(l.isHidden)return;let c=this._handles[e].style;t?(r+=this.widgetOffset,l.update(r,n,a,s),r+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${this._spacing}px`,c.height=`${s}px`):(n+=this.widgetOffset,l.update(r,n,o,a),n+=a,c.top=`${n}px`,c.left=`${r}px`,c.width=`${o}px`,c.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,c=this._items.length;l0&&(d.sizeHint=d.size),u.isHidden){d.minSize=0,d.maxSize=0;continue}u.fit(),d.stretch=Ao.getStretch(u.widget),r?(d.minSize=u.minWidth,d.maxSize=u.maxWidth,n+=u.minWidth,s=Math.max(s,u.minHeight)):(d.minSize=u.minHeight,d.maxSize=u.maxHeight,s+=u.minHeight,n=Math.max(n,u.minWidth))}let o=this._box=Ce.boxSizing(this.parent.node);n+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${n}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&De.sendMessage(this.parent.parent,ue.Msg.FitRequest),this._dirty&&De.sendMessage(this.parent,ue.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let r=0;for(let d=0,f=this._items.length;d0){let d;if(u?d=Math.max(0,o-this._fixed):d=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let h of this._sizers)h.sizeHint*=d;this._hasNormedSizes=!1}let f=ds.calc(this._sizers,d);if(f>0)switch(this._alignment){case"start":break;case"center":l=0,c=f/2;break;case"end":l=0,c=f;break;case"justify":l=f/r,c=0;break;default:throw"unreachable"}}for(let d=0,f=this._items.length;d0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:s});function e(o){let a=new xa;return a.sizeHint=Math.floor(o),a}i.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}i.createHandle=t;function r(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}i.averageSize=r;function n(o){let a=o.length;if(a===0)return[];let l=o.reduce((c,u)=>c+Math.abs(u),0);return l===0?o.map(c=>1/a):o.map(c=>c/l)}i.normalize=n;function s(o){o.parent&&o.parent.layout instanceof Ao&&o.parent.fit()}})(El||(El={}));kI=class extends Ao{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=Ug.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let r=this._titles[e],n=r.classList.contains("lm-mod-expanded"),s=Ax.createTitle(this.renderer,t.title,n);this._titles[e]=s,this.parent.node.replaceChild(s,r)}insertWidget(e,t){t.id||(t.id=`id-${kl.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let r=Ax.createTitle(this.renderer,t.title);z.insert(this._titles,e,r),this.parent.node.appendChild(r),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",r.id),super.attachWidget(e,t)}moveWidget(e,t,r){z.move(this._titles,e,t),super.moveWidget(e,t,r)}detachWidget(e,t){let r=z.removeAt(this._titles,e);this.parent.node.removeChild(r),super.detachWidget(e,t)}updateItemPosition(e,t,r,n,s,o,a){let l=this._titles[e].style;l.top=`${n}px`,l.left=`${r}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${s}px`:l.width=`${o}px`,super.updateItemPosition(e,t,r,n,s,o,a)}};(function(i){function e(t,r,n=!0){let s=t.createSectionTitle(r);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${r.label} Section`),s.setAttribute("aria-expanded",n?"true":"false"),s.setAttribute("aria-controls",r.owner.id),n&&s.classList.add("lm-mod-expanded"),s}i.createTitle=e})(Ax||(Ax={}));fu=class extends ue{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=MI.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}};(function(i){function e(t){return t.layout||new Hc}i.createLayout=e})(MI||(MI={}));mu=class extends fu{constructor(e={}){super({layout:RI.createLayout(e)}),this._handleMoved=new Me(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=z.findFirstIndex(t.handles,c=>c.contains(e.target));if(r===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let n,s=t.handles[r],o=s.getBoundingClientRect();t.orientation==="horizontal"?n=e.clientX-o.left:n=e.clientY-o.top;let a=window.getComputedStyle(s),l=dr.overrideCursor(a.cursor);this._pressData={index:r,delta:n,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,r=this.layout,n=this.node.getBoundingClientRect();r.orientation==="horizontal"?t=e.clientX-n.left-this._pressData.delta:t=e.clientY-n.top-this._pressData.delta,r.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(i){class e{createHandle(){let s=document.createElement("div");return s.className="lm-SplitPanel-handle",s}}i.Renderer=e,i.defaultRenderer=new e;function t(n){return Ao.getStretch(n)}i.getStretch=t;function r(n,s){Ao.setStretch(n,s)}i.setStretch=r})(mu||(mu={}));(function(i){function e(t){return t.layout||new Ao({renderer:t.renderer||mu.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}i.createLayout=e})(RI||(RI={}));Vg=class extends mu{constructor(e={}){super({...e,layout:TI.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new Me(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=z.findFirstIndex(this.widgets,r=>r.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,r=t.widgets[e];if(!r)return;let n=r.isHidden,s=t.absoluteSizes(),o=(n?-1:1)*this.spacing,a=s.reduce((c,u)=>c+u),l=[...s];if(n){let c=this._widgetSizesCache.get(r);if(!c)return;l[e]+=c;let u=l.map(d=>d-c>0).lastIndexOf(!0);u===-1?l.forEach((d,f)=>{f!==e&&(l[f]-=s[f]/a*(c-o))}):l[u]-=c-o}else{let c=s[e];this._widgetSizesCache.set(r,c),l[e]=0;let u=l.map(d=>d>0).lastIndexOf(!0);if(u===-1)return;l[u]=s[u]+c+o}return l.map(c=>c/(a+o))}_evtClick(e){let t=e.target;if(t){let r=z.findFirstIndex(this.titles,n=>n.contains(t));r>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(r))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,r=!1;if(t){let n=z.findFirstIndex(this.titles,s=>s.contains(t));if(n>=0){let s=e.keyCode.toString();if(e.key.match(/Space|Enter/)||s.match(/13|32/))t.click(),r=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||s.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||s.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||s.match(/37|38/)?-1:1,a=this.titles.length,l=(n+a+o)%a;this.titles[l].focus(),r=!0}else e.key==="End"||s==="35"?(this.titles[this.titles.length-1].focus(),r=!0):(e.key==="Home"||s==="36")&&(this.titles[0].focus(),r=!0)}r&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],r=this.layout.widgets[e],n=this._computeWidgetSize(e);n&&this.setRelativeSizes(n,!1),r.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),r.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),r.hide()),this._expansionToggled.emit(e)}};(function(i){class e extends mu.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(r){return document.createElement("span")}createSectionTitle(r){let n=document.createElement("h3");n.setAttribute("tabindex","0"),n.id=this.createTitleKey(r),n.className=this.titleClassName;for(let a in r.dataset)n.dataset[a]=r.dataset[a];let s=n.appendChild(this.createCollapseIcon(r));s.className="lm-AccordionPanel-titleCollapser";let o=n.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=r.label,o.title=r.caption||r.label,n}createTitleKey(r){let n=this._titleKeys.get(r);return n===void 0&&(n=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(r,n)),n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e})(Vg||(Vg={}));(function(i){function e(t){return t.layout||new kI({renderer:t.renderer||Vg.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}i.createLayout=e})(TI||(TI={}));us=class extends Hc{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=Ug.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=Ug.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){z.insert(this._items,e,new hu(t)),z.insert(this._sizers,e,new xa),this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),z.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);z.removeAt(this._sizers,e),this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterDetach),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a0)switch(this._alignment){case"start":break;case"center":c=0,u=l/2;break;case"end":c=0,u=l;break;case"justify":c=l/r,u=0;break;default:throw"unreachable"}for(let d=0,f=this._items.length;d0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r}),i.sizeBasisProperty=new ht({name:"sizeBasis",create:()=>0,coerce:(n,s)=>Math.max(0,Math.floor(s)),changed:r});function e(n){return n==="left-to-right"||n==="right-to-left"}i.isHorizontal=e;function t(n){return Math.max(0,Math.floor(n))}i.clampSpacing=t;function r(n){n.parent&&n.parent.layout instanceof us&&n.parent.fit()}})(uu||(uu={}));Lx=class extends fu{constructor(e={}){super({layout:AI.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(i){function e(s){return us.getStretch(s)}i.getStretch=e;function t(s,o){us.setStretch(s,o)}i.setStretch=t;function r(s){return us.getSizeBasis(s)}i.getSizeBasis=r;function n(s,o){us.setSizeBasis(s,o)}i.setSizeBasis=n})(Lx||(Lx={}));(function(i){function e(t){return t.layout||new us(t)}i.createLayout=e})(AI||(AI={}));wm=class extends ue{constructor(e){super({node:Cl.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(ue.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||wm.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=Cl.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(r=>Cl.createItem(this.commands,r));return t.forEach(r=>this._items.push(r)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){z.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){Ht.render(null,this.contentNode);return}let t=this.inputNode.value,r=this.contentNode,n=this._results;if(n||(n=this._results=Cl.search(this._items,t),this._activeIndex=t?z.findFirstIndex(n,Cl.canActivate):-1),!t&&n.length===0){Ht.render(null,r);return}if(t&&n.length===0){let l=this.renderer.renderEmptyMessage({query:t});Ht.render(l,r);return}let s=this.renderer,o=this._activeIndex,a=new Array(n.length);for(let l=0,c=n.length;l=n.length)r.scrollTop=0;else{let l=r.children[o];Ce.scrollIntoViewIfNeeded(r,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=z.findFirstIndex(this.contentNode.children,r=>r.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,r=eM-N),b=y.slice(0,C),k=y.slice(C);for(let M=0,N=k.length;Mp.command===h&&kl.JSONExt.deepEqual(p.args,m))||null}}})(Cl||(Cl={}));ya=class extends ue{constructor(e){super({node:In.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new Me(this),this._menuRequested=new Me(this),this.addClass("lm-Menu"),this.setFlag(ue.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||ya.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!In.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,r=t{this.activeIndex=a}})}Ht.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let r=this._parentMenu;r&&(this._parentMenu=null,r._childIndex=-1,r._childMenu=null,r.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let r=Ns().keyForKeydownEvent(e);if(!r)return;let n=this._activeIndex+1,s=In.findMnemonic(this._items,r,n);s.index!==-1&&!s.multiple?(this.activeIndex=s.index,this.triggerActiveItem()):s.index!==-1?this.activeIndex=s.index:s.auto!==-1&&(this.activeIndex=s.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let r=this.activeItem;!r||r.type!=="submenu"||!r.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:r}=e;if(Ce.hitTest(this._childMenu.node,t,r)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(In.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let r=t.submenu;if(r===this._childMenu)return;ya.saveWindowData(),this._closeChildMenu(),this._childMenu=r,this._childIndex=this._activeIndex,r._parentMenu=this,De.sendMessage(this,ue.Msg.UpdateRequest);let n=this.contentNode.children[this._activeIndex];In.openSubmenu(r,n),e&&(r.activeIndex=-1,r.activateNextItem()),r.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},In.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},In.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){In.saveWindowData()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,tabindex:"0",onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r),this.renderShortcut(r),this.renderSubmenu(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.item.icon,r.item.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-Menu-itemLabel"},n)}renderShortcut(r){let n=this.formatShortcut(r);return ye.div({className:"lm-Menu-itemShortcut"},n)}renderSubmenu(r){return ye.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(r){let n="lm-Menu-item";r.item.isEnabled||(n+=" lm-mod-disabled"),r.item.isToggled&&(n+=" lm-mod-toggled"),r.item.isVisible||(n+=" lm-mod-hidden"),r.active&&(n+=" lm-mod-active"),r.collapsed&&(n+=" lm-mod-collapsed");let s=r.item.className;return s&&(n+=` ${s}`),n}createItemDataset(r){let n,{type:s,command:o,dataset:a}=r.item;return s==="command"?n={...a,type:s,command:o}:n={...a,type:s},n}createIconClass(r){let n="lm-Menu-itemIcon",s=r.item.iconClass;return s?`${n} ${s}`:n}createItemARIA(r){let n={};switch(r.item.type){case"separator":n.role="presentation";break;case"submenu":n["aria-haspopup"]="true",r.item.isEnabled||(n["aria-disabled"]="true");break;default:r.item.isEnabled||(n["aria-disabled"]="true"),r.item.isToggled?(n.role="menuitemcheckbox",n["aria-checked"]="true"):n.role="menuitem"}return n}formatLabel(r){let{label:n,mnemonic:s}=r.item;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-Menu-itemMnemonic"},l);return[o,c,a]}formatShortcut(r){let n=r.item.keyBinding;return n?Qr.formatKeystroke(n.keys):null}}i.Renderer=e,i.defaultRenderer=new e})(ya||(ya={}));(function(i){i.TIMER_DELAY=300,i.SUBMENU_OVERLAP=3;let e=null,t=0;function r(){return t>0?(t--,e):u()}function n(){e=u(),t++}i.saveWindowData=n;function s(){let p=document.createElement("div"),_=document.createElement("ul");return _.className="lm-Menu-content",p.appendChild(_),_.setAttribute("role","menu"),p.tabIndex=0,p}i.createNode=s;function o(p){return p.type!=="separator"&&p.isEnabled&&p.isVisible}i.canActivate=o;function a(p,_){return new m(p.commands,_)}i.createItem=a;function l(p,_,x){for(let y=p;y;y=y.childMenu)if(Ce.hitTest(y.node,_,x))return!0;return!1}i.hitTestMenus=l;function c(p){let _=new Array(p.length);z.fill(_,!1);let x=0,y=p.length;for(;x=0;--S){let C=p[S];if(C.isVisible){if(C.type!=="separator")break;_[S]=!0}}let I=!1;for(;++xM+P&&(_=M+P-Y),!S&&x+te>N+W&&(x>N+W?x=N+W-te:x=x-te),fe.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,x)}px`,fe.opacity="1"}i.openRootMenu=d;function f(p,_){let x=r(),y=x.pageXOffset,S=x.pageYOffset,I=x.clientWidth,C=x.clientHeight;De.sendMessage(p,ue.Msg.UpdateRequest);let b=C,k=p.node,M=k.style;M.opacity="0",M.maxHeight=`${b}px`,ue.attach(p,document.body);let{width:N,height:P}=k.getBoundingClientRect(),W=Ce.boxSizing(p.node),ee=_.getBoundingClientRect(),be=ee.right-i.SUBMENU_OVERLAP;be+N>y+I&&(be=ee.left+i.SUBMENU_OVERLAP-N);let fe=ee.top-W.borderTop-W.paddingTop;fe+P>S+C&&(fe=ee.bottom+W.borderBottom+W.paddingBottom-P),M.transform=`translate(${Math.max(0,be)}px, ${Math.max(0,fe)}px`,M.opacity="1"}i.openSubmenu=f;function h(p,_,x){let y=-1,S=-1,I=!1,C=_.toUpperCase();for(let b=0,k=p.length;b=0&&Wy.command===_&&kl.JSONExt.deepEqual(y.args,x))||null}return null}}})(In||(In={}));(function(i){function e(o,a){let l=r(o.selector),c=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:c,id:a}}i.createItem=e;function t(o,a,l,c){let u=a.target;if(!u)return null;let d=a.currentTarget;if(!d||!d.contains(u)&&(u=document.elementFromPoint(a.clientX,a.clientY),!u||!d.contains(u)))return null;let f=[],h=o.slice();for(;u!==null;){let m=[];for(let p=0,_=h.length;p<_;++p){let x=h[p];x&&tr.matches(u,x.selector)&&(m.push(x),h[p]=null)}if(m.length!==0&&(l&&m.sort(c?s:n),f.push(...m)),u===d)break;u=u.parentElement}return l||f.sort(c?s:n),f}i.matchItems=t;function r(o){if(o.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${o}`);if(!tr.isValid(o))throw new Error(`Invalid selector: ${o}`);return o}function n(o,a){let l=o.rank,c=a.rank;return l!==c?l=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,r=this._titles[t]||null,n=e,s=this._titles[n]||null;this._currentIndex=n,this._previousTitle=r,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:r,currentIndex:n,currentTitle:s})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let r=Ys.asTitle(t),n=this._titles.indexOf(r),s=Math.max(0,Math.min(e,this._titles.length));return n===-1?(z.insert(this._titles,s,r),r.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,r),r):(s===this._titles.length&&s--,n===s||(z.move(this._titles,n,s),this.update(),this._adjustCurrentForMove(n,s)),r)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=z.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let r of this._titles)r.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let r=this._titles,n=this.renderer,s=this.currentTitle,o=new Array(r.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,c=r.length;lCe.hitTest(o,e.clientX,e.clientY));if(r===-1)return;let n=this.titles[r],s=t[r].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let o=n.label||"",a=s.innerHTML;s.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,s.appendChild(l);let c=()=>{l.removeEventListener("blur",c),s.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",u=>u.stopPropagation()),l.addEventListener("blur",c),l.addEventListener("keydown",u=>{u.key==="Enter"?(l.value!==""&&(n.label=n.caption=l.value),c()):u.key==="Escape"&&c()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,r,n;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let s=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(s))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=z.findFirstIndex(this.contentNode.children,a=>a.contains(s));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(qZ.includes(e.key)){let s=[...this.contentNode.children];if(this.addButtonEnabled&&s.push(this.addButtonNode),s.length<=1)return;e.preventDefault(),e.stopPropagation();let o=s.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=s[o+1])!==null&&t!==void 0?t:s[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(r=s[o-1])!==null&&r!==void 0?r:s[s.length-1]:e.key==="Home"?a=s[0]:e.key==="End"&&(a=s[s.length-1]),a&&((n=s[o])===null||n===void 0||n.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),r=this.contentNode.children,n=z.findFirstIndex(r,o=>Ce.hitTest(o,e.clientX,e.clientY));if(n===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:r[n],index:n,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let s=r[n].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===n?this.currentIndex=-1:this.currentIndex=n,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let r=this.contentNode.children;if(!(!t.dragActive&&!Ys.dragExceeded(t,e))){if(!t.dragActive){let n=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=n.width,t.tabPressPos=t.pressX-n.left):(t.tabPos=t.tab.offsetTop,t.tabSize=n.height,t.tabPressPos=t.pressY-n.top),t.tabPressOffset={x:t.pressX-n.left,y:t.pressY-n.top},t.tabLayout=Ys.snapTabLayout(r,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=dr.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&Ys.detachExceeded(t,e)){t.detachRequested=!0;let n=t.index,s=e.clientX,o=e.clientY,a=r[n],l=this._titles[n];if(this._tabDetachRequested.emit({index:n,title:l,tab:a,clientX:s,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}Ys.layoutTabs(r,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let s=this.contentNode.children,o=z.findFirstIndex(s,c=>Ce.hitTest(c,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=s[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;Ys.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let r=Ys.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,Ys.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let n=t.index,s=t.targetIndex;s===-1||n===s||(z.move(this._titles,n,s),this._adjustCurrentForMove(n,s),this._tabMoved.emit({fromIndex:n,toIndex:s,title:this._titles[s]}),De.sendMessage(this,ue.Msg.UpdateRequest))},r)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(Ys.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let r=this.currentTitle,n=this._currentIndex,s=this.insertBehavior;if(s==="select-tab"||s==="select-tab-if-needed"&&n===-1){this._currentIndex=e,this._previousTitle=r,this._currentChanged.emit({previousIndex:n,previousTitle:r,currentIndex:e,currentTitle:t});return}n>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let r=this._currentIndex,n=this.removeBehavior;if(r!==e){r>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(n==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(n==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(i){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(r){let n=r.title.caption,s=this.createTabKey(r),o=s,a=this.createTabStyle(r),l=this.createTabClass(r),c=this.createTabDataset(r),u=this.createTabARIA(r);return r.title.closable?ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r),this.renderCloseIcon(r)):ye.li({id:o,key:s,className:l,title:n,style:a,dataset:c,...u},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let{title:n}=r,s=this.createIconClass(r);return ye.div({className:s},n.icon,n.iconLabel)}renderLabel(r){return ye.div({className:"lm-TabBar-tabLabel"},r.title.label)}renderCloseIcon(r){return ye.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(r){let n=this._tabKeys.get(r.title);return n===void 0&&(n=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(r.title,n)),n}createTabStyle(r){return{zIndex:`${r.zIndex}`}}createTabClass(r){let n="lm-TabBar-tab";return r.title.className&&(n+=` ${r.title.className}`),r.title.closable&&(n+=" lm-mod-closable"),r.current&&(n+=" lm-mod-current"),n}createTabDataset(r){return r.title.dataset}createTabARIA(r){var n;return{role:"tab","aria-selected":r.current.toString(),tabindex:`${(n=r.tabIndex)!==null&&n!==void 0?n:"-1"}`}}createIconClass(r){let n="lm-TabBar-tabIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}}e._nInstance=0,i.Renderer=e,i.defaultRenderer=new e,i.addButtonSelector=".lm-TabBar-addButton"})(Fc||(Fc={}));(function(i){i.DRAG_THRESHOLD=5,i.DETACH_THRESHOLD=20;function e(){let u=document.createElement("div"),d=document.createElement("ul");d.setAttribute("role","tablist"),d.className="lm-TabBar-content",u.appendChild(d);let f=document.createElement("div");return f.className="lm-TabBar-addButton lm-mod-hidden",f.setAttribute("tabindex","-1"),f.setAttribute("role","button"),u.appendChild(f),u}i.createNode=e;function t(u){return u instanceof Wg?u:new Wg(u)}i.asTitle=t;function r(u){let d=window.getComputedStyle(u);return 1e3*(parseFloat(d.transitionDuration)||0)}i.parseTransitionDuration=r;function n(u,d){let f=new Array(u.length);for(let h=0,m=u.length;h=i.DRAG_THRESHOLD||h>=i.DRAG_THRESHOLD}i.dragExceeded=s;function o(u,d){let f=u.contentRect;return d.clientX=f.right+i.DETACH_THRESHOLD||d.clientY=f.bottom+i.DETACH_THRESHOLD}i.detachExceeded=o;function a(u,d,f,h){let m,p,_,x;h==="horizontal"?(m=d.pressX,p=f.clientX-d.contentRect.left,_=f.clientX,x=d.contentRect.width):(m=d.pressY,p=f.clientY-d.contentRect.top,_=f.clientY,x=d.contentRect.height);let y=d.index,S=p-d.tabPressPos,I=S+d.tabSize;for(let C=0,b=u.length;C>1);if(Cd.index&&I>N)k=`${-d.tabSize-M.margin}px`,y=Math.max(y,C);else if(C===d.index){let P=_-m,W=x-(d.tabPos+d.tabSize);k=`${Math.max(-d.tabPos,Math.min(P,W))}px`}else k="";h==="horizontal"?u[C].style.left=k:u[C].style.top=k}d.targetIndex=y}i.layoutTabs=a;function l(u,d){let f;d==="horizontal"?f=u.contentRect.width:f=u.contentRect.height;let h;if(u.targetIndex===u.index)h=0;else if(u.targetIndex>u.index){let _=u.tabLayout[u.targetIndex];h=_.pos+_.size-u.tabSize-u.tabPos}else h=u.tabLayout[u.targetIndex].pos-u.tabPos;let m=f-(u.tabPos+u.tabSize),p=Math.max(-u.tabPos,Math.min(h,m));d==="horizontal"?u.tab.style.left=`${p}px`:u.tab.style.top=`${p}px`}i.finalizeTabPosition=l;function c(u,d){for(let f of u)d==="horizontal"?f.style.left="":f.style.top=""}i.resetTabPositions=c})(Ys||(Ys={}));LI=class extends wa{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=Ug.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:ue.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let r of t.titles)r.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=Ug.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():Si()}widgets(){return this._root?this._root.iterUserWidgets():Si()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():Si()}tabBars(){return this._root?this._root.iterTabBars():Si()}handles(){return this._root?this._root.iterHandles():Si()}moveHandle(e,t,r){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let s=this._root.findSplitNode(e);if(!s)return;let o;s.node.orientation==="horizontal"?o=t-e.offsetLeft:o=r-e.offsetTop,o!==0&&(s.node.holdSizes(),ds.adjust(s.node.sizers,s.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,r;e.main?r=Ji.normalizeAreaConfig(e.main,t):r=null;let n=this.widgets(),s=this.tabBars(),o=this.handles();this._root=null;for(let a of n)t.has(a)||(a.parent=null);for(let a of s)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;r?this._root=Ji.realizeAreaConfig(r,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let r=t.ref||null,n=t.mode||"tab-after",s=null;if(this._root&&r&&(s=this._root.findTabNode(r)),r&&!s)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,n){case"tab-after":this._insertTab(e,r,s,!0);break;case"tab-before":this._insertTab(e,r,s,!1);break;case"split-top":this._insertSplit(e,r,s,"vertical",!1);break;case"split-left":this._insertSplit(e,r,s,"horizontal",!1);break;case"split-right":this._insertSplit(e,r,s,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,r,s,"vertical",!0);break;case"merge-top":this._insertSplit(e,r,s,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,r,s,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,r,s,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,r,s,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=Ce.boxSizing(this.parent.node));let r=this.parent.node.getBoundingClientRect(),n=e-r.left-this._box.borderLeft,s=t-r.top-this._box.borderTop,o=this._root.hitTestTabNodes(n,s);if(!o)return null;let{tabBar:a,top:l,left:c,width:u,height:d}=o,f=this._box.borderLeft+this._box.borderRight,h=this._box.borderTop+this._box.borderBottom,m=r.width-f-(c+u),p=r.height-h-(l+d);return{tabBar:a,x:n,y:s,top:l,left:c,right:m,bottom:p,width:u,height:d}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new hu(e)),this.parent.isAttached&&De.sendMessage(e,ue.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&De.sendMessage(e,ue.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&De.sendMessage(e,ue.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&De.sendMessage(e,ue.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(Ji.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===ue.HiddenMode.Scale&&t.tabBar.titles.length==1){let f=t.tabBar.titles[0].owner;f.hiddenMode=ue.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let r=t.parent;t.parent=null;let n=z.removeFirstOf(r.children,t),s=z.removeAt(r.handles,n);if(z.removeAt(r.sizers,n),s.parentNode&&s.parentNode.removeChild(s),r.children.length>1){r.syncHandles();return}let o=r.parent;r.parent=null;let a=r.children[0],l=r.handles[0];if(r.children.length=0,r.handles.length=0,r.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===r){a.parent=null,this._root=a;return}let c=o,u=c.children.indexOf(r);if(a instanceof Ji.TabLayoutNode){a.parent=c,c.children[u]=a;return}let d=z.removeAt(c.handles,u);z.removeAt(c.children,u),z.removeAt(c.sizers,u),d.parentNode&&d.parentNode.removeChild(d);for(let f=0,h=a.children.length;f=this._left+this._width||m=this._top+this._height?null:this}createConfig(){let h=this.tabBar.titles.map(p=>p.owner),m=this.tabBar.currentIndex;return{type:"tab-area",widgets:h,currentIndex:m}}holdAllSizes(){}fit(h,m){let p=0,_=0,x=1/0,y=1/0,S=m.get(this.tabBar),I=this.tabBar.currentTitle,C=I?m.get(I.owner):void 0,[b,k]=this.sizers;return S&&S.fit(),C&&C.fit(),S&&!S.isHidden?(p=Math.max(p,S.minWidth),_+=S.minHeight,b.minSize=S.minHeight,b.maxSize=S.maxHeight):(b.minSize=0,b.maxSize=0),C&&!C.isHidden?(p=Math.max(p,C.minWidth),_+=C.minHeight,k.minSize=C.minHeight,k.maxSize=1/0):(k.minSize=0,k.maxSize=1/0),{minWidth:p,minHeight:_,maxWidth:x,maxHeight:y}}update(h,m,p,_,x,y){this._top=m,this._left=h,this._width=p,this._height=_;let S=y.get(this.tabBar),I=this.tabBar.currentTitle,C=I?y.get(I.owner):void 0;if(ds.calc(this.sizers,_),S&&!S.isHidden){let b=this.sizers[0].size;S.update(h,m,p,b),m+=b}if(C&&!C.isHidden){let b=this.sizers[1].size;C.update(h,m,p,b)}}}i.TabLayoutNode=n;class s{constructor(h){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=h}*iterAllWidgets(){for(let h of this.children)yield*h.iterAllWidgets()}*iterUserWidgets(){for(let h of this.children)yield*h.iterUserWidgets()}*iterSelectedWidgets(){for(let h of this.children)yield*h.iterSelectedWidgets()}*iterTabBars(){for(let h of this.children)yield*h.iterTabBars()}*iterHandles(){yield*this.handles;for(let h of this.children)yield*h.iterHandles()}findTabNode(h){for(let m=0,p=this.children.length;m_.createConfig());return{type:"split-area",orientation:h,children:p,sizes:m}}syncHandles(){this.handles.forEach((h,m)=>{h.setAttribute("data-orientation",this.orientation),m===this.handles.length-1?h.classList.add("lm-mod-hidden"):h.classList.remove("lm-mod-hidden")})}holdSizes(){for(let h of this.sizers)h.sizeHint=h.size}holdAllSizes(){for(let h of this.children)h.holdAllSizes();this.holdSizes()}normalizeSizes(){let h=this.sizers.length;if(h===0)return;this.holdSizes();let m=this.sizers.reduce((p,_)=>p+_.sizeHint,0);if(m===0)for(let p of this.sizers)p.size=p.sizeHint=1/h;else for(let p of this.sizers)p.size=p.sizeHint/=m;this.normalized=!0}createNormalizedSizes(){let h=this.sizers.length;if(h===0)return[];let m=this.sizers.map(_=>_.size),p=m.reduce((_,x)=>_+x,0);if(p===0)for(let _=m.length-1;_>-1;_--)m[_]=1/h;else for(let _=m.length-1;_>-1;_--)m[_]/=p;return m}fit(h,m){let p=this.orientation==="horizontal",_=Math.max(0,this.children.length-1)*h,x=p?_:0,y=p?0:_,S=1/0,I=1/0;for(let C=0,b=this.children.length;C=m.length)&&(p=0),{type:"tab-area",widgets:m,currentIndex:p}}function c(f,h){let m=f.orientation,p=[],_=[];for(let x=0,y=f.children.length;x{let y=r(_,h,m),S=e(f.sizes[x]),I=h.createHandle();p.children.push(y),p.handles.push(I),p.sizers.push(S),y.parent=p}),p.syncHandles(),p.normalizeSizes(),p}})(Ji||(Ji={}));pu=class extends ue{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new Me(this),this._addRequested=new Me(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||pu.defaultRenderer,this._edges=e.edges||Fi.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new LI({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new pu.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let r of t.tabBars())r.show();break;case"single-document":t.restoreLayout(Fi.createSingleDocumentConfig(this));break;default:throw"unreachable"}De.postMessage(this,Fi.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=Ts(this.tabBars(),r=>r.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(Mi.IS_EDGE||Mi.IS_IE)&&De.flush(),De.postMessage(this,Fi.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),De.postMessage(this,Fi.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){Fi.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){Fi.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),De.postMessage(this,Fi.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:r}=e,{zone:n,target:s}=Fi.findDropTarget(this,t,r,this._edges);if(this._tabsConstrained&&e.source!==this||n==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof ue)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let c=s?Fi.getDropRef(s.tabBar):null;switch(n){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:c});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:c});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:c});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:c});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:c});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:c});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),De.postMessage(this,Fi.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,r=e.target,n=Ts(t.handles(),u=>u.contains(r));if(!n)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let s=n.getBoundingClientRect(),o=e.clientX-s.left,a=e.clientY-s.top,l=window.getComputedStyle(n),c=dr.overrideCursor(l.cursor,this._document);this._pressData={handle:n,deltaX:o,deltaY:a,override:c}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),r=e.clientX-t.left-this._pressData.deltaX,n=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,r,n)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),De.postMessage(this,Fi.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:r,target:n}=Fi.findDropTarget(this,e,t,this._edges);if(r==="invalid")return this.overlay.hide(100),r;let s,o,a,l,c=Ce.boxSizing(this.node),u=this.node.getBoundingClientRect();switch(r){case"root-all":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"root-top":s=c.paddingTop,o=c.paddingLeft,a=c.paddingRight,l=u.height*Fi.GOLDEN_RATIO;break;case"root-left":s=c.paddingTop,o=c.paddingLeft,a=u.width*Fi.GOLDEN_RATIO,l=c.paddingBottom;break;case"root-right":s=c.paddingTop,o=u.width*Fi.GOLDEN_RATIO,a=c.paddingRight,l=c.paddingBottom;break;case"root-bottom":s=u.height*Fi.GOLDEN_RATIO,o=c.paddingLeft,a=c.paddingRight,l=c.paddingBottom;break;case"widget-all":s=n.top,o=n.left,a=n.right,l=n.bottom;break;case"widget-top":s=n.top,o=n.left,a=n.right,l=n.bottom+n.height/2;break;case"widget-left":s=n.top,o=n.left,a=n.right+n.width/2,l=n.bottom;break;case"widget-right":s=n.top,o=n.left+n.width/2,a=n.right,l=n.bottom;break;case"widget-bottom":s=n.top+n.height/2,o=n.left,a=n.right,l=n.bottom;break;case"widget-tab":{let d=n.tabBar.node.getBoundingClientRect().height;s=n.top,o=n.left,a=n.right,l=n.bottom+n.height-d;break}default:throw"unreachable"}return this.overlay.show({top:s,left:o,right:a,bottom:l}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return Fi.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){De.postMessage(this,Fi.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:r,currentTitle:n}=t;r&&r.owner.hide(),n&&n.owner.show(),(Mi.IS_EDGE||Mi.IS_IE)&&De.flush(),De.postMessage(this,Fi.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:r,tab:n,clientX:s,clientY:o,offset:a}=t,l=new kl.MimeData,c=()=>r.owner;l.setData("application/vnd.lumino.widget-factory",c);let u=n.cloneNode(!0);a&&(u.style.top=`-${a.y}px`,u.style.left=`-${a.x}px`),this._drag=new dr({document:this._document,mimeData:l,dragImage:u,proposedAction:"move",supportedActions:"move",source:this}),n.classList.add("lm-mod-hidden");let d=()=>{this._drag=null,n.classList.remove("lm-mod-hidden")};this._drag.start(s,o).then(d)}};(function(i){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(n){let s=this.node.style;s.top=`${n.top}px`,s.left=`${n.left}px`,s.right=`${n.right}px`,s.bottom=`${n.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(n){if(!this._hidden){if(n<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},n))}}}i.Overlay=e;class t{createTabBar(n){let s=new Fc({document:n});return s.addClass("lm-DockPanel-tabBar"),s}createHandle(){let n=document.createElement("div");return n.className="lm-DockPanel-handle",n}}i.Renderer=t,i.defaultRenderer=new t})(pu||(pu={}));(function(i){i.GOLDEN_RATIO=.618,i.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},i.LayoutModified=new jc("layout-modified"),i.isGeneratedTabBarProperty=new ht({name:"isGeneratedTabBar",create:()=>!1});function e(n){if(n.isEmpty)return{main:null};let s=Array.from(n.widgets()),o=n.selectedWidgets().next().value,a=o?s.indexOf(o):-1;return{main:{type:"tab-area",widgets:s,currentIndex:a}}}i.createSingleDocumentConfig=e;function t(n,s,o,a){if(!Ce.hitTest(n.node,s,o))return{zone:"invalid",target:null};let l=n.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(n.mode==="multiple-document"){let S=n.node.getBoundingClientRect(),I=s-S.left+1,C=o-S.top+1,b=S.right-s,k=S.bottom-o;switch(Math.min(C,b,k,I)){case C:if(Cp&&f>p&&d>_&&h>_)return{zone:"widget-all",target:c};u/=p,d/=_,f/=p,h/=_;let x=Math.min(u,d,f,h),y;switch(x){case u:y="widget-left";break;case d:y="widget-top";break;case f:y="widget-right";break;case h:y="widget-bottom";break;default:throw"unreachable"}return{zone:y,target:c}}i.findDropTarget=t;function r(n){return n.titles.length===0?null:n.currentTitle?n.currentTitle.owner:n.titles[n.titles.length-1].owner}i.getDropRef=r})(Fi||(Fi={}));Il=class extends wa{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new xa],this._columnSizers=[new xa],this._box=null,e.rowCount!==void 0&&yr.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&yr.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=yr.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=yr.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(yr.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(yr.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=yr.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=yr.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let r=this._rowSizers[e];r&&(t=yr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let r=this._columnSizers[e];r&&(t=yr.clampValue(t),r.stretch!==t&&(r.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){z.findFirstIndex(this._items,r=>r.widget===e)===-1&&(this._items.push(new hu(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=z.findFirstIndex(this._items,n=>n.widget===e);if(t===-1)return;let r=z.removeAt(this._items,t);this.parent&&this.detachWidget(e),r.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&De.sendMessage(e,ue.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&De.sendMessage(e,ue.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&De.sendMessage(e,ue.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&De.sendMessage(e,ue.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,c=this.rowCount;l!l.isHidden);for(let l=0,c=e.length;l({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let c=Math.max(0,Math.floor(l.row||0)),u=Math.max(0,Math.floor(l.column||0)),d=Math.max(1,Math.floor(l.rowSpan||0)),f=Math.max(1,Math.floor(l.columnSpan||0));return{row:c,column:u,rowSpan:d,columnSpan:f}}i.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}i.clampValue=t;function r(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.rowSpan-d.rowSpan}i.rowSpanCmp=r;function n(l,c){let u=i.cellConfigProperty.get(l.widget),d=i.cellConfigProperty.get(c.widget);return u.columnSpan-d.columnSpan}i.columnSpanCmp=n;function s(l,c){for(c=Math.max(1,Math.floor(c));l.lengthc&&(l.length=c)}i.reallocSizers=s;function o(l,c,u,d){if(u=d)return;let h=(d-f)/(u-c+1);for(let m=c;m<=u;++m)l[m].minSize+=h}i.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof Il&&l.parent.fit()}})(yr||(yr={}));Sm=class extends ue{constructor(e={}){super({node:Nx.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(ue.Flag.DisallowLayout),this.renderer=e.renderer||Sm.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,r=!0){this._closeChildMenu();let n=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(n===-1){z.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),r&&this.update();return}s===this._menus.length&&s--,n!==s&&(z.move(this._menus,n,s),r&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let r=z.removeAt(this._menus,e);r&&(r.aboutToClose.disconnect(this._onMenuAboutToClose,this),r.menuRequested.disconnect(this._onMenuMenuRequested,this),r.title.changed.disconnect(this._onTitleChanged,this),r.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":case"mouseleave":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let r=this._menus,n=this.renderer,s=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:r.length,l=0,c=!1;a=this._overflowMenu!==null?a-1:a;let u=new Array(a);for(let d=0;d{this._tabFocusIndex=d,this.activeIndex=d}}),l+=this._menuItemSizes[d],r[d].title.label===this._overflowMenuOptions.title&&(c=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!c){if(this._overflowMenu===null){let d=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new ya({commands:new Qr}),this._overflowMenu.title.label=d,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let d=r.length-2;d>=a;d--){let f=this.menus[d];f.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:f}),this.removeMenu(f,!1)}u[a]=n.renderItem({title:this._overflowMenu.title,active:a===s&&r[a].items.length!==0,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let d=this._overflowMenu.items,f=this.node.offsetWidth,h=this._overflowMenu.items.length;for(let m=0;mthis._menuItemSizes[p]){let _=d[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,_,!1),u[a]=n.renderItem({title:_.title,active:!1,tabbable:a===o,disabled:r[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),u.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}Ht.render(u,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,r=0,n=-1,s=e.length;if(this._menuItemSizes.length==0)for(let o=0;ot&&n===-1&&(n=o)}else for(let o=0;ot){n=o;break}this._overflowIndex=n}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let c=0;cCe.hitTest(r,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let r=this._positionForMenu(t);ya.saveWindowData(),this.activeIndex=t,this._openChildMenu(r)}}_evtMouseMove(e){let t=z.findFirstIndex(this.contentNode.children,n=>Ce.hitTest(n,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let r=t>=0&&this._childMenu?this._positionForMenu(t):null;ya.saveWindowData(),this.activeIndex=t,r&&this._openChildMenu(r)}_positionForMenu(e){let t=this.contentNode.children[e],{left:r,bottom:n}=t.getBoundingClientRect();return{top:n,left:r}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let r=this._childMenu;if(r===t)return;this._childMenu=t,r?r.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,De.sendMessage(this,ue.Msg.UpdateRequest);let{left:n,top:s}=e;(typeof n>"u"||typeof s>"u")&&({left:n,top:s}=this._positionForMenu(this._activeIndex)),r||this.addClass("lm-mod-active"),t.items.length>0&&t.open(n,s,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let r=this._activeIndex,n=this._menus.length;switch(t){case"next":this.activeIndex=r===n-1?0:r+1;break;case"previous":this.activeIndex=r===0?n-1:r-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(i){class e{renderItem(r){let n=this.createItemClass(r),s=this.createItemDataset(r),o=this.createItemARIA(r);return ye.li({className:n,dataset:s,...r.disabled?{}:{tabindex:r.tabbable?"0":"-1"},onfocus:r.onfocus,...o},this.renderIcon(r),this.renderLabel(r))}renderIcon(r){let n=this.createIconClass(r);return ye.div({className:n},r.title.icon,r.title.iconLabel)}renderLabel(r){let n=this.formatLabel(r);return ye.div({className:"lm-MenuBar-itemLabel"},n)}createItemClass(r){let n="lm-MenuBar-item";return r.title.className&&(n+=` ${r.title.className}`),r.active&&!r.disabled&&(n+=" lm-mod-active"),n}createItemDataset(r){return r.title.dataset}createItemARIA(r){return{role:"menuitem","aria-haspopup":"true","aria-disabled":r.disabled?"true":"false"}}createIconClass(r){let n="lm-MenuBar-itemIcon",s=r.title.iconClass;return s?`${n} ${s}`:n}formatLabel(r){let{label:n,mnemonic:s}=r.title;if(s<0||s>=n.length)return n;let o=n.slice(0,s),a=n.slice(s+1),l=n[s],c=ye.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,c,a]}}i.Renderer=e,i.defaultRenderer=new e})(Sm||(Sm={}));(function(i){function e(){let r=document.createElement("div"),n=document.createElement("ul");return n.className="lm-MenuBar-content",r.appendChild(n),n.setAttribute("role","menubar"),r}i.createNode=e;function t(r,n,s){let o=-1,a=-1,l=!1,c=n.toUpperCase();for(let u=0,d=r.length;u=0&&m1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===ue.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=ue.HiddenMode.Scale),t.hiddenMode=ue.HiddenMode.Scale):t.hiddenMode=ue.HiddenMode.Display,z.insert(this._items,e,new hu(t)),this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,r){z.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let r=z.removeAt(this._items,e);this.parent.isAttached&&De.sendMessage(t,ue.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&De.sendMessage(t,ue.Msg.AfterDetach),r.widget.node.style.zIndex="",this._hiddenMode===ue.HiddenMode.Scale&&(t.hiddenMode=ue.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=ue.HiddenMode.Display)),r.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let s=0,o=this._items.length;s{eS();d3=L(J1());Vp();Dx=L(Zr());qp();As();o3();UZ="jp-OutputArea",a3="jp-OutputArea-child",l3="jp-OutputArea-output",c3="jp-OutputArea-prompt",VZ="jp-OutputArea-stdin-hiding",GZ="jp-OutputPrompt",XZ="jp-OutputArea-executeResult",KZ="jp-OutputArea-stdin-item",YZ="jp-Stdin",JZ="jp-Stdin-prompt",ZZ="jp-Stdin-input",QZ="jp-OutputArea-promptOverlay",hs=class extends ue{constructor(e){var t,r,n,s,o;super(),this.outputLengthChanged=new Me(this),this._onIOPub=l=>{let c=this.model,u=l.header.msg_type,d,h=(l.content.transient||{}).display_id,m;switch(u){case"execute_result":case"display_data":case"stream":case"error":d={...l.content,output_type:u},c.add(d);break;case"clear_output":{let p=l.content.wait;c.clear(p);break}case"update_display_data":if(d={...l.content,output_type:"display_data"},m=this._displayIdMap.get(h),m)for(let p of m)c.set(p,d);break;case"status":{l.content.execution_state==="idle"&&(this._pendingInput=!1);break}default:break}h&&u==="display_data"&&(m=this._displayIdMap.get(h)||[],m.push(c.length-1),this._displayIdMap.set(h,m))},this._onExecuteReply=l=>{let c=this.model,u=l.content;if(u.status!=="ok")return;let d=u&&u.payload;if(!d||!d.length)return;let f=d.filter(p=>p.source==="page");if(!f.length)return;let m={output_type:"display_data",data:JSON.parse(JSON.stringify(f[0])).data,metadata:{}};c.add(m)},this._displayIdMap=new Map,this._minHeightTimeout=null,this._inputRequested=new Me(this),this._toggleScrolling=new Me(this),this._initialize=new Me(this),this._outputTracker=new hL({namespace:Dx.UUID.uuid4()}),this._inputHistoryScope="global",this._pendingInput=!1,this._showInputPlaceholder=!0,super.layout=new Hc,this.addClass(UZ),this.contentFactory=(t=e.contentFactory)!==null&&t!==void 0?t:hs.defaultContentFactory,this.rendermime=e.rendermime,this._maxNumberOutputs=(r=e.maxNumberOutputs)!==null&&r!==void 0?r:1/0,this._translator=(n=e.translator)!==null&&n!==void 0?n:Ds,this._inputHistoryScope=(s=e.inputHistoryScope)!==null&&s!==void 0?s:"global",this._showInputPlaceholder=(o=e.showInputPlaceholder)!==null&&o!==void 0?o:!0;let a=this.model=e.model;for(let l=0;l{this._setOutput(l,c)})}a.changed.connect(this.onModelChanged,this),a.stateChanged.connect(this.onStateChanged,this),e.promptOverlay&&this._addPromptOverlay()}get layout(){return super.layout}get widgets(){return this.layout.widgets}get future(){return this._future}set future(e){if(this.model.isDisposed)throw Error("Model is disposed");this._future!==e&&(this._future&&this._future.dispose(),this._future=e,e.done.finally(()=>{this._pendingInput=!1}).catch(()=>{}),this.model.clear(),this.widgets.length&&(this._clear(),this.outputLengthChanged.emit(Math.min(this.model.length,this._maxNumberOutputs))),e.onIOPub=this._onIOPub,e.onReply=this._onExecuteReply,e.onStdin=t=>{d3.KernelMessage.isInputRequestMsg(t)&&this.onInputRequest(t,e)})}get inputRequested(){return this._inputRequested}get pendingInput(){return this._pendingInput}get maxNumberOutputs(){return this._maxNumberOutputs}set maxNumberOutputs(e){if(e<=0){console.warn("OutputArea.maxNumberOutputs must be strictly positive.");return}let t=this._maxNumberOutputs;this._maxNumberOutputs=e,t{this._setOutput(t.newIndex,r)});break;case"remove":if(this.widgets.length)if(this.model.length===0)this._clear();else{let n=t.oldIndex;for(let s=0;s{this._toggleScrolling.emit()}),this.node.appendChild(e);let t=()=>{let n=this.node.querySelector(".jp-OutputArea-child");n&&(e.style.height=`${Math.max(n.getBoundingClientRect().height,this.node.getBoundingClientRect().height)}px`)},r=new ResizeObserver(t);r.observe(this.node),this.disposed.connect(()=>{r.disconnect()}),requestAnimationFrame(()=>{this._initialize.emit()})}_moveDisplayIdIndices(e,t){this._displayIdMap.forEach(r=>{let n=e+t,s=r.length;for(let o=s-1;o>=0;--o){let a=r[o];a>=e&&a=n&&(r[o]-=t)}})}onStateChanged(e,t){let r=Math.min(this.model.length,this._maxNumberOutputs);if(t){if(t>=this._maxNumberOutputs)return;this._setOutput(t,this.model.get(t))}else for(let n=0;n{this.isDisposed||(this.node.style.minHeight="")},50)}onInputRequest(e,t){let r=this.contentFactory,n=e.content.prompt,s=e.content.password,o=new fu;o.addClass(a3),o.addClass(KZ);let a=r.createOutputPrompt();a.addClass(c3),o.addWidget(a),this._pendingInput=!0;let l=r.createStdin({parent_header:e.header,prompt:n,password:s,future:t,translator:this._translator,inputHistoryScope:this._inputHistoryScope,showInputPlaceholder:this._showInputPlaceholder});l.addClass(l3),o.addWidget(l),this.model.length>=this.maxNumberOutputs&&(this.maxNumberOutputs=this.model.length),this._inputRequested.emit(l);let c=l.node.getElementsByTagName("input")[0];l.value.then(u=>{this.model.length>=this.maxNumberOutputs&&(this.maxNumberOutputs=this.model.length+1),o.addClass(VZ),this.model.add({output_type:"stream",name:"stdin",text:u+` +`}),c.focus(),this._pendingInput=!1,window.setTimeout(()=>{let d=document.activeElement;o.dispose(),d&&d instanceof HTMLElement&&d.focus()},500)}),this.layout.addWidget(o)}_setOutput(e,t){if(e>=this._maxNumberOutputs)return;let r=this.layout.widgets[e],n=r.widgets?r.widgets.filter(o=>"renderModel"in o).pop():r,s=this.rendermime.preferredMimeType(t.data,t.trusted?"any":"ensure");Ml.currentPreferredMimetype.get(n)===s&&hs.isIsolated(s,t.metadata)===n instanceof Ml.IsolatedRenderer?n.renderModel(t):(this.layout.widgets[e].dispose(),this._insertOutput(e,t))}_insertOutput(e,t){if(e>this._maxNumberOutputs)return;let r=this.layout;if(e===this._maxNumberOutputs){let n=new Ml.TrimmedOutputs(this._maxNumberOutputs,()=>{let s=this._maxNumberOutputs;this._maxNumberOutputs=1/0,this._showTrimmedOutputs(s)},this._translator);r.insertWidget(e,this._wrappedOutput(n))}else{let n=this.createOutputItem(t);n?n.toggleClass(XZ,t.executionCount!==null):n=new ue,this._outputTracker.has(n)||this._outputTracker.add(n),r.insertWidget(e,n)}}get outputTracker(){return this._outputTracker}_showTrimmedOutputs(e){this.widgets[e].dispose();for(let t=e;t{let o=document.createElement("pre"),a=this._translator.load("jupyterlab");o.textContent=a.__("Javascript Error: %1",s.message),r.node.appendChild(o),r.node.className="lm-Widget jp-RenderedText",r.node.setAttribute("data-mime-type","application/vnd.jupyter.stderr")}),r}_wrappedOutput(e,t=null){let r=new Ml.OutputPanel;r.addClass(a3);let n=this.contentFactory.createOutputPrompt();return n.executionCount=t,n.addClass(c3),r.addWidget(n),e.addClass(l3),r.addWidget(e),r}};(function(i){async function e(n,s,o,a){var l;let c=!0;a&&Array.isArray(a.tags)&&a.tags.indexOf("raises-exception")!==-1&&(c=!1);let u={code:n,stop_on_error:c},d=(l=o.session)===null||l===void 0?void 0:l.kernel;if(!d)throw new Error("Session has no kernel.");let f=d.requestExecute(u,!1,a);return s.future=f,f.done}i.execute=e;function t(n,s){let o=s[n];return o&&o.isolated!==void 0?!!o.isolated:!!s.isolated}i.isIsolated=t;class r{createOutputPrompt(){return new DI}createStdin(s){return new Nr(s)}}i.ContentFactory=r,i.defaultContentFactory=new r})(hs||(hs={}));DI=class extends ue{constructor(){super(),this._executionCount=null,this.addClass(GZ)}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e,e===null?this.node.textContent="":this.node.textContent=`[${e}]:`}},Nr=class extends ue{static _historyIx(e,t){let r=Nr._history.get(e);if(!r)return;let n=r.length;if(t<=0)return n+t}static _historyAt(e,t){let r=Nr._history.get(e);if(!r)return;let n=r.length,s=Nr._historyIx(e,t);if(s!==void 0&&s1e3&&r.shift()}static _historySearch(e,t,r,n=!0){let s=Nr._history.get(e),o=s.length,a=Nr._historyIx(e,r),l=c=>c.search(t)!==-1;if(a!==void 0)if(n){if(a===0)return;let c=s.slice(0,a).findLastIndex(l);if(c!==-1)return c-o}else{if(a>=o-1)return;let c=s.slice(a+1).findIndex(l);if(c!==-1)return c-o+a+1}}constructor(e){var t;super({node:Ml.createInputWidgetNode(e.prompt,e.password)}),this._promise=new Dx.PromiseDelegate,this._resolved=!1,this.addClass(YZ),this._future=e.future,this._historyIndex=0,this._historyKey=e.inputHistoryScope==="session"?e.parent_header.session:"",this._historyPat="",this._parentHeader=e.parent_header,this._password=e.password,this._trans=((t=e.translator)!==null&&t!==void 0?t:Ds).load("jupyterlab"),this._value=e.prompt+" ",this._input=this.node.getElementsByTagName("input")[0],e.showInputPlaceholder&&!this._password?this._input.placeholder=this._trans.__("\u2191\u2193 for history. Search history with c-\u2191/c-\u2193"):this._input.placeholder="",Nr._history.has(this._historyKey)||Nr._history.set(this._historyKey,[])}get value(){return this._promise.promise.then(()=>this._value)}handleEvent(e){if(e.stopPropagation(),this._resolved){e.preventDefault();return}let t=this._input;if(e.type==="keydown"){if(e.key==="Enter")this.resetSearch(),this._future.sendInputReply({status:"ok",value:t.value},this._parentHeader),this._password?this._value+="\xB7\xB7\xB7\xB7\xB7\xB7\xB7\xB7":(this._value+=t.value,Nr._historyPush(this._historyKey,t.value)),this._resolved=!0,this._promise.resolve(void 0);else if(e.key==="Escape")this.resetSearch(),t.blur();else if(e.ctrlKey&&(e.key==="ArrowUp"||e.key==="ArrowDown")){this._historyPat===""&&(this._historyPat=t.value);let r=e.key==="ArrowUp",n=Nr._historySearch(this._historyKey,this._historyPat,this._historyIndex,r);if(n!==void 0){let s=Nr._historyAt(this._historyKey,n);s!==void 0&&(this._historyIndex===0&&(this._valueCache=t.value),this._setInputValue(s),this._historyIndex=n,e.preventDefault())}}else if(e.key==="ArrowUp"){this.resetSearch();let r=Nr._historyAt(this._historyKey,this._historyIndex-1);r&&(this._historyIndex===0&&(this._valueCache=t.value),this._setInputValue(r),--this._historyIndex,e.preventDefault())}else if(e.key==="ArrowDown"&&(this.resetSearch(),this._historyIndex!==0))if(this._historyIndex===-1)this._setInputValue(this._valueCache),++this._historyIndex;else{let r=Nr._historyAt(this._historyKey,this._historyIndex+1);r&&(this._setInputValue(r),++this._historyIndex)}}}resetSearch(){this._historyPat=""}onAfterAttach(e){this._input.addEventListener("keydown",this),this._input.focus()}onBeforeDetach(e){this._input.removeEventListener("keydown",this)}_setInputValue(e){this._input.value=e,this._input.setSelectionRange(e.length,e.length)}};Nr._history=new Map;(function(i){function e(s,o){let a=document.createElement("div"),l=document.createElement("pre");l.className=JZ,l.textContent=s;let c=document.createElement("input");return c.className=ZZ,o&&(c.type="password"),a.appendChild(l),l.appendChild(c),a}i.createInputWidgetNode=e;class t extends ue{constructor(o){super({node:document.createElement("iframe")}),this.addClass("jp-mod-isolated"),this._wrapped=o;let a=this.node;a.frameBorder="0",a.scrolling="auto",a.addEventListener("load",()=>{a.contentDocument.open(),a.contentDocument.write(this._wrapped.node.innerHTML),a.contentDocument.close();let l=a.contentDocument.body;a.style.height=`${l.scrollHeight}px`,a.heightChangeObserver=new ResizeObserver(()=>{a.style.height=`${l.scrollHeight}px`}),a.heightChangeObserver.observe(l)})}renderModel(o){return this._wrapped.renderModel(o)}}i.IsolatedRenderer=t,i.currentPreferredMimetype=new ht({name:"preferredMimetype",create:s=>""});class r extends fu{constructor(o){super(o)}_onContext(o){this.node.focus()}onAfterAttach(o){super.onAfterAttach(o),this.node.addEventListener("contextmenu",this._onContext.bind(this))}onBeforeDetach(o){super.onAfterDetach(o),this.node.removeEventListener("contextmenu",this._onContext.bind(this))}}i.OutputPanel=r;class n extends ue{constructor(o,a,l){let c=document.createElement("div"),u=(l??Ds).load("jupyterlab"),d=document.createElement("button");d.type="button",d.className="jp-TrimmedOutputs-button",d.title=u.__("The first %1 are displayed",o),d.textContent=u.__("Show more outputs"),c.appendChild(d),super({node:c}),this._onClick=a,this.addClass("jp-TrimmedOutputs")}handleEvent(o){o.type==="click"&&this._onClick(o)}onAfterAttach(o){super.onAfterAttach(o),this.node.addEventListener("click",this)}onBeforeDetach(o){super.onBeforeDetach(o),this.node.removeEventListener("click",this)}}i.TrimmedOutputs=n})(Ml||(Ml={}))});var OI=j(()=>{J5();u3()});var h3,Gg,f3=j(()=>{h3=L(Zr());xd();Gg=class extends Os{constructor(e,t){super(),this._manager=new h3.PromiseDelegate,this._rerenderMimeModel=null,this.mimeType=e.mimeType,t&&(this.manager=t)}set manager(e){e.restored.connect(this._rerender,this),this._manager.resolve(e)}async renderModel(e){let t=e.data[this.mimeType];this.node.textContent="Loading widget...";let r=await this._manager.promise;if(t.model_id==="")return this.hide(),Promise.resolve();let n;try{n=await r.get_model(t.model_id)}catch(o){if(r.restoredStatus){this.node.textContent="Error displaying widget: model not found",this.addClass("jupyter-widgets"),console.error(o);return}this._rerenderMimeModel=e;return}this._rerenderMimeModel=null;let s;try{let o=await r.create_view(n);s=o.luminoWidget||o.pWidget}catch(o){this.node.textContent="Error displaying widget",this.addClass("jupyter-widgets"),console.error(o);return}this.node.textContent="",this.addWidget(s),s.disposed.connect(()=>{this.hide(),t.model_id=""})}dispose(){this.isDisposed||(this._manager=null,super.dispose())}_rerender(){this._rerenderMimeModel&&(this.node.textContent="",this.removeClass("jupyter-widgets"),this.renderModel(this._rerenderMimeModel))}}});function zx(i,e){return i.filter(t=>e.indexOf(t)===-1)}function Cm(i,e){return(0,m3.default)(i,e)}function ti(){return Ox.UUID.uuid4()}function Ca(i){let e=Object.keys(i),t=[];return e.forEach(function(r){t.push(i[r])}),Promise.all(t).then(r=>{let n={};for(let s=0;s{Ox=L(Zr()),m3=L(SW());Sa=Object.assign||function(i,...e){for(let t=1;t + + + + + + + +`});function v3(i,e,t){if(i==null)return this;let r;if(b3.JSONExt.isObject(i)?(r=i,t=e):(r={})[i]=e,t||(t={}),!this._validate(r,t))return!1;let n=t.unset,s=t.silent,o=[],a=this._changing;this._changing=!0;try{a||(this._previousAttributes=Object.assign({},this.attributes),this.changed={});let l=this.attributes,c=this.changed,u=this._previousAttributes;for(let d in r)e=r[d],Cm(l[d],e)||o.push(d),Cm(u[d],e)?delete c[d]:c[d]=e,n?delete l[d]:l[d]=e;if(this.id=this.get(this.idAttribute),!s){o.length&&(this._pending=t);for(let d=0;d{gu();b3=L(Zr())});var Kg,zI,Yg,Bx,PI,y3,Ea,Rl,w3,BI,S3,C3,jI,HI,FI,E3,I3,jx,$I,k3,_i=j(()=>{Kg="1.13.7",zI=typeof self=="object"&&self.self===self&&self||typeof globalThis=="object"&&globalThis.global===globalThis&&globalThis||Function("return this")()||{},Yg=Array.prototype,Bx=Object.prototype,PI=typeof Symbol<"u"?Symbol.prototype:null,y3=Yg.push,Ea=Yg.slice,Rl=Bx.toString,w3=Bx.hasOwnProperty,BI=typeof ArrayBuffer<"u",S3=typeof DataView<"u",C3=Array.isArray,jI=Object.keys,HI=Object.create,FI=BI&&ArrayBuffer.isView,E3=isNaN,I3=isFinite,jx=!{toString:null}.propertyIsEnumerable("toString"),$I=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],k3=Math.pow(2,53)-1});function Kt(i,e){return e=e==null?i.length-1:+e,function(){for(var t=Math.max(arguments.length-e,0),r=Array(t),n=0;n{});function an(i){var e=typeof i;return e==="function"||e==="object"&&!!i}var Wc=j(()=>{});function Hx(i){return i===null}var M3=j(()=>{});function Em(i){return i===void 0}var WI=j(()=>{});function Im(i){return i===!0||i===!1||Rl.call(i)==="[object Boolean]"}var qI=j(()=>{_i()});function Fx(i){return!!(i&&i.nodeType===1)}var R3=j(()=>{});function Bt(i){var e="[object "+i+"]";return function(t){return Rl.call(t)===e}}var Ur=j(()=>{_i()});var _u,$x=j(()=>{Ur();_u=Bt("String")});var Jg,UI=j(()=>{Ur();Jg=Bt("Number")});var VI,T3=j(()=>{Ur();VI=Bt("Date")});var GI,A3=j(()=>{Ur();GI=Bt("RegExp")});var XI,L3=j(()=>{Ur();XI=Bt("Error")});var Zg,KI=j(()=>{Ur();Zg=Bt("Symbol")});var Qg,YI=j(()=>{Ur();Qg=Bt("ArrayBuffer")});var N3,tQ,ii,fs=j(()=>{Ur();_i();N3=Bt("Function"),tQ=zI.document&&zI.document.childNodes;typeof/./!="function"&&typeof Int8Array!="object"&&typeof tQ!="function"&&(N3=function(i){return typeof i=="function"||!1});ii=N3});var JI,D3=j(()=>{Ur();JI=Bt("Object")});var Wx,km,Mm=j(()=>{_i();D3();Wx=S3&&(!/\[native code\]/.test(String(DataView))||JI(new DataView(new ArrayBuffer(8)))),km=typeof Map<"u"&&JI(new Map)});function rQ(i){return i!=null&&ii(i.getInt8)&&Qg(i.buffer)}var iQ,qc,qx=j(()=>{Ur();fs();YI();Mm();iQ=Bt("DataView");qc=Wx?rQ:iQ});var kn,Uc=j(()=>{_i();Ur();kn=C3||Bt("Array")});function Vr(i,e){return i!=null&&w3.call(i,e)}var Tl=j(()=>{_i()});var ZI,bu,Ux=j(()=>{Ur();Tl();ZI=Bt("Arguments");(function(){ZI(arguments)||(ZI=function(i){return Vr(i,"callee")})})();bu=ZI});function Vx(i){return!Zg(i)&&I3(i)&&!isNaN(parseFloat(i))}var O3=j(()=>{_i();KI()});function Rm(i){return Jg(i)&&E3(i)}var QI=j(()=>{_i();UI()});function Tm(i){return function(){return i}}var ek=j(()=>{});function e_(i){return function(e){var t=i(e);return typeof t=="number"&&t>=0&&t<=k3}}var tk=j(()=>{_i()});function t_(i){return function(e){return e?.[i]}}var ik=j(()=>{});var vu,Gx=j(()=>{ik();vu=t_("byteLength")});var z3,P3=j(()=>{tk();Gx();z3=e_(vu)});function sQ(i){return FI?FI(i)&&!qc(i):z3(i)&&nQ.test(Rl.call(i))}var nQ,i_,rk=j(()=>{_i();qx();ek();P3();nQ=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;i_=BI?sQ:Tm(!1)});var ci,ms=j(()=>{ik();ci=t_("length")});function oQ(i){for(var e={},t=i.length,r=0;r{_i();fs();Tl()});function It(i){if(!an(i))return[];if(jI)return jI(i);var e=[];for(var t in i)Vr(i,t)&&e.push(t);return jx&&r_(i,e),e}var Dr=j(()=>{Wc();_i();Tl();nk()});function Xx(i){if(i==null)return!0;var e=ci(i);return typeof e=="number"&&(kn(i)||_u(i)||bu(i))?e===0:ci(It(i))===0}var B3=j(()=>{ms();Uc();$x();Ux();Dr()});function Am(i,e){var t=It(e),r=t.length;if(i==null)return!r;for(var n=Object(i),s=0;s{Dr()});function pt(i){if(i instanceof pt)return i;if(!(this instanceof pt))return new pt(i);this._wrapped=i}var Kn=j(()=>{_i();pt.VERSION=Kg;pt.prototype.value=function(){return this._wrapped};pt.prototype.valueOf=pt.prototype.toJSON=pt.prototype.value;pt.prototype.toString=function(){return String(this._wrapped)}});function Kx(i){return new Uint8Array(i.buffer||i,i.byteOffset||0,vu(i))}var j3=j(()=>{Gx()});function ok(i,e,t,r){if(i===e)return i!==0||1/i===1/e;if(i==null||e==null)return!1;if(i!==i)return e!==e;var n=typeof i;return n!=="function"&&n!=="object"&&typeof e!="object"?!1:F3(i,e,t,r)}function F3(i,e,t,r){i instanceof pt&&(i=i._wrapped),e instanceof pt&&(e=e._wrapped);var n=Rl.call(i);if(n!==Rl.call(e))return!1;if(Wx&&n=="[object Object]"&&qc(i)){if(!qc(e))return!1;n=H3}switch(n){case"[object RegExp]":case"[object String]":return""+i==""+e;case"[object Number]":return+i!=+i?+e!=+e:+i==0?1/+i===1/e:+i==+e;case"[object Date]":case"[object Boolean]":return+i==+e;case"[object Symbol]":return PI.valueOf.call(i)===PI.valueOf.call(e);case"[object ArrayBuffer]":case H3:return F3(Kx(i),Kx(e),t,r)}var s=n==="[object Array]";if(!s&&i_(i)){var o=vu(i);if(o!==vu(e))return!1;if(i.buffer===e.buffer&&i.byteOffset===e.byteOffset)return!0;s=!0}if(!s){if(typeof i!="object"||typeof e!="object")return!1;var a=i.constructor,l=e.constructor;if(a!==l&&!(ii(a)&&a instanceof a&&ii(l)&&l instanceof l)&&"constructor"in i&&"constructor"in e)return!1}t=t||[],r=r||[];for(var c=t.length;c--;)if(t[c]===i)return r[c]===e;if(t.push(i),r.push(e),s){if(c=i.length,c!==e.length)return!1;for(;c--;)if(!ok(i[c],e[c],t,r))return!1}else{var u=It(i),d;if(c=u.length,It(e).length!==c)return!1;for(;c--;)if(d=u[c],!(Vr(e,d)&&ok(i[d],e[d],t,r)))return!1}return t.pop(),r.pop(),!0}function Yx(i,e){return ok(i,e)}var H3,$3=j(()=>{Kn();_i();Gx();rk();fs();Mm();qx();Dr();Tl();j3();H3="[object DataView]"});function Js(i){if(!an(i))return[];var e=[];for(var t in i)e.push(t);return jx&&r_(i,e),e}var Lm=j(()=>{Wc();_i();nk()});function Nm(i){var e=ci(i);return function(t){if(t==null)return!1;var r=Js(t);if(ci(r))return!1;for(var n=0;n{ms();fs();Lm();ak="forEach",W3="has",lk=["clear","delete"],q3=["get",W3,"set"],U3=lk.concat(ak,q3),ck=lk.concat(q3),V3=["add"].concat(lk,ak,W3)});var dk,G3=j(()=>{Ur();Mm();Jx();dk=km?Nm(U3):Bt("Map")});var uk,X3=j(()=>{Ur();Mm();Jx();uk=km?Nm(ck):Bt("WeakMap")});var hk,K3=j(()=>{Ur();Mm();Jx();hk=km?Nm(V3):Bt("Set")});var fk,Y3=j(()=>{Ur();fk=Bt("WeakSet")});function Yn(i){for(var e=It(i),t=e.length,r=Array(t),n=0;n{Dr()});function Zx(i){for(var e=It(i),t=e.length,r=Array(t),n=0;n{Dr()});function Dm(i){for(var e={},t=It(i),r=0,n=t.length;r{Dr()});function yu(i){var e=[];for(var t in i)ii(i[t])&&e.push(t);return e.sort()}var pk=j(()=>{fs()});function wu(i,e){return function(t){var r=arguments.length;if(e&&(t=Object(t)),r<2||t==null)return t;for(var n=1;n{});var n_,gk=j(()=>{Qx();Lm();n_=wu(Js)});var Vc,ey=j(()=>{Qx();Dr();Vc=wu(It)});var s_,_k=j(()=>{Qx();Lm();s_=wu(Js,!0)});function aQ(){return function(){}}function o_(i){if(!an(i))return{};if(HI)return HI(i);var e=aQ();e.prototype=i;var t=new e;return e.prototype=null,t}var bk=j(()=>{Wc();_i()});function ty(i,e){var t=o_(i);return e&&Vc(t,e),t}var Z3=j(()=>{bk();ey()});function iy(i){return an(i)?kn(i)?i.slice():n_({},i):i}var Q3=j(()=>{Wc();Uc();gk()});function ry(i,e){return e(i),i}var ej=j(()=>{});function a_(i){return kn(i)?i:[i]}var vk=j(()=>{Kn();Uc();pt.toPath=a_});function Lo(i){return pt.toPath(i)}var Om=j(()=>{Kn();vk()});function Su(i,e){for(var t=e.length,r=0;r{});function zm(i,e,t){var r=Su(i,Lo(e));return Em(r)?t:r}var xk=j(()=>{Om();ny();WI()});function sy(i,e){e=Lo(e);for(var t=e.length,r=0;r{Tl();Om()});function Gc(i){return i}var oy=j(()=>{});function No(i){return i=Vc({},i),function(e){return Am(e,i)}}var l_=j(()=>{ey();sk()});function Xc(i){return i=Lo(i),function(e){return Su(e,i)}}var ay=j(()=>{ny();Om()});function Do(i,e,t){if(e===void 0)return i;switch(t??3){case 1:return function(r){return i.call(e,r)};case 3:return function(r,n,s){return i.call(e,r,n,s)};case 4:return function(r,n,s,o){return i.call(e,r,n,s,o)}}return function(){return i.apply(e,arguments)}}var Pm=j(()=>{});function c_(i,e,t){return i==null?Gc:ii(i)?Do(i,e,t):an(i)&&!kn(i)?No(i):Xc(i)}var yk=j(()=>{oy();fs();Wc();Uc();l_();ay();Pm()});function Cu(i,e){return c_(i,e,1/0)}var wk=j(()=>{Kn();yk();pt.iteratee=Cu});function Yt(i,e,t){return pt.iteratee!==Cu?pt.iteratee(i,e):c_(i,e,t)}var Mn=j(()=>{Kn();yk();wk()});function ly(i,e,t){e=Yt(e,t);for(var r=It(i),n=r.length,s={},o=0;o{Mn();Dr()});function Bm(){}var Sk=j(()=>{});function cy(i){return i==null?Bm:function(e){return zm(i,e)}}var rj=j(()=>{Sk();xk()});function dy(i,e,t){var r=Array(Math.max(0,i));e=Do(e,t,1);for(var n=0;n{Pm()});function Eu(i,e){return e==null&&(e=i,i=0),i+Math.floor(Math.random()*(e-i+1))}var Ck=j(()=>{});var Al,uy=j(()=>{Al=Date.now||function(){return new Date().getTime()}});function d_(i){var e=function(s){return i[s]},t="(?:"+It(i).join("|")+")",r=RegExp(t),n=RegExp(t,"g");return function(s){return s=s==null?"":""+s,r.test(s)?s.replace(n,e):s}}var Ek=j(()=>{Dr()});var hy,Ik=j(()=>{hy={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"}});var kk,sj=j(()=>{Ek();Ik();kk=d_(hy)});var oj,aj=j(()=>{mk();Ik();oj=Dm(hy)});var Mk,lj=j(()=>{Ek();aj();Mk=d_(oj)});var Rk,Tk=j(()=>{Kn();Rk=pt.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g}});function dQ(i){return"\\"+lQ[i]}function fy(i,e,t){!e&&t&&(e=t),e=s_({},e,pt.templateSettings);var r=RegExp([(e.escape||Ak).source,(e.interpolate||Ak).source,(e.evaluate||Ak).source].join("|")+"|$","g"),n=0,s="__p+='";i.replace(r,function(c,u,d,f,h){return s+=i.slice(n,h).replace(cQ,dQ),n=h+c.length,u?s+=`'+ +((__t=(`+u+`))==null?'':_.escape(__t))+ +'`:d?s+=`'+ +((__t=(`+d+`))==null?'':__t)+ +'`:f&&(s+=`'; +`+f+` +__p+='`),c}),s+=`'; +`;var o=e.variable;if(o){if(!uQ.test(o))throw new Error("variable is not a bare identifier: "+o)}else s=`with(obj||{}){ +`+s+`} +`,o="obj";s=`var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');}; +`+s+`return __p; +`;var a;try{a=new Function(o,"_",s)}catch(c){throw c.source=s,c}var l=function(c){return a.call(this,c,pt)};return l.source="function("+o+`){ +`+s+"}",l}var Ak,lQ,cQ,uQ,cj=j(()=>{_k();Kn();Tk();Ak=/(.)^/,lQ={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},cQ=/\\|'|\r|\n|\u2028|\u2029/g;uQ=/^\s*(\w|\$)+\s*$/});function my(i,e,t){e=Lo(e);var r=e.length;if(!r)return ii(t)?t.call(i):t;for(var n=0;n{fs();Om()});function py(i){var e=++hQ+"";return i?i+e:e}var hQ,uj=j(()=>{hQ=0});function gy(i){var e=pt(i);return e._chain=!0,e}var hj=j(()=>{Kn()});function u_(i,e,t,r,n){if(!(r instanceof e))return i.apply(t,n);var s=o_(i.prototype),o=i.apply(s,n);return an(o)?o:s}var Lk=j(()=>{bk();Wc()});var Nk,Ll,h_=j(()=>{Xn();Lk();Kn();Nk=Kt(function(i,e){var t=Nk.placeholder,r=function(){for(var n=0,s=e.length,o=Array(s),a=0;a{Xn();fs();Lk();f_=Kt(function(i,e,t){if(!ii(i))throw new TypeError("Bind must be called on a function");var r=Kt(function(n){return u_(i,r,e,this,t.concat(n))});return r})});var di,Jn=j(()=>{tk();ms();di=e_(ci)});function Zn(i,e,t,r){if(r=r||[],!e&&e!==0)e=1/0;else if(e<=0)return r.concat(i);for(var n=r.length,s=0,o=ci(i);s1)Zn(a,e-1,t,r),n=r.length;else for(var l=0,c=a.length;l{ms();Jn();Uc();Ux()});var Ok,fj=j(()=>{Xn();Iu();Dk();Ok=Kt(function(i,e){e=Zn(e,!1,!1);var t=e.length;if(t<1)throw new Error("bindAll must be passed function names");for(;t--;){var r=e[t];i[r]=f_(i[r],i)}return i})});function _y(i,e){var t=function(r){var n=t.cache,s=""+(e?e.apply(this,arguments):r);return Vr(n,s)||(n[s]=i.apply(this,arguments)),n[s]};return t.cache={},t}var mj=j(()=>{Tl()});var m_,zk=j(()=>{Xn();m_=Kt(function(i,e,t){return setTimeout(function(){return i.apply(null,t)},e)})});var Pk,pj=j(()=>{h_();zk();Kn();Pk=Ll(m_,pt,1)});function by(i,e,t){var r,n,s,o,a=0;t||(t={});var l=function(){a=t.leading===!1?0:Al(),r=null,o=i.apply(n,s),r||(n=s=null)},c=function(){var u=Al();!a&&t.leading===!1&&(a=u);var d=e-(u-a);return n=this,s=arguments,d<=0||d>e?(r&&(clearTimeout(r),r=null),a=u,o=i.apply(n,s),r||(n=s=null)):!r&&t.trailing!==!1&&(r=setTimeout(l,d)),o};return c.cancel=function(){clearTimeout(r),a=0,r=n=s=null},c}var gj=j(()=>{uy()});function vy(i,e,t){var r,n,s,o,a,l=function(){var u=Al()-n;e>u?r=setTimeout(l,e-u):(r=null,t||(o=i.apply(a,s)),r||(s=a=null))},c=Kt(function(u){return a=this,s=u,n=Al(),r||(r=setTimeout(l,e),t&&(o=i.apply(a,s))),o});return c.cancel=function(){clearTimeout(r),r=s=a=null},c}var _j=j(()=>{Xn();uy()});function xy(i,e){return Ll(e,i)}var bj=j(()=>{h_()});function Kc(i){return function(){return!i.apply(this,arguments)}}var yy=j(()=>{});function wy(){var i=arguments,e=i.length-1;return function(){for(var t=e,r=i[e].apply(this,arguments);t--;)r=i[t].call(this,r);return r}}var vj=j(()=>{});function Sy(i,e){return function(){if(--i<1)return e.apply(this,arguments)}}var xj=j(()=>{});function jm(i,e){var t;return function(){return--i>0&&(t=e.apply(this,arguments)),i<=1&&(e=null),t}}var Bk=j(()=>{});var jk,yj=j(()=>{h_();Bk();jk=Ll(jm,2)});function Hm(i,e,t){e=Yt(e,t);for(var r=It(i),n,s=0,o=r.length;s{Mn();Dr()});function p_(i){return function(e,t,r){t=Yt(t,r);for(var n=ci(e),s=i>0?0:n-1;s>=0&&s{Mn();ms()});var ku,Cy=j(()=>{Fk();ku=p_(1)});var g_,$k=j(()=>{Fk();g_=p_(-1)});function Fm(i,e,t,r){t=Yt(t,r,1);for(var n=t(e),s=0,o=ci(i);s{Mn();ms()});function __(i,e,t){return function(r,n,s){var o=0,a=ci(r);if(typeof s=="number")i>0?o=s>=0?s:Math.max(s+a,o):a=s>=0?Math.min(s+1,a):s+a+1;else if(t&&s&&a)return s=t(r,n),r[s]===n?s:-1;if(n!==n)return s=e(Ea.call(r,o,a),Rm),s>=0?s+o:-1;for(s=i>0?o:a-1;s>=0&&s{ms();_i();QI()});var b_,Uk=j(()=>{Wk();Cy();qk();b_=__(1,ku,Fm)});var Vk,wj=j(()=>{$k();qk();Vk=__(-1,g_)});function Mu(i,e,t){var r=di(i)?ku:Hm,n=r(i,e,t);if(n!==void 0&&n!==-1)return i[n]}var Gk=j(()=>{Jn();Cy();Hk()});function Ey(i,e){return Mu(i,No(e))}var Sj=j(()=>{Gk();l_()});function Or(i,e,t){e=Do(e,t);var r,n;if(di(i))for(r=0,n=i.length;r{Pm();Jn();Dr()});function Rn(i,e,t){e=Yt(e,t);for(var r=!di(i)&&It(i),n=(r||i).length,s=Array(n),o=0;o{Mn();Jn();Dr()});function v_(i){var e=function(t,r,n,s){var o=!di(t)&&It(t),a=(o||t).length,l=i>0?0:a-1;for(s||(n=t[o?o[l]:l],l+=i);l>=0&&l=3;return e(t,Do(r,s,4),n,o)}}var Xk=j(()=>{Jn();Dr();Pm()});var x_,Cj=j(()=>{Xk();x_=v_(1)});var Iy,Ej=j(()=>{Xk();Iy=v_(-1)});function ps(i,e,t){var r=[];return e=Yt(e,t),Or(i,function(n,s,o){e(n,s,o)&&r.push(n)}),r}var $m=j(()=>{Mn();Yc()});function ky(i,e,t){return ps(i,Kc(Yt(e)),t)}var Ij=j(()=>{$m();yy();Mn()});function y_(i,e,t){e=Yt(e,t);for(var r=!di(i)&&It(i),n=(r||i).length,s=0;s{Mn();Jn();Dr()});function w_(i,e,t){e=Yt(e,t);for(var r=!di(i)&&It(i),n=(r||i).length,s=0;s{Mn();Jn();Dr()});function ln(i,e,t,r){return di(i)||(i=Yn(i)),(typeof t!="number"||r)&&(t=0),b_(i,e,t)>=0}var Wm=j(()=>{Jn();xu();Uk()});var Kk,Rj=j(()=>{Xn();fs();Ru();ny();Om();Kk=Kt(function(i,e,t){var r,n;return ii(e)?n=e:(e=Lo(e),r=e.slice(0,-1),e=e[e.length-1]),Rn(i,function(s){var o=n;if(!o){if(r&&r.length&&(s=Su(s,r)),s==null)return;o=s[e]}return o==null?o:o.apply(s,t)})})});function Jc(i,e){return Rn(i,Xc(e))}var My=j(()=>{Ru();ay()});function Ry(i,e){return ps(i,No(e))}var Tj=j(()=>{$m();l_()});function qm(i,e,t){var r=-1/0,n=-1/0,s,o;if(e==null||typeof e=="number"&&typeof i[0]!="object"&&i!=null){i=di(i)?i:Yn(i);for(var a=0,l=i.length;ar&&(r=s)}else e=Yt(e,t),Or(i,function(c,u,d){o=e(c,u,d),(o>n||o===-1/0&&r===-1/0)&&(r=c,n=o)});return r}var Yk=j(()=>{Jn();xu();Mn();Yc()});function Ty(i,e,t){var r=1/0,n=1/0,s,o;if(e==null||typeof e=="number"&&typeof i[0]!="object"&&i!=null){i=di(i)?i:Yn(i);for(var a=0,l=i.length;a{Jn();xu();Mn();Yc()});function Um(i){return i?kn(i)?Ea.call(i):_u(i)?i.match(fQ):di(i)?Rn(i,Gc):Yn(i):[]}var fQ,Jk=j(()=>{Uc();_i();$x();Jn();Ru();oy();xu();fQ=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g});function Vm(i,e,t){if(e==null||t)return di(i)||(i=Yn(i)),i[Eu(i.length-1)];var r=Um(i),n=ci(r);e=Math.max(Math.min(e,n),0);for(var s=n-1,o=0;o{Jn();xu();ms();Ck();Jk()});function Ay(i){return Vm(i,1/0)}var Lj=j(()=>{Zk()});function Ly(i,e,t){var r=0;return e=Yt(e,t),Jc(Rn(i,function(n,s,o){return{value:n,index:r++,criteria:e(n,s,o)}}).sort(function(n,s){var o=n.criteria,a=s.criteria;if(o!==a){if(o>a||o===void 0)return 1;if(o{Mn();My();Ru()});function Nl(i,e){return function(t,r,n){var s=e?[[],[]]:{};return r=Yt(r,n),Or(t,function(o,a){var l=r(o,a,t);i(s,o,l)}),s}}var S_=j(()=>{Mn();Yc()});var Qk,Dj=j(()=>{S_();Tl();Qk=Nl(function(i,e,t){Vr(i,t)?i[t].push(e):i[t]=[e]})});var eM,Oj=j(()=>{S_();eM=Nl(function(i,e,t){i[t]=e})});var tM,zj=j(()=>{S_();Tl();tM=Nl(function(i,e,t){Vr(i,t)?i[t]++:i[t]=1})});var iM,Pj=j(()=>{S_();iM=Nl(function(i,e,t){i[t?0:1].push(e)},!0)});function Ny(i){return i==null?0:di(i)?i.length:It(i).length}var Bj=j(()=>{Jn();Dr()});function rM(i,e,t){return e in t}var jj=j(()=>{});var C_,nM=j(()=>{Xn();fs();Pm();Lm();jj();Iu();C_=Kt(function(i,e){var t={},r=e[0];if(i==null)return t;ii(r)?(e.length>1&&(r=Do(r,e[1])),e=Js(i)):(r=rM,e=Zn(e,!1,!1),i=Object(i));for(var n=0,s=e.length;n{Xn();fs();yy();Ru();Iu();Wm();nM();sM=Kt(function(i,e){var t=e[0],r;return ii(t)?(t=Kc(t),e.length>1&&(r=e[1])):(e=Rn(Zn(e,!1,!1),String),t=function(n,s){return!ln(e,s)}),C_(i,t,r)})});function Gm(i,e,t){return Ea.call(i,0,Math.max(0,i.length-(e==null||t?1:e)))}var oM=j(()=>{_i()});function Xm(i,e,t){return i==null||i.length<1?e==null||t?void 0:[]:e==null||t?i[0]:Gm(i,i.length-e)}var Fj=j(()=>{oM()});function Zc(i,e,t){return Ea.call(i,e==null||t?1:e)}var aM=j(()=>{_i()});function Dy(i,e,t){return i==null||i.length<1?e==null||t?void 0:[]:e==null||t?i[i.length-1]:Zc(i,Math.max(0,i.length-e))}var $j=j(()=>{aM()});function Oy(i){return ps(i,Boolean)}var Wj=j(()=>{$m()});function zy(i,e){return Zn(i,e,!1)}var qj=j(()=>{Iu()});var E_,lM=j(()=>{Xn();Iu();$m();Wm();E_=Kt(function(i,e){return e=Zn(e,!0,!0),ps(i,function(t){return!ln(e,t)})})});var cM,Uj=j(()=>{Xn();lM();cM=Kt(function(i,e){return E_(i,e)})});function Tu(i,e,t,r){Im(e)||(r=t,t=e,e=!1),t!=null&&(t=Yt(t,r));for(var n=[],s=[],o=0,a=ci(i);o{qI();Mn();ms();Wm()});var uM,Vj=j(()=>{Xn();dM();Iu();uM=Kt(function(i){return Tu(Zn(i,!0,!0))})});function Py(i){for(var e=[],t=arguments.length,r=0,n=ci(i);r{ms();Wm()});function Au(i){for(var e=i&&qm(i,ci).length||0,t=Array(e),r=0;r{Yk();ms();My()});var fM,Xj=j(()=>{Xn();hM();fM=Kt(Au)});function By(i,e){for(var t={},r=0,n=ci(i);r{ms()});function jy(i,e,t){e==null&&(e=i||0,i=0),t||(t=e{});function Hy(i,e){if(e==null||e<1)return[];for(var t=[],r=0,n=i.length;r{_i()});function Km(i,e){return i._chain?pt(e).chain():e}var mM=j(()=>{Kn()});function Ym(i){return Or(yu(i),function(e){var t=pt[e]=i[e];pt.prototype[e]=function(){var r=[this._wrapped];return y3.apply(r,arguments),Km(this,t.apply(pt,r))}}),pt}var Zj=j(()=>{Kn();Yc();pk();_i();mM()});var Qj,eH=j(()=>{Kn();Yc();_i();mM();Or(["pop","push","reverse","shift","sort","splice","unshift"],function(i){var e=Yg[i];pt.prototype[i]=function(){var t=this._wrapped;return t!=null&&(e.apply(t,arguments),(i==="shift"||i==="splice")&&t.length===0&&delete t[0]),Km(this,t)}});Or(["concat","join","slice"],function(i){var e=Yg[i];pt.prototype[i]=function(){var t=this._wrapped;return t!=null&&(t=e.apply(t,arguments)),Km(this,t)}});Qj=pt});var pM={};Go(pM,{VERSION:()=>Kg,after:()=>Sy,all:()=>y_,allKeys:()=>Js,any:()=>w_,assign:()=>Vc,before:()=>jm,bind:()=>f_,bindAll:()=>Ok,chain:()=>gy,chunk:()=>Hy,clone:()=>iy,collect:()=>Rn,compact:()=>Oy,compose:()=>wy,constant:()=>Tm,contains:()=>ln,countBy:()=>tM,create:()=>ty,debounce:()=>vy,default:()=>Qj,defaults:()=>s_,defer:()=>Pk,delay:()=>m_,detect:()=>Mu,difference:()=>E_,drop:()=>Zc,each:()=>Or,escape:()=>kk,every:()=>y_,extend:()=>n_,extendOwn:()=>Vc,filter:()=>ps,find:()=>Mu,findIndex:()=>ku,findKey:()=>Hm,findLastIndex:()=>g_,findWhere:()=>Ey,first:()=>Xm,flatten:()=>zy,foldl:()=>x_,foldr:()=>Iy,forEach:()=>Or,functions:()=>yu,get:()=>zm,groupBy:()=>Qk,has:()=>sy,head:()=>Xm,identity:()=>Gc,include:()=>ln,includes:()=>ln,indexBy:()=>eM,indexOf:()=>b_,initial:()=>Gm,inject:()=>x_,intersection:()=>Py,invert:()=>Dm,invoke:()=>Kk,isArguments:()=>bu,isArray:()=>kn,isArrayBuffer:()=>Qg,isBoolean:()=>Im,isDataView:()=>qc,isDate:()=>VI,isElement:()=>Fx,isEmpty:()=>Xx,isEqual:()=>Yx,isError:()=>XI,isFinite:()=>Vx,isFunction:()=>ii,isMap:()=>dk,isMatch:()=>Am,isNaN:()=>Rm,isNull:()=>Hx,isNumber:()=>Jg,isObject:()=>an,isRegExp:()=>GI,isSet:()=>hk,isString:()=>_u,isSymbol:()=>Zg,isTypedArray:()=>i_,isUndefined:()=>Em,isWeakMap:()=>uk,isWeakSet:()=>fk,iteratee:()=>Cu,keys:()=>It,last:()=>Dy,lastIndexOf:()=>Vk,map:()=>Rn,mapObject:()=>ly,matcher:()=>No,matches:()=>No,max:()=>qm,memoize:()=>_y,methods:()=>yu,min:()=>Ty,mixin:()=>Ym,negate:()=>Kc,noop:()=>Bm,now:()=>Al,object:()=>By,omit:()=>sM,once:()=>jk,pairs:()=>Zx,partial:()=>Ll,partition:()=>iM,pick:()=>C_,pluck:()=>Jc,property:()=>Xc,propertyOf:()=>cy,random:()=>Eu,range:()=>jy,reduce:()=>x_,reduceRight:()=>Iy,reject:()=>ky,rest:()=>Zc,restArguments:()=>Kt,result:()=>my,sample:()=>Vm,select:()=>ps,shuffle:()=>Ay,size:()=>Ny,some:()=>w_,sortBy:()=>Ly,sortedIndex:()=>Fm,tail:()=>Zc,take:()=>Xm,tap:()=>ry,template:()=>fy,templateSettings:()=>Rk,throttle:()=>by,times:()=>dy,toArray:()=>Um,toPath:()=>a_,transpose:()=>Au,unescape:()=>Mk,union:()=>uM,uniq:()=>Tu,unique:()=>Tu,uniqueId:()=>py,unzip:()=>Au,values:()=>Yn,where:()=>Ry,without:()=>cM,wrap:()=>xy,zip:()=>fM});var Fy=j(()=>{_i();Xn();Wc();M3();WI();qI();R3();$x();UI();T3();A3();L3();KI();YI();qx();Uc();fs();Ux();O3();QI();rk();B3();sk();$3();G3();X3();K3();Y3();Dr();Lm();xu();J3();mk();pk();gk();ey();_k();Z3();Q3();ej();xk();tj();ij();oy();ek();Sk();vk();ay();rj();l_();nj();Ck();uy();sj();lj();Tk();cj();dj();uj();hj();wk();h_();Dk();fj();mj();zk();pj();gj();_j();bj();yy();vj();xj();Bk();yj();Hk();Cy();$k();Wk();Uk();wj();Gk();Sj();Yc();Ru();Cj();Ej();$m();Ij();kj();Mj();Wm();Rj();My();Tj();Yk();Aj();Lj();Zk();Nj();Dj();Oj();zj();Pj();Jk();Bj();nM();Hj();Fj();oM();$j();aM();Wj();qj();Uj();dM();Vj();Gj();lM();hM();Xj();Kj();Yj();Jj();Zj();eH()});var gM,tH,iH=j(()=>{Fy();Fy();gM=Ym(pM);gM._=gM;tH=gM});var rH={};Go(rH,{VERSION:()=>Kg,after:()=>Sy,all:()=>y_,allKeys:()=>Js,any:()=>w_,assign:()=>Vc,before:()=>jm,bind:()=>f_,bindAll:()=>Ok,chain:()=>gy,chunk:()=>Hy,clone:()=>iy,collect:()=>Rn,compact:()=>Oy,compose:()=>wy,constant:()=>Tm,contains:()=>ln,countBy:()=>tM,create:()=>ty,debounce:()=>vy,default:()=>tH,defaults:()=>s_,defer:()=>Pk,delay:()=>m_,detect:()=>Mu,difference:()=>E_,drop:()=>Zc,each:()=>Or,escape:()=>kk,every:()=>y_,extend:()=>n_,extendOwn:()=>Vc,filter:()=>ps,find:()=>Mu,findIndex:()=>ku,findKey:()=>Hm,findLastIndex:()=>g_,findWhere:()=>Ey,first:()=>Xm,flatten:()=>zy,foldl:()=>x_,foldr:()=>Iy,forEach:()=>Or,functions:()=>yu,get:()=>zm,groupBy:()=>Qk,has:()=>sy,head:()=>Xm,identity:()=>Gc,include:()=>ln,includes:()=>ln,indexBy:()=>eM,indexOf:()=>b_,initial:()=>Gm,inject:()=>x_,intersection:()=>Py,invert:()=>Dm,invoke:()=>Kk,isArguments:()=>bu,isArray:()=>kn,isArrayBuffer:()=>Qg,isBoolean:()=>Im,isDataView:()=>qc,isDate:()=>VI,isElement:()=>Fx,isEmpty:()=>Xx,isEqual:()=>Yx,isError:()=>XI,isFinite:()=>Vx,isFunction:()=>ii,isMap:()=>dk,isMatch:()=>Am,isNaN:()=>Rm,isNull:()=>Hx,isNumber:()=>Jg,isObject:()=>an,isRegExp:()=>GI,isSet:()=>hk,isString:()=>_u,isSymbol:()=>Zg,isTypedArray:()=>i_,isUndefined:()=>Em,isWeakMap:()=>uk,isWeakSet:()=>fk,iteratee:()=>Cu,keys:()=>It,last:()=>Dy,lastIndexOf:()=>Vk,map:()=>Rn,mapObject:()=>ly,matcher:()=>No,matches:()=>No,max:()=>qm,memoize:()=>_y,methods:()=>yu,min:()=>Ty,mixin:()=>Ym,negate:()=>Kc,noop:()=>Bm,now:()=>Al,object:()=>By,omit:()=>sM,once:()=>jk,pairs:()=>Zx,partial:()=>Ll,partition:()=>iM,pick:()=>C_,pluck:()=>Jc,property:()=>Xc,propertyOf:()=>cy,random:()=>Eu,range:()=>jy,reduce:()=>x_,reduceRight:()=>Iy,reject:()=>ky,rest:()=>Zc,restArguments:()=>Kt,result:()=>my,sample:()=>Vm,select:()=>ps,shuffle:()=>Ay,size:()=>Ny,some:()=>w_,sortBy:()=>Ly,sortedIndex:()=>Fm,tail:()=>Zc,take:()=>Xm,tap:()=>ry,template:()=>fy,templateSettings:()=>Rk,throttle:()=>by,times:()=>dy,toArray:()=>Um,toPath:()=>a_,transpose:()=>Au,unescape:()=>Mk,union:()=>uM,uniq:()=>Tu,unique:()=>Tu,uniqueId:()=>py,unzip:()=>Au,values:()=>Yn,where:()=>Ry,without:()=>cM,wrap:()=>xy,zip:()=>fM});var nH=j(()=>{iH();Fy()});var Lu=Fe((sH,$y)=>{(function(i,e){"use strict";typeof $y=="object"&&typeof $y.exports=="object"?$y.exports=i.document?e(i,!0):function(t){if(!t.document)throw new Error("jQuery requires a window with a document");return e(t)}:e(i)})(typeof window<"u"?window:sH,function(i,e){"use strict";var t=[],r=Object.getPrototypeOf,n=t.slice,s=t.flat?function(g){return t.flat.call(g)}:function(g){return t.concat.apply([],g)},o=t.push,a=t.indexOf,l={},c=l.toString,u=l.hasOwnProperty,d=u.toString,f=d.call(Object),h={},m=function(v){return typeof v=="function"&&typeof v.nodeType!="number"&&typeof v.item!="function"},p=function(v){return v!=null&&v===v.window},_=i.document,x={type:!0,src:!0,nonce:!0,noModule:!0};function y(g,v,w){w=w||_;var E,R,T=w.createElement("script");if(T.text=g,v)for(E in x)R=v[E]||v.getAttribute&&v.getAttribute(E),R&&T.setAttribute(E,R);w.head.appendChild(T).parentNode.removeChild(T)}function S(g){return g==null?g+"":typeof g=="object"||typeof g=="function"?l[c.call(g)]||"object":typeof g}var I="3.7.1",C=/HTML$/i,b=function(g,v){return new b.fn.init(g,v)};b.fn=b.prototype={jquery:I,constructor:b,length:0,toArray:function(){return n.call(this)},get:function(g){return g==null?n.call(this):g<0?this[g+this.length]:this[g]},pushStack:function(g){var v=b.merge(this.constructor(),g);return v.prevObject=this,v},each:function(g){return b.each(this,g)},map:function(g){return this.pushStack(b.map(this,function(v,w){return g.call(v,w,v)}))},slice:function(){return this.pushStack(n.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(b.grep(this,function(g,v){return(v+1)%2}))},odd:function(){return this.pushStack(b.grep(this,function(g,v){return v%2}))},eq:function(g){var v=this.length,w=+g+(g<0?v:0);return this.pushStack(w>=0&&w0&&v-1 in g}function M(g,v){return g.nodeName&&g.nodeName.toLowerCase()===v.toLowerCase()}var N=t.pop,P=t.sort,W=t.splice,ee="[\\x20\\t\\r\\n\\f]",be=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g");b.contains=function(g,v){var w=v&&v.parentNode;return g===w||!!(w&&w.nodeType===1&&(g.contains?g.contains(w):g.compareDocumentPosition&&g.compareDocumentPosition(w)&16))};var fe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function Y(g,v){return v?g==="\0"?"\uFFFD":g.slice(0,-1)+"\\"+g.charCodeAt(g.length-1).toString(16)+" ":"\\"+g}b.escapeSelector=function(g){return(g+"").replace(fe,Y)};var te=_,ie=o;(function(){var g,v,w,E,R,T=ie,D,U,$,J,de,xe=b.expando,se=0,Re=0,dt=Pb(),Lt=Pb(),wt=Pb(),Br=Pb(),mr=function(H,X){return H===X&&(R=!0),0},$o="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",Wo="(?:\\\\[\\da-fA-F]{1,6}"+ee+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",kt="\\["+ee+"*("+Wo+")(?:"+ee+"*([*^$|!~]?=)"+ee+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+Wo+"))|)"+ee+"*\\]",_d=":("+Wo+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+kt+")*)|.*)\\)|)",zt=new RegExp(ee+"+","g"),Di=new RegExp("^"+ee+"*,"+ee+"*"),Hp=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),F1=new RegExp(ee+"|>"),qo=new RegExp(_d),Fp=new RegExp("^"+Wo+"$"),Uo={ID:new RegExp("^#("+Wo+")"),CLASS:new RegExp("^\\.("+Wo+")"),TAG:new RegExp("^("+Wo+"|[*])"),ATTR:new RegExp("^"+kt),PSEUDO:new RegExp("^"+_d),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+$o+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},tc=/^(?:input|select|textarea|button)$/i,ic=/^h\d$/i,Is=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$1=/[+~]/,qa=new RegExp("\\\\[\\da-fA-F]{1,6}"+ee+"?|\\\\([^\\r\\n\\f])","g"),Ua=function(H,X){var re="0x"+H.slice(1)-65536;return X||(re<0?String.fromCharCode(re+65536):String.fromCharCode(re>>10|55296,re&1023|56320))},dW=function(){rc()},uW=jb(function(H){return H.disabled===!0&&M(H,"fieldset")},{dir:"parentNode",next:"legend"});function hW(){try{return D.activeElement}catch{}}try{T.apply(t=n.call(te.childNodes),te.childNodes),t[te.childNodes.length].nodeType}catch{T={apply:function(X,re){ie.apply(X,n.call(re))},call:function(X){ie.apply(X,n.call(arguments,1))}}}function Vt(H,X,re,le){var ve,Pe,We,Ke,qe,Ct,lt,ft=X&&X.ownerDocument,Et=X?X.nodeType:9;if(re=re||[],typeof H!="string"||!H||Et!==1&&Et!==9&&Et!==11)return re;if(!le&&(rc(X),X=X||D,$)){if(Et!==11&&(qe=Is.exec(H)))if(ve=qe[1]){if(Et===9)if(We=X.getElementById(ve)){if(We.id===ve)return T.call(re,We),re}else return re;else if(ft&&(We=ft.getElementById(ve))&&Vt.contains(X,We)&&We.id===ve)return T.call(re,We),re}else{if(qe[2])return T.apply(re,X.getElementsByTagName(H)),re;if((ve=qe[3])&&X.getElementsByClassName)return T.apply(re,X.getElementsByClassName(ve)),re}if(!Br[H+" "]&&(!J||!J.test(H))){if(lt=H,ft=X,Et===1&&(F1.test(H)||Hp.test(H))){for(ft=$1.test(H)&&W1(X.parentNode)||X,(ft!=X||!h.scope)&&((Ke=X.getAttribute("id"))?Ke=b.escapeSelector(Ke):X.setAttribute("id",Ke=xe)),Ct=$p(H),Pe=Ct.length;Pe--;)Ct[Pe]=(Ke?"#"+Ke:":scope")+" "+Bb(Ct[Pe]);lt=Ct.join(",")}try{return T.apply(re,ft.querySelectorAll(lt)),re}catch{Br(H,!0)}finally{Ke===xe&&X.removeAttribute("id")}}}return DA(H.replace(be,"$1"),X,re,le)}function Pb(){var H=[];function X(re,le){return H.push(re+" ")>v.cacheLength&&delete X[H.shift()],X[re+" "]=le}return X}function ho(H){return H[xe]=!0,H}function gh(H){var X=D.createElement("fieldset");try{return!!H(X)}catch{return!1}finally{X.parentNode&&X.parentNode.removeChild(X),X=null}}function fW(H){return function(X){return M(X,"input")&&X.type===H}}function mW(H){return function(X){return(M(X,"input")||M(X,"button"))&&X.type===H}}function LA(H){return function(X){return"form"in X?X.parentNode&&X.disabled===!1?"label"in X?"label"in X.parentNode?X.parentNode.disabled===H:X.disabled===H:X.isDisabled===H||X.isDisabled!==!H&&uW(X)===H:X.disabled===H:"label"in X?X.disabled===H:!1}}function bd(H){return ho(function(X){return X=+X,ho(function(re,le){for(var ve,Pe=H([],re.length,X),We=Pe.length;We--;)re[ve=Pe[We]]&&(re[ve]=!(le[ve]=re[ve]))})})}function W1(H){return H&&typeof H.getElementsByTagName<"u"&&H}function rc(H){var X,re=H?H.ownerDocument||H:te;return re==D||re.nodeType!==9||!re.documentElement||(D=re,U=D.documentElement,$=!b.isXMLDoc(D),de=U.matches||U.webkitMatchesSelector||U.msMatchesSelector,U.msMatchesSelector&&te!=D&&(X=D.defaultView)&&X.top!==X&&X.addEventListener("unload",dW),h.getById=gh(function(le){return U.appendChild(le).id=b.expando,!D.getElementsByName||!D.getElementsByName(b.expando).length}),h.disconnectedMatch=gh(function(le){return de.call(le,"*")}),h.scope=gh(function(){return D.querySelectorAll(":scope")}),h.cssHas=gh(function(){try{return D.querySelector(":has(*,:jqfake)"),!1}catch{return!0}}),h.getById?(v.filter.ID=function(le){var ve=le.replace(qa,Ua);return function(Pe){return Pe.getAttribute("id")===ve}},v.find.ID=function(le,ve){if(typeof ve.getElementById<"u"&&$){var Pe=ve.getElementById(le);return Pe?[Pe]:[]}}):(v.filter.ID=function(le){var ve=le.replace(qa,Ua);return function(Pe){var We=typeof Pe.getAttributeNode<"u"&&Pe.getAttributeNode("id");return We&&We.value===ve}},v.find.ID=function(le,ve){if(typeof ve.getElementById<"u"&&$){var Pe,We,Ke,qe=ve.getElementById(le);if(qe){if(Pe=qe.getAttributeNode("id"),Pe&&Pe.value===le)return[qe];for(Ke=ve.getElementsByName(le),We=0;qe=Ke[We++];)if(Pe=qe.getAttributeNode("id"),Pe&&Pe.value===le)return[qe]}return[]}}),v.find.TAG=function(le,ve){return typeof ve.getElementsByTagName<"u"?ve.getElementsByTagName(le):ve.querySelectorAll(le)},v.find.CLASS=function(le,ve){if(typeof ve.getElementsByClassName<"u"&&$)return ve.getElementsByClassName(le)},J=[],gh(function(le){var ve;U.appendChild(le).innerHTML="",le.querySelectorAll("[selected]").length||J.push("\\["+ee+"*(?:value|"+$o+")"),le.querySelectorAll("[id~="+xe+"-]").length||J.push("~="),le.querySelectorAll("a#"+xe+"+*").length||J.push(".#.+[+~]"),le.querySelectorAll(":checked").length||J.push(":checked"),ve=D.createElement("input"),ve.setAttribute("type","hidden"),le.appendChild(ve).setAttribute("name","D"),U.appendChild(le).disabled=!0,le.querySelectorAll(":disabled").length!==2&&J.push(":enabled",":disabled"),ve=D.createElement("input"),ve.setAttribute("name",""),le.appendChild(ve),le.querySelectorAll("[name='']").length||J.push("\\["+ee+"*name"+ee+"*="+ee+`*(?:''|"")`)}),h.cssHas||J.push(":has"),J=J.length&&new RegExp(J.join("|")),mr=function(le,ve){if(le===ve)return R=!0,0;var Pe=!le.compareDocumentPosition-!ve.compareDocumentPosition;return Pe||(Pe=(le.ownerDocument||le)==(ve.ownerDocument||ve)?le.compareDocumentPosition(ve):1,Pe&1||!h.sortDetached&&ve.compareDocumentPosition(le)===Pe?le===D||le.ownerDocument==te&&Vt.contains(te,le)?-1:ve===D||ve.ownerDocument==te&&Vt.contains(te,ve)?1:E?a.call(E,le)-a.call(E,ve):0:Pe&4?-1:1)}),D}Vt.matches=function(H,X){return Vt(H,null,null,X)},Vt.matchesSelector=function(H,X){if(rc(H),$&&!Br[X+" "]&&(!J||!J.test(X)))try{var re=de.call(H,X);if(re||h.disconnectedMatch||H.document&&H.document.nodeType!==11)return re}catch{Br(X,!0)}return Vt(X,D,null,[H]).length>0},Vt.contains=function(H,X){return(H.ownerDocument||H)!=D&&rc(H),b.contains(H,X)},Vt.attr=function(H,X){(H.ownerDocument||H)!=D&&rc(H);var re=v.attrHandle[X.toLowerCase()],le=re&&u.call(v.attrHandle,X.toLowerCase())?re(H,X,!$):void 0;return le!==void 0?le:H.getAttribute(X)},Vt.error=function(H){throw new Error("Syntax error, unrecognized expression: "+H)},b.uniqueSort=function(H){var X,re=[],le=0,ve=0;if(R=!h.sortStable,E=!h.sortStable&&n.call(H,0),P.call(H,mr),R){for(;X=H[ve++];)X===H[ve]&&(le=re.push(ve));for(;le--;)W.call(H,re[le],1)}return E=null,H},b.fn.uniqueSort=function(){return this.pushStack(b.uniqueSort(n.apply(this)))},v=b.expr={cacheLength:50,createPseudo:ho,match:Uo,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(H){return H[1]=H[1].replace(qa,Ua),H[3]=(H[3]||H[4]||H[5]||"").replace(qa,Ua),H[2]==="~="&&(H[3]=" "+H[3]+" "),H.slice(0,4)},CHILD:function(H){return H[1]=H[1].toLowerCase(),H[1].slice(0,3)==="nth"?(H[3]||Vt.error(H[0]),H[4]=+(H[4]?H[5]+(H[6]||1):2*(H[3]==="even"||H[3]==="odd")),H[5]=+(H[7]+H[8]||H[3]==="odd")):H[3]&&Vt.error(H[0]),H},PSEUDO:function(H){var X,re=!H[6]&&H[2];return Uo.CHILD.test(H[0])?null:(H[3]?H[2]=H[4]||H[5]||"":re&&qo.test(re)&&(X=$p(re,!0))&&(X=re.indexOf(")",re.length-X)-re.length)&&(H[0]=H[0].slice(0,X),H[2]=re.slice(0,X)),H.slice(0,3))}},filter:{TAG:function(H){var X=H.replace(qa,Ua).toLowerCase();return H==="*"?function(){return!0}:function(re){return M(re,X)}},CLASS:function(H){var X=dt[H+" "];return X||(X=new RegExp("(^|"+ee+")"+H+"("+ee+"|$)"))&&dt(H,function(re){return X.test(typeof re.className=="string"&&re.className||typeof re.getAttribute<"u"&&re.getAttribute("class")||"")})},ATTR:function(H,X,re){return function(le){var ve=Vt.attr(le,H);return ve==null?X==="!=":X?(ve+="",X==="="?ve===re:X==="!="?ve!==re:X==="^="?re&&ve.indexOf(re)===0:X==="*="?re&&ve.indexOf(re)>-1:X==="$="?re&&ve.slice(-re.length)===re:X==="~="?(" "+ve.replace(zt," ")+" ").indexOf(re)>-1:X==="|="?ve===re||ve.slice(0,re.length+1)===re+"-":!1):!0}},CHILD:function(H,X,re,le,ve){var Pe=H.slice(0,3)!=="nth",We=H.slice(-4)!=="last",Ke=X==="of-type";return le===1&&ve===0?function(qe){return!!qe.parentNode}:function(qe,Ct,lt){var ft,Et,rt,oi,zn,Yr=Pe!==We?"nextSibling":"previousSibling",ks=qe.parentNode,Vo=Ke&&qe.nodeName.toLowerCase(),_h=!lt&&!Ke,pn=!1;if(ks){if(Pe){for(;Yr;){for(rt=qe;rt=rt[Yr];)if(Ke?M(rt,Vo):rt.nodeType===1)return!1;zn=Yr=H==="only"&&!zn&&"nextSibling"}return!0}if(zn=[We?ks.firstChild:ks.lastChild],We&&_h){for(Et=ks[xe]||(ks[xe]={}),ft=Et[H]||[],oi=ft[0]===se&&ft[1],pn=oi&&ft[2],rt=oi&&ks.childNodes[oi];rt=++oi&&rt&&rt[Yr]||(pn=oi=0)||zn.pop();)if(rt.nodeType===1&&++pn&&rt===qe){Et[H]=[se,oi,pn];break}}else if(_h&&(Et=qe[xe]||(qe[xe]={}),ft=Et[H]||[],oi=ft[0]===se&&ft[1],pn=oi),pn===!1)for(;(rt=++oi&&rt&&rt[Yr]||(pn=oi=0)||zn.pop())&&!((Ke?M(rt,Vo):rt.nodeType===1)&&++pn&&(_h&&(Et=rt[xe]||(rt[xe]={}),Et[H]=[se,pn]),rt===qe)););return pn-=ve,pn===le||pn%le===0&&pn/le>=0}}},PSEUDO:function(H,X){var re,le=v.pseudos[H]||v.setFilters[H.toLowerCase()]||Vt.error("unsupported pseudo: "+H);return le[xe]?le(X):le.length>1?(re=[H,H,"",X],v.setFilters.hasOwnProperty(H.toLowerCase())?ho(function(ve,Pe){for(var We,Ke=le(ve,X),qe=Ke.length;qe--;)We=a.call(ve,Ke[qe]),ve[We]=!(Pe[We]=Ke[qe])}):function(ve){return le(ve,0,re)}):le}},pseudos:{not:ho(function(H){var X=[],re=[],le=G1(H.replace(be,"$1"));return le[xe]?ho(function(ve,Pe,We,Ke){for(var qe,Ct=le(ve,null,Ke,[]),lt=ve.length;lt--;)(qe=Ct[lt])&&(ve[lt]=!(Pe[lt]=qe))}):function(ve,Pe,We){return X[0]=ve,le(X,null,We,re),X[0]=null,!re.pop()}}),has:ho(function(H){return function(X){return Vt(H,X).length>0}}),contains:ho(function(H){return H=H.replace(qa,Ua),function(X){return(X.textContent||b.text(X)).indexOf(H)>-1}}),lang:ho(function(H){return Fp.test(H||"")||Vt.error("unsupported lang: "+H),H=H.replace(qa,Ua).toLowerCase(),function(X){var re;do if(re=$?X.lang:X.getAttribute("xml:lang")||X.getAttribute("lang"))return re=re.toLowerCase(),re===H||re.indexOf(H+"-")===0;while((X=X.parentNode)&&X.nodeType===1);return!1}}),target:function(H){var X=i.location&&i.location.hash;return X&&X.slice(1)===H.id},root:function(H){return H===U},focus:function(H){return H===hW()&&D.hasFocus()&&!!(H.type||H.href||~H.tabIndex)},enabled:LA(!1),disabled:LA(!0),checked:function(H){return M(H,"input")&&!!H.checked||M(H,"option")&&!!H.selected},selected:function(H){return H.parentNode&&H.parentNode.selectedIndex,H.selected===!0},empty:function(H){for(H=H.firstChild;H;H=H.nextSibling)if(H.nodeType<6)return!1;return!0},parent:function(H){return!v.pseudos.empty(H)},header:function(H){return ic.test(H.nodeName)},input:function(H){return tc.test(H.nodeName)},button:function(H){return M(H,"input")&&H.type==="button"||M(H,"button")},text:function(H){var X;return M(H,"input")&&H.type==="text"&&((X=H.getAttribute("type"))==null||X.toLowerCase()==="text")},first:bd(function(){return[0]}),last:bd(function(H,X){return[X-1]}),eq:bd(function(H,X,re){return[re<0?re+X:re]}),even:bd(function(H,X){for(var re=0;reX?le=X:le=re;--le>=0;)H.push(le);return H}),gt:bd(function(H,X,re){for(var le=re<0?re+X:re;++le1?function(X,re,le){for(var ve=H.length;ve--;)if(!H[ve](X,re,le))return!1;return!0}:H[0]}function pW(H,X,re){for(var le=0,ve=X.length;le-1&&(We[lt]=!(Ke[lt]=Et))}}else rt=Hb(rt===Ke?rt.splice(Yr,rt.length):rt),ve?ve(null,Ke,rt,Ct):T.apply(Ke,rt)})}function V1(H){for(var X,re,le,ve=H.length,Pe=v.relative[H[0].type],We=Pe||v.relative[" "],Ke=Pe?1:0,qe=jb(function(ft){return ft===X},We,!0),Ct=jb(function(ft){return a.call(X,ft)>-1},We,!0),lt=[function(ft,Et,rt){var oi=!Pe&&(rt||Et!=w)||((X=Et).nodeType?qe(ft,Et,rt):Ct(ft,Et,rt));return X=null,oi}];Ke1&&q1(lt),Ke>1&&Bb(H.slice(0,Ke-1).concat({value:H[Ke-2].type===" "?"*":""})).replace(be,"$1"),re,Ke0,le=H.length>0,ve=function(Pe,We,Ke,qe,Ct){var lt,ft,Et,rt=0,oi="0",zn=Pe&&[],Yr=[],ks=w,Vo=Pe||le&&v.find.TAG("*",Ct),_h=se+=ks==null?1:Math.random()||.1,pn=Vo.length;for(Ct&&(w=We==D||We||Ct);oi!==pn&&(lt=Vo[oi])!=null;oi++){if(le&<){for(ft=0,!We&<.ownerDocument!=D&&(rc(lt),Ke=!$);Et=H[ft++];)if(Et(lt,We||D,Ke)){T.call(qe,lt);break}Ct&&(se=_h)}re&&((lt=!Et&<)&&rt--,Pe&&zn.push(lt))}if(rt+=oi,re&&oi!==rt){for(ft=0;Et=X[ft++];)Et(zn,Yr,We,Ke);if(Pe){if(rt>0)for(;oi--;)zn[oi]||Yr[oi]||(Yr[oi]=N.call(qe));Yr=Hb(Yr)}T.apply(qe,Yr),Ct&&!Pe&&Yr.length>0&&rt+X.length>1&&b.uniqueSort(qe)}return Ct&&(se=_h,w=ks),zn};return re?ho(ve):ve}function G1(H,X){var re,le=[],ve=[],Pe=wt[H+" "];if(!Pe){for(X||(X=$p(H)),re=X.length;re--;)Pe=V1(X[re]),Pe[xe]?le.push(Pe):ve.push(Pe);Pe=wt(H,gW(ve,le)),Pe.selector=H}return Pe}function DA(H,X,re,le){var ve,Pe,We,Ke,qe,Ct=typeof H=="function"&&H,lt=!le&&$p(H=Ct.selector||H);if(re=re||[],lt.length===1){if(Pe=lt[0]=lt[0].slice(0),Pe.length>2&&(We=Pe[0]).type==="ID"&&X.nodeType===9&&$&&v.relative[Pe[1].type]){if(X=(v.find.ID(We.matches[0].replace(qa,Ua),X)||[])[0],X)Ct&&(X=X.parentNode);else return re;H=H.slice(Pe.shift().value.length)}for(ve=Uo.needsContext.test(H)?0:Pe.length;ve--&&(We=Pe[ve],!v.relative[Ke=We.type]);)if((qe=v.find[Ke])&&(le=qe(We.matches[0].replace(qa,Ua),$1.test(Pe[0].type)&&W1(X.parentNode)||X))){if(Pe.splice(ve,1),H=le.length&&Bb(Pe),!H)return T.apply(re,le),re;break}}return(Ct||G1(H,lt))(le,X,!$,re,!X||$1.test(H)&&W1(X.parentNode)||X),re}h.sortStable=xe.split("").sort(mr).join("")===xe,rc(),h.sortDetached=gh(function(H){return H.compareDocumentPosition(D.createElement("fieldset"))&1}),b.find=Vt,b.expr[":"]=b.expr.pseudos,b.unique=b.uniqueSort,Vt.compile=G1,Vt.select=DA,Vt.setDocument=rc,Vt.tokenize=$p,Vt.escape=b.escapeSelector,Vt.getText=b.text,Vt.isXML=b.isXMLDoc,Vt.selectors=b.expr,Vt.support=b.support,Vt.uniqueSort=b.uniqueSort})();var me=function(g,v,w){for(var E=[],R=w!==void 0;(g=g[v])&&g.nodeType!==9;)if(g.nodeType===1){if(R&&b(g).is(w))break;E.push(g)}return E},we=function(g,v){for(var w=[];g;g=g.nextSibling)g.nodeType===1&&g!==v&&w.push(g);return w},He=b.expr.match.needsContext,nt=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function at(g,v,w){return m(v)?b.grep(g,function(E,R){return!!v.call(E,R,E)!==w}):v.nodeType?b.grep(g,function(E){return E===v!==w}):typeof v!="string"?b.grep(g,function(E){return a.call(v,E)>-1!==w}):b.filter(v,g,w)}b.filter=function(g,v,w){var E=v[0];return w&&(g=":not("+g+")"),v.length===1&&E.nodeType===1?b.find.matchesSelector(E,g)?[E]:[]:b.find.matches(g,b.grep(v,function(R){return R.nodeType===1}))},b.fn.extend({find:function(g){var v,w,E=this.length,R=this;if(typeof g!="string")return this.pushStack(b(g).filter(function(){for(v=0;v1?b.uniqueSort(w):w},filter:function(g){return this.pushStack(at(this,g||[],!1))},not:function(g){return this.pushStack(at(this,g||[],!0))},is:function(g){return!!at(this,typeof g=="string"&&He.test(g)?b(g):g||[],!1).length}});var Le,Ye=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,Jt=b.fn.init=function(g,v,w){var E,R;if(!g)return this;if(w=w||Le,typeof g=="string")if(g[0]==="<"&&g[g.length-1]===">"&&g.length>=3?E=[null,g,null]:E=Ye.exec(g),E&&(E[1]||!v))if(E[1]){if(v=v instanceof b?v[0]:v,b.merge(this,b.parseHTML(E[1],v&&v.nodeType?v.ownerDocument||v:_,!0)),nt.test(E[1])&&b.isPlainObject(v))for(E in v)m(this[E])?this[E](v[E]):this.attr(E,v[E]);return this}else return R=_.getElementById(E[2]),R&&(this[0]=R,this.length=1),this;else return!v||v.jquery?(v||w).find(g):this.constructor(v).find(g);else{if(g.nodeType)return this[0]=g,this.length=1,this;if(m(g))return w.ready!==void 0?w.ready(g):g(b)}return b.makeArray(g,this)};Jt.prototype=b.fn,Le=b(_);var Je=/^(?:parents|prev(?:Until|All))/,Ze={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({has:function(g){var v=b(g,this),w=v.length;return this.filter(function(){for(var E=0;E-1:w.nodeType===1&&b.find.matchesSelector(w,g))){T.push(w);break}}return this.pushStack(T.length>1?b.uniqueSort(T):T)},index:function(g){return g?typeof g=="string"?a.call(b(g),this[0]):a.call(this,g.jquery?g[0]:g):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(g,v){return this.pushStack(b.uniqueSort(b.merge(this.get(),b(g,v))))},addBack:function(g){return this.add(g==null?this.prevObject:this.prevObject.filter(g))}});function fi(g,v){for(;(g=g[v])&&g.nodeType!==1;);return g}b.each({parent:function(g){var v=g.parentNode;return v&&v.nodeType!==11?v:null},parents:function(g){return me(g,"parentNode")},parentsUntil:function(g,v,w){return me(g,"parentNode",w)},next:function(g){return fi(g,"nextSibling")},prev:function(g){return fi(g,"previousSibling")},nextAll:function(g){return me(g,"nextSibling")},prevAll:function(g){return me(g,"previousSibling")},nextUntil:function(g,v,w){return me(g,"nextSibling",w)},prevUntil:function(g,v,w){return me(g,"previousSibling",w)},siblings:function(g){return we((g.parentNode||{}).firstChild,g)},children:function(g){return we(g.firstChild)},contents:function(g){return g.contentDocument!=null&&r(g.contentDocument)?g.contentDocument:(M(g,"template")&&(g=g.content||g),b.merge([],g.childNodes))}},function(g,v){b.fn[g]=function(w,E){var R=b.map(this,v,w);return g.slice(-5)!=="Until"&&(E=w),E&&typeof E=="string"&&(R=b.filter(E,R)),this.length>1&&(Ze[g]||b.uniqueSort(R),Je.test(g)&&R.reverse()),this.pushStack(R)}});var St=/[^\x20\t\r\n\f]+/g;function si(g){var v={};return b.each(g.match(St)||[],function(w,E){v[E]=!0}),v}b.Callbacks=function(g){g=typeof g=="string"?si(g):b.extend({},g);var v,w,E,R,T=[],D=[],U=-1,$=function(){for(R=R||g.once,E=v=!0;D.length;U=-1)for(w=D.shift();++U-1;)T.splice(se,1),se<=U&&U--}),this},has:function(de){return de?b.inArray(de,T)>-1:T.length>0},empty:function(){return T&&(T=[]),this},disable:function(){return R=D=[],T=w="",this},disabled:function(){return!T},lock:function(){return R=D=[],!w&&!v&&(T=w=""),this},locked:function(){return!!R},fireWith:function(de,xe){return R||(xe=xe||[],xe=[de,xe.slice?xe.slice():xe],D.push(xe),v||$()),this},fire:function(){return J.fireWith(this,arguments),this},fired:function(){return!!E}};return J};function Ai(g){return g}function Ge(g){throw g}function A(g,v,w,E){var R;try{g&&m(R=g.promise)?R.call(g).done(v).fail(w):g&&m(R=g.then)?R.call(g,v,w):v.apply(void 0,[g].slice(E))}catch(T){w.apply(void 0,[T])}}b.extend({Deferred:function(g){var v=[["notify","progress",b.Callbacks("memory"),b.Callbacks("memory"),2],["resolve","done",b.Callbacks("once memory"),b.Callbacks("once memory"),0,"resolved"],["reject","fail",b.Callbacks("once memory"),b.Callbacks("once memory"),1,"rejected"]],w="pending",E={state:function(){return w},always:function(){return R.done(arguments).fail(arguments),this},catch:function(T){return E.then(null,T)},pipe:function(){var T=arguments;return b.Deferred(function(D){b.each(v,function(U,$){var J=m(T[$[4]])&&T[$[4]];R[$[1]](function(){var de=J&&J.apply(this,arguments);de&&m(de.promise)?de.promise().progress(D.notify).done(D.resolve).fail(D.reject):D[$[0]+"With"](this,J?[de]:arguments)})}),T=null}).promise()},then:function(T,D,U){var $=0;function J(de,xe,se,Re){return function(){var dt=this,Lt=arguments,wt=function(){var mr,$o;if(!(de<$)){if(mr=se.apply(dt,Lt),mr===xe.promise())throw new TypeError("Thenable self-resolution");$o=mr&&(typeof mr=="object"||typeof mr=="function")&&mr.then,m($o)?Re?$o.call(mr,J($,xe,Ai,Re),J($,xe,Ge,Re)):($++,$o.call(mr,J($,xe,Ai,Re),J($,xe,Ge,Re),J($,xe,Ai,xe.notifyWith))):(se!==Ai&&(dt=void 0,Lt=[mr]),(Re||xe.resolveWith)(dt,Lt))}},Br=Re?wt:function(){try{wt()}catch(mr){b.Deferred.exceptionHook&&b.Deferred.exceptionHook(mr,Br.error),de+1>=$&&(se!==Ge&&(dt=void 0,Lt=[mr]),xe.rejectWith(dt,Lt))}};de?Br():(b.Deferred.getErrorHook?Br.error=b.Deferred.getErrorHook():b.Deferred.getStackHook&&(Br.error=b.Deferred.getStackHook()),i.setTimeout(Br))}}return b.Deferred(function(de){v[0][3].add(J(0,de,m(U)?U:Ai,de.notifyWith)),v[1][3].add(J(0,de,m(T)?T:Ai)),v[2][3].add(J(0,de,m(D)?D:Ge))}).promise()},promise:function(T){return T!=null?b.extend(T,E):E}},R={};return b.each(v,function(T,D){var U=D[2],$=D[5];E[D[1]]=U.add,$&&U.add(function(){w=$},v[3-T][2].disable,v[3-T][3].disable,v[0][2].lock,v[0][3].lock),U.add(D[3].fire),R[D[0]]=function(){return R[D[0]+"With"](this===R?void 0:this,arguments),this},R[D[0]+"With"]=U.fireWith}),E.promise(R),g&&g.call(R,R),R},when:function(g){var v=arguments.length,w=v,E=Array(w),R=n.call(arguments),T=b.Deferred(),D=function(U){return function($){E[U]=this,R[U]=arguments.length>1?n.call(arguments):$,--v||T.resolveWith(E,R)}};if(v<=1&&(A(g,T.done(D(w)).resolve,T.reject,!v),T.state()==="pending"||m(R[w]&&R[w].then)))return T.then();for(;w--;)A(R[w],D(w),T.reject);return T.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;b.Deferred.exceptionHook=function(g,v){i.console&&i.console.warn&&g&&B.test(g.name)&&i.console.warn("jQuery.Deferred exception: "+g.message,g.stack,v)},b.readyException=function(g){i.setTimeout(function(){throw g})};var q=b.Deferred();b.fn.ready=function(g){return q.then(g).catch(function(v){b.readyException(v)}),this},b.extend({isReady:!1,readyWait:1,ready:function(g){(g===!0?--b.readyWait:b.isReady)||(b.isReady=!0,!(g!==!0&&--b.readyWait>0)&&q.resolveWith(_,[b]))}}),b.ready.then=q.then;function G(){_.removeEventListener("DOMContentLoaded",G),i.removeEventListener("load",G),b.ready()}_.readyState==="complete"||_.readyState!=="loading"&&!_.documentElement.doScroll?i.setTimeout(b.ready):(_.addEventListener("DOMContentLoaded",G),i.addEventListener("load",G));var oe=function(g,v,w,E,R,T,D){var U=0,$=g.length,J=w==null;if(S(w)==="object"){R=!0;for(U in w)oe(g,v,U,w[U],!0,T,D)}else if(E!==void 0&&(R=!0,m(E)||(D=!0),J&&(D?(v.call(g,E),v=null):(J=v,v=function(de,xe,se){return J.call(b(de),se)})),v))for(;U<$;U++)v(g[U],w,D?E:E.call(g[U],U,v(g[U],w)));return R?g:J?v.call(g):$?v(g[0],w):T},ae=/^-ms-/,ze=/-([a-z])/g;function st(g,v){return v.toUpperCase()}function bt(g){return g.replace(ae,"ms-").replace(ze,st)}var vt=function(g){return g.nodeType===1||g.nodeType===9||!+g.nodeType};function xt(){this.expando=b.expando+xt.uid++}xt.uid=1,xt.prototype={cache:function(g){var v=g[this.expando];return v||(v={},vt(g)&&(g.nodeType?g[this.expando]=v:Object.defineProperty(g,this.expando,{value:v,configurable:!0}))),v},set:function(g,v,w){var E,R=this.cache(g);if(typeof v=="string")R[bt(v)]=w;else for(E in v)R[bt(E)]=v[E];return R},get:function(g,v){return v===void 0?this.cache(g):g[this.expando]&&g[this.expando][bt(v)]},access:function(g,v,w){return v===void 0||v&&typeof v=="string"&&w===void 0?this.get(g,v):(this.set(g,v,w),w!==void 0?w:v)},remove:function(g,v){var w,E=g[this.expando];if(E!==void 0){if(v!==void 0)for(Array.isArray(v)?v=v.map(bt):(v=bt(v),v=v in E?[v]:v.match(St)||[]),w=v.length;w--;)delete E[v[w]];(v===void 0||b.isEmptyObject(E))&&(g.nodeType?g[this.expando]=void 0:delete g[this.expando])}},hasData:function(g){var v=g[this.expando];return v!==void 0&&!b.isEmptyObject(v)}};var Ae=new xt,F=new xt,O=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ke=/[A-Z]/g;function Ee(g){return g==="true"?!0:g==="false"?!1:g==="null"?null:g===+g+""?+g:O.test(g)?JSON.parse(g):g}function Ie(g,v,w){var E;if(w===void 0&&g.nodeType===1)if(E="data-"+v.replace(ke,"-$&").toLowerCase(),w=g.getAttribute(E),typeof w=="string"){try{w=Ee(w)}catch{}F.set(g,v,w)}else w=void 0;return w}b.extend({hasData:function(g){return F.hasData(g)||Ae.hasData(g)},data:function(g,v,w){return F.access(g,v,w)},removeData:function(g,v){F.remove(g,v)},_data:function(g,v,w){return Ae.access(g,v,w)},_removeData:function(g,v){Ae.remove(g,v)}}),b.fn.extend({data:function(g,v){var w,E,R,T=this[0],D=T&&T.attributes;if(g===void 0){if(this.length&&(R=F.get(T),T.nodeType===1&&!Ae.get(T,"hasDataAttrs"))){for(w=D.length;w--;)D[w]&&(E=D[w].name,E.indexOf("data-")===0&&(E=bt(E.slice(5)),Ie(T,E,R[E])));Ae.set(T,"hasDataAttrs",!0)}return R}return typeof g=="object"?this.each(function(){F.set(this,g)}):oe(this,function(U){var $;if(T&&U===void 0)return $=F.get(T,g),$!==void 0||($=Ie(T,g),$!==void 0)?$:void 0;this.each(function(){F.set(this,g,U)})},null,v,arguments.length>1,null,!0)},removeData:function(g){return this.each(function(){F.remove(this,g)})}}),b.extend({queue:function(g,v,w){var E;if(g)return v=(v||"fx")+"queue",E=Ae.get(g,v),w&&(!E||Array.isArray(w)?E=Ae.access(g,v,b.makeArray(w)):E.push(w)),E||[]},dequeue:function(g,v){v=v||"fx";var w=b.queue(g,v),E=w.length,R=w.shift(),T=b._queueHooks(g,v),D=function(){b.dequeue(g,v)};R==="inprogress"&&(R=w.shift(),E--),R&&(v==="fx"&&w.unshift("inprogress"),delete T.stop,R.call(g,D,T)),!E&&T&&T.empty.fire()},_queueHooks:function(g,v){var w=v+"queueHooks";return Ae.get(g,w)||Ae.access(g,w,{empty:b.Callbacks("once memory").add(function(){Ae.remove(g,[v+"queue",w])})})}}),b.fn.extend({queue:function(g,v){var w=2;return typeof g!="string"&&(v=g,g="fx",w--),arguments.length\x20\t\r\n\f]*)/i,Fa=/^$|^module$|\/(?:java|ecma)script/i;(function(){var g=_.createDocumentFragment(),v=g.appendChild(_.createElement("div")),w=_.createElement("input");w.setAttribute("type","radio"),w.setAttribute("checked","checked"),w.setAttribute("name","t"),v.appendChild(w),h.checkClone=v.cloneNode(!0).cloneNode(!0).lastChild.checked,v.innerHTML="",h.noCloneChecked=!!v.cloneNode(!0).lastChild.defaultValue,v.innerHTML="",h.option=!!v.lastChild})();var Pr={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Pr.tbody=Pr.tfoot=Pr.colgroup=Pr.caption=Pr.thead,Pr.th=Pr.td,h.option||(Pr.optgroup=Pr.option=[1,""]);function hr(g,v){var w;return typeof g.getElementsByTagName<"u"?w=g.getElementsByTagName(v||"*"):typeof g.querySelectorAll<"u"?w=g.querySelectorAll(v||"*"):w=[],v===void 0||v&&M(g,v)?b.merge([g],w):w}function Ip(g,v){for(var w=0,E=g.length;w-1){R&&R.push(T);continue}if(J=Li(T),D=hr(xe.appendChild(T),"script"),J&&Ip(D),w)for(de=0;T=D[de++];)Fa.test(T.type||"")&&w.push(T)}return xe}var kp=/^([^.]*)(?:\.(.+)|)/;function Jl(){return!0}function Zl(){return!1}function Mp(g,v,w,E,R,T){var D,U;if(typeof v=="object"){typeof w!="string"&&(E=E||w,w=void 0);for(U in v)Mp(g,U,w,E,v[U],T);return g}if(E==null&&R==null?(R=w,E=w=void 0):R==null&&(typeof w=="string"?(R=E,E=void 0):(R=E,E=w,w=void 0)),R===!1)R=Zl;else if(!R)return g;return T===1&&(D=R,R=function($){return b().off($),D.apply(this,arguments)},R.guid=D.guid||(D.guid=b.guid++)),g.each(function(){b.event.add(this,v,R,E,w)})}b.event={global:{},add:function(g,v,w,E,R){var T,D,U,$,J,de,xe,se,Re,dt,Lt,wt=Ae.get(g);if(vt(g))for(w.handler&&(T=w,w=T.handler,R=T.selector),R&&b.find.matchesSelector(ct,R),w.guid||(w.guid=b.guid++),($=wt.events)||($=wt.events=Object.create(null)),(D=wt.handle)||(D=wt.handle=function(Br){return typeof b<"u"&&b.event.triggered!==Br.type?b.event.dispatch.apply(g,arguments):void 0}),v=(v||"").match(St)||[""],J=v.length;J--;)U=kp.exec(v[J])||[],Re=Lt=U[1],dt=(U[2]||"").split(".").sort(),Re&&(xe=b.event.special[Re]||{},Re=(R?xe.delegateType:xe.bindType)||Re,xe=b.event.special[Re]||{},de=b.extend({type:Re,origType:Lt,data:E,handler:w,guid:w.guid,selector:R,needsContext:R&&b.expr.match.needsContext.test(R),namespace:dt.join(".")},T),(se=$[Re])||(se=$[Re]=[],se.delegateCount=0,(!xe.setup||xe.setup.call(g,E,dt,D)===!1)&&g.addEventListener&&g.addEventListener(Re,D)),xe.add&&(xe.add.call(g,de),de.handler.guid||(de.handler.guid=w.guid)),R?se.splice(se.delegateCount++,0,de):se.push(de),b.event.global[Re]=!0)},remove:function(g,v,w,E,R){var T,D,U,$,J,de,xe,se,Re,dt,Lt,wt=Ae.hasData(g)&&Ae.get(g);if(!(!wt||!($=wt.events))){for(v=(v||"").match(St)||[""],J=v.length;J--;){if(U=kp.exec(v[J])||[],Re=Lt=U[1],dt=(U[2]||"").split(".").sort(),!Re){for(Re in $)b.event.remove(g,Re+v[J],w,E,!0);continue}for(xe=b.event.special[Re]||{},Re=(E?xe.delegateType:xe.bindType)||Re,se=$[Re]||[],U=U[2]&&new RegExp("(^|\\.)"+dt.join("\\.(?:.*\\.|)")+"(\\.|$)"),D=T=se.length;T--;)de=se[T],(R||Lt===de.origType)&&(!w||w.guid===de.guid)&&(!U||U.test(de.namespace))&&(!E||E===de.selector||E==="**"&&de.selector)&&(se.splice(T,1),de.selector&&se.delegateCount--,xe.remove&&xe.remove.call(g,de));D&&!se.length&&((!xe.teardown||xe.teardown.call(g,dt,wt.handle)===!1)&&b.removeEvent(g,Re,wt.handle),delete $[Re])}b.isEmptyObject($)&&Ae.remove(g,"handle events")}},dispatch:function(g){var v,w,E,R,T,D,U=new Array(arguments.length),$=b.event.fix(g),J=(Ae.get(this,"events")||Object.create(null))[$.type]||[],de=b.event.special[$.type]||{};for(U[0]=$,v=1;v=1)){for(;J!==this;J=J.parentNode||this)if(J.nodeType===1&&!(g.type==="click"&&J.disabled===!0)){for(T=[],D={},w=0;w<$;w++)E=v[w],R=E.selector+" ",D[R]===void 0&&(D[R]=E.needsContext?b(R,this).index(J)>-1:b.find(R,this,null,[J]).length),D[R]&&T.push(E);T.length&&U.push({elem:J,handlers:T})}}return J=this,$\s*$/g;function Tb(g,v){return M(g,"table")&&M(v.nodeType!==11?v:v.firstChild,"tr")&&b(g).children("tbody")[0]||g}function R1(g){return g.type=(g.getAttribute("type")!==null)+"/"+g.type,g}function Ab(g){return(g.type||"").slice(0,5)==="true/"?g.type=g.type.slice(5):g.removeAttribute("type"),g}function Lb(g,v){var w,E,R,T,D,U,$;if(v.nodeType===1){if(Ae.hasData(g)&&(T=Ae.get(g),$=T.events,$)){Ae.remove(v,"handle events");for(R in $)for(w=0,E=$[R].length;w1&&typeof Re=="string"&&!h.checkClone&&Tp.test(Re))return g.each(function(Lt){var wt=g.eq(Lt);dt&&(v[0]=Re.call(this,Lt,wt.html())),Ho(wt,v,w,E)});if(xe&&(R=Mb(v,g[0].ownerDocument,!1,g,E),T=R.firstChild,R.childNodes.length===1&&(R=T),T||E)){for(D=b.map(hr(R,"script"),R1),U=D.length;de0&&Ip(D,!$&&hr(g,"script")),U},cleanData:function(g){for(var v,w,E,R=b.event.special,T=0;(w=g[T])!==void 0;T++)if(vt(w)){if(v=w[Ae.expando]){if(v.events)for(E in v.events)R[E]?b.event.remove(w,E):b.removeEvent(w,E,v.handle);w[Ae.expando]=void 0}w[F.expando]&&(w[F.expando]=void 0)}}}),b.fn.extend({detach:function(g){return ah(this,g,!0)},remove:function(g){return ah(this,g)},text:function(g){return oe(this,function(v){return v===void 0?b.text(this):this.empty().each(function(){(this.nodeType===1||this.nodeType===11||this.nodeType===9)&&(this.textContent=v)})},null,g,arguments.length)},append:function(){return Ho(this,arguments,function(g){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var v=Tb(this,g);v.appendChild(g)}})},prepend:function(){return Ho(this,arguments,function(g){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var v=Tb(this,g);v.insertBefore(g,v.firstChild)}})},before:function(){return Ho(this,arguments,function(g){this.parentNode&&this.parentNode.insertBefore(g,this)})},after:function(){return Ho(this,arguments,function(g){this.parentNode&&this.parentNode.insertBefore(g,this.nextSibling)})},empty:function(){for(var g,v=0;(g=this[v])!=null;v++)g.nodeType===1&&(b.cleanData(hr(g,!1)),g.textContent="");return this},clone:function(g,v){return g=g??!1,v=v??g,this.map(function(){return b.clone(this,g,v)})},html:function(g){return oe(this,function(v){var w=this[0]||{},E=0,R=this.length;if(v===void 0&&w.nodeType===1)return w.innerHTML;if(typeof v=="string"&&!Rp.test(v)&&!Pr[(Cs.exec(v)||["",""])[1].toLowerCase()]){v=b.htmlPrefilter(v);try{for(;E=0&&($+=Math.max(0,Math.ceil(g["offset"+v[0].toUpperCase()+v.slice(1)]-T-$-U-.5))||0),$+J}function fd(g,v,w){var E=ch(g),R=!h.boxSizingReliable()||w,T=R&&b.css(g,"boxSizing",!1,E)==="border-box",D=T,U=hd(g,v,E),$="offset"+v[0].toUpperCase()+v.slice(1);if(lh.test(U)){if(!w)return U;U="auto"}return(!h.boxSizingReliable()&&T||!h.reliableTrDimensions()&&M(g,"tr")||U==="auto"||!parseFloat(U)&&b.css(g,"display",!1,E)==="inline")&&g.getClientRects().length&&(T=b.css(g,"boxSizing",!1,E)==="border-box",D=$ in g,D&&(U=g[$])),U=parseFloat(U)||0,U+yi(g,v,w||(T?"border":"content"),D,E,U)+"px"}b.extend({cssHooks:{opacity:{get:function(g,v){if(v){var w=hd(g,"opacity");return w===""?"1":w}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(g,v,w,E){if(!(!g||g.nodeType===3||g.nodeType===8||!g.style)){var R,T,D,U=bt(v),$=uo.test(v),J=g.style;if($||(v=Lp(U)),D=b.cssHooks[v]||b.cssHooks[U],w!==void 0){if(T=typeof w,T==="string"&&(R=ot.exec(w))&&R[1]&&(w=Rt(g,v,R),T="number"),w==null||w!==w)return;T==="number"&&!$&&(w+=R&&R[3]||(b.cssNumber[U]?"":"px")),!h.clearCloneStyle&&w===""&&v.indexOf("background")===0&&(J[v]="inherit"),(!D||!("set"in D)||(w=D.set(g,w,E))!==void 0)&&($?J.setProperty(v,w):J[v]=w)}else return D&&"get"in D&&(R=D.get(g,!1,E))!==void 0?R:J[v]}},css:function(g,v,w,E){var R,T,D,U=bt(v),$=uo.test(v);return $||(v=Lp(U)),D=b.cssHooks[v]||b.cssHooks[U],D&&"get"in D&&(R=D.get(g,!0,w)),R===void 0&&(R=hd(g,v,E)),R==="normal"&&v in Ob&&(R=Ob[v]),w===""||w?(T=parseFloat(R),w===!0||isFinite(T)?T||0:R):R}}),b.each(["height","width"],function(g,v){b.cssHooks[v]={get:function(w,E,R){if(E)return N1.test(b.css(w,"display"))&&(!w.getClientRects().length||!w.getBoundingClientRect().width)?Ap(w,Np,function(){return fd(w,v,R)}):fd(w,v,R)},set:function(w,E,R){var T,D=ch(w),U=!h.scrollboxSize()&&D.position==="absolute",$=U||R,J=$&&b.css(w,"boxSizing",!1,D)==="border-box",de=R?yi(w,v,R,J,D):0;return J&&U&&(de-=Math.ceil(w["offset"+v[0].toUpperCase()+v.slice(1)]-parseFloat(D[v])-yi(w,v,"border",!1,D)-.5)),de&&(T=ot.exec(E))&&(T[3]||"px")!=="px"&&(w.style[v]=E,E=b.css(w,v)),Ql(w,E,de)}}}),b.cssHooks.marginLeft=Nb(h.reliableMarginLeft,function(g,v){if(v)return(parseFloat(hd(g,"marginLeft"))||g.getBoundingClientRect().left-Ap(g,{marginLeft:0},function(){return g.getBoundingClientRect().left}))+"px"}),b.each({margin:"",padding:"",border:"Width"},function(g,v){b.cssHooks[g+v]={expand:function(w){for(var E=0,R={},T=typeof w=="string"?w.split(" "):[w];E<4;E++)R[g+yt[E]+v]=T[E]||T[E-2]||T[0];return R}},g!=="margin"&&(b.cssHooks[g+v].set=Ql)}),b.fn.extend({css:function(g,v){return oe(this,function(w,E,R){var T,D,U={},$=0;if(Array.isArray(E)){for(T=ch(w),D=E.length;$1)}});function Cr(g,v,w,E,R){return new Cr.prototype.init(g,v,w,E,R)}b.Tween=Cr,Cr.prototype={constructor:Cr,init:function(g,v,w,E,R,T){this.elem=g,this.prop=w,this.easing=R||b.easing._default,this.options=v,this.start=this.now=this.cur(),this.end=E,this.unit=T||(b.cssNumber[w]?"":"px")},cur:function(){var g=Cr.propHooks[this.prop];return g&&g.get?g.get(this):Cr.propHooks._default.get(this)},run:function(g){var v,w=Cr.propHooks[this.prop];return this.options.duration?this.pos=v=b.easing[this.easing](g,this.options.duration*g,0,1,this.options.duration):this.pos=v=g,this.now=(this.end-this.start)*v+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),w&&w.set?w.set(this):Cr.propHooks._default.set(this),this}},Cr.prototype.init.prototype=Cr.prototype,Cr.propHooks={_default:{get:function(g){var v;return g.elem.nodeType!==1||g.elem[g.prop]!=null&&g.elem.style[g.prop]==null?g.elem[g.prop]:(v=b.css(g.elem,g.prop,""),!v||v==="auto"?0:v)},set:function(g){b.fx.step[g.prop]?b.fx.step[g.prop](g):g.elem.nodeType===1&&(b.cssHooks[g.prop]||g.elem.style[Lp(g.prop)]!=null)?b.style(g.elem,g.prop,g.now+g.unit):g.elem[g.prop]=g.now}}},Cr.propHooks.scrollTop=Cr.propHooks.scrollLeft={set:function(g){g.elem.nodeType&&g.elem.parentNode&&(g.elem[g.prop]=g.now)}},b.easing={linear:function(g){return g},swing:function(g){return .5-Math.cos(g*Math.PI)/2},_default:"swing"},b.fx=Cr.prototype.init,b.fx.step={};var $a,md,D1=/^(?:toggle|show|hide)$/,Dp=/queueHooks$/;function Fo(){md&&(_.hidden===!1&&i.requestAnimationFrame?i.requestAnimationFrame(Fo):i.setTimeout(Fo,b.fx.interval),b.fx.tick())}function Op(){return i.setTimeout(function(){$a=void 0}),$a=Date.now()}function pd(g,v){var w,E=0,R={height:g};for(v=v?1:0;E<4;E+=2-v)w=yt[E],R["margin"+w]=R["padding"+w]=g;return v&&(R.opacity=R.width=g),R}function gd(g,v,w){for(var E,R=(On.tweeners[v]||[]).concat(On.tweeners["*"]),T=0,D=R.length;T1)},removeAttr:function(g){return this.each(function(){b.removeAttr(this,g)})}}),b.extend({attr:function(g,v,w){var E,R,T=g.nodeType;if(!(T===3||T===8||T===2)){if(typeof g.getAttribute>"u")return b.prop(g,v,w);if((T!==1||!b.isXMLDoc(g))&&(R=b.attrHooks[v.toLowerCase()]||(b.expr.match.bool.test(v)?zb:void 0)),w!==void 0){if(w===null){b.removeAttr(g,v);return}return R&&"set"in R&&(E=R.set(g,w,v))!==void 0?E:(g.setAttribute(v,w+""),w)}return R&&"get"in R&&(E=R.get(g,v))!==null?E:(E=b.find.attr(g,v),E??void 0)}},attrHooks:{type:{set:function(g,v){if(!h.radioValue&&v==="radio"&&M(g,"input")){var w=g.value;return g.setAttribute("type",v),w&&(g.value=w),v}}}},removeAttr:function(g,v){var w,E=0,R=v&&v.match(St);if(R&&g.nodeType===1)for(;w=R[E++];)g.removeAttribute(w)}}),zb={set:function(g,v,w){return v===!1?b.removeAttr(g,w):g.setAttribute(w,w),w}},b.each(b.expr.match.bool.source.match(/\w+/g),function(g,v){var w=ec[v]||b.find.attr;ec[v]=function(E,R,T){var D,U,$=R.toLowerCase();return T||(U=ec[$],ec[$]=D,D=w(E,R,T)!=null?$:null,ec[$]=U),D}});var P1=/^(?:input|select|textarea|button)$/i,B1=/^(?:a|area)$/i;b.fn.extend({prop:function(g,v){return oe(this,b.prop,g,v,arguments.length>1)},removeProp:function(g){return this.each(function(){delete this[b.propFix[g]||g]})}}),b.extend({prop:function(g,v,w){var E,R,T=g.nodeType;if(!(T===3||T===8||T===2))return(T!==1||!b.isXMLDoc(g))&&(v=b.propFix[v]||v,R=b.propHooks[v]),w!==void 0?R&&"set"in R&&(E=R.set(g,w,v))!==void 0?E:g[v]=w:R&&"get"in R&&(E=R.get(g,v))!==null?E:g[v]},propHooks:{tabIndex:{get:function(g){var v=b.find.attr(g,"tabindex");return v?parseInt(v,10):P1.test(g.nodeName)||B1.test(g.nodeName)&&g.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),h.optSelected||(b.propHooks.selected={get:function(g){var v=g.parentNode;return v&&v.parentNode&&v.parentNode.selectedIndex,null},set:function(g){var v=g.parentNode;v&&(v.selectedIndex,v.parentNode&&v.parentNode.selectedIndex)}}),b.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){b.propFix[this.toLowerCase()]=this});function Wa(g){var v=g.match(St)||[];return v.join(" ")}function Es(g){return g.getAttribute&&g.getAttribute("class")||""}function V(g){return Array.isArray(g)?g:typeof g=="string"?g.match(St)||[]:[]}b.fn.extend({addClass:function(g){var v,w,E,R,T,D;return m(g)?this.each(function(U){b(this).addClass(g.call(this,U,Es(this)))}):(v=V(g),v.length?this.each(function(){if(E=Es(this),w=this.nodeType===1&&" "+Wa(E)+" ",w){for(T=0;T-1;)w=w.replace(" "+R+" "," ");D=Wa(w),E!==D&&this.setAttribute("class",D)}}):this):this.attr("class","")},toggleClass:function(g,v){var w,E,R,T,D=typeof g,U=D==="string"||Array.isArray(g);return m(g)?this.each(function($){b(this).toggleClass(g.call(this,$,Es(this),v),v)}):typeof v=="boolean"&&U?v?this.addClass(g):this.removeClass(g):(w=V(g),this.each(function(){if(U)for(T=b(this),R=0;R-1)return!0;return!1}});var Q=/\r/g;b.fn.extend({val:function(g){var v,w,E,R=this[0];return arguments.length?(E=m(g),this.each(function(T){var D;this.nodeType===1&&(E?D=g.call(this,T,b(this).val()):D=g,D==null?D="":typeof D=="number"?D+="":Array.isArray(D)&&(D=b.map(D,function(U){return U==null?"":U+""})),v=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],(!v||!("set"in v)||v.set(this,D,"value")===void 0)&&(this.value=D))})):R?(v=b.valHooks[R.type]||b.valHooks[R.nodeName.toLowerCase()],v&&"get"in v&&(w=v.get(R,"value"))!==void 0?w:(w=R.value,typeof w=="string"?w.replace(Q,""):w??"")):void 0}}),b.extend({valHooks:{option:{get:function(g){var v=b.find.attr(g,"value");return v??Wa(b.text(g))}},select:{get:function(g){var v,w,E,R=g.options,T=g.selectedIndex,D=g.type==="select-one",U=D?null:[],$=D?T+1:R.length;for(T<0?E=$:E=D?T:0;E<$;E++)if(w=R[E],(w.selected||E===T)&&!w.disabled&&(!w.parentNode.disabled||!M(w.parentNode,"optgroup"))){if(v=b(w).val(),D)return v;U.push(v)}return U},set:function(g,v){for(var w,E,R=g.options,T=b.makeArray(v),D=R.length;D--;)E=R[D],(E.selected=b.inArray(b.valHooks.option.get(E),T)>-1)&&(w=!0);return w||(g.selectedIndex=-1),T}}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]={set:function(g,v){if(Array.isArray(v))return g.checked=b.inArray(b(g).val(),v)>-1}},h.checkOn||(b.valHooks[this].get=function(g){return g.getAttribute("value")===null?"on":g.value})});var ne=i.location,Se={guid:Date.now()},je=/\?/;b.parseXML=function(g){var v,w;if(!g||typeof g!="string")return null;try{v=new i.DOMParser().parseFromString(g,"text/xml")}catch{}return w=v&&v.getElementsByTagName("parsererror")[0],(!v||w)&&b.error("Invalid XML: "+(w?b.map(w.childNodes,function(E){return E.textContent}).join(` +`):g)),v};var $e=/^(?:focusinfocus|focusoutblur)$/,Xe=function(g){g.stopPropagation()};b.extend(b.event,{trigger:function(g,v,w,E){var R,T,D,U,$,J,de,xe,se=[w||_],Re=u.call(g,"type")?g.type:g,dt=u.call(g,"namespace")?g.namespace.split("."):[];if(T=xe=D=w=w||_,!(w.nodeType===3||w.nodeType===8)&&!$e.test(Re+b.event.triggered)&&(Re.indexOf(".")>-1&&(dt=Re.split("."),Re=dt.shift(),dt.sort()),$=Re.indexOf(":")<0&&"on"+Re,g=g[b.expando]?g:new b.Event(Re,typeof g=="object"&&g),g.isTrigger=E?2:3,g.namespace=dt.join("."),g.rnamespace=g.namespace?new RegExp("(^|\\.)"+dt.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,g.result=void 0,g.target||(g.target=w),v=v==null?[g]:b.makeArray(v,[g]),de=b.event.special[Re]||{},!(!E&&de.trigger&&de.trigger.apply(w,v)===!1))){if(!E&&!de.noBubble&&!p(w)){for(U=de.delegateType||Re,$e.test(U+Re)||(T=T.parentNode);T;T=T.parentNode)se.push(T),D=T;D===(w.ownerDocument||_)&&se.push(D.defaultView||D.parentWindow||i)}for(R=0;(T=se[R++])&&!g.isPropagationStopped();)xe=T,g.type=R>1?U:de.bindType||Re,J=(Ae.get(T,"events")||Object.create(null))[g.type]&&Ae.get(T,"handle"),J&&J.apply(T,v),J=$&&T[$],J&&J.apply&&vt(T)&&(g.result=J.apply(T,v),g.result===!1&&g.preventDefault());return g.type=Re,!E&&!g.isDefaultPrevented()&&(!de._default||de._default.apply(se.pop(),v)===!1)&&vt(w)&&$&&m(w[Re])&&!p(w)&&(D=w[$],D&&(w[$]=null),b.event.triggered=Re,g.isPropagationStopped()&&xe.addEventListener(Re,Xe),w[Re](),g.isPropagationStopped()&&xe.removeEventListener(Re,Xe),b.event.triggered=void 0,D&&(w[$]=D)),g.result}},simulate:function(g,v,w){var E=b.extend(new b.Event,w,{type:g,isSimulated:!0});b.event.trigger(E,null,v)}}),b.fn.extend({trigger:function(g,v){return this.each(function(){b.event.trigger(g,v,this)})},triggerHandler:function(g,v){var w=this[0];if(w)return b.event.trigger(g,v,w,!0)}});var it=/\[\]$/,Zt=/\r?\n/g,Ut=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function Ni(g,v,w,E){var R;if(Array.isArray(v))b.each(v,function(T,D){w||it.test(g)?E(g,D):Ni(g+"["+(typeof D=="object"&&D!=null?T:"")+"]",D,w,E)});else if(!w&&S(v)==="object")for(R in v)Ni(g+"["+R+"]",v[R],w,E);else E(g,v)}b.param=function(g,v){var w,E=[],R=function(T,D){var U=m(D)?D():D;E[E.length]=encodeURIComponent(T)+"="+encodeURIComponent(U??"")};if(g==null)return"";if(Array.isArray(g)||g.jquery&&!b.isPlainObject(g))b.each(g,function(){R(this.name,this.value)});else for(w in g)Ni(w,g[w],v,R);return E.join("&")},b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var g=b.prop(this,"elements");return g?b.makeArray(g):this}).filter(function(){var g=this.type;return this.name&&!b(this).is(":disabled")&&jt.test(this.nodeName)&&!Ut.test(g)&&(this.checked||!Ha.test(g))}).map(function(g,v){var w=b(this).val();return w==null?null:Array.isArray(w)?b.map(w,function(E){return{name:v.name,value:E.replace(Zt,`\r +`)}}):{name:v.name,value:w.replace(Zt,`\r +`)}}).get()}});var qt=/%20/g,Er=/#.*$/,Ir=/([?&])_=[^&]*/,er=/^(.*?):[ \t]*([^\r\n]*)$/mg,fr=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,zp=/^(?:GET|HEAD)$/,Pp=/^\/\//,hh={},fh={},mh="*/".concat("*"),ph=_.createElement("a");ph.href=ne.href;function Bp(g){return function(v,w){typeof v!="string"&&(w=v,v="*");var E,R=0,T=v.toLowerCase().match(St)||[];if(m(w))for(;E=T[R++];)E[0]==="+"?(E=E.slice(1)||"*",(g[E]=g[E]||[]).unshift(w)):(g[E]=g[E]||[]).push(w)}}function TA(g,v,w,E){var R={},T=g===fh;function D(U){var $;return R[U]=!0,b.each(g[U]||[],function(J,de){var xe=de(v,w,E);if(typeof xe=="string"&&!T&&!R[xe])return v.dataTypes.unshift(xe),D(xe),!1;if(T)return!($=xe)}),$}return D(v.dataTypes[0])||!R["*"]&&D("*")}function j1(g,v){var w,E,R=b.ajaxSettings.flatOptions||{};for(w in v)v[w]!==void 0&&((R[w]?g:E||(E={}))[w]=v[w]);return E&&b.extend(!0,g,E),g}function nW(g,v,w){for(var E,R,T,D,U=g.contents,$=g.dataTypes;$[0]==="*";)$.shift(),E===void 0&&(E=g.mimeType||v.getResponseHeader("Content-Type"));if(E){for(R in U)if(U[R]&&U[R].test(E)){$.unshift(R);break}}if($[0]in w)T=$[0];else{for(R in w){if(!$[0]||g.converters[R+" "+$[0]]){T=R;break}D||(D=R)}T=T||D}if(T)return T!==$[0]&&$.unshift(T),w[T]}function sW(g,v,w,E){var R,T,D,U,$,J={},de=g.dataTypes.slice();if(de[1])for(D in g.converters)J[D.toLowerCase()]=g.converters[D];for(T=de.shift();T;)if(g.responseFields[T]&&(w[g.responseFields[T]]=v),!$&&E&&g.dataFilter&&(v=g.dataFilter(v,g.dataType)),$=T,T=de.shift(),T){if(T==="*")T=$;else if($!=="*"&&$!==T){if(D=J[$+" "+T]||J["* "+T],!D){for(R in J)if(U=R.split(" "),U[1]===T&&(D=J[$+" "+U[0]]||J["* "+U[0]],D)){D===!0?D=J[R]:J[R]!==!0&&(T=U[0],de.unshift(U[1]));break}}if(D!==!0)if(D&&g.throws)v=D(v);else try{v=D(v)}catch(xe){return{state:"parsererror",error:D?xe:"No conversion from "+$+" to "+T}}}}return{state:"success",data:v}}b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ne.href,type:"GET",isLocal:fr.test(ne.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":mh,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(g,v){return v?j1(j1(g,b.ajaxSettings),v):j1(b.ajaxSettings,g)},ajaxPrefilter:Bp(hh),ajaxTransport:Bp(fh),ajax:function(g,v){typeof g=="object"&&(v=g,g=void 0),v=v||{};var w,E,R,T,D,U,$,J,de,xe,se=b.ajaxSetup({},v),Re=se.context||se,dt=se.context&&(Re.nodeType||Re.jquery)?b(Re):b.event,Lt=b.Deferred(),wt=b.Callbacks("once memory"),Br=se.statusCode||{},mr={},$o={},Wo="canceled",kt={readyState:0,getResponseHeader:function(zt){var Di;if($){if(!T)for(T={};Di=er.exec(R);)T[Di[1].toLowerCase()+" "]=(T[Di[1].toLowerCase()+" "]||[]).concat(Di[2]);Di=T[zt.toLowerCase()+" "]}return Di==null?null:Di.join(", ")},getAllResponseHeaders:function(){return $?R:null},setRequestHeader:function(zt,Di){return $==null&&(zt=$o[zt.toLowerCase()]=$o[zt.toLowerCase()]||zt,mr[zt]=Di),this},overrideMimeType:function(zt){return $==null&&(se.mimeType=zt),this},statusCode:function(zt){var Di;if(zt)if($)kt.always(zt[kt.status]);else for(Di in zt)Br[Di]=[Br[Di],zt[Di]];return this},abort:function(zt){var Di=zt||Wo;return w&&w.abort(Di),_d(0,Di),this}};if(Lt.promise(kt),se.url=((g||se.url||ne.href)+"").replace(Pp,ne.protocol+"//"),se.type=v.method||v.type||se.method||se.type,se.dataTypes=(se.dataType||"*").toLowerCase().match(St)||[""],se.crossDomain==null){U=_.createElement("a");try{U.href=se.url,U.href=U.href,se.crossDomain=ph.protocol+"//"+ph.host!=U.protocol+"//"+U.host}catch{se.crossDomain=!0}}if(se.data&&se.processData&&typeof se.data!="string"&&(se.data=b.param(se.data,se.traditional)),TA(hh,se,v,kt),$)return kt;J=b.event&&se.global,J&&b.active++===0&&b.event.trigger("ajaxStart"),se.type=se.type.toUpperCase(),se.hasContent=!zp.test(se.type),E=se.url.replace(Er,""),se.hasContent?se.data&&se.processData&&(se.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&(se.data=se.data.replace(qt,"+")):(xe=se.url.slice(E.length),se.data&&(se.processData||typeof se.data=="string")&&(E+=(je.test(E)?"&":"?")+se.data,delete se.data),se.cache===!1&&(E=E.replace(Ir,"$1"),xe=(je.test(E)?"&":"?")+"_="+Se.guid+++xe),se.url=E+xe),se.ifModified&&(b.lastModified[E]&&kt.setRequestHeader("If-Modified-Since",b.lastModified[E]),b.etag[E]&&kt.setRequestHeader("If-None-Match",b.etag[E])),(se.data&&se.hasContent&&se.contentType!==!1||v.contentType)&&kt.setRequestHeader("Content-Type",se.contentType),kt.setRequestHeader("Accept",se.dataTypes[0]&&se.accepts[se.dataTypes[0]]?se.accepts[se.dataTypes[0]]+(se.dataTypes[0]!=="*"?", "+mh+"; q=0.01":""):se.accepts["*"]);for(de in se.headers)kt.setRequestHeader(de,se.headers[de]);if(se.beforeSend&&(se.beforeSend.call(Re,kt,se)===!1||$))return kt.abort();if(Wo="abort",wt.add(se.complete),kt.done(se.success),kt.fail(se.error),w=TA(fh,se,v,kt),!w)_d(-1,"No Transport");else{if(kt.readyState=1,J&&dt.trigger("ajaxSend",[kt,se]),$)return kt;se.async&&se.timeout>0&&(D=i.setTimeout(function(){kt.abort("timeout")},se.timeout));try{$=!1,w.send(mr,_d)}catch(zt){if($)throw zt;_d(-1,zt)}}function _d(zt,Di,Hp,F1){var qo,Fp,Uo,tc,ic,Is=Di;$||($=!0,D&&i.clearTimeout(D),w=void 0,R=F1||"",kt.readyState=zt>0?4:0,qo=zt>=200&&zt<300||zt===304,Hp&&(tc=nW(se,kt,Hp)),!qo&&b.inArray("script",se.dataTypes)>-1&&b.inArray("json",se.dataTypes)<0&&(se.converters["text script"]=function(){}),tc=sW(se,tc,kt,qo),qo?(se.ifModified&&(ic=kt.getResponseHeader("Last-Modified"),ic&&(b.lastModified[E]=ic),ic=kt.getResponseHeader("etag"),ic&&(b.etag[E]=ic)),zt===204||se.type==="HEAD"?Is="nocontent":zt===304?Is="notmodified":(Is=tc.state,Fp=tc.data,Uo=tc.error,qo=!Uo)):(Uo=Is,(zt||!Is)&&(Is="error",zt<0&&(zt=0))),kt.status=zt,kt.statusText=(Di||Is)+"",qo?Lt.resolveWith(Re,[Fp,Is,kt]):Lt.rejectWith(Re,[kt,Is,Uo]),kt.statusCode(Br),Br=void 0,J&&dt.trigger(qo?"ajaxSuccess":"ajaxError",[kt,se,qo?Fp:Uo]),wt.fireWith(Re,[kt,Is]),J&&(dt.trigger("ajaxComplete",[kt,se]),--b.active||b.event.trigger("ajaxStop")))}return kt},getJSON:function(g,v,w){return b.get(g,v,w,"json")},getScript:function(g,v){return b.get(g,void 0,v,"script")}}),b.each(["get","post"],function(g,v){b[v]=function(w,E,R,T){return m(E)&&(T=T||R,R=E,E=void 0),b.ajax(b.extend({url:w,type:v,dataType:T,data:E,success:R},b.isPlainObject(w)&&w))}}),b.ajaxPrefilter(function(g){var v;for(v in g.headers)v.toLowerCase()==="content-type"&&(g.contentType=g.headers[v]||"")}),b._evalUrl=function(g,v,w){return b.ajax({url:g,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(E){b.globalEval(E,v,w)}})},b.fn.extend({wrapAll:function(g){var v;return this[0]&&(m(g)&&(g=g.call(this[0])),v=b(g,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&v.insertBefore(this[0]),v.map(function(){for(var w=this;w.firstElementChild;)w=w.firstElementChild;return w}).append(this)),this},wrapInner:function(g){return m(g)?this.each(function(v){b(this).wrapInner(g.call(this,v))}):this.each(function(){var v=b(this),w=v.contents();w.length?w.wrapAll(g):v.append(g)})},wrap:function(g){var v=m(g);return this.each(function(w){b(this).wrapAll(v?g.call(this,w):g)})},unwrap:function(g){return this.parent(g).not("body").each(function(){b(this).replaceWith(this.childNodes)}),this}}),b.expr.pseudos.hidden=function(g){return!b.expr.pseudos.visible(g)},b.expr.pseudos.visible=function(g){return!!(g.offsetWidth||g.offsetHeight||g.getClientRects().length)},b.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch{}};var oW={0:200,1223:204},jp=b.ajaxSettings.xhr();h.cors=!!jp&&"withCredentials"in jp,h.ajax=jp=!!jp,b.ajaxTransport(function(g){var v,w;if(h.cors||jp&&!g.crossDomain)return{send:function(E,R){var T,D=g.xhr();if(D.open(g.type,g.url,g.async,g.username,g.password),g.xhrFields)for(T in g.xhrFields)D[T]=g.xhrFields[T];g.mimeType&&D.overrideMimeType&&D.overrideMimeType(g.mimeType),!g.crossDomain&&!E["X-Requested-With"]&&(E["X-Requested-With"]="XMLHttpRequest");for(T in E)D.setRequestHeader(T,E[T]);v=function(U){return function(){v&&(v=w=D.onload=D.onerror=D.onabort=D.ontimeout=D.onreadystatechange=null,U==="abort"?D.abort():U==="error"?typeof D.status!="number"?R(0,"error"):R(D.status,D.statusText):R(oW[D.status]||D.status,D.statusText,(D.responseType||"text")!=="text"||typeof D.responseText!="string"?{binary:D.response}:{text:D.responseText},D.getAllResponseHeaders()))}},D.onload=v(),w=D.onerror=D.ontimeout=v("error"),D.onabort!==void 0?D.onabort=w:D.onreadystatechange=function(){D.readyState===4&&i.setTimeout(function(){v&&w()})},v=v("abort");try{D.send(g.hasContent&&g.data||null)}catch(U){if(v)throw U}},abort:function(){v&&v()}}}),b.ajaxPrefilter(function(g){g.crossDomain&&(g.contents.script=!1)}),b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(g){return b.globalEval(g),g}}}),b.ajaxPrefilter("script",function(g){g.cache===void 0&&(g.cache=!1),g.crossDomain&&(g.type="GET")}),b.ajaxTransport("script",function(g){if(g.crossDomain||g.scriptAttrs){var v,w;return{send:function(E,R){v=b("
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Contributing

We very much welcome contributions! If you have an idea or proposal for a new +tutorial, please open an issue +with an outline.

Don’t worry if English is not your first language, or if you can only come up +with a rough draft. Open source is a community effort. Do your best – we’ll help +fix issues.

Images and real-life data make text more engaging and powerful, but be sure what +you use is appropriately licensed and available. Here again, even a rough idea +for artwork can be polished by others.

Building the website

Quickstart

Set up a development environment with the dependencies listed in +requirements.txt. +For example, using the built-in venv module:

python -m venv np-tutorials
+source np-tutorials/bin/activate
+python -m pip install -r requirements.txt

The site can then be built with:

jupyter-book start --execute

This will execute all the notebooks and start a web server to view the rendered +content locally. +View the rendered site by opening the localhost:30xy in your preferred browser (the exact port number will be printed in your terminal).

Adding your own tutorials

If you have your own tutorial in the form of a Jupyter notebook (an .ipynb +file) and you’d like to try add it out to the repository, follow the steps below.

Create an issue

Go to https://github.com/numpy/numpy-tutorials/issues and create a new issue +with your proposal. +Give as much detail as you can about what kind of content you would like to +write (tutorial, how-to) and what you plan to cover. +We will try to respond as quickly as possible with comments, if applicable.

Check out our suggested template

You can use this template to make your content consistent with our existing +tutorials.

Open a pull request

For more information about GitHub and its workflow, you can see +this document.

\ No newline at end of file diff --git a/environment.yml b/environment.yml deleted file mode 100644 index 769fb7b0..00000000 --- a/environment.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: numpy-tutorials -channels: - - conda-forge -dependencies: - # For running the tutorials - - numpy - - scipy - - pooch - - matplotlib - - pandas - - imageio - # For building the site - - tox - - jupytext - - pip - - pip: - - jupyter-book>=2 - - jupyterlab_myst diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 00000000..edefe2ea Binary files /dev/null and b/favicon.ico differ diff --git a/ignore_testing b/ignore_testing deleted file mode 100644 index 68762fe8..00000000 --- a/ignore_testing +++ /dev/null @@ -1 +0,0 @@ -content/tutorial-style-guide.md diff --git a/index.html b/index.html new file mode 100644 index 00000000..c4a939e7 --- /dev/null +++ b/index.html @@ -0,0 +1,48 @@ +NumPy tutorials - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

NumPy tutorials

Binder

This set of tutorials and educational materials is being developed in the +numpy-tutorials repository, and is +not a part of the NumPy source tree. The goal of this repository is to provide +high-quality resources by the NumPy project, both for self-learning and for +teaching classes with. If you’re interested in adding your own content, check +the Contributing section.

To open a live version of the content, click the launch Binder button above. +To open each of the .md files, right click and select “Open with -> Notebook”. +You can also launch individual tutorials on Binder by clicking on the rocket +icon that appears in the upper-right corner of each tutorial. To download a +local copy of the .ipynb files, you can either +clone this repository +or use the download icon in the upper-right corner of each tutorial.

The following links may be useful:

Note that regular documentation issues for NumPy can be found in the main NumPy +repository (see the Documentation +labels there).

\ No newline at end of file diff --git a/index.json b/index.json new file mode 100644 index 00000000..a0ab38cd --- /dev/null +++ b/index.json @@ -0,0 +1 @@ +{"version":3,"kind":"Article","sha256":"f6d8319551743172edf733c1f8dc85190fa1e1d07856e2d7dbb35fceed0e23c9","slug":"index","location":"/content/index.md","dependencies":[],"frontmatter":{"title":"NumPy tutorials","content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/index.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/index.md","thumbnail":"/numpy-tutorials/build/b77199e99a54e59b2e3c037c2cc90f21.svg","exports":[{"format":"md","filename":"index.md","url":"/numpy-tutorials/build/index-2248acfcad055c54f7514373c692d821.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"link","url":"https://mybinder.org/v2/gh/numpy/numpy-tutorials/main?urlpath=lab/tree/content","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"children":[{"type":"image","url":"/numpy-tutorials/build/b77199e99a54e59b2e3c037c2cc90f21.svg","alt":"Binder","position":{"start":{"line":3,"column":1},"end":{"line":3,"column":1}},"key":"DMaC3gWkqw","urlSource":"https://mybinder.org/badge_logo.svg"}],"urlSource":"https://mybinder.org/v2/gh/numpy/numpy-tutorials/main?urlpath=lab/tree/content","key":"n12448fBK2"}],"key":"DmQJ5lOUZm"},{"type":"paragraph","position":{"start":{"line":7,"column":1},"end":{"line":12,"column":1}},"children":[{"type":"text","value":"This set of tutorials and educational materials is being developed in the\n","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"SNCu9uWgwR"},{"type":"link","url":"https://github.com/numpy/numpy-tutorials","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"numpy-tutorials","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"yyZ0I6uNDa"}],"urlSource":"https://github.com/numpy/numpy-tutorials","error":true,"key":"wBPJjnTmZD"},{"type":"text","value":" repository, and is\nnot a part of the NumPy source tree. The goal of this repository is to provide\nhigh-quality resources by the NumPy project, both for self-learning and for\nteaching classes with. If you’re interested in adding your own content, check\nthe ","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"hqB4N22Pmv"},{"type":"link","url":"/contributing","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"children":[{"type":"text","value":"Contributing","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"JP3PgUEBLB"}],"urlSource":"contributing.md","dataUrl":"/contributing.json","internal":true,"protocol":"file","key":"aYlhB1SctN"},{"type":"text","value":" section.","position":{"start":{"line":7,"column":1},"end":{"line":7,"column":1}},"key":"nWSCjtgv53"}],"key":"r1J5LYm6rB"},{"type":"paragraph","position":{"start":{"line":14,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"To open a live version of the content, click the ","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"e9BQlJVsrM"},{"type":"strong","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"text","value":"launch Binder","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"i47AmiJAHo"}],"key":"PkGubGRbBU"},{"type":"text","value":" button above.\nTo open each of the ","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"z4ZV3lNNwT"},{"type":"inlineCode","value":".md","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"ouC5YMJzDi"},{"type":"text","value":" files, right click and select “Open with -> Notebook”.\nYou can also launch individual tutorials on Binder by clicking on the rocket\nicon that appears in the upper-right corner of each tutorial. To download a\nlocal copy of the ","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"wf7JvoQQGW"},{"type":"inlineCode","value":".ipynb","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"lrYkWW7fLT"},{"type":"text","value":" files, you can either\n","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"dsiCvSKjOi"},{"type":"link","url":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"children":[{"type":"text","value":"clone this repository","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"tUZB9Cbsci"}],"urlSource":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository","key":"WIzsTWroEB"},{"type":"text","value":"\nor use the download icon in the upper-right corner of each tutorial.","position":{"start":{"line":14,"column":1},"end":{"line":14,"column":1}},"key":"xohKXJ3kSR"}],"key":"uOpQNm1cCT"},{"type":"heading","depth":2,"position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"Useful links and resources","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"wxnVymca7o"}],"identifier":"useful-links-and-resources","label":"Useful links and resources","html_id":"useful-links-and-resources","implicit":true,"key":"AOh5tVWT9F"},{"type":"paragraph","position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"children":[{"type":"text","value":"The following links may be useful:","position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"key":"Afuxhgbhnq"}],"key":"kWUSMDwsRF"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":26,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/code-of-conduct/","position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"text","value":"NumPy Code of Conduct","position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"key":"Q4N808Dnwb"}],"urlSource":"https://numpy.org/code-of-conduct/","key":"JJBBIWMY9N"}],"key":"gOyyBbazhC"}],"key":"CkXtdb1Qa3"},{"type":"listItem","spread":true,"position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"Main NumPy documentation","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"ceLkrQqENL"}],"urlSource":"https://numpy.org/doc/stable/","key":"FsL2yND7Pm"}],"key":"P14lmIg6UQ"}],"key":"BF6NREBgbG"},{"type":"listItem","spread":true,"position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg?both","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"children":[{"type":"text","value":"NumPy documentation team meeting notes","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"key":"gBFxTG6G6b"}],"urlSource":"https://hackmd.io/oB_boakvRqKR-_2jRV-Qjg?both","key":"JQWSjrCNXd"}],"key":"ehoPUZGFt8"}],"key":"Y7Li2a7dAW"},{"type":"listItem","spread":true,"position":{"start":{"line":29,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/neps/nep-0044-restructuring-numpy-docs.html","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"text","value":"NEP 44 - Restructuring the NumPy documentation","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"RaGIAk0MK2"}],"urlSource":"https://numpy.org/neps/nep-0044-restructuring-numpy-docs.html","key":"GlhZMxGTk3"}],"key":"a7snVpnufr"}],"key":"r1RhRnlxOX"}],"key":"wwYoQ7etZ4"},{"type":"paragraph","position":{"start":{"line":31,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"text","value":"Note that regular documentation issues for NumPy can be found in the ","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"R10wDzbrTQ"},{"type":"link","url":"https://github.com/numpy/numpy/issues","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"text","value":"main NumPy\nrepository","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"oJ1Mrbcj1m"}],"urlSource":"https://github.com/numpy/numpy/issues","error":true,"key":"W7IcpCyoWY"},{"type":"text","value":" (see the ","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"yCtEpfp3hX"},{"type":"inlineCode","value":"Documentation","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"nHW0AgFNrR"},{"type":"text","value":"\nlabels there).","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"CoV1jvs7aV"}],"key":"jdmlynYqMX"}],"key":"RZD9cnZuGf"}],"key":"Q7ikOnlxs3"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"next":{"title":"Determining Moore’s Law with real data in NumPy","short_title":"Moore's Law","url":"/mooreslaw-tutorial","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/mooreslaw-tutorial.json b/mooreslaw-tutorial.json new file mode 100644 index 00000000..d501f228 --- /dev/null +++ b/mooreslaw-tutorial.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"bc72c999c28bbd2c9b59f342e95866b9c2ffb311b7e8eb72861092ec295d8429","slug":"mooreslaw-tutorial","location":"/content/mooreslaw-tutorial.md","dependencies":[],"frontmatter":{"title":"Determining Moore’s Law with real data in NumPy","short_title":"Moore's Law","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/mooreslaw-tutorial.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/mooreslaw-tutorial.md","thumbnail":"/numpy-tutorials/build/01-mooreslaw-tutoria-68d0ad466c300d347c517c09cd29d0d9.png","exports":[{"format":"md","filename":"mooreslaw-tutorial.md","url":"/numpy-tutorials/build/mooreslaw-tutorial-52947d6b10f577764cbf1947772e04d5.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"image","url":"/numpy-tutorials/build/01-mooreslaw-tutoria-68d0ad466c300d347c517c09cd29d0d9.png","alt":"Scatter plot of MOS transistor count per microprocessor every two years as a demonstration of Moore's Law.","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"qp8VqHat2p","urlSource":"_static/01-mooreslaw-tutorial-intro.png"},{"type":"paragraph","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"The number of transistors reported per a given chip plotted on a log scale in the y axis with the date of introduction on the linear scale x-axis. The blue data points are from a ","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"rXQLThOC2I"},{"type":"link","url":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"transistor count table","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"lrACpHyxHH"}],"urlSource":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","data":{"page":"Transistor_count#Microprocessors","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"EPsyRPkach"},{"type":"text","value":". The red line is an ordinary least squares prediction and the orange line is Moore’s law.","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"pwYR4CNPP9"}],"key":"jkk7bLUwbO"}],"key":"vzQSB8kMJT"},{"type":"heading","depth":2,"position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"Ow5TIXIwfI"}],"identifier":"what-youll-do","label":"What you’ll do","html_id":"what-youll-do","implicit":true,"key":"TbDervVtHQ"},{"type":"paragraph","position":{"start":{"line":22,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"In 1965, engineer Gordon Moore\n","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"uEvP0qciO3"},{"type":"link","url":"https://en.wikipedia.org/wiki/Moore%27s_law","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"predicted","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"tmO8zyc7PS"}],"urlSource":"https://en.wikipedia.org/wiki/Moore%27s_law","data":{"page":"Moore%27s_law","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"G085FRsQtA"},{"type":"text","value":" that\ntransistors on a chip would double every two years in the coming decade\n[","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"LeST9TW3h3"},{"type":"link","url":"https://en.wikipedia.org/wiki/Moore%27s_law","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"1","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"B77IVvygz9"}],"urlSource":"https://en.wikipedia.org/wiki/Moore%27s_law","data":{"page":"Moore%27s_law","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"se9yHZTHld"},{"type":"text","value":"].\nYou’ll compare Moore’s prediction against actual transistor counts in\nthe 53 years following his prediction. You will determine the best-fit constants to describe the exponential growth of transistors on semiconductors compared to Moore’s Law.","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"NxAlOjUye0"}],"key":"btG4xmaRCz"},{"type":"heading","depth":2,"position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"Skills you’ll learn","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"iBeLlzln3w"}],"identifier":"skills-youll-learn","label":"Skills you’ll learn","html_id":"skills-youll-learn","implicit":true,"key":"fZYjDrYkko"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":33,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Load data from a ","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"ApSj9rMHdc"},{"type":"link","url":"https://en.wikipedia.org/wiki/Comma-separated_values","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"text","value":"*.csv","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"KzQXoCtNWd"}],"urlSource":"https://en.wikipedia.org/wiki/Comma-separated_values","data":{"page":"Comma-separated_values","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"cALEoUspWa"},{"type":"text","value":" file","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"x4pRFz9yKf"}],"key":"IfyArEhEZN"}],"key":"TvVoJPpL8b"},{"type":"listItem","spread":true,"position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Perform linear regression and predict exponential growth using ordinary least squares","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"S3p9sR8jW6"}],"key":"ZHIX874xMI"}],"key":"eybtJTAjDW"},{"type":"listItem","spread":true,"position":{"start":{"line":35,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll compare exponential growth constants between models","position":{"start":{"line":35,"column":1},"end":{"line":35,"column":1}},"key":"tGv0SBPerk"}],"key":"vLrTnHVpOv"}],"key":"jCDTX0hWqr"},{"type":"listItem","spread":true,"position":{"start":{"line":36,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Share your analysis in a file:","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"cIkQgq8iF4"}],"key":"CLczk1Uwn2"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":37,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"as NumPy zipped files ","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"Jjq2hx5BL4"},{"type":"inlineCode","value":"*.npz","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"zEi4PyufAN"}],"key":"ufysVTcmcn"}],"key":"JgdF534hD0"},{"type":"listItem","spread":true,"position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"as a ","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"v7gUZakdjQ"},{"type":"inlineCode","value":"*.csv","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"Fs3MaeBokT"},{"type":"text","value":" file","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"RD3egZlJ8H"}],"key":"ukpyd6nt69"}],"key":"I1cT0RJg7F"}],"key":"RLOP1qLAFm"}],"key":"R86v4vvZNx"},{"type":"listItem","spread":true,"position":{"start":{"line":39,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Assess the amazing progress semiconductor manufacturers have made in the last five decades","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"rmHIms9PnT"}],"key":"gR3V4qtuUy"}],"key":"FzhnmPvPZS"}],"key":"iuvZ2YH2ae"},{"type":"heading","depth":2,"position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"b4yXOFWdbV"}],"identifier":"what-youll-need","label":"What you’ll need","html_id":"what-youll-need","implicit":true,"key":"SaNktBchtZ"},{"type":"paragraph","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"strong","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"n5moWqSuJC"}],"key":"D1Esvhzl1a"},{"type":"text","value":" These packages:","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"tooHUsFasU"}],"key":"xS24AACWkI"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":45,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"NumPy","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"l11JtypWW7"}],"key":"UZJhaz1iAr"}],"key":"qeCOoiuQhc"},{"type":"listItem","spread":true,"position":{"start":{"line":46,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":46,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":46,"column":1},"end":{"line":46,"column":1}},"key":"diIRufSAfe"}],"urlSource":"https://matplotlib.org/","key":"vYQfC9KSGZ"}],"key":"HErtwMrrOr"}],"key":"NENxH9qJp8"}],"key":"VgcrA57SIy"},{"type":"paragraph","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"text","value":"imported with the following commands","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"WmfnnYVnoz"}],"key":"OWOrNOwgNZ"}],"key":"WBqGhhglpA"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\nimport numpy as np","key":"OCBIuEoQgg"},{"type":"outputs","id":"opmPiyp7AxA81Z8xeeWsE","children":[],"key":"bFBcK1foKW"}],"key":"av5yesmW7U"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"strong","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"IxgoAOOPZb"}],"key":"l1T8LRDZ4v"},{"type":"text","value":" Since this is an exponential growth law you need a little background in doing math with ","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"onSCHxctN5"},{"type":"link","url":"https://en.wikipedia.org/wiki/Natural_logarithm","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"natural logs","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"sjEB7z4TSF"}],"urlSource":"https://en.wikipedia.org/wiki/Natural_logarithm","data":{"page":"Natural_logarithm","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"XqYdB432rs"},{"type":"text","value":" and ","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"FywvCyQX2v"},{"type":"link","url":"https://en.wikipedia.org/wiki/Exponential_function","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"exponentials","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"IhDkcz353g"}],"urlSource":"https://en.wikipedia.org/wiki/Exponential_function","data":{"page":"Exponential_function","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"GmxvDRTMWu"},{"type":"text","value":".","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"X1nlcAPjN0"}],"key":"ap2pkh16EB"},{"type":"paragraph","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"text","value":"You’ll use these NumPy and Matplotlib functions:","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"CI7tYmaHT5"}],"key":"yRBRSWUx55"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":59,"column":1},"end":{"line":70,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"inlineCode","value":"np.loadtxt","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"key":"jNgsp4eDJY"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","key":"olR5nY0QOW"},{"type":"text","value":": this function loads text into a NumPy array","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"key":"ukepluMNWU"}],"key":"ai4yOhEpQm"}],"key":"YgWV5bAZ4n"},{"type":"listItem","spread":true,"position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.log.html","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"inlineCode","value":"np.log","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"Q6oX3yZVGT"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.log.html","key":"hJumoiGv4S"},{"type":"text","value":": this function takes the natural log of all elements in a NumPy array","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"mdd4FbW7Tb"}],"key":"PPPUmeu5zo"}],"key":"Dv8mmcy8Ox"},{"type":"listItem","spread":true,"position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.exp.html","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"inlineCode","value":"np.exp","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"mCwES66JSg"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.exp.html","key":"KjEYRFuOxE"},{"type":"text","value":": this function takes the exponential of all elements in a NumPy array","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"zVUzdrO5Xr"}],"key":"H2JY7Xdans"}],"key":"hZrs4x68uL"},{"type":"listItem","spread":true,"position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://docs.python.org/3/library/ast.html?highlight=lambda#ast.Lambda","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"inlineCode","value":"lambda","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"fV866wEM5c"}],"urlSource":"https://docs.python.org/3/library/ast.html?highlight=lambda#ast.Lambda","key":"mm9F2LnlBl"},{"type":"text","value":": this is a minimal function definition for creating a function model","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"xSwZ24O5b8"}],"key":"FoF7NuZLJV"}],"key":"NsqmHgxMx2"},{"type":"listItem","spread":true,"position":{"start":{"line":63,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.semilogy.html","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"children":[{"type":"inlineCode","value":"plt.semilogy","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"Je1mzMCjEG"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.semilogy.html","key":"IAu167abMC"},{"type":"text","value":": this function will plot x-y data onto a figure with a linear x-axis and ","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"m0guf7HF8c"},{"type":"inlineMath","value":"\\log_{10}","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"html":"log10\\log_{10}log10","key":"yEhzSVMt0O"},{"type":"text","value":" y-axis\n","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"o9KVoisOEi"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"children":[{"type":"inlineCode","value":"plt.plot","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"eW3MWz42E4"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html","key":"GE2oggnb89"},{"type":"text","value":": this function will plot x-y data on linear axes","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"JsyKx4IcZh"}],"key":"Q86dRDk91f"}],"key":"sZ5ciA1J7m"},{"type":"listItem","spread":true,"position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"slicing arrays: view parts of the data loaded into the workspace, slice the arrays e.g. ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"NapX62puOY"},{"type":"inlineCode","value":"x[:10]","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"wEeQw5xNUS"},{"type":"text","value":" for the first 10 values in the array, ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"fkwUZqcwXr"},{"type":"inlineCode","value":"x","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"buqYtG8lrB"}],"key":"gSzCdrpPlc"}],"key":"kbfEsffUY2"},{"type":"listItem","spread":true,"position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"boolean array indexing: to view parts of the data that match a given condition use boolean operations to index an array","position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"key":"DFcGvW2Ok3"}],"key":"tzYt5v8Jq0"}],"key":"Fo3mAHqUUW"},{"type":"listItem","spread":true,"position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"inlineCode","value":"np.block","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"zMgjfEs3dJ"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","key":"P3nt4GGsdX"},{"type":"text","value":": to combine arrays into 2D arrays","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"gYwvgecBaT"}],"key":"fN0phBfqIa"}],"key":"E1Wp6sWo0s"},{"type":"listItem","spread":true,"position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/constants.html","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"inlineCode","value":"np.newaxis","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"LzKwpPyYFw"}],"urlSource":"https://numpy.org/doc/stable/reference/constants.html","key":"druRaBccZG"},{"type":"text","value":": to change a 1D vector to a row or column vector","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"U4g32kwZkn"}],"key":"PNbcz06mJY"}],"key":"SoDxoVW0dC"},{"type":"listItem","spread":true,"position":{"start":{"line":69,"column":1},"end":{"line":70,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"inlineCode","value":"np.savez","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"N7E6Lye5Xa"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","key":"mJqi2LJcMc"},{"type":"text","value":" and ","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"LHJepBd4yb"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"inlineCode","value":"np.savetxt","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"wwsylG4OgL"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","key":"LBjDM5IRuS"},{"type":"text","value":": these two functions will save your arrays in zipped array format and text, respectively","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"YsdLlHIthN"}],"key":"hqKuO7OVyD"}],"key":"ntTHsJN3CA"}],"key":"a0g7cscqnH"}],"key":"Hi4KDpMucx"},{"type":"block","position":{"start":{"line":71,"column":1},"end":{"line":71,"column":1}},"children":[{"type":"thematicBreak","position":{"start":{"line":73,"column":1},"end":{"line":73,"column":1}},"key":"IEduJmrPs5"},{"type":"heading","depth":2,"position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"children":[{"type":"text","value":"Building Moore’s law as an exponential function","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"qBVJVmxM8a"}],"identifier":"building-moores-law-as-an-exponential-function","label":"Building Moore’s law as an exponential function","html_id":"building-moores-law-as-an-exponential-function","implicit":true,"key":"eJdJAHxUcU"},{"type":"paragraph","position":{"start":{"line":77,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"Your empirical model assumes that the number of transistors per\nsemiconductor follows an exponential growth,","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"Idc4W4D9nE"}],"key":"KBvwoTjktl"},{"type":"paragraph","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"children":[{"type":"inlineMath","value":"\\log(\\text{transistor\\_count})= f(\\text{year}) = A\\cdot \\text{year}+B","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"html":"log(transistor_count)=f(year)=Ayear+B\\log(\\text{transistor\\_count})= f(\\text{year}) = A\\cdot \\text{year}+Blog(transistor_count)=f(year)=Ayear+B","key":"QFiAGjlnDC"},{"type":"text","value":",","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"key":"Gpnj8QBFcb"}],"key":"DcCWhsyCuT"},{"type":"paragraph","position":{"start":{"line":82,"column":1},"end":{"line":83,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"jH6wrbbrj1"},{"type":"inlineMath","value":"A","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"html":"AAA","key":"KdGjp0bsDZ"},{"type":"text","value":" and ","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"JQI287NYcg"},{"type":"inlineMath","value":"B","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"html":"BBB","key":"NAaoRxzX61"},{"type":"text","value":" are fitting constants. You use semiconductor\nmanufacturers’ data to find the fitting constants.","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"BiMbm0Tkuw"}],"key":"hpCRqQpWuH"},{"type":"paragraph","position":{"start":{"line":85,"column":1},"end":{"line":86,"column":1}},"children":[{"type":"text","value":"You determine these constants for Moore’s law by specifying the\nrate for added transistors, 2, and giving an initial number of transistors for a given year.","position":{"start":{"line":85,"column":1},"end":{"line":85,"column":1}},"key":"dn0HaN6M9b"}],"key":"wPjYOqkwx0"},{"type":"paragraph","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"children":[{"type":"text","value":"You state Moore’s law in an exponential form as follows,","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"key":"alLrZE24Ts"}],"key":"v2jt9XQCUk"},{"type":"paragraph","position":{"start":{"line":90,"column":1},"end":{"line":90,"column":1}},"children":[{"type":"inlineMath","value":"\\text{transistor\\_count}= e^{A_M\\cdot \\text{year} +B_M}.","position":{"start":{"line":90,"column":1},"end":{"line":90,"column":1}},"html":"transistor_count=eAMyear+BM.\\text{transistor\\_count}= e^{A_M\\cdot \\text{year} +B_M}.transistor_count=eAMyear+BM.","key":"bb0rHzdU1c"}],"key":"S28q44z10g"},{"type":"paragraph","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"children":[{"type":"text","value":"Where ","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"HOpFeRxb57"},{"type":"inlineMath","value":"A_M","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"html":"AMA_MAM","key":"oqss11yUFT"},{"type":"text","value":" and ","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"cuDoLmLNpO"},{"type":"inlineMath","value":"B_M","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"html":"BMB_MBM","key":"iY3XlYM1Pu"},{"type":"text","value":" are constants that double the number of transistors every two years and start at 2250 transistors in 1971,","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"ldnG8fONYe"}],"key":"n2cz7IlsaN"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":94,"column":1},"end":{"line":97,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":94,"column":1},"end":{"line":95,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"children":[{"type":"inlineMath","value":"\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = 2 = \\dfrac{e^{B_M}e^{A_M \\text{year} + 2A_M}}{e^{B_M}e^{A_M \\text{year}}} = e^{2A_M} \\rightarrow A_M = \\frac{\\log(2)}{2}","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"html":"transistor_count(year+2)transistor_count(year)=2=eBMeAMyear+2AMeBMeAMyear=e2AMAM=log(2)2\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = 2 = \\dfrac{e^{B_M}e^{A_M \\text{year} + 2A_M}}{e^{B_M}e^{A_M \\text{year}}} = e^{2A_M} \\rightarrow A_M = \\frac{\\log(2)}{2}transistor_count(year)transistor_count(year+2)=2=eBMeAMyeareBMeAMyear+2AM=e2AMAM=2log(2)","key":"uiyNHmVXye"}],"key":"Km6GnJXeqH"}],"key":"OW0VUcjoxQ"},{"type":"listItem","spread":true,"position":{"start":{"line":96,"column":1},"end":{"line":97,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":96,"column":1},"end":{"line":96,"column":1}},"children":[{"type":"inlineMath","value":"\\log(2250) = \\frac{\\log(2)}{2}\\cdot 1971 + B_M \\rightarrow B_M = \\log(2250)-\\frac{\\log(2)}{2}\\cdot 1971","position":{"start":{"line":96,"column":1},"end":{"line":96,"column":1}},"html":"log(2250)=log(2)21971+BMBM=log(2250)log(2)21971\\log(2250) = \\frac{\\log(2)}{2}\\cdot 1971 + B_M \\rightarrow B_M = \\log(2250)-\\frac{\\log(2)}{2}\\cdot 1971log(2250)=2log(2)1971+BMBM=log(2250)2log(2)1971","key":"YaOvOh4iHE"}],"key":"I2woyar5FK"}],"key":"IBLKHQXdeF"}],"key":"TNHDC2Ls4g"},{"type":"paragraph","position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"children":[{"type":"text","value":"so Moore’s law stated as an exponential function is","position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"key":"a3GnoYcjDi"}],"key":"vCFLyBiK4k"},{"type":"paragraph","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"children":[{"type":"inlineMath","value":"\\log(\\text{transistor\\_count})= A_M\\cdot \\text{year}+B_M,","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"html":"log(transistor_count)=AMyear+BM,\\log(\\text{transistor\\_count})= A_M\\cdot \\text{year}+B_M,log(transistor_count)=AMyear+BM,","key":"wvJAY74GGl"}],"key":"Chj7LdZ4ai"},{"type":"paragraph","position":{"start":{"line":102,"column":1},"end":{"line":102,"column":1}},"children":[{"type":"text","value":"where","position":{"start":{"line":102,"column":1},"end":{"line":102,"column":1}},"key":"RUIwh7IKtn"}],"key":"J5vjSKHLyc"},{"type":"paragraph","position":{"start":{"line":104,"column":1},"end":{"line":104,"column":1}},"children":[{"type":"inlineMath","value":"A_M=0.3466","position":{"start":{"line":104,"column":1},"end":{"line":104,"column":1}},"html":"AM=0.3466A_M=0.3466AM=0.3466","key":"THBHmuKMWV"}],"key":"n8wE5OqypL"},{"type":"paragraph","position":{"start":{"line":106,"column":1},"end":{"line":106,"column":1}},"children":[{"type":"inlineMath","value":"B_M=-675.4","position":{"start":{"line":106,"column":1},"end":{"line":106,"column":1}},"html":"BM=675.4B_M=-675.4BM=675.4","key":"f5ByJT2zhu"}],"key":"TbqUqUHJ9b"},{"type":"paragraph","position":{"start":{"line":108,"column":1},"end":{"line":110,"column":1}},"children":[{"type":"text","value":"Since the function represents Moore’s law, define it as a Python\nfunction using\n","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"BT8DvGYo01"},{"type":"link","url":"https://docs.python.org/3/library/ast.html?highlight=lambda#ast.Lambda","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"children":[{"type":"inlineCode","value":"lambda","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"PAwcRiP61p"}],"urlSource":"https://docs.python.org/3/library/ast.html?highlight=lambda#ast.Lambda","key":"C0BGBSPjgz"},{"type":"text","value":":","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"kgrlmuRuPy"}],"key":"wwvy8acxWY"}],"key":"Qqn3onmEao"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"A_M = np.log(2) / 2\nB_M = np.log(2250) - A_M * 1971\nMoores_law = lambda year: np.exp(B_M) * np.exp(A_M * year)","key":"pxqRgOD2Wo"},{"type":"outputs","id":"PFIKJ3CJiVlJ-YRzZ4Aio","children":[],"key":"UBksvBGMjv"}],"key":"HZodIcudoi"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":118,"column":1},"end":{"line":120,"column":1}},"children":[{"type":"text","value":"In 1971, there were 2250 transistors on the Intel 4004 chip. Use\n","position":{"start":{"line":118,"column":1},"end":{"line":118,"column":1}},"key":"usp3Itozx2"},{"type":"inlineCode","value":"Moores_law","position":{"start":{"line":118,"column":1},"end":{"line":118,"column":1}},"key":"EZDwbZC4t3"},{"type":"text","value":" to check the number of semiconductors Gordon Moore would expect\nin 1973.","position":{"start":{"line":118,"column":1},"end":{"line":118,"column":1}},"key":"DhSQkD4aWg"}],"key":"GMeP4jnHAN"}],"key":"KlIqBd5VuM"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"ML_1971 = Moores_law(1971)\nML_1973 = Moores_law(1973)\nprint(\"In 1973, G. Moore expects {:.0f} transistors on Intels chips\".format(ML_1973))\nprint(\"This is x{:.2f} more transistors than 1971\".format(ML_1973 / ML_1971))","key":"BWOXOvwzm8"},{"type":"outputs","id":"RgHKDMu5cICFuAmr0aPcs","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"In 1973, G. Moore expects 4500 transistors on Intels chips\nThis is x2.00 more transistors than 1971\n"},"key":"nIgLFSS8uA"}],"key":"R534DVNYFT"}],"key":"Mzlmzf3SIm"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"children":[{"type":"text","value":"Loading historical manufacturing data to your workspace","position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"key":"PCa5c805tf"}],"identifier":"loading-historical-manufacturing-data-to-your-workspace","label":"Loading historical manufacturing data to your workspace","html_id":"loading-historical-manufacturing-data-to-your-workspace","implicit":true,"key":"PWhtyS0Alh"},{"type":"paragraph","position":{"start":{"line":131,"column":1},"end":{"line":137,"column":1}},"children":[{"type":"text","value":"Now, make a prediction based upon the historical data for\nsemiconductors per chip. The ","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"mOvQXBuDeE"},{"type":"link","url":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"children":[{"type":"text","value":"Transistor Count\n[3]","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"mgd2f3ze8B"}],"urlSource":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","data":{"page":"Transistor_count#Microprocessors","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Qoo1ImG0On"},{"type":"text","value":"\neach year is in the ","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"UWL9DBE8b2"},{"type":"inlineCode","value":"transistor_data.csv","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"wcJX0R4BIM"},{"type":"text","value":" file. Before loading a *.csv\nfile into a NumPy array, its a good idea to inspect the structure of the\nfile first. Then, locate the columns of interest and save them to a\nvariable. Save two columns of the file to the array, ","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"Ymc5n3Vhnm"},{"type":"inlineCode","value":"data","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"xM78WKzjNi"},{"type":"text","value":".","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"kC26aNdfjv"}],"key":"FzV25GFaCv"},{"type":"paragraph","position":{"start":{"line":139,"column":1},"end":{"line":139,"column":1}},"children":[{"type":"text","value":"Here, print out the first 10 rows of ","position":{"start":{"line":139,"column":1},"end":{"line":139,"column":1}},"key":"TypvXcbY0T"},{"type":"inlineCode","value":"transistor_data.csv","position":{"start":{"line":139,"column":1},"end":{"line":139,"column":1}},"key":"ojHC2g0SPB"},{"type":"text","value":". The columns are","position":{"start":{"line":139,"column":1},"end":{"line":139,"column":1}},"key":"xgPtHYwnt9"}],"key":"o8Uu9x2Ggc"},{"type":"table","position":{"start":{"line":141,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"tableRow","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"Processor","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"ivvMPwWZaL"}],"key":"Fj823s0deC"},{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"MOS transistor count","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"PWJNRfjYcs"}],"key":"uHSuL0TDZJ"},{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"Date of Introduction","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"D2X6xAY5ye"}],"key":"xUPPHx5rZA"},{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"Designer","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"ZQVlY5VLwa"}],"key":"bkgDOwLF59"},{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"MOSprocess","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"LgFXAEYMh3"}],"key":"iE5989xkdT"},{"type":"tableCell","header":true,"position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"Area","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"lgLHJfNuGx"}],"key":"Hr7GxJJH3p"}],"key":"rmOw771mIQ"},{"type":"tableRow","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"Intel 4004 (4-bit 16-pin)","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"gEbBh68t0g"}],"key":"ZiIpnjPJ4K"},{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"2250","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"UeIzsrNqsX"}],"key":"tbLcndF5gz"},{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"1971","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"vgV8a0Pds3"}],"key":"oCQOFeetrO"},{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"Intel","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"ppBOeEAc5d"}],"key":"xlP7LWxsxn"},{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"“10,000 nm”","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"ibr0tJlOPq"}],"key":"ceEZl8zQLd"},{"type":"tableCell","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"children":[{"type":"text","value":"12 mm²","position":{"start":{"line":143,"column":1},"end":{"line":143,"column":1}},"key":"YcVYSvCmgI"}],"key":"rVhSLcbUzy"}],"key":"b0r92sqeKK"},{"type":"tableRow","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"olFDIR3Map"}],"key":"Vca0fj3h6S"},{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"PlmwzisDLD"}],"key":"CCASOTXl0T"},{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"tKa51hu5hy"}],"key":"d8M7AMHhxH"},{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"ILXeQjsOeJ"}],"key":"cVdqZnJ5BM"},{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"jzG8QZ03tY"}],"key":"YD3Yp7mzMg"},{"type":"tableCell","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"...","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"Zrs5ifieDw"}],"key":"JVgwjyacB2"}],"key":"AuygcI9gnB"}],"key":"TvI778Wzww"}],"key":"Yezkg8iOV6"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"! head transistor_data.csv","key":"fYWAJif5Yz"},{"type":"outputs","id":"gXKpurcLO8kBY7PpLuShT","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Processor,MOS transistor count,Date of Introduction,Designer,MOSprocess,Area\r\nIntel 4004 (4-bit 16-pin),2250,1971,Intel,\"10,000 nm\",12 mm²\r\nIntel 8008 (8-bit 18-pin),3500,1972,Intel,\"10,000 nm\",14 mm²\r\nNEC μCOM-4 (4-bit 42-pin),2500,1973,NEC,\"7,500 nm\",?\r\nIntel 4040 (4-bit 16-pin),3000,1974,Intel,\"10,000 nm\",12 mm²\r\nMotorola 6800 (8-bit 40-pin),4100,1974,Motorola,\"6,000 nm\",16 mm²\r\nIntel 8080 (8-bit 40-pin),6000,1974,Intel,\"6,000 nm\",20 mm²\r\nTMS 1000 (4-bit 28-pin),8000,1974,Texas Instruments,\"8,000 nm\",11 mm²\r\nMOS Technology 6502 (8-bit 40-pin),4528,1975,MOS Technology,\"8,000 nm\",21 mm²\r\nIntersil IM6100 (12-bit 40-pin; clone of PDP-8),4000,1975,Intersil,,\r\n"},"key":"bZY8eiTu7F"}],"key":"XyJPKyno1H"}],"key":"NN0dLinlSV"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":150,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"text","value":"You don’t need the columns that specify ","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"p37EFKUplw"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"Processor","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"hQMBFbwPTf"}],"key":"wrN5uiv6O9"},{"type":"text","value":", ","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"NOmjT5DOrW"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"Designer","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"ccTrtR1N9g"}],"key":"lhJDEyqySQ"},{"type":"text","value":",\n","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"OSxwCTcWOK"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"MOSprocess","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"SKAnMe3JdT"}],"key":"IiEde4t1Mp"},{"type":"text","value":", or ","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"GU2UP4MRWv"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"Area","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"iIbCa10VUc"}],"key":"e0EcinPOPu"},{"type":"text","value":". That leaves the second and third columns,\n","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"UolT6AWFWL"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"MOS transistor count","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"NYVwXCbEe6"}],"key":"ZvSkvXHldW"},{"type":"text","value":" and ","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"VseFggmVnv"},{"type":"strong","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"Date of Introduction","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"DCbLriusyr"}],"key":"sASfHQAZi2"},{"type":"text","value":", respectively.","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"XCs2oPRzWd"}],"key":"e0yQWBccx5"},{"type":"paragraph","position":{"start":{"line":154,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"Next, you load these two columns into a NumPy array using\n","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"key":"FHF0EtKge2"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"children":[{"type":"inlineCode","value":"np.loadtxt","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"key":"px2HUVQNFt"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","key":"kC3QhM5BmG"},{"type":"text","value":".\nThe extra options below will put the data in the desired format:","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"key":"Orsco4vzlH"}],"key":"a9KRMSogO7"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":158,"column":1},"end":{"line":161,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"delimiter = ','","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"TyZ38i3tVt"},{"type":"text","value":": specify delimeter as a comma ‘,’ (this is the default behavior)","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"aF6Nc68HPL"}],"key":"PwEdFm0Lii"}],"key":"ZlJTUdNlFg"},{"type":"listItem","spread":true,"position":{"start":{"line":159,"column":1},"end":{"line":159,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"usecols = [1,2]","position":{"start":{"line":159,"column":1},"end":{"line":159,"column":1}},"key":"ITPqkL7vYf"},{"type":"text","value":": import the second and third columns from the csv","position":{"start":{"line":159,"column":1},"end":{"line":159,"column":1}},"key":"q1N75s7hCW"}],"key":"NSAGOymCQx"}],"key":"PAg7vzgVGy"},{"type":"listItem","spread":true,"position":{"start":{"line":160,"column":1},"end":{"line":161,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"skiprows = 1","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"VJZuVMTjcv"},{"type":"text","value":": do not use the first row, because it’s a header row","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"eW0LcTbqPD"}],"key":"FfgLUJGB5c"}],"key":"rnsqV6lkIW"}],"key":"gKon1Nd0sd"}],"key":"E4ezhm6Wfl"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"data = np.loadtxt(\"transistor_data.csv\", delimiter=\",\", usecols=[1, 2], skiprows=1)","key":"l1Y2MniMp8"},{"type":"outputs","id":"mBgGniXyAXu8XZZjfdDIj","children":[],"key":"mtgCDRcnqO"}],"key":"BpV5tsQNla"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":166,"column":1},"end":{"line":168,"column":1}},"children":[{"type":"text","value":"You loaded the entire history of semiconducting into a NumPy array named\n","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"gTqvULSxgU"},{"type":"inlineCode","value":"data","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"aXynPzPrew"},{"type":"text","value":". The first column is the ","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"lD9NjrRCZ8"},{"type":"strong","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"children":[{"type":"text","value":"MOS transistor count","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"GnALlYFJ4b"}],"key":"wpBK9f7p2O"},{"type":"text","value":" and the second\ncolumn is the ","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"EoJbDjcdmW"},{"type":"strong","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"children":[{"type":"text","value":"Date of Introduction","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"PpBEQYJnec"}],"key":"Su4kSeQifT"},{"type":"text","value":" in a four-digit year.","position":{"start":{"line":166,"column":1},"end":{"line":166,"column":1}},"key":"G1mSz1voXI"}],"key":"PFgtUQaDaW"},{"type":"paragraph","position":{"start":{"line":170,"column":1},"end":{"line":174,"column":1}},"children":[{"type":"text","value":"Next, make the data easier to read and manage by assigning the two\ncolumns to variables, ","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"aYouJXHbB0"},{"type":"inlineCode","value":"year","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"rdskWQlphu"},{"type":"text","value":" and ","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"zvyN0jhs4e"},{"type":"inlineCode","value":"transistor_count","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"vlVNqm0r0e"},{"type":"text","value":". Print out the first\n10 values by slicing the ","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"g5bKk7fROr"},{"type":"inlineCode","value":"year","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"KLLI0UgR1u"},{"type":"text","value":" and ","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"ynMiMDSRzW"},{"type":"inlineCode","value":"transistor_count","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"XCzoZDm0x1"},{"type":"text","value":" arrays with\n","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"HHueO7H7G2"},{"type":"inlineCode","value":"[:10]","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"xNmfAnTjEh"},{"type":"text","value":". Print these values out to check that you have the saved the\ndata to the correct variables.","position":{"start":{"line":170,"column":1},"end":{"line":170,"column":1}},"key":"wkWe3yZPu6"}],"key":"HIRxrKQwHR"}],"key":"NfMndDd8qf"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"year = data[:, 1] # grab the second column and assign\ntransistor_count = data[:, 0] # grab the first column and assign\n\nprint(\"year:\\t\\t\", year[:10])\nprint(\"trans. cnt:\\t\", transistor_count[:10])","key":"SjMcpDxfZj"},{"type":"outputs","id":"d8kfjsYQKiYcu_Ya-iZo-","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"year:\t\t [1971. 1972. 1973. 1974. 1974. 1974. 1974. 1975. 1975. 1975.]\ntrans. cnt:\t [2250. 3500. 2500. 3000. 4100. 6000. 8000. 4528. 4000. 5000.]\n"},"key":"MNfHJkRNyi"}],"key":"a8SDi6H5qg"}],"key":"EBV0Zzukfw"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":184,"column":1},"end":{"line":187,"column":1}},"children":[{"type":"text","value":"You are creating a function that predicts the transistor count given a\nyear. You have an ","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"p09RWT3XoU"},{"type":"emphasis","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"children":[{"type":"text","value":"independent variable","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"sZ96CUypWQ"}],"key":"nYNis1Wq9C"},{"type":"text","value":", ","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"APqyiIpe21"},{"type":"inlineCode","value":"year","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"o7hrEOf18R"},{"type":"text","value":", and a ","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"g4OpC0K7b5"},{"type":"emphasis","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"children":[{"type":"text","value":"dependent\nvariable","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"qIy0LPOaP6"}],"key":"yRAu5CidQK"},{"type":"text","value":", ","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"jgrWpMuP3m"},{"type":"inlineCode","value":"transistor_count","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"PBZ01bQl5s"},{"type":"text","value":". Transform the dependent variable to\nlog-scale,","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"yF0OiU67l2"}],"key":"gAdGkBf8mX"},{"type":"paragraph","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"children":[{"type":"inlineMath","value":"y_i = \\log(","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"html":"yi=log(y_i = \\log(yi=log(","key":"Z3l8PBwGIA"},{"type":"text","value":" ","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"CmNVc0DiLE"},{"type":"inlineCode","value":"transistor_count[i]","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"hQFiWrQgnK"},{"type":"text","value":" ","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"y6z6msteoi"},{"type":"inlineMath","value":"),","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"html":"),),),","key":"e8g6lextdx"}],"key":"zlHFlwZN8D"},{"type":"paragraph","position":{"start":{"line":191,"column":1},"end":{"line":191,"column":1}},"children":[{"type":"text","value":"resulting in a linear equation,","position":{"start":{"line":191,"column":1},"end":{"line":191,"column":1}},"key":"Evm7zCDyYu"}],"key":"ZDiNsEi3cy"},{"type":"paragraph","position":{"start":{"line":193,"column":1},"end":{"line":193,"column":1}},"children":[{"type":"inlineMath","value":"y_i = A\\cdot \\text{year} +B","position":{"start":{"line":193,"column":1},"end":{"line":193,"column":1}},"html":"yi=Ayear+By_i = A\\cdot \\text{year} +Byi=Ayear+B","key":"VpmhGjvdj1"},{"type":"text","value":".","position":{"start":{"line":193,"column":1},"end":{"line":193,"column":1}},"key":"GvZmTj51kP"}],"key":"qFeJrLVbGn"}],"key":"T49Ww5qfNB"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"yi = np.log(transistor_count)","key":"FnmbdLnO11"},{"type":"outputs","id":"AY6PKkOfA5gxBEuATU_2B","children":[],"key":"GqlBRAr7pv"}],"key":"t4vLYLm7LZ"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"children":[{"type":"text","value":"Calculating the historical growth curve for transistors","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"Uh3XEadNxL"}],"identifier":"calculating-the-historical-growth-curve-for-transistors","label":"Calculating the historical growth curve for transistors","html_id":"calculating-the-historical-growth-curve-for-transistors","implicit":true,"key":"qYb4GKIAeT"},{"type":"paragraph","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"children":[{"type":"text","value":"Your model assume that ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"UXihL5GdlV"},{"type":"inlineCode","value":"yi","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"R82LpvsmEa"},{"type":"text","value":" is a function of ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"UYEF8HVANe"},{"type":"inlineCode","value":"year","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"B8KdgM3SXI"},{"type":"text","value":". Now, find the best-fit model that minimizes the difference between ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"yDoiXOSf9D"},{"type":"inlineMath","value":"y_i","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"html":"yiy_iyi","key":"NlDWqKo4US"},{"type":"text","value":" and ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"wriwd8Z7zc"},{"type":"inlineMath","value":"A\\cdot \\text{year} +B, ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"html":"Ayear+B,A\\cdot \\text{year} +B, Ayear+B,","key":"IbcKmuI6kE"},{"type":"text","value":" as such","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"SI4L3s2Wfh"}],"key":"W3w6R3OIUS"},{"type":"paragraph","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"children":[{"type":"inlineMath","value":"\\min \\sum|y_i - (A\\cdot \\text{year}_i + B)|^2.","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"html":"minyi(Ayeari+B)2.\\min \\sum|y_i - (A\\cdot \\text{year}_i + B)|^2.minyi(Ayeari+B)2.","key":"ovq8Yk8Gki"}],"key":"KeErvFn2gj"},{"type":"paragraph","position":{"start":{"line":205,"column":1},"end":{"line":207,"column":1}},"children":[{"type":"text","value":"This ","position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"key":"YrHhiA2V0s"},{"type":"link","url":"https://en.wikipedia.org/wiki/Ordinary_least_squares","position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"children":[{"type":"text","value":"sum of squares\nerror","position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"key":"AkHRdwPGEV"}],"urlSource":"https://en.wikipedia.org/wiki/Ordinary_least_squares","data":{"page":"Ordinary_least_squares","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Y9imnVhGcR"},{"type":"text","value":" can be\nsuccinctly represented as arrays as such","position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"key":"Aq3K8bM4ZC"}],"key":"fYlAPQaDOI"},{"type":"paragraph","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"inlineMath","value":"\\sum|\\mathbf{y}-\\mathbf{Z} [A,~B]^T|^2,","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"html":"yZ[A, B]T2,\\sum|\\mathbf{y}-\\mathbf{Z} [A,~B]^T|^2,yZ[A, B]T2,","key":"jLk2mLNa8H"}],"key":"rs7XTXHKMr"},{"type":"paragraph","position":{"start":{"line":211,"column":1},"end":{"line":215,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"AAXlh8IP0j"},{"type":"inlineMath","value":"\\mathbf{y}","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"html":"y\\mathbf{y}y","key":"bisjOXzrVY"},{"type":"text","value":" are the observations of the log of the number of\ntransistors in a 1D array and ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"ZHAMFZjBmR"},{"type":"inlineMath","value":"\\mathbf{Z}=[\\text{year}_i^1,~\\text{year}_i^0]","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"html":"Z=[yeari1, yeari0]\\mathbf{Z}=[\\text{year}_i^1,~\\text{year}_i^0]Z=[yeari1, yeari0]","key":"XjxcLfmS4O"},{"type":"text","value":" are the\npolynomial terms for ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"XE9dXdmQIQ"},{"type":"inlineMath","value":"\\text{year}_i","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"html":"yeari\\text{year}_iyeari","key":"HbTpLv2QzQ"},{"type":"text","value":" in the first and second columns. By\ncreating this set of regressors in the ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"t8Ih8ubvJ1"},{"type":"inlineMath","value":"\\mathbf{Z}-","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"html":"Z\\mathbf{Z}-Z","key":"kibqYPrZN8"},{"type":"text","value":"matrix you set\nup an ordinary least squares statistical model.","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"Yis2Zwm7v3"}],"key":"DdcxOvmyXI"},{"type":"paragraph","position":{"start":{"line":217,"column":1},"end":{"line":219,"column":1}},"children":[{"type":"inlineCode","value":"Z","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"K5oAKozDmI"},{"type":"text","value":" is a linear model with two parameters, i.e. a polynomial with degree ","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"CdftvzKtzr"},{"type":"inlineCode","value":"1","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"Zla81yShUM"},{"type":"text","value":".\nTherefore we can represent the model with ","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"cQjilwva1t"},{"type":"inlineCode","value":"numpy.polynomial.Polynomial","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"qaMshErMVy"},{"type":"text","value":" and\nuse the fitting functionality to determine the model parameters:","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"key":"xY40GGtNVD"}],"key":"yFsoXc7EaK"}],"key":"DaaruwcwUL"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"model = np.polynomial.Polynomial.fit(year, yi, deg=1)","key":"AYrBB3vklN"},{"type":"outputs","id":"SSzhLHGFHuEA47VxW_mLx","children":[],"key":"AjSLX6tQtL"}],"key":"aWLI2nrNcB"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":225,"column":1},"end":{"line":228,"column":1}},"children":[{"type":"text","value":"By default, ","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"Z0XpGE6fpy"},{"type":"inlineCode","value":"Polynomial.fit","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"zI91quKf2C"},{"type":"text","value":" performs the fit in the domain determined by the\nindependent variable (","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"b0gYVXyShv"},{"type":"inlineCode","value":"year","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"U3B82IBfD1"},{"type":"text","value":" in this case).\nThe coefficients for the unscaled and unshifted model can be recovered with the\n","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"hFY8pAzo9Y"},{"type":"inlineCode","value":"convert","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"IifvIhYIvf"},{"type":"text","value":" method:","position":{"start":{"line":225,"column":1},"end":{"line":225,"column":1}},"key":"ZddpWkXMyH"}],"key":"Hw4N7CtbOC"}],"key":"cedR6u1Awh"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"model = model.convert()\nmodel","key":"nnAIJ6bFMa"},{"type":"outputs","id":"a7QU9Q4WS0FtcE5UATarp","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":9,"metadata":{},"data":{"text/plain":{"content":"Polynomial([-6.66326406e+02, 3.41632083e-01], domain=[-1., 1.], window=[-1., 1.], symbol='x')","content_type":"text/plain"},"text/latex":{"content":"$x \\mapsto \\text{-666.32640635} + \\text{0.34163208}\\,x$","content_type":"text/latex"}}},"key":"Wp9xKTqAFh"}],"key":"rHtGJYR0yc"}],"key":"ua7f3p9xpr"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"children":[{"type":"text","value":"The individual parameters ","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"key":"u6Fc5zEvXm"},{"type":"inlineMath","value":"A","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"html":"AAA","key":"uXJhc8yOSD"},{"type":"text","value":" and ","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"key":"s2DwPrTA0G"},{"type":"inlineMath","value":"B","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"html":"BBB","key":"P4u9zJPbmt"},{"type":"text","value":" are the coefficients of our linear model:","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"key":"RWwi4Zcn0i"}],"key":"XmPsSRTOYg"}],"key":"q7cOjzRoEC"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"B, A = model","key":"r3UTObB4OI"},{"type":"outputs","id":"Rj46Y9UaqX9Y-1EO8blG2","children":[],"key":"JRkBGf4Bbz"}],"key":"FFCE0vpx7l"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":242,"column":1},"end":{"line":243,"column":1}},"children":[{"type":"text","value":"Did manufacturers double the transistor count every two years? You have\nthe final formula,","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"gEjziZxS1w"}],"key":"RhourlXFbi"},{"type":"paragraph","position":{"start":{"line":245,"column":1},"end":{"line":246,"column":1}},"children":[{"type":"inlineMath","value":"\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = xFactor =\n\\dfrac{e^{B}e^{A( \\text{year} + 2)}}{e^{B}e^{A \\text{year}}} = e^{2A}","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"html":"transistor_count(year+2)transistor_count(year)=xFactor=eBeA(year+2)eBeAyear=e2A\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = xFactor =\n\\dfrac{e^{B}e^{A( \\text{year} + 2)}}{e^{B}e^{A \\text{year}}} = e^{2A}transistor_count(year)transistor_count(year+2)=xFactor=eBeAyeareBeA(year+2)=e2A","key":"D8dTU4PV3J"}],"key":"SRQkc4JEER"},{"type":"paragraph","position":{"start":{"line":248,"column":1},"end":{"line":249,"column":1}},"children":[{"type":"text","value":"where increase in number of transistors is ","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"key":"oEGgTabtbG"},{"type":"inlineMath","value":"xFactor,","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"html":"xFactor,xFactor,xFactor,","key":"Tz0GsHE6O3"},{"type":"text","value":" number of years is\n2, and ","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"key":"fzzJPAMLLd"},{"type":"inlineMath","value":"A","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"html":"AAA","key":"n3DVDUDp0G"},{"type":"text","value":" is the best fit slope on the semilog function.","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"key":"laQIUyxKLz"}],"key":"Wg6pxqulTY"}],"key":"pvdAGNjcqy"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(f\"Rate of semiconductors added on a chip every 2 years: {np.exp(2 * A):.2f}\")","key":"DasCtV9Yn7"},{"type":"outputs","id":"IVuUiy237vFrDUlvpV2T2","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Rate of semiconductors added on a chip every 2 years: 1.98\n"},"key":"slkGDttOvv"}],"key":"G99lfOAtd4"}],"key":"OrPiLvgvck"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":255,"column":1},"end":{"line":259,"column":1}},"children":[{"type":"text","value":"Based upon your least-squares regression model, the number of\nsemiconductors per chip increased by a factor of ","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"O73CgPWYmz"},{"type":"text","value":"1.98","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"JPzoUkCmQy"},{"type":"text","value":" every two\nyears. You have a model that predicts the number of semiconductors each\nyear. Now compare your model to the actual manufacturing reports. Plot\nthe linear regression results and all of the transistor counts.","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"cOXlmVKgv3"}],"key":"CLJdB9varq"},{"type":"paragraph","position":{"start":{"line":261,"column":1},"end":{"line":264,"column":1}},"children":[{"type":"text","value":"Here, use\n","position":{"start":{"line":261,"column":1},"end":{"line":261,"column":1}},"key":"AopoqzfVtM"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.semilogy.html","position":{"start":{"line":261,"column":1},"end":{"line":261,"column":1}},"children":[{"type":"inlineCode","value":"plt.semilogy","position":{"start":{"line":261,"column":1},"end":{"line":261,"column":1}},"key":"KBPucKcwbn"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.semilogy.html","key":"AFl9gwYJqq"},{"type":"text","value":"\nto plot the number of transistors on a log-scale and the year on a\nlinear scale. You have defined a three arrays to get to a final model","position":{"start":{"line":261,"column":1},"end":{"line":261,"column":1}},"key":"YwgxQUKTMU"}],"key":"XdNR2xHdcC"},{"type":"paragraph","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"children":[{"type":"inlineMath","value":"y_i = \\log(\\text{transistor\\_count}),","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"html":"yi=log(transistor_count),y_i = \\log(\\text{transistor\\_count}),yi=log(transistor_count),","key":"fzu7a79dBY"}],"key":"INwnu8lrND"},{"type":"paragraph","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"children":[{"type":"inlineMath","value":"y_i = A \\cdot \\text{year} + B,","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"html":"yi=Ayear+B,y_i = A \\cdot \\text{year} + B,yi=Ayear+B,","key":"uwB2DessLU"}],"key":"V4cXeoQUOL"},{"type":"paragraph","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"children":[{"type":"text","value":"and","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"uwYej2KMnl"}],"key":"rhDEOrWPWM"},{"type":"paragraph","position":{"start":{"line":272,"column":1},"end":{"line":272,"column":1}},"children":[{"type":"inlineMath","value":"\\log(\\text{transistor\\_count}) = A\\cdot \\text{year} + B,","position":{"start":{"line":272,"column":1},"end":{"line":272,"column":1}},"html":"log(transistor_count)=Ayear+B,\\log(\\text{transistor\\_count}) = A\\cdot \\text{year} + B,log(transistor_count)=Ayear+B,","key":"MKfj9Xqp9S"}],"key":"X0f6P1AxQ9"},{"type":"paragraph","position":{"start":{"line":274,"column":1},"end":{"line":276,"column":1}},"children":[{"type":"text","value":"your variables, ","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"kg99SrXRKx"},{"type":"inlineCode","value":"transistor_count","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"QTTG8TAz0y"},{"type":"text","value":", ","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"kkofYkFDb8"},{"type":"inlineCode","value":"year","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"BxGNtoKZxA"},{"type":"text","value":", and ","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"EP3laDmX8a"},{"type":"inlineCode","value":"yi","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"QG04LPabbB"},{"type":"text","value":" all have the same\ndimensions, ","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"hOc4L79ANN"},{"type":"inlineCode","value":"(179,)","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"l2lkRsUiwT"},{"type":"text","value":". NumPy arrays need the same dimensions to make a\nplot. The predicted number of transistors is now","position":{"start":{"line":274,"column":1},"end":{"line":274,"column":1}},"key":"oAM6sTUQLG"}],"key":"JnlrOBT5x5"},{"type":"paragraph","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"children":[{"type":"inlineMath","value":"\\text{transistor\\_count}_{\\text{predicted}} = e^Be^{A\\cdot \\text{year}}","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"html":"transistor_countpredicted=eBeAyear\\text{transistor\\_count}_{\\text{predicted}} = e^Be^{A\\cdot \\text{year}}transistor_countpredicted=eBeAyear","key":"j0dEzvbY0F"},{"type":"text","value":".","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"aRZSDTaCVO"}],"key":"SUUJDMSz4d"}],"key":"d50fLTt3ni"},{"type":"block","position":{"start":{"line":280,"column":1},"end":{"line":280,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":282,"column":1},"end":{"line":287,"column":1}},"children":[{"type":"text","value":"In the next plot, use the\n","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"mn6jgFteRV"},{"type":"link","url":"https://matplotlib.org/gallery/style_sheets/fivethirtyeight.html","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"children":[{"type":"inlineCode","value":"fivethirtyeight","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"jpWOQsMF8y"}],"urlSource":"https://matplotlib.org/gallery/style_sheets/fivethirtyeight.html","key":"pvn3QpIlDz"},{"type":"text","value":"\nstyle sheet.\nThe style sheet replicates\n","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"ypNJwVvbpY"},{"type":"link","url":"https://fivethirtyeight.com","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"children":[{"type":"text","value":"https://​fivethirtyeight​.com","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"o3DdBuRkP9"}],"urlSource":"https://fivethirtyeight.com","key":"NqK7LfluPo"},{"type":"text","value":" elements. Change the matplotlib style with\n","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"lzdU7KjkMt"},{"type":"link","url":"https://matplotlib.org/api/style_api.html#matplotlib.style.use","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"children":[{"type":"inlineCode","value":"plt.style.use","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"PMdG6uZzFm"}],"urlSource":"https://matplotlib.org/api/style_api.html#matplotlib.style.use","key":"pBJpWb0NqQ"},{"type":"text","value":".","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"xXx6W8ixyN"}],"key":"SeK8UxsZ1W"}],"key":"L4etrCz9wX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"transistor_count_predicted = np.exp(B) * np.exp(A * year)\ntransistor_Moores_law = Moores_law(year)\n\nplt.style.use(\"fivethirtyeight\")\n\nfig, ax = plt.subplots()\nax.semilogy(year, transistor_count, \"s\", label=\"MOS transistor count\")\nax.semilogy(year, transistor_count_predicted, label=\"linear regression\")\n\n\nax.plot(year, transistor_Moores_law, label=\"Moore's Law\")\nax.set_title(\n \"MOS transistor count per microprocessor\\n\"\n + \"every two years \\n\"\n + \"Transistor count was x{:.2f} higher\".format(np.exp(A * 2))\n)\nax.set_xlabel(\"year introduced\")\nax.set_ylabel(\"# of transistors\\nper microprocessor\")\nax.legend(loc=\"center left\", bbox_to_anchor=(1, 0.5))","key":"vT7yr9UQ7K"},{"type":"outputs","id":"vf1p3lPYd76OsSIkgsl5n","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"ce3d813642e18a448f190708379d17c1","path":"/numpy-tutorials/build/ce3d813642e18a448f190708379d17c1.png"}}},"key":"A9DI7FqtRR"}],"key":"O2B4W57BOg"}],"key":"fcUey43Exs"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"children":[{"type":"text","value":"A scatter plot of MOS transistor count per microprocessor every two years with a red line for the ordinary least squares prediction and an orange line for Moore’s law.","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"w9BLY8mcEH"}],"key":"dPr4D9yqQ4"}],"key":"YRwxTP7jWE"},{"type":"paragraph","position":{"start":{"line":313,"column":1},"end":{"line":318,"column":1}},"children":[{"type":"text","value":"The linear regression captures the increase in the number of transistors\nper semiconductors each year. In 2015, semiconductor manufacturers\nclaimed they could not keep up with Moore’s law anymore. Your analysis\nshows that since 1971, the average increase in transistor count was\nx1.98 every 2 years, but Gordon Moore predicted it would be x2\nevery 2 years. That is an amazing prediction.","position":{"start":{"line":313,"column":1},"end":{"line":313,"column":1}},"key":"KPZ0T89Qp5"}],"key":"VhbCpp6a15"},{"type":"paragraph","position":{"start":{"line":320,"column":1},"end":{"line":323,"column":1}},"children":[{"type":"text","value":"Consider the year 2017. Compare the data to your linear regression\nmodel and Gordon Moore’s prediction. First, get the\ntransistor counts from the year 2017. You can do this with a Boolean\ncomparator,","position":{"start":{"line":320,"column":1},"end":{"line":320,"column":1}},"key":"UPaNfpq0dc"}],"key":"MGM51zMXrp"},{"type":"paragraph","position":{"start":{"line":325,"column":1},"end":{"line":325,"column":1}},"children":[{"type":"inlineCode","value":"year == 2017","position":{"start":{"line":325,"column":1},"end":{"line":325,"column":1}},"key":"YtZO5QVwfu"},{"type":"text","value":".","position":{"start":{"line":325,"column":1},"end":{"line":325,"column":1}},"key":"JtA1hmXtNz"}],"key":"h2JdCkQ8mo"},{"type":"paragraph","position":{"start":{"line":327,"column":1},"end":{"line":328,"column":1}},"children":[{"type":"text","value":"Then, make a prediction for 2017 with ","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"key":"B626fHE6LA"},{"type":"inlineCode","value":"Moores_law","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"key":"pD45oIY11T"},{"type":"text","value":" defined above\nand plugging in your best fit constants into your function","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"key":"pTTcNrOW5V"}],"key":"Jm8VrgBJLi"},{"type":"paragraph","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"children":[{"type":"inlineMath","value":"\\text{transistor\\_count} = e^{B}e^{A\\cdot \\text{year}}","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"html":"transistor_count=eBeAyear\\text{transistor\\_count} = e^{B}e^{A\\cdot \\text{year}}transistor_count=eBeAyear","key":"ynlrVMsJ2k"},{"type":"text","value":".","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"OLY30bgOLC"}],"key":"bcCb0ID96U"},{"type":"paragraph","position":{"start":{"line":332,"column":1},"end":{"line":341,"column":1}},"children":[{"type":"text","value":"A great way to compare these measurements is to compare your prediction\nand Moore’s prediction to the average transistor count and look at the\nrange of reported values for that year. Use the\n","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"MGG89V9E5N"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"children":[{"type":"inlineCode","value":"plt.plot","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"OkcZoSVCL6"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html","key":"FuNhGcNy4x"},{"type":"text","value":"\noption,\n","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"mbpEgT1ghY"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.artist.Artist.set_alpha.html","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"children":[{"type":"inlineCode","value":"alpha=0.2","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"mv4RdM6DgV"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.artist.Artist.set_alpha.html","key":"Y2Q1rVpYBM"},{"type":"text","value":",\nto increase the transparency of the data. The more opaque the points\nappear, the more reported values lie on that measurement. The green ","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"p6m69yzxna"},{"type":"inlineMath","value":"+","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"html":"+++","key":"Qls2p687FQ"},{"type":"text","value":"\nis the average reported transistor count for 2017. Plot your predictions\nfor ","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"wzkKm7N8L2"},{"type":"inlineMath","value":"\\pm\\frac{1}{2}","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"html":"±12\\pm\\frac{1}{2}±21","key":"mRD3JHGoC2"},{"type":"text","value":" years.","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"Ib3B5noj6B"}],"key":"rI8OC90Uvb"}],"key":"Ncoc8YpO3F"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"transistor_count2017 = transistor_count[year == 2017]\nprint(\n transistor_count2017.max(), transistor_count2017.min(), transistor_count2017.mean()\n)\ny = np.linspace(2016.5, 2017.5)\nyour_model2017 = np.exp(B) * np.exp(A * y)\nMoore_Model2017 = Moores_law(y)\n\nfig, ax = plt.subplots()\nax.plot(\n 2017 * np.ones(np.sum(year == 2017)),\n transistor_count2017,\n \"ro\",\n label=\"2017\",\n alpha=0.2,\n)\nax.plot(2017, transistor_count2017.mean(), \"g+\", markersize=20, mew=6)\n\nax.plot(y, your_model2017, label=\"Your prediction\")\nax.plot(y, Moore_Model2017, label=\"Moores law\")\nax.set_ylabel(\"# of transistors\\nper microprocessor\")\nax.legend()","key":"wFS1PXClYF"},{"type":"outputs","id":"2CfOqjtQqnuoQromtP-nK","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"19200000000.0 250000000.0 7050000000.0\n"},"key":"q3EbFaE2kG"},{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"9bfa54ee176bb8a2f4ed6bc30af95142","path":"/numpy-tutorials/build/9bfa54ee176bb8a2f4ed6bc30af95142.png"}}},"key":"DMtpBns5rc"}],"key":"tyVLCQPGsu"}],"key":"GsAw4DzudZ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":368,"column":1},"end":{"line":373,"column":1}},"children":[{"type":"text","value":"The result is that your model is close to the mean, but Gordon\nMoore’s prediction is closer to the maximum number of transistors per\nmicroprocessor produced in 2017. Even though semiconductor manufacturers\nthought that the growth would slow, once in 1975 and now again\napproaching 2025, manufacturers are still producing semiconductors every 2 years that\nnearly double the number of transistors.","position":{"start":{"line":368,"column":1},"end":{"line":368,"column":1}},"key":"mmv5jE8Lfk"}],"key":"OL1mlRFKAB"},{"type":"paragraph","position":{"start":{"line":375,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"text","value":"The linear regression model is much better at predicting the\naverage than extreme values because it satisfies the condition to\nminimize ","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"key":"Q5nz6DgF9n"},{"type":"inlineMath","value":"\\sum |y_i - A\\cdot \\text{year}[i]+B|^2","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"html":"yiAyear[i]+B2\\sum |y_i - A\\cdot \\text{year}[i]+B|^2yiAyear[i]+B2","key":"mxksNfPGVK"},{"type":"text","value":".","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"key":"puHi2k8GGN"}],"key":"yQ63SnpSKB"}],"key":"SFn3w3CWpm"},{"type":"block","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"children":[{"type":"text","value":"Sharing your results as zipped arrays and a csv","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"mcaJ5yGwzU"}],"identifier":"sharing-your-results-as-zipped-arrays-and-a-csv","label":"Sharing your results as zipped arrays and a csv","html_id":"sharing-your-results-as-zipped-arrays-and-a-csv","implicit":true,"key":"IgemrTjA7S"},{"type":"paragraph","position":{"start":{"line":383,"column":1},"end":{"line":386,"column":1}},"children":[{"type":"text","value":"The last step, is to share your findings. You created\nnew arrays that represent a linear regression model and Gordon Moore’s\nprediction. You started this process by importing a csv file into a NumPy\narray using ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"uKE4s5GVZI"},{"type":"inlineCode","value":"np.loadtxt","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"tK5fvdngkb"},{"type":"text","value":", to save your model use two approaches","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"DTDxzDay7t"}],"key":"gQdxcVeAFX"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":388,"column":1},"end":{"line":390,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"inlineCode","value":"np.savez","position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"key":"oNgnueTjcZ"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","key":"Nx1UdfKomA"},{"type":"text","value":": save NumPy arrays for other Python sessions","position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"key":"Q3rqoTm7hn"}],"key":"SPHvBr5hBK"}],"key":"dbGnk6bzUR"},{"type":"listItem","spread":true,"position":{"start":{"line":389,"column":1},"end":{"line":390,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"children":[{"type":"inlineCode","value":"np.savetxt","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"key":"AlwqoA5WEG"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","key":"H8ZgLWnrwV"},{"type":"text","value":": save a csv file with the original data and your predicted data","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"key":"O9mck0AEBT"}],"key":"m886neBF9F"}],"key":"s3w7xW7UQS"}],"key":"UK3zHeqnXM"},{"type":"heading","depth":3,"position":{"start":{"line":391,"column":1},"end":{"line":391,"column":1}},"children":[{"type":"text","value":"Zipping the arrays into a file","position":{"start":{"line":391,"column":1},"end":{"line":391,"column":1}},"key":"Pap0iW6Zul"}],"identifier":"zipping-the-arrays-into-a-file","label":"Zipping the arrays into a file","html_id":"zipping-the-arrays-into-a-file","implicit":true,"key":"X5aWT97HL9"},{"type":"paragraph","position":{"start":{"line":392,"column":1},"end":{"line":397,"column":1}},"children":[{"type":"text","value":"Using ","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"kEcY1UWShV"},{"type":"inlineCode","value":"np.savez","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"sPSxGFhuEr"},{"type":"text","value":", you can save thousands of arrays and give them names. The\nfunction ","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"pRjrsLDgwH"},{"type":"inlineCode","value":"np.load","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"Sp592bJ7Nh"},{"type":"text","value":" will load the arrays back into the workspace as a\ndictionary. You’ll save five arrays so the next user will have the year,\ntransistor count, predicted transistor count, Gordon Moore’s\npredicted count, and fitting constants. Add one more variable that other users can use to\nunderstand the model, ","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"ELASmiSEDe"},{"type":"inlineCode","value":"notes","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"o2vGrbr6o0"},{"type":"text","value":".","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"ZxYs7giv05"}],"key":"WAO2eD1RB6"}],"key":"Gtw6RLrRup"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"notes = \"the arrays in this file are the result of a linear regression model\\n\"\nnotes += \"the arrays include\\nyear: year of manufacture\\n\"\nnotes += \"transistor_count: number of transistors reported by manufacturers in a given year\\n\"\nnotes += \"transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B, A\n)\nnotes += \"transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B_M, A_M\n)\nnotes += \"regression_csts: linear regression constants A and B for log(transistor_count)=A*year+B\"\nprint(notes)","key":"e8u4jbtSMd"},{"type":"outputs","id":"D94fkyy7I6TYa63HdlfUU","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"the arrays in this file are the result of a linear regression model\nthe arrays include\nyear: year of manufacture\ntransistor_count: number of transistors reported by manufacturers in a given year\ntransistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)\ntransistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)\nregression_csts: linear regression constants A and B for log(transistor_count)=A*year+B\n"},"key":"CxQPOV5dEx"}],"key":"WMHAQTXLk3"}],"key":"mJgBYbL2h5"},{"type":"block","children":[],"key":"hKzliIYovn"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.savez(\n \"mooreslaw_regression.npz\",\n notes=notes,\n year=year,\n transistor_count=transistor_count,\n transistor_count_predicted=transistor_count_predicted,\n transistor_Moores_law=transistor_Moores_law,\n regression_csts=(A, B),\n)","key":"XRojmY7jfv"},{"type":"outputs","id":"dYfwUBFe_z9CRgDhbppVF","children":[],"key":"gyZCqorRPE"}],"key":"Wo93vbyLUf"},{"type":"block","children":[],"key":"IQNfzOiHB8"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"results = np.load(\"mooreslaw_regression.npz\")","key":"WTKbQH99k4"},{"type":"outputs","id":"FBRW3vz81qwOdAy55ICGY","children":[],"key":"UxyGsvahzq"}],"key":"BEqKneRpPv"},{"type":"block","children":[],"key":"OrxWjiV2hW"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(results[\"regression_csts\"][1])","key":"Cg9fSYnCIG"},{"type":"outputs","id":"dIHreYK0pEecia3J-tBky","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"-666.3264063536233\n"},"key":"NxJYqsjopD"}],"key":"uZNMXOC8Gs"}],"key":"hqv7u5FRnJ"},{"type":"block","children":[],"key":"bcqvfHhQOE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"! ls","key":"xScFhIN51k"},{"type":"outputs","id":"mM5fV0J-3-RYZxEjJ_JeH","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"_static\t\t\t\t tutorial-ma.md\r\nair-quality-data.csv\t\t tutorial-plotting-fractals\r\ncontributing.md\t\t\t tutorial-plotting-fractals.md\r\nindex.md\t\t\t tutorial-static_equilibrium.md\r\nmooreslaw-tutorial.md\t\t tutorial-style-guide.md\r\nmooreslaw_regression.npz\t tutorial-svd.md\r\nsave-load-arrays.md\t\t tutorial-x-ray-image-processing\r\ntransistor_data.csv\t\t tutorial-x-ray-image-processing.md\r\ntutorial-air-quality-analysis.md who_covid_19_sit_rep_time_series.csv\r\ntutorial-deep-learning-on-mnist.md\r\n"},"key":"we30aLWqyU"}],"key":"E4KCWJ322t"}],"key":"H5FKd6g42k"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":437,"column":1},"end":{"line":442,"column":1}},"children":[{"type":"text","value":"The benefit of ","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"cu2ark0csx"},{"type":"inlineCode","value":"np.savez","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"ZDnGiiw9ef"},{"type":"text","value":" is you can save hundreds of arrays with\ndifferent shapes and types. Here, you saved 4 arrays that are double\nprecision floating point numbers shape = ","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"UOuswUgreC"},{"type":"inlineCode","value":"(179,)","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"LIi94pbMYq"},{"type":"text","value":", one array that was\ntext, and one array of double precision floating point numbers shape =\n","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"XWABLgZBEe"},{"type":"inlineCode","value":"(2,).","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"OF2rkor2R2"},{"type":"text","value":" This is the preferred method for saving NumPy arrays for use in\nanother analysis.","position":{"start":{"line":437,"column":1},"end":{"line":437,"column":1}},"key":"mcGMsgbLzu"}],"key":"ODaKxVV0p7"},{"type":"heading","depth":3,"position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"children":[{"type":"text","value":"Creating your own comma separated value file","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"key":"RHaVDkLtVo"}],"identifier":"creating-your-own-comma-separated-value-file","label":"Creating your own comma separated value file","html_id":"creating-your-own-comma-separated-value-file","implicit":true,"key":"iUCKHa4eke"},{"type":"paragraph","position":{"start":{"line":446,"column":1},"end":{"line":449,"column":1}},"children":[{"type":"text","value":"If you want to share data and view the results in a table, then you have to\ncreate a text file. Save the data using ","position":{"start":{"line":446,"column":1},"end":{"line":446,"column":1}},"key":"qhvU7iorvm"},{"type":"inlineCode","value":"np.savetxt","position":{"start":{"line":446,"column":1},"end":{"line":446,"column":1}},"key":"UVbZJWXDgs"},{"type":"text","value":". This\nfunction is more limited than ","position":{"start":{"line":446,"column":1},"end":{"line":446,"column":1}},"key":"ShveXcC42K"},{"type":"inlineCode","value":"np.savez","position":{"start":{"line":446,"column":1},"end":{"line":446,"column":1}},"key":"drCcwktHCt"},{"type":"text","value":". Delimited files, like csv’s,\nneed 2D arrays.","position":{"start":{"line":446,"column":1},"end":{"line":446,"column":1}},"key":"ENelTnOGlV"}],"key":"eRqTjzC06V"},{"type":"paragraph","position":{"start":{"line":451,"column":1},"end":{"line":452,"column":1}},"children":[{"type":"text","value":"Prepare the data for export by creating a new 2D array whose columns\ncontain the data of interest.","position":{"start":{"line":451,"column":1},"end":{"line":451,"column":1}},"key":"eVf0t1amcz"}],"key":"JN9JreAfdA"},{"type":"paragraph","position":{"start":{"line":454,"column":1},"end":{"line":456,"column":1}},"children":[{"type":"text","value":"Use the ","position":{"start":{"line":454,"column":1},"end":{"line":454,"column":1}},"key":"df7A3fUrHh"},{"type":"inlineCode","value":"header","position":{"start":{"line":454,"column":1},"end":{"line":454,"column":1}},"key":"EnxdVnJ7Dg"},{"type":"text","value":" option to describe the data and the columns of\nthe file. Define another variable that contains file\ninformation as ","position":{"start":{"line":454,"column":1},"end":{"line":454,"column":1}},"key":"rrfSylk13W"},{"type":"inlineCode","value":"head","position":{"start":{"line":454,"column":1},"end":{"line":454,"column":1}},"key":"YEcn3Romjw"},{"type":"text","value":".","position":{"start":{"line":454,"column":1},"end":{"line":454,"column":1}},"key":"Ssl2U0vcX7"}],"key":"MFTLEDV1XM"}],"key":"sroIskeBgN"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"head = \"the columns in this file are the result of a linear regression model\\n\"\nhead += \"the columns include\\nyear: year of manufacture\\n\"\nhead += \"transistor_count: number of transistors reported by manufacturers in a given year\\n\"\nhead += \"transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B, A\n)\nhead += \"transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B_M, A_M\n)\nhead += \"year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:\"\nprint(head)","key":"pthi6U1Xpe"},{"type":"outputs","id":"32Oz0B5nxeMfLbMnX5ZZF","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"the columns in this file are the result of a linear regression model\nthe columns include\nyear: year of manufacture\ntransistor_count: number of transistors reported by manufacturers in a given year\ntransistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)\ntransistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)\nyear:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:\n"},"key":"qH2QrhltM9"}],"key":"GGHna62sSx"}],"key":"kSmYR23ymd"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":472,"column":1},"end":{"line":482,"column":1}},"children":[{"type":"text","value":"Build a single 2D array to export to csv. Tabular data is inherently two\ndimensional. You need to organize your data to fit this 2D structure.\nUse ","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"pjPXgRAVq8"},{"type":"inlineCode","value":"year","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"gyrc0Zu3l2"},{"type":"text","value":", ","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"akWlz3gNSk"},{"type":"inlineCode","value":"transistor_count","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"Zfh6TIedao"},{"type":"text","value":", ","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"sa9cJz7Q2w"},{"type":"inlineCode","value":"transistor_count_predicted","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"EzvaI1zPFN"},{"type":"text","value":", and\n","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"B7ryLqUCjV"},{"type":"inlineCode","value":"transistor_Moores_law","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"otz3JqAMtG"},{"type":"text","value":" as the first through fourth columns,\nrespectively. Put the calculated constants in the header since they do\nnot fit the ","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"GFSD3sAvBj"},{"type":"inlineCode","value":"(179,)","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"k4JDCl5xdz"},{"type":"text","value":" shape. The\n","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"jvvbsmS8JK"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"children":[{"type":"inlineCode","value":"np.block","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"BNXYcgSma2"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","key":"lijcWvvQuc"},{"type":"text","value":"\nfunction appends arrays together to create a new, larger array. Arrange\nthe 1D vectors as columns using\n","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"ASHD6IfZQL"},{"type":"link","url":"https://numpy.org/doc/stable/reference/constants.html","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"children":[{"type":"inlineCode","value":"np.newaxis","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"L6Zu8E1tQz"}],"urlSource":"https://numpy.org/doc/stable/reference/constants.html","key":"ffCGpzZNi1"},{"type":"text","value":"\ne.g.","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"sY99DvQykl"}],"key":"Oct3ZHg20h"},{"type":"code","lang":"python","value":">>> year.shape\n(179,)\n>>> year[:,np.newaxis].shape\n(179,1)","position":{"start":{"line":484,"column":1},"end":{"line":489,"column":1}},"key":"Sugr8wlCdh"}],"key":"jOO89rwFpv"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = np.block(\n [\n year[:, np.newaxis],\n transistor_count[:, np.newaxis],\n transistor_count_predicted[:, np.newaxis],\n transistor_Moores_law[:, np.newaxis],\n ]\n)","key":"GbKqoPhvc7"},{"type":"outputs","id":"UyIKkRyqH7EGqxASICYte","children":[],"key":"Khgbi3pe0X"}],"key":"HTJDvsEEz5"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":502,"column":1},"end":{"line":503,"column":1}},"children":[{"type":"text","value":"Creating the ","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"key":"o2IlIFk5rJ"},{"type":"inlineCode","value":"mooreslaw_regression.csv","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"key":"lqUBHGtYuz"},{"type":"text","value":" with ","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"key":"ttICRLiJ6i"},{"type":"inlineCode","value":"np.savetxt","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"key":"yWBZcGjqfr"},{"type":"text","value":", use three\noptions to create the desired file format:","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"key":"mz3BuSkF1m"}],"key":"QMUOkjU6BU"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":505,"column":1},"end":{"line":508,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":505,"column":1},"end":{"line":505,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"X = output","position":{"start":{"line":505,"column":1},"end":{"line":505,"column":1}},"key":"Yhs27mqWb8"},{"type":"text","value":" : use ","position":{"start":{"line":505,"column":1},"end":{"line":505,"column":1}},"key":"u9PykbK9DY"},{"type":"inlineCode","value":"output","position":{"start":{"line":505,"column":1},"end":{"line":505,"column":1}},"key":"b1vHaUxkML"},{"type":"text","value":" block to write the data into the file","position":{"start":{"line":505,"column":1},"end":{"line":505,"column":1}},"key":"ZIRCuaGNvn"}],"key":"DhVnaq7Hod"}],"key":"eSyTe5LFmL"},{"type":"listItem","spread":true,"position":{"start":{"line":506,"column":1},"end":{"line":506,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"delimiter = ','","position":{"start":{"line":506,"column":1},"end":{"line":506,"column":1}},"key":"OCNJKfayjw"},{"type":"text","value":" : use commas to separate columns in the file","position":{"start":{"line":506,"column":1},"end":{"line":506,"column":1}},"key":"uXKGbD0yo5"}],"key":"NMQVTqvqjb"}],"key":"DSHvfumvVk"},{"type":"listItem","spread":true,"position":{"start":{"line":507,"column":1},"end":{"line":508,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"header = head","position":{"start":{"line":507,"column":1},"end":{"line":507,"column":1}},"key":"jm8lCny01x"},{"type":"text","value":" : use the header ","position":{"start":{"line":507,"column":1},"end":{"line":507,"column":1}},"key":"dNWwHw8WQZ"},{"type":"inlineCode","value":"head","position":{"start":{"line":507,"column":1},"end":{"line":507,"column":1}},"key":"DfR7erIbP6"},{"type":"text","value":" defined above","position":{"start":{"line":507,"column":1},"end":{"line":507,"column":1}},"key":"nAgodYia0c"}],"key":"Tbfp7HtfPc"}],"key":"KpAvhPlXNt"}],"key":"Mvog8QEbPJ"}],"key":"rNkLAJ5nxc"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.savetxt(\"mooreslaw_regression.csv\", X=output, delimiter=\",\", header=head)","key":"hI4n1WZLPb"},{"type":"outputs","id":"TB8A9SDNuHDKH_XS4a8aD","children":[],"key":"o1gKErltcV"}],"key":"psTlGNE566"},{"type":"block","children":[],"key":"ya6p684NyN"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"! head mooreslaw_regression.csv","key":"W0hgTYItxF"},{"type":"outputs","id":"E4mYR7DgKIsHHrPYmTUrQ","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"# the columns in this file are the result of a linear regression model\r\n# the columns include\r\n# year: year of manufacture\r\n# transistor_count: number of transistors reported by manufacturers in a given year\r\n# transistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)\r\n# transistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)\r\n# year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:\r\n1.971000000000000000e+03,2.250000000000000000e+03,1.130514785642591733e+03,2.249999999999916326e+03\r\n1.972000000000000000e+03,3.500000000000000000e+03,1.590908400344571419e+03,3.181980515339620069e+03\r\n1.973000000000000000e+03,2.500000000000000000e+03,2.238793840142739555e+03,4.500000000000097316e+03\r\n"},"key":"RyJPBYSm6Y"}],"key":"EbMxY5TM4P"}],"key":"NgMFVrVPCs"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"children":[{"type":"text","value":"Wrapping up","position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"key":"ljlwMDMnLd"}],"identifier":"wrapping-up","label":"Wrapping up","html_id":"wrapping-up","implicit":true,"key":"n13qwJ1bAE"},{"type":"paragraph","position":{"start":{"line":519,"column":1},"end":{"line":533,"column":1}},"children":[{"type":"text","value":"In conclusion, you have compared historical data for semiconductor\nmanufacturers to Moore’s law and created a linear regression model to\nfind the average number of transistors added to each microprocessor\nevery two years. Gordon Moore predicted the number of transistors would\ndouble every two years from 1965 through 1975, but the average growth\nhas maintained a consistent increase of ","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"rGXIkSCeUc"},{"type":"inlineMath","value":"\\times 1.98 \\pm 0.01","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"html":"×1.98±0.01\\times 1.98 \\pm 0.01×1.98±0.01","key":"kt1t6WK28g"},{"type":"text","value":" every two\nyears from 1971 through 2019. In 2015, Moore revised his prediction to\nsay Moore’s law should hold until 2025.\n[","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"VpwhnX86Y3"},{"type":"link","url":"https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"children":[{"type":"text","value":"2","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"G7bRNvRdAI"}],"urlSource":"https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress","key":"K0n46PbQyy"},{"type":"text","value":"].\nYou can share these results as a zipped NumPy array file,\n","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"wi6lrwMBaS"},{"type":"inlineCode","value":"mooreslaw_regression.npz","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"epQ9pgPrVf"},{"type":"text","value":", or as another csv,\n","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"gsKcwUyZFS"},{"type":"inlineCode","value":"mooreslaw_regression.csv","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"NylIZxQYEw"},{"type":"text","value":". The amazing progress in semiconductor\nmanufacturing has enabled new industries and computational power. This\nanalysis should give you a small insight into how incredible this growth\nhas been over the last half-century.","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"O5lgTAJfPu"}],"key":"aUzfS0PV1V"}],"key":"DwvBtileSg"},{"type":"block","position":{"start":{"line":535,"column":1},"end":{"line":535,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":537,"column":1},"end":{"line":537,"column":1}},"children":[{"type":"text","value":"References","position":{"start":{"line":537,"column":1},"end":{"line":537,"column":1}},"key":"JAl8rm1kvJ"}],"identifier":"references","label":"References","html_id":"references","implicit":true,"key":"h5vCthBAoy"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":539,"column":1},"end":{"line":541,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":539,"column":1},"end":{"line":539,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Moore%27s_law","position":{"start":{"line":539,"column":1},"end":{"line":539,"column":1}},"children":[{"type":"text","value":"“Moore’s Law.” Wikipedia article. Accessed Oct. 1, 2020.","position":{"start":{"line":539,"column":1},"end":{"line":539,"column":1}},"key":"d0V8ZuZPvX"}],"urlSource":"https://en.wikipedia.org/wiki/Moore%27s_law","data":{"page":"Moore%27s_law","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"zU6LXELzQW"}],"key":"AzGsmmLygr"}],"key":"rWtxaHsJlr"},{"type":"listItem","spread":true,"position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress","position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"children":[{"type":"text","value":"Courtland, Rachel. “Gordon Moore: The Man Whose Name Means Progress.” IEEE Spectrum. 30 Mar. 2015.","position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"key":"dPAW8FvXaS"}],"urlSource":"https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress","key":"uPcLLQ6183"},{"type":"text","value":".","position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"key":"ONob95Nr5B"}],"key":"TowBP0nzBh"}],"key":"N1WpRdl3eY"},{"type":"listItem","spread":true,"position":{"start":{"line":541,"column":1},"end":{"line":541,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","position":{"start":{"line":541,"column":1},"end":{"line":541,"column":1}},"children":[{"type":"text","value":"“Transistor Count.” Wikipedia article. Accessed Oct. 1, 2020.","position":{"start":{"line":541,"column":1},"end":{"line":541,"column":1}},"key":"EZHxm7Pk0D"}],"urlSource":"https://en.wikipedia.org/wiki/Transistor_count#Microprocessors","data":{"page":"Transistor_count#Microprocessors","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"PNFgQLLumU"}],"key":"Eae2ojxcg3"}],"key":"etw3yQ6fF5"}],"key":"GXoVC3Gah0"}],"key":"x6bRaThTq1"}],"key":"zDzsuJ5igz"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Numpy Tutorials","url":"/","group":"Numpy Tutorials"},"next":{"title":"Deep learning on MNIST","url":"/tutorial-deep-learning-on-mnist","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/mooreslaw-tutorial/index.html b/mooreslaw-tutorial/index.html new file mode 100644 index 00000000..a6d99b3f --- /dev/null +++ b/mooreslaw-tutorial/index.html @@ -0,0 +1,303 @@ +Determining Moore’s Law with real data in NumPy - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Determining Moore’s Law with real data in NumPy

Scatter plot of MOS transistor count per microprocessor every two years as a demonstration of Moore's Law.

The number of transistors reported per a given chip plotted on a log scale in the y axis with the date of introduction on the linear scale x-axis. The blue data points are from a transistor count table. The red line is an ordinary least squares prediction and the orange line is Moore’s law.

What you’ll do

In 1965, engineer Gordon Moore +predicted that +transistors on a chip would double every two years in the coming decade +[1]. +You’ll compare Moore’s prediction against actual transistor counts in +the 53 years following his prediction. You will determine the best-fit constants to describe the exponential growth of transistors on semiconductors compared to Moore’s Law.

Skills you’ll learn

  • Load data from a *.csv file

  • Perform linear regression and predict exponential growth using ordinary least squares

  • You’ll compare exponential growth constants between models

  • Share your analysis in a file:

    • as NumPy zipped files *.npz

    • as a *.csv file

  • Assess the amazing progress semiconductor manufacturers have made in the last five decades

What you’ll need

1. These packages:

imported with the following commands

import matplotlib.pyplot as plt
+import numpy as np

2. Since this is an exponential growth law you need a little background in doing math with natural logs and exponentials.

You’ll use these NumPy and Matplotlib functions:

  • np.loadtxt: this function loads text into a NumPy array

  • np.log: this function takes the natural log of all elements in a NumPy array

  • np.exp: this function takes the exponential of all elements in a NumPy array

  • lambda: this is a minimal function definition for creating a function model

  • plt.semilogy: this function will plot x-y data onto a figure with a linear x-axis and log10\log_{10} y-axis +plt.plot: this function will plot x-y data on linear axes

  • slicing arrays: view parts of the data loaded into the workspace, slice the arrays e.g. x[:10] for the first 10 values in the array, x

  • boolean array indexing: to view parts of the data that match a given condition use boolean operations to index an array

  • np.block: to combine arrays into 2D arrays

  • np.newaxis: to change a 1D vector to a row or column vector

  • np.savez and np.savetxt: these two functions will save your arrays in zipped array format and text, respectively


Building Moore’s law as an exponential function

Your empirical model assumes that the number of transistors per +semiconductor follows an exponential growth,

log(transistor_count)=f(year)=Ayear+B\log(\text{transistor\_count})= f(\text{year}) = A\cdot \text{year}+B,

where AA and BB are fitting constants. You use semiconductor +manufacturers’ data to find the fitting constants.

You determine these constants for Moore’s law by specifying the +rate for added transistors, 2, and giving an initial number of transistors for a given year.

You state Moore’s law in an exponential form as follows,

transistor_count=eAMyear+BM.\text{transistor\_count}= e^{A_M\cdot \text{year} +B_M}.

Where AMA_M and BMB_M are constants that double the number of transistors every two years and start at 2250 transistors in 1971,

  1. transistor_count(year+2)transistor_count(year)=2=eBMeAMyear+2AMeBMeAMyear=e2AMAM=log(2)2\dfrac{\text{transistor\_count}(\text{year} +2)}{\text{transistor\_count}(\text{year})} = 2 = \dfrac{e^{B_M}e^{A_M \text{year} + 2A_M}}{e^{B_M}e^{A_M \text{year}}} = e^{2A_M} \rightarrow A_M = \frac{\log(2)}{2}

  2. log(2250)=log(2)21971+BMBM=log(2250)log(2)21971\log(2250) = \frac{\log(2)}{2}\cdot 1971 + B_M \rightarrow B_M = \log(2250)-\frac{\log(2)}{2}\cdot 1971

so Moore’s law stated as an exponential function is

log(transistor_count)=AMyear+BM,\log(\text{transistor\_count})= A_M\cdot \text{year}+B_M,

where

AM=0.3466A_M=0.3466

BM=675.4B_M=-675.4

Since the function represents Moore’s law, define it as a Python +function using +lambda:

A_M = np.log(2) / 2
+B_M = np.log(2250) - A_M * 1971
+Moores_law = lambda year: np.exp(B_M) * np.exp(A_M * year)

In 1971, there were 2250 transistors on the Intel 4004 chip. Use +Moores_law to check the number of semiconductors Gordon Moore would expect +in 1973.

ML_1971 = Moores_law(1971)
+ML_1973 = Moores_law(1973)
+print("In 1973, G. Moore expects {:.0f} transistors on Intels chips".format(ML_1973))
+print("This is x{:.2f} more transistors than 1971".format(ML_1973 / ML_1971))
In 1973, G. Moore expects 4500 transistors on Intels chips
+This is x2.00 more transistors than 1971
+

Loading historical manufacturing data to your workspace

Now, make a prediction based upon the historical data for +semiconductors per chip. The Transistor Count +[3] +each year is in the transistor_data.csv file. Before loading a *.csv +file into a NumPy array, its a good idea to inspect the structure of the +file first. Then, locate the columns of interest and save them to a +variable. Save two columns of the file to the array, data.

Here, print out the first 10 rows of transistor_data.csv. The columns are

ProcessorMOS transistor countDate of IntroductionDesignerMOSprocessArea
Intel 4004 (4-bit 16-pin)22501971Intel“10,000 nm”12 mm²
..................
! head transistor_data.csv
Processor,MOS transistor count,Date of Introduction,Designer,MOSprocess,Area
+Intel 4004 (4-bit  16-pin),2250,1971,Intel,"10,000 nm",12 mm²
+Intel 8008 (8-bit  18-pin),3500,1972,Intel,"10,000 nm",14 mm²
+NEC μCOM-4 (4-bit  42-pin),2500,1973,NEC,"7,500 nm",?
+Intel 4040 (4-bit  16-pin),3000,1974,Intel,"10,000 nm",12 mm²
+Motorola 6800 (8-bit  40-pin),4100,1974,Motorola,"6,000 nm",16 mm²
+Intel 8080 (8-bit  40-pin),6000,1974,Intel,"6,000 nm",20 mm²
+TMS 1000 (4-bit  28-pin),8000,1974,Texas Instruments,"8,000 nm",11 mm²
+MOS Technology 6502 (8-bit  40-pin),4528,1975,MOS Technology,"8,000 nm",21 mm²
+Intersil IM6100 (12-bit  40-pin; clone of PDP-8),4000,1975,Intersil,,
+

You don’t need the columns that specify Processor, Designer, +MOSprocess, or Area. That leaves the second and third columns, +MOS transistor count and Date of Introduction, respectively.

Next, you load these two columns into a NumPy array using +np.loadtxt. +The extra options below will put the data in the desired format:

  • delimiter = ',': specify delimeter as a comma ‘,’ (this is the default behavior)

  • usecols = [1,2]: import the second and third columns from the csv

  • skiprows = 1: do not use the first row, because it’s a header row

data = np.loadtxt("transistor_data.csv", delimiter=",", usecols=[1, 2], skiprows=1)

You loaded the entire history of semiconducting into a NumPy array named +data. The first column is the MOS transistor count and the second +column is the Date of Introduction in a four-digit year.

Next, make the data easier to read and manage by assigning the two +columns to variables, year and transistor_count. Print out the first +10 values by slicing the year and transistor_count arrays with +[:10]. Print these values out to check that you have the saved the +data to the correct variables.

year = data[:, 1]  # grab the second column and assign
+transistor_count = data[:, 0]  # grab the first column and assign
+
+print("year:\t\t", year[:10])
+print("trans. cnt:\t", transistor_count[:10])
year:		 [1971. 1972. 1973. 1974. 1974. 1974. 1974. 1975. 1975. 1975.]
+trans. cnt:	 [2250. 3500. 2500. 3000. 4100. 6000. 8000. 4528. 4000. 5000.]
+

You are creating a function that predicts the transistor count given a +year. You have an independent variable, year, and a dependent +variable, transistor_count. Transform the dependent variable to +log-scale,

yi=log(y_i = \log( transistor_count[i] ),),

resulting in a linear equation,

yi=Ayear+By_i = A\cdot \text{year} +B.

yi = np.log(transistor_count)

Calculating the historical growth curve for transistors

Your model assume that yi is a function of year. Now, find the best-fit model that minimizes the difference between yiy_i and Ayear+B,A\cdot \text{year} +B, as such

minyi(Ayeari+B)2.\min \sum|y_i - (A\cdot \text{year}_i + B)|^2.

This sum of squares +error can be +succinctly represented as arrays as such

yZ[A, B]T2,\sum|\mathbf{y}-\mathbf{Z} [A,~B]^T|^2,

where y\mathbf{y} are the observations of the log of the number of +transistors in a 1D array and Z=[yeari1, yeari0]\mathbf{Z}=[\text{year}_i^1,~\text{year}_i^0] are the +polynomial terms for yeari\text{year}_i in the first and second columns. By +creating this set of regressors in the Z\mathbf{Z}-matrix you set +up an ordinary least squares statistical model.

Z is a linear model with two parameters, i.e. a polynomial with degree 1. +Therefore we can represent the model with numpy.polynomial.Polynomial and +use the fitting functionality to determine the model parameters:

model = np.polynomial.Polynomial.fit(year, yi, deg=1)

By default, Polynomial.fit performs the fit in the domain determined by the +independent variable (year in this case). +The coefficients for the unscaled and unshifted model can be recovered with the +convert method:

model = model.convert()
+model
Loading...

The individual parameters AA and BB are the coefficients of our linear model:

B, A = model

Did manufacturers double the transistor count every two years? You have +the final formula,

transistor_count(year+2)transistor_count(year)=xFactor=eBeA(year+2)eBeAyear=e2A\dfrac{\text{transistor\_count}(\text{year} +2)}{\text{transistor\_count}(\text{year})} = xFactor = +\dfrac{e^{B}e^{A( \text{year} + 2)}}{e^{B}e^{A \text{year}}} = e^{2A}

where increase in number of transistors is xFactor,xFactor, number of years is +2, and AA is the best fit slope on the semilog function.

print(f"Rate of semiconductors added on a chip every 2 years: {np.exp(2 * A):.2f}")
Rate of semiconductors added on a chip every 2 years: 1.98
+

Based upon your least-squares regression model, the number of +semiconductors per chip increased by a factor of 1.98 every two +years. You have a model that predicts the number of semiconductors each +year. Now compare your model to the actual manufacturing reports. Plot +the linear regression results and all of the transistor counts.

Here, use +plt.semilogy +to plot the number of transistors on a log-scale and the year on a +linear scale. You have defined a three arrays to get to a final model

yi=log(transistor_count),y_i = \log(\text{transistor\_count}),

yi=Ayear+B,y_i = A \cdot \text{year} + B,

and

log(transistor_count)=Ayear+B,\log(\text{transistor\_count}) = A\cdot \text{year} + B,

your variables, transistor_count, year, and yi all have the same +dimensions, (179,). NumPy arrays need the same dimensions to make a +plot. The predicted number of transistors is now

transistor_countpredicted=eBeAyear\text{transistor\_count}_{\text{predicted}} = e^Be^{A\cdot \text{year}}.

In the next plot, use the +fivethirtyeight +style sheet. +The style sheet replicates +https://fivethirtyeight.com elements. Change the matplotlib style with +plt.style.use.

transistor_count_predicted = np.exp(B) * np.exp(A * year)
+transistor_Moores_law = Moores_law(year)
+
+plt.style.use("fivethirtyeight")
+
+fig, ax = plt.subplots()
+ax.semilogy(year, transistor_count, "s", label="MOS transistor count")
+ax.semilogy(year, transistor_count_predicted, label="linear regression")
+
+
+ax.plot(year, transistor_Moores_law, label="Moore's Law")
+ax.set_title(
+    "MOS transistor count per microprocessor\n"
+    + "every two years \n"
+    + "Transistor count was x{:.2f} higher".format(np.exp(A * 2))
+)
+ax.set_xlabel("year introduced")
+ax.set_ylabel("# of transistors\nper microprocessor")
+ax.legend(loc="center left", bbox_to_anchor=(1, 0.5))
<Figure size 640x480 with 1 Axes>

A scatter plot of MOS transistor count per microprocessor every two years with a red line for the ordinary least squares prediction and an orange line for Moore’s law.

The linear regression captures the increase in the number of transistors +per semiconductors each year. In 2015, semiconductor manufacturers +claimed they could not keep up with Moore’s law anymore. Your analysis +shows that since 1971, the average increase in transistor count was +x1.98 every 2 years, but Gordon Moore predicted it would be x2 +every 2 years. That is an amazing prediction.

Consider the year 2017. Compare the data to your linear regression +model and Gordon Moore’s prediction. First, get the +transistor counts from the year 2017. You can do this with a Boolean +comparator,

year == 2017.

Then, make a prediction for 2017 with Moores_law defined above +and plugging in your best fit constants into your function

transistor_count=eBeAyear\text{transistor\_count} = e^{B}e^{A\cdot \text{year}}.

A great way to compare these measurements is to compare your prediction +and Moore’s prediction to the average transistor count and look at the +range of reported values for that year. Use the +plt.plot +option, +alpha=0.2, +to increase the transparency of the data. The more opaque the points +appear, the more reported values lie on that measurement. The green ++ +is the average reported transistor count for 2017. Plot your predictions +for ±12\pm\frac{1}{2} years.

transistor_count2017 = transistor_count[year == 2017]
+print(
+    transistor_count2017.max(), transistor_count2017.min(), transistor_count2017.mean()
+)
+y = np.linspace(2016.5, 2017.5)
+your_model2017 = np.exp(B) * np.exp(A * y)
+Moore_Model2017 = Moores_law(y)
+
+fig, ax = plt.subplots()
+ax.plot(
+    2017 * np.ones(np.sum(year == 2017)),
+    transistor_count2017,
+    "ro",
+    label="2017",
+    alpha=0.2,
+)
+ax.plot(2017, transistor_count2017.mean(), "g+", markersize=20, mew=6)
+
+ax.plot(y, your_model2017, label="Your prediction")
+ax.plot(y, Moore_Model2017, label="Moores law")
+ax.set_ylabel("# of transistors\nper microprocessor")
+ax.legend()
19200000000.0 250000000.0 7050000000.0
+
<Figure size 640x480 with 1 Axes>

The result is that your model is close to the mean, but Gordon +Moore’s prediction is closer to the maximum number of transistors per +microprocessor produced in 2017. Even though semiconductor manufacturers +thought that the growth would slow, once in 1975 and now again +approaching 2025, manufacturers are still producing semiconductors every 2 years that +nearly double the number of transistors.

The linear regression model is much better at predicting the +average than extreme values because it satisfies the condition to +minimize yiAyear[i]+B2\sum |y_i - A\cdot \text{year}[i]+B|^2.

Sharing your results as zipped arrays and a csv

The last step, is to share your findings. You created +new arrays that represent a linear regression model and Gordon Moore’s +prediction. You started this process by importing a csv file into a NumPy +array using np.loadtxt, to save your model use two approaches

  1. np.savez: save NumPy arrays for other Python sessions

  2. np.savetxt: save a csv file with the original data and your predicted data

Zipping the arrays into a file

Using np.savez, you can save thousands of arrays and give them names. The +function np.load will load the arrays back into the workspace as a +dictionary. You’ll save five arrays so the next user will have the year, +transistor count, predicted transistor count, Gordon Moore’s +predicted count, and fitting constants. Add one more variable that other users can use to +understand the model, notes.

notes = "the arrays in this file are the result of a linear regression model\n"
+notes += "the arrays include\nyear: year of manufacture\n"
+notes += "transistor_count: number of transistors reported by manufacturers in a given year\n"
+notes += "transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\n".format(
+    B, A
+)
+notes += "transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\n".format(
+    B_M, A_M
+)
+notes += "regression_csts: linear regression constants A and B for log(transistor_count)=A*year+B"
+print(notes)
the arrays in this file are the result of a linear regression model
+the arrays include
+year: year of manufacture
+transistor_count: number of transistors reported by manufacturers in a given year
+transistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)
+transistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)
+regression_csts: linear regression constants A and B for log(transistor_count)=A*year+B
+
np.savez(
+    "mooreslaw_regression.npz",
+    notes=notes,
+    year=year,
+    transistor_count=transistor_count,
+    transistor_count_predicted=transistor_count_predicted,
+    transistor_Moores_law=transistor_Moores_law,
+    regression_csts=(A, B),
+)
results = np.load("mooreslaw_regression.npz")
print(results["regression_csts"][1])
-666.3264063536233
+
! ls
_static				    tutorial-ma.md
+air-quality-data.csv		    tutorial-plotting-fractals
+contributing.md			    tutorial-plotting-fractals.md
+index.md			    tutorial-static_equilibrium.md
+mooreslaw-tutorial.md		    tutorial-style-guide.md
+mooreslaw_regression.npz	    tutorial-svd.md
+save-load-arrays.md		    tutorial-x-ray-image-processing
+transistor_data.csv		    tutorial-x-ray-image-processing.md
+tutorial-air-quality-analysis.md    who_covid_19_sit_rep_time_series.csv
+tutorial-deep-learning-on-mnist.md
+

The benefit of np.savez is you can save hundreds of arrays with +different shapes and types. Here, you saved 4 arrays that are double +precision floating point numbers shape = (179,), one array that was +text, and one array of double precision floating point numbers shape = +(2,). This is the preferred method for saving NumPy arrays for use in +another analysis.

Creating your own comma separated value file

If you want to share data and view the results in a table, then you have to +create a text file. Save the data using np.savetxt. This +function is more limited than np.savez. Delimited files, like csv’s, +need 2D arrays.

Prepare the data for export by creating a new 2D array whose columns +contain the data of interest.

Use the header option to describe the data and the columns of +the file. Define another variable that contains file +information as head.

head = "the columns in this file are the result of a linear regression model\n"
+head += "the columns include\nyear: year of manufacture\n"
+head += "transistor_count: number of transistors reported by manufacturers in a given year\n"
+head += "transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\n".format(
+    B, A
+)
+head += "transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\n".format(
+    B_M, A_M
+)
+head += "year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:"
+print(head)
the columns in this file are the result of a linear regression model
+the columns include
+year: year of manufacture
+transistor_count: number of transistors reported by manufacturers in a given year
+transistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)
+transistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)
+year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:
+

Build a single 2D array to export to csv. Tabular data is inherently two +dimensional. You need to organize your data to fit this 2D structure. +Use year, transistor_count, transistor_count_predicted, and +transistor_Moores_law as the first through fourth columns, +respectively. Put the calculated constants in the header since they do +not fit the (179,) shape. The +np.block +function appends arrays together to create a new, larger array. Arrange +the 1D vectors as columns using +np.newaxis +e.g.

>>> year.shape
+(179,)
+>>> year[:,np.newaxis].shape
+(179,1)
output = np.block(
+    [
+        year[:, np.newaxis],
+        transistor_count[:, np.newaxis],
+        transistor_count_predicted[:, np.newaxis],
+        transistor_Moores_law[:, np.newaxis],
+    ]
+)

Creating the mooreslaw_regression.csv with np.savetxt, use three +options to create the desired file format:

  • X = output : use output block to write the data into the file

  • delimiter = ',' : use commas to separate columns in the file

  • header = head : use the header head defined above

np.savetxt("mooreslaw_regression.csv", X=output, delimiter=",", header=head)
! head mooreslaw_regression.csv
# the columns in this file are the result of a linear regression model
+# the columns include
+# year: year of manufacture
+# transistor_count: number of transistors reported by manufacturers in a given year
+# transistor_count_predicted: linear regression model = exp(-666.33)*exp(0.34*year)
+# transistor_Moores_law: Moores law =exp(-675.38)*exp(0.35*year)
+# year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:
+1.971000000000000000e+03,2.250000000000000000e+03,1.130514785642591733e+03,2.249999999999916326e+03
+1.972000000000000000e+03,3.500000000000000000e+03,1.590908400344571419e+03,3.181980515339620069e+03
+1.973000000000000000e+03,2.500000000000000000e+03,2.238793840142739555e+03,4.500000000000097316e+03
+

Wrapping up

In conclusion, you have compared historical data for semiconductor +manufacturers to Moore’s law and created a linear regression model to +find the average number of transistors added to each microprocessor +every two years. Gordon Moore predicted the number of transistors would +double every two years from 1965 through 1975, but the average growth +has maintained a consistent increase of ×1.98±0.01\times 1.98 \pm 0.01 every two +years from 1971 through 2019. In 2015, Moore revised his prediction to +say Moore’s law should hold until 2025. +[2]. +You can share these results as a zipped NumPy array file, +mooreslaw_regression.npz, or as another csv, +mooreslaw_regression.csv. The amazing progress in semiconductor +manufacturing has enabled new industries and computational power. This +analysis should give you a small insight into how incredible this growth +has been over the last half-century.

References

  1. “Moore’s Law.” Wikipedia article. Accessed Oct. 1, 2020.

  2. Courtland, Rachel. “Gordon Moore: The Man Whose Name Means Progress.” IEEE Spectrum. 30 Mar. 2015..

  3. “Transistor Count.” Wikipedia article. Accessed Oct. 1, 2020.

\ No newline at end of file diff --git a/myst-theme.css b/myst-theme.css new file mode 100644 index 00000000..9a293777 --- /dev/null +++ b/myst-theme.css @@ -0,0 +1 @@ +/* No Custom Stylesheet Provided */ diff --git a/myst.search.json b/myst.search.json new file mode 100644 index 00000000..11c105cb --- /dev/null +++ b/myst.search.json @@ -0,0 +1 @@ +{"version":"1","records":[{"hierarchy":{"lvl1":""},"type":"lvl1","url":"/contributing","position":0},{"hierarchy":{"lvl1":""},"content":"","type":"content","url":"/contributing","position":1},{"hierarchy":{"lvl1":"","lvl2":"Contributing"},"type":"lvl2","url":"/contributing#contributing","position":2},{"hierarchy":{"lvl1":"","lvl2":"Contributing"},"content":"We very much welcome contributions! If you have an idea or proposal for a new\ntutorial, please \n\nopen an issue\nwith an outline.\n\nDon’t worry if English is not your first language, or if you can only come up\nwith a rough draft. Open source is a community effort. Do your best – we’ll help\nfix issues.\n\nImages and real-life data make text more engaging and powerful, but be sure what\nyou use is appropriately licensed and available. Here again, even a rough idea\nfor artwork can be polished by others.","type":"content","url":"/contributing#contributing","position":3},{"hierarchy":{"lvl1":"","lvl3":"Building the website","lvl2":"Contributing"},"type":"lvl3","url":"/contributing#building-the-website","position":4},{"hierarchy":{"lvl1":"","lvl3":"Building the website","lvl2":"Contributing"},"content":"Note\n\nThe NumPy tutorials are powered by \n\njupyter-book and the\n\n\nMyST document engine.\nSee the linked documentation for further details.","type":"content","url":"/contributing#building-the-website","position":5},{"hierarchy":{"lvl1":"","lvl4":"Quickstart","lvl3":"Building the website","lvl2":"Contributing"},"type":"lvl4","url":"/contributing#quickstart","position":6},{"hierarchy":{"lvl1":"","lvl4":"Quickstart","lvl3":"Building the website","lvl2":"Contributing"},"content":"Set up a development environment with the dependencies listed in\nrequirements.txt.\nFor example, using the built-in \n\nvenv module:python -m venv np-tutorials\nsource np-tutorials/bin/activate\npython -m pip install -r requirements.txt\n\nThe site can then be built with:jupyter-book start --execute\n\nThis will execute all the notebooks and start a web server to view the rendered\ncontent locally.\nView the rendered site by opening the localhost:30xy in your preferred browser (the exact port number will be printed in your terminal).","type":"content","url":"/contributing#quickstart","position":7},{"hierarchy":{"lvl1":"","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"type":"lvl3","url":"/contributing#adding-your-own-tutorials","position":8},{"hierarchy":{"lvl1":"","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"content":"If you have your own tutorial in the form of a Jupyter notebook (an .ipynb\nfile) and you’d like to try add it out to the repository, follow the steps below.","type":"content","url":"/contributing#adding-your-own-tutorials","position":9},{"hierarchy":{"lvl1":"","lvl4":"Create an issue","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"type":"lvl4","url":"/contributing#create-an-issue","position":10},{"hierarchy":{"lvl1":"","lvl4":"Create an issue","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"content":"Go to \n\nhttps://​github​.com​/numpy​/numpy​-tutorials​/issues and create a new issue\nwith your proposal.\nGive as much detail as you can about what kind of content you would like to\nwrite (tutorial, how-to) and what you plan to cover.\nWe will try to respond as quickly as possible with comments, if applicable.","type":"content","url":"/contributing#create-an-issue","position":11},{"hierarchy":{"lvl1":"","lvl4":"Check out our suggested template","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"type":"lvl4","url":"/contributing#check-out-our-suggested-template","position":12},{"hierarchy":{"lvl1":"","lvl4":"Check out our suggested template","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"content":"You can use this template to make your content consistent with our existing\ntutorials.","type":"content","url":"/contributing#check-out-our-suggested-template","position":13},{"hierarchy":{"lvl1":"","lvl4":"Open a pull request","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"type":"lvl4","url":"/contributing#open-a-pull-request","position":14},{"hierarchy":{"lvl1":"","lvl4":"Open a pull request","lvl3":"Adding your own tutorials","lvl2":"Contributing"},"content":"For more information about GitHub and its workflow, you can see\n\n\nthis document.","type":"content","url":"/contributing#open-a-pull-request","position":15},{"hierarchy":{"lvl1":"NumPy tutorials"},"type":"lvl1","url":"/","position":0},{"hierarchy":{"lvl1":"NumPy tutorials"},"content":"\n\nThis set of tutorials and educational materials is being developed in the\n\n\nnumpy-tutorials repository, and is\nnot a part of the NumPy source tree. The goal of this repository is to provide\nhigh-quality resources by the NumPy project, both for self-learning and for\nteaching classes with. If you’re interested in adding your own content, check\nthe \n\nContributing section.\n\nTo open a live version of the content, click the launch Binder button above.\nTo open each of the .md files, right click and select “Open with -> Notebook”.\nYou can also launch individual tutorials on Binder by clicking on the rocket\nicon that appears in the upper-right corner of each tutorial. To download a\nlocal copy of the .ipynb files, you can either\n\n\nclone this repository\nor use the download icon in the upper-right corner of each tutorial.","type":"content","url":"/","position":1},{"hierarchy":{"lvl1":"NumPy tutorials","lvl2":"Useful links and resources"},"type":"lvl2","url":"/#useful-links-and-resources","position":2},{"hierarchy":{"lvl1":"NumPy tutorials","lvl2":"Useful links and resources"},"content":"The following links may be useful:\n\nNumPy Code of Conduct\n\nMain NumPy documentation\n\nNumPy documentation team meeting notes\n\nNEP 44 - Restructuring the NumPy documentation\n\nNote that regular documentation issues for NumPy can be found in the \n\nmain NumPy\nrepository (see the Documentation\nlabels there).","type":"content","url":"/#useful-links-and-resources","position":3},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy"},"type":"lvl1","url":"/mooreslaw-tutorial","position":0},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy"},"content":"\n\nThe number of transistors reported per a given chip plotted on a log scale in the y axis with the date of introduction on the linear scale x-axis. The blue data points are from a \n\ntransistor count table. The red line is an ordinary least squares prediction and the orange line is Moore’s law.","type":"content","url":"/mooreslaw-tutorial","position":1},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"What you’ll do"},"type":"lvl2","url":"/mooreslaw-tutorial#what-youll-do","position":2},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"What you’ll do"},"content":"In 1965, engineer Gordon Moore\n\n\npredicted that\ntransistors on a chip would double every two years in the coming decade\n[\n\n1].\nYou’ll compare Moore’s prediction against actual transistor counts in\nthe 53 years following his prediction. You will determine the best-fit constants to describe the exponential growth of transistors on semiconductors compared to Moore’s Law.","type":"content","url":"/mooreslaw-tutorial#what-youll-do","position":3},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Skills you’ll learn"},"type":"lvl2","url":"/mooreslaw-tutorial#skills-youll-learn","position":4},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Skills you’ll learn"},"content":"Load data from a \n\n*.csv file\n\nPerform linear regression and predict exponential growth using ordinary least squares\n\nYou’ll compare exponential growth constants between models\n\nShare your analysis in a file:\n\nas NumPy zipped files *.npz\n\nas a *.csv file\n\nAssess the amazing progress semiconductor manufacturers have made in the last five decades","type":"content","url":"/mooreslaw-tutorial#skills-youll-learn","position":5},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"What you’ll need"},"type":"lvl2","url":"/mooreslaw-tutorial#what-youll-need","position":6},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"What you’ll need"},"content":"1. These packages:\n\nNumPy\n\nMatplotlib\n\nimported with the following commands\n\nimport matplotlib.pyplot as plt\nimport numpy as np\n\n\n\n2. Since this is an exponential growth law you need a little background in doing math with \n\nnatural logs and \n\nexponentials.\n\nYou’ll use these NumPy and Matplotlib functions:\n\nnp.loadtxt: this function loads text into a NumPy array\n\nnp.log: this function takes the natural log of all elements in a NumPy array\n\nnp.exp: this function takes the exponential of all elements in a NumPy array\n\nlambda: this is a minimal function definition for creating a function model\n\nplt.semilogy: this function will plot x-y data onto a figure with a linear x-axis and \\log_{10} y-axis\n\n\nplt.plot: this function will plot x-y data on linear axes\n\nslicing arrays: view parts of the data loaded into the workspace, slice the arrays e.g. x[:10] for the first 10 values in the array, x\n\nboolean array indexing: to view parts of the data that match a given condition use boolean operations to index an array\n\nnp.block: to combine arrays into 2D arrays\n\nnp.newaxis: to change a 1D vector to a row or column vector\n\nnp.savez and \n\nnp.savetxt: these two functions will save your arrays in zipped array format and text, respectively\n\n","type":"content","url":"/mooreslaw-tutorial#what-youll-need","position":7},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Building Moore’s law as an exponential function"},"type":"lvl2","url":"/mooreslaw-tutorial#building-moores-law-as-an-exponential-function","position":8},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Building Moore’s law as an exponential function"},"content":"Your empirical model assumes that the number of transistors per\nsemiconductor follows an exponential growth,\n\n\\log(\\text{transistor\\_count})= f(\\text{year}) = A\\cdot \\text{year}+B,\n\nwhere A and B are fitting constants. You use semiconductor\nmanufacturers’ data to find the fitting constants.\n\nYou determine these constants for Moore’s law by specifying the\nrate for added transistors, 2, and giving an initial number of transistors for a given year.\n\nYou state Moore’s law in an exponential form as follows,\n\n\\text{transistor\\_count}= e^{A_M\\cdot \\text{year} +B_M}.\n\nWhere A_M and B_M are constants that double the number of transistors every two years and start at 2250 transistors in 1971,\n\n\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = 2 = \\dfrac{e^{B_M}e^{A_M \\text{year} + 2A_M}}{e^{B_M}e^{A_M \\text{year}}} = e^{2A_M} \\rightarrow A_M = \\frac{\\log(2)}{2}\n\n\\log(2250) = \\frac{\\log(2)}{2}\\cdot 1971 + B_M \\rightarrow B_M = \\log(2250)-\\frac{\\log(2)}{2}\\cdot 1971\n\nso Moore’s law stated as an exponential function is\n\n\\log(\\text{transistor\\_count})= A_M\\cdot \\text{year}+B_M,\n\nwhere\n\nA_M=0.3466\n\nB_M=-675.4\n\nSince the function represents Moore’s law, define it as a Python\nfunction using\n\n\nlambda:\n\nA_M = np.log(2) / 2\nB_M = np.log(2250) - A_M * 1971\nMoores_law = lambda year: np.exp(B_M) * np.exp(A_M * year)\n\n\n\nIn 1971, there were 2250 transistors on the Intel 4004 chip. Use\nMoores_law to check the number of semiconductors Gordon Moore would expect\nin 1973.\n\nML_1971 = Moores_law(1971)\nML_1973 = Moores_law(1973)\nprint(\"In 1973, G. Moore expects {:.0f} transistors on Intels chips\".format(ML_1973))\nprint(\"This is x{:.2f} more transistors than 1971\".format(ML_1973 / ML_1971))\n\n\n\n","type":"content","url":"/mooreslaw-tutorial#building-moores-law-as-an-exponential-function","position":9},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Loading historical manufacturing data to your workspace"},"type":"lvl2","url":"/mooreslaw-tutorial#loading-historical-manufacturing-data-to-your-workspace","position":10},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Loading historical manufacturing data to your workspace"},"content":"Now, make a prediction based upon the historical data for\nsemiconductors per chip. The \n\nTransistor Count\n[3]\neach year is in the transistor_data.csv file. Before loading a *.csv\nfile into a NumPy array, its a good idea to inspect the structure of the\nfile first. Then, locate the columns of interest and save them to a\nvariable. Save two columns of the file to the array, data.\n\nHere, print out the first 10 rows of transistor_data.csv. The columns are\n\nProcessor\n\nMOS transistor count\n\nDate of Introduction\n\nDesigner\n\nMOSprocess\n\nArea\n\nIntel 4004 (4-bit 16-pin)\n\n2250\n\n1971\n\nIntel\n\n“10,000 nm”\n\n12 mm²\n\n...\n\n...\n\n...\n\n...\n\n...\n\n...\n\n! head transistor_data.csv\n\n\n\nYou don’t need the columns that specify Processor, Designer,\nMOSprocess, or Area. That leaves the second and third columns,\nMOS transistor count and Date of Introduction, respectively.\n\nNext, you load these two columns into a NumPy array using\n\n\nnp.loadtxt.\nThe extra options below will put the data in the desired format:\n\ndelimiter = ',': specify delimeter as a comma ‘,’ (this is the default behavior)\n\nusecols = [1,2]: import the second and third columns from the csv\n\nskiprows = 1: do not use the first row, because it’s a header row\n\ndata = np.loadtxt(\"transistor_data.csv\", delimiter=\",\", usecols=[1, 2], skiprows=1)\n\n\n\nYou loaded the entire history of semiconducting into a NumPy array named\ndata. The first column is the MOS transistor count and the second\ncolumn is the Date of Introduction in a four-digit year.\n\nNext, make the data easier to read and manage by assigning the two\ncolumns to variables, year and transistor_count. Print out the first\n10 values by slicing the year and transistor_count arrays with\n[:10]. Print these values out to check that you have the saved the\ndata to the correct variables.\n\nyear = data[:, 1] # grab the second column and assign\ntransistor_count = data[:, 0] # grab the first column and assign\n\nprint(\"year:\\t\\t\", year[:10])\nprint(\"trans. cnt:\\t\", transistor_count[:10])\n\n\n\nYou are creating a function that predicts the transistor count given a\nyear. You have an independent variable, year, and a dependent\nvariable, transistor_count. Transform the dependent variable to\nlog-scale,\n\ny_i = \\log( transistor_count[i] ),\n\nresulting in a linear equation,\n\ny_i = A\\cdot \\text{year} +B.\n\nyi = np.log(transistor_count)\n\n\n\n","type":"content","url":"/mooreslaw-tutorial#loading-historical-manufacturing-data-to-your-workspace","position":11},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Calculating the historical growth curve for transistors"},"type":"lvl2","url":"/mooreslaw-tutorial#calculating-the-historical-growth-curve-for-transistors","position":12},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Calculating the historical growth curve for transistors"},"content":"Your model assume that yi is a function of year. Now, find the best-fit model that minimizes the difference between y_i and A\\cdot \\text{year} +B, as such\n\n\\min \\sum|y_i - (A\\cdot \\text{year}_i + B)|^2.\n\nThis \n\nsum of squares\nerror can be\nsuccinctly represented as arrays as such\n\n\\sum|\\mathbf{y}-\\mathbf{Z} [A,~B]^T|^2,\n\nwhere \\mathbf{y} are the observations of the log of the number of\ntransistors in a 1D array and \\mathbf{Z}=[\\text{year}_i^1,~\\text{year}_i^0] are the\npolynomial terms for \\text{year}_i in the first and second columns. By\ncreating this set of regressors in the \\mathbf{Z}-matrix you set\nup an ordinary least squares statistical model.\n\nZ is a linear model with two parameters, i.e. a polynomial with degree 1.\nTherefore we can represent the model with numpy.polynomial.Polynomial and\nuse the fitting functionality to determine the model parameters:\n\nmodel = np.polynomial.Polynomial.fit(year, yi, deg=1)\n\n\n\nBy default, Polynomial.fit performs the fit in the domain determined by the\nindependent variable (year in this case).\nThe coefficients for the unscaled and unshifted model can be recovered with the\nconvert method:\n\nmodel = model.convert()\nmodel\n\n\n\nThe individual parameters A and B are the coefficients of our linear model:\n\nB, A = model\n\n\n\nDid manufacturers double the transistor count every two years? You have\nthe final formula,\n\n\\dfrac{\\text{transistor\\_count}(\\text{year} +2)}{\\text{transistor\\_count}(\\text{year})} = xFactor =\n\\dfrac{e^{B}e^{A( \\text{year} + 2)}}{e^{B}e^{A \\text{year}}} = e^{2A}\n\nwhere increase in number of transistors is xFactor, number of years is\n2, and A is the best fit slope on the semilog function.\n\nprint(f\"Rate of semiconductors added on a chip every 2 years: {np.exp(2 * A):.2f}\")\n\n\n\nBased upon your least-squares regression model, the number of\nsemiconductors per chip increased by a factor of 1.98 every two\nyears. You have a model that predicts the number of semiconductors each\nyear. Now compare your model to the actual manufacturing reports. Plot\nthe linear regression results and all of the transistor counts.\n\nHere, use\n\n\nplt.semilogy\nto plot the number of transistors on a log-scale and the year on a\nlinear scale. You have defined a three arrays to get to a final model\n\ny_i = \\log(\\text{transistor\\_count}),\n\ny_i = A \\cdot \\text{year} + B,\n\nand\n\n\\log(\\text{transistor\\_count}) = A\\cdot \\text{year} + B,\n\nyour variables, transistor_count, year, and yi all have the same\ndimensions, (179,). NumPy arrays need the same dimensions to make a\nplot. The predicted number of transistors is now\n\n\\text{transistor\\_count}_{\\text{predicted}} = e^Be^{A\\cdot \\text{year}}.\n\nIn the next plot, use the\n\n\nfivethirtyeight\nstyle sheet.\nThe style sheet replicates\n\n\nhttps://​fivethirtyeight​.com elements. Change the matplotlib style with\n\n\nplt.style.use.\n\ntransistor_count_predicted = np.exp(B) * np.exp(A * year)\ntransistor_Moores_law = Moores_law(year)\n\nplt.style.use(\"fivethirtyeight\")\n\nfig, ax = plt.subplots()\nax.semilogy(year, transistor_count, \"s\", label=\"MOS transistor count\")\nax.semilogy(year, transistor_count_predicted, label=\"linear regression\")\n\n\nax.plot(year, transistor_Moores_law, label=\"Moore's Law\")\nax.set_title(\n \"MOS transistor count per microprocessor\\n\"\n + \"every two years \\n\"\n + \"Transistor count was x{:.2f} higher\".format(np.exp(A * 2))\n)\nax.set_xlabel(\"year introduced\")\nax.set_ylabel(\"# of transistors\\nper microprocessor\")\nax.legend(loc=\"center left\", bbox_to_anchor=(1, 0.5))\n\n\n\nA scatter plot of MOS transistor count per microprocessor every two years with a red line for the ordinary least squares prediction and an orange line for Moore’s law.\n\nThe linear regression captures the increase in the number of transistors\nper semiconductors each year. In 2015, semiconductor manufacturers\nclaimed they could not keep up with Moore’s law anymore. Your analysis\nshows that since 1971, the average increase in transistor count was\nx1.98 every 2 years, but Gordon Moore predicted it would be x2\nevery 2 years. That is an amazing prediction.\n\nConsider the year 2017. Compare the data to your linear regression\nmodel and Gordon Moore’s prediction. First, get the\ntransistor counts from the year 2017. You can do this with a Boolean\ncomparator,\n\nyear == 2017.\n\nThen, make a prediction for 2017 with Moores_law defined above\nand plugging in your best fit constants into your function\n\n\\text{transistor\\_count} = e^{B}e^{A\\cdot \\text{year}}.\n\nA great way to compare these measurements is to compare your prediction\nand Moore’s prediction to the average transistor count and look at the\nrange of reported values for that year. Use the\n\n\nplt.plot\noption,\n\n\nalpha=0.2,\nto increase the transparency of the data. The more opaque the points\nappear, the more reported values lie on that measurement. The green +\nis the average reported transistor count for 2017. Plot your predictions\nfor \\pm\\frac{1}{2} years.\n\ntransistor_count2017 = transistor_count[year == 2017]\nprint(\n transistor_count2017.max(), transistor_count2017.min(), transistor_count2017.mean()\n)\ny = np.linspace(2016.5, 2017.5)\nyour_model2017 = np.exp(B) * np.exp(A * y)\nMoore_Model2017 = Moores_law(y)\n\nfig, ax = plt.subplots()\nax.plot(\n 2017 * np.ones(np.sum(year == 2017)),\n transistor_count2017,\n \"ro\",\n label=\"2017\",\n alpha=0.2,\n)\nax.plot(2017, transistor_count2017.mean(), \"g+\", markersize=20, mew=6)\n\nax.plot(y, your_model2017, label=\"Your prediction\")\nax.plot(y, Moore_Model2017, label=\"Moores law\")\nax.set_ylabel(\"# of transistors\\nper microprocessor\")\nax.legend()\n\n\n\n\n\nThe result is that your model is close to the mean, but Gordon\nMoore’s prediction is closer to the maximum number of transistors per\nmicroprocessor produced in 2017. Even though semiconductor manufacturers\nthought that the growth would slow, once in 1975 and now again\napproaching 2025, manufacturers are still producing semiconductors every 2 years that\nnearly double the number of transistors.\n\nThe linear regression model is much better at predicting the\naverage than extreme values because it satisfies the condition to\nminimize \\sum |y_i - A\\cdot \\text{year}[i]+B|^2.\n\n","type":"content","url":"/mooreslaw-tutorial#calculating-the-historical-growth-curve-for-transistors","position":13},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Sharing your results as zipped arrays and a csv"},"type":"lvl2","url":"/mooreslaw-tutorial#sharing-your-results-as-zipped-arrays-and-a-csv","position":14},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Sharing your results as zipped arrays and a csv"},"content":"The last step, is to share your findings. You created\nnew arrays that represent a linear regression model and Gordon Moore’s\nprediction. You started this process by importing a csv file into a NumPy\narray using np.loadtxt, to save your model use two approaches\n\nnp.savez: save NumPy arrays for other Python sessions\n\nnp.savetxt: save a csv file with the original data and your predicted data","type":"content","url":"/mooreslaw-tutorial#sharing-your-results-as-zipped-arrays-and-a-csv","position":15},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl3":"Zipping the arrays into a file","lvl2":"Sharing your results as zipped arrays and a csv"},"type":"lvl3","url":"/mooreslaw-tutorial#zipping-the-arrays-into-a-file","position":16},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl3":"Zipping the arrays into a file","lvl2":"Sharing your results as zipped arrays and a csv"},"content":"Using np.savez, you can save thousands of arrays and give them names. The\nfunction np.load will load the arrays back into the workspace as a\ndictionary. You’ll save five arrays so the next user will have the year,\ntransistor count, predicted transistor count, Gordon Moore’s\npredicted count, and fitting constants. Add one more variable that other users can use to\nunderstand the model, notes.\n\nnotes = \"the arrays in this file are the result of a linear regression model\\n\"\nnotes += \"the arrays include\\nyear: year of manufacture\\n\"\nnotes += \"transistor_count: number of transistors reported by manufacturers in a given year\\n\"\nnotes += \"transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B, A\n)\nnotes += \"transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B_M, A_M\n)\nnotes += \"regression_csts: linear regression constants A and B for log(transistor_count)=A*year+B\"\nprint(notes)\n\n\n\n\n\nnp.savez(\n \"mooreslaw_regression.npz\",\n notes=notes,\n year=year,\n transistor_count=transistor_count,\n transistor_count_predicted=transistor_count_predicted,\n transistor_Moores_law=transistor_Moores_law,\n regression_csts=(A, B),\n)\n\n\n\n\n\nresults = np.load(\"mooreslaw_regression.npz\")\n\n\n\n\n\nprint(results[\"regression_csts\"][1])\n\n\n\n\n\n! ls\n\n\n\nThe benefit of np.savez is you can save hundreds of arrays with\ndifferent shapes and types. Here, you saved 4 arrays that are double\nprecision floating point numbers shape = (179,), one array that was\ntext, and one array of double precision floating point numbers shape =\n(2,). This is the preferred method for saving NumPy arrays for use in\nanother analysis.","type":"content","url":"/mooreslaw-tutorial#zipping-the-arrays-into-a-file","position":17},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl3":"Creating your own comma separated value file","lvl2":"Sharing your results as zipped arrays and a csv"},"type":"lvl3","url":"/mooreslaw-tutorial#creating-your-own-comma-separated-value-file","position":18},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl3":"Creating your own comma separated value file","lvl2":"Sharing your results as zipped arrays and a csv"},"content":"If you want to share data and view the results in a table, then you have to\ncreate a text file. Save the data using np.savetxt. This\nfunction is more limited than np.savez. Delimited files, like csv’s,\nneed 2D arrays.\n\nPrepare the data for export by creating a new 2D array whose columns\ncontain the data of interest.\n\nUse the header option to describe the data and the columns of\nthe file. Define another variable that contains file\ninformation as head.\n\nhead = \"the columns in this file are the result of a linear regression model\\n\"\nhead += \"the columns include\\nyear: year of manufacture\\n\"\nhead += \"transistor_count: number of transistors reported by manufacturers in a given year\\n\"\nhead += \"transistor_count_predicted: linear regression model = exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B, A\n)\nhead += \"transistor_Moores_law: Moores law =exp({:.2f})*exp({:.2f}*year)\\n\".format(\n B_M, A_M\n)\nhead += \"year:, transistor_count:, transistor_count_predicted:, transistor_Moores_law:\"\nprint(head)\n\n\n\nBuild a single 2D array to export to csv. Tabular data is inherently two\ndimensional. You need to organize your data to fit this 2D structure.\nUse year, transistor_count, transistor_count_predicted, and\ntransistor_Moores_law as the first through fourth columns,\nrespectively. Put the calculated constants in the header since they do\nnot fit the (179,) shape. The\n\n\nnp.block\nfunction appends arrays together to create a new, larger array. Arrange\nthe 1D vectors as columns using\n\n\nnp.newaxis\ne.g.>>> year.shape\n(179,)\n>>> year[:,np.newaxis].shape\n(179,1)\n\noutput = np.block(\n [\n year[:, np.newaxis],\n transistor_count[:, np.newaxis],\n transistor_count_predicted[:, np.newaxis],\n transistor_Moores_law[:, np.newaxis],\n ]\n)\n\n\n\nCreating the mooreslaw_regression.csv with np.savetxt, use three\noptions to create the desired file format:\n\nX = output : use output block to write the data into the file\n\ndelimiter = ',' : use commas to separate columns in the file\n\nheader = head : use the header head defined above\n\nnp.savetxt(\"mooreslaw_regression.csv\", X=output, delimiter=\",\", header=head)\n\n\n\n\n\n! head mooreslaw_regression.csv\n\n\n\n","type":"content","url":"/mooreslaw-tutorial#creating-your-own-comma-separated-value-file","position":19},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Wrapping up"},"type":"lvl2","url":"/mooreslaw-tutorial#wrapping-up","position":20},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"Wrapping up"},"content":"In conclusion, you have compared historical data for semiconductor\nmanufacturers to Moore’s law and created a linear regression model to\nfind the average number of transistors added to each microprocessor\nevery two years. Gordon Moore predicted the number of transistors would\ndouble every two years from 1965 through 1975, but the average growth\nhas maintained a consistent increase of \\times 1.98 \\pm 0.01 every two\nyears from 1971 through 2019. In 2015, Moore revised his prediction to\nsay Moore’s law should hold until 2025.\n[\n\n2].\nYou can share these results as a zipped NumPy array file,\nmooreslaw_regression.npz, or as another csv,\nmooreslaw_regression.csv. The amazing progress in semiconductor\nmanufacturing has enabled new industries and computational power. This\nanalysis should give you a small insight into how incredible this growth\nhas been over the last half-century.\n\n","type":"content","url":"/mooreslaw-tutorial#wrapping-up","position":21},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"References"},"type":"lvl2","url":"/mooreslaw-tutorial#references","position":22},{"hierarchy":{"lvl1":"Determining Moore’s Law with real data in NumPy","lvl2":"References"},"content":"“Moore’s Law.” Wikipedia article. Accessed Oct. 1, 2020.\n\nCourtland, Rachel. “Gordon Moore: The Man Whose Name Means Progress.” IEEE Spectrum. 30 Mar. 2015..\n\n“Transistor Count.” Wikipedia article. Accessed Oct. 1, 2020.","type":"content","url":"/mooreslaw-tutorial#references","position":23},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays"},"type":"lvl1","url":"/save-load-arrays","position":0},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays"},"content":"","type":"content","url":"/save-load-arrays","position":1},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll learn"},"type":"lvl2","url":"/save-load-arrays#what-youll-learn","position":2},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll learn"},"content":"You’ll save your NumPy arrays as zipped files and human-readable\ncomma-delimited files i.e. *.csv. You will also learn to load both of these\nfile types back into NumPy workspaces.","type":"content","url":"/save-load-arrays#what-youll-learn","position":3},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll do"},"type":"lvl2","url":"/save-load-arrays#what-youll-do","position":4},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll do"},"content":"You’ll learn two ways of saving and reading files--as compressed and as\ntext files--that will serve most of your storage needs in NumPy.\n\nYou’ll create two 1D arrays and one 2D array\n\nYou’ll save these arrays to files\n\nYou’ll remove variables from your workspace\n\nYou’ll load the variables from your saved file\n\nYou’ll compare zipped binary files to human-readable delimited files\n\nYou’ll finish with the skills of saving, loading, and sharing NumPy arrays","type":"content","url":"/save-load-arrays#what-youll-do","position":5},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll need"},"type":"lvl2","url":"/save-load-arrays#what-youll-need","position":6},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"What you’ll need"},"content":"NumPy\n\nread-write access to your working directory\n\nLoad the necessary functions using the following command.\n\nimport numpy as np\n\n\n\nIn this tutorial, you will use the following Python, IPython magic, and NumPy functions:\n\nnp.arange\n\nnp.savez\n\ndel\n\nwhos\n\nnp.load\n\nnp.block\n\nnp.newaxis\n\nnp.savetxt\n\nnp.loadtxt\n\n","type":"content","url":"/save-load-arrays#what-youll-need","position":7},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Create your arrays"},"type":"lvl2","url":"/save-load-arrays#create-your-arrays","position":8},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Create your arrays"},"content":"Now that you have imported the NumPy library, you can make a couple of\narrays; let’s start with two 1D arrays, x and y, where y = x**2.You\nwill assign x to the integers from 0 to 9 using\n\n\nnp.arange.\n\nx = np.arange(10)\ny = x ** 2\nprint(x)\nprint(y)\n\n\n\n","type":"content","url":"/save-load-arrays#create-your-arrays","position":9},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Save your arrays with NumPy’s savez"},"type":"lvl2","url":"/save-load-arrays#save-your-arrays-with-numpys-savez","position":10},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Save your arrays with NumPy’s savez"},"content":"Now you have two arrays in your workspace,\n\nx: [0 1 2 3 4 5 6 7 8 9]\n\ny: [ 0 1 4 9 16 25 36 49 64 81]\n\nThe first thing you will do is save them to a file as zipped arrays\nusing\n\n\nsavez.\nYou will use two options to label the arrays in the file,\n\nx_axis = x: this option is assigning the name x_axis to the variable x\n\ny_axis = y: this option is assigning the name y_axis to the variable y\n\nnp.savez(\"x_y-squared.npz\", x_axis=x, y_axis=y)\n\n\n\n","type":"content","url":"/save-load-arrays#save-your-arrays-with-numpys-savez","position":11},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Remove the saved arrays and load them back with NumPy’s load"},"type":"lvl2","url":"/save-load-arrays#remove-the-saved-arrays-and-load-them-back-with-numpys-load","position":12},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Remove the saved arrays and load them back with NumPy’s load"},"content":"In your current working directory, you should have a new file with the\nname x_y-squared.npz. This file is a zipped binary of the two arrays,\nx and y. Let’s clear the workspace and load the values back in. This\nx_y-squared.npz file contains two \n\nNPY\nformat\nfiles. The NPY format is a \n\nnative binary\nformat. You cannot read\nthe numbers in a standard text editor or spreadsheet.\n\nremove x and y from the workspaec with \n\ndel\n\nload the arrays into the workspace in a dictionary with \n\nnp.load\n\nTo see what variables are in the workspace, use the Jupyter/IPython\n“magic” command\n\n\nwhos.\n\ndel x, y\n\n\n\n\n\n%whos\n\n\n\n\n\nload_xy = np.load(\"x_y-squared.npz\")\n\nprint(load_xy.files)\n\n\n\n\n\n%whos\n\n\n\n","type":"content","url":"/save-load-arrays#remove-the-saved-arrays-and-load-them-back-with-numpys-load","position":13},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Reassign the NpzFile arrays to x and y"},"type":"lvl2","url":"/save-load-arrays#reassign-the-npzfile-arrays-to-x-and-y","position":14},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Reassign the NpzFile arrays to x and y"},"content":"You’ve now created the dictionary with an NpzFile-type. The\nincluded files are x_axis and y_axis that you defined in your\nsavez command. You can reassign x and y to the load_xy files.\n\nx = load_xy[\"x_axis\"]\ny = load_xy[\"y_axis\"]\nprint(x)\nprint(y)\n\n\n\n","type":"content","url":"/save-load-arrays#reassign-the-npzfile-arrays-to-x-and-y","position":15},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Success"},"type":"lvl2","url":"/save-load-arrays#success","position":16},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Success"},"content":"You have created, saved, deleted, and loaded the variables x and y using savez and load. Nice work.","type":"content","url":"/save-load-arrays#success","position":17},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Another option: saving to human-readable csv"},"type":"lvl2","url":"/save-load-arrays#another-option-saving-to-human-readable-csv","position":18},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Another option: saving to human-readable csv"},"content":"Let’s consider another scenario, you want to share x and y with\nother people or other programs. You may need human-readable text file\nthat is easier to share. Next, you use the\n\n\nsavetxt\nto save x and y in a comma separated value file, x_y-squared.csv.\nThe resulting csv is composed of ASCII characters. You can load the file\nback into NumPy or read it with other programs.","type":"content","url":"/save-load-arrays#another-option-saving-to-human-readable-csv","position":19},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Rearrange the data into a single 2D array"},"type":"lvl2","url":"/save-load-arrays#rearrange-the-data-into-a-single-2d-array","position":20},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Rearrange the data into a single 2D array"},"content":"First, you have to create a single 2D array from your two 1D arrays. The\ncsv-filetype is a spreadsheet-style dataset. The csv arranges numbers in\nrows--separated by new lines--and columns--separated by commas. If the\ndata is more complex e.g. multiple 2D arrays or higher dimensional\narrays, it is better to use savez. Here, you use\ntwo NumPy functions to format the data:\n\nnp.block: this function appends arrays together into a 2D array\n\nnp.newaxis: this function forces the 1D array into a 2D column vector with 10 rows and 1 column.\n\narray_out = np.block([x[:, np.newaxis], y[:, np.newaxis]])\nprint(\"the output array has shape \", array_out.shape, \" with values:\")\nprint(array_out)\n\n\n\n","type":"content","url":"/save-load-arrays#rearrange-the-data-into-a-single-2d-array","position":21},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Save the data to csv file using savetxt"},"type":"lvl2","url":"/save-load-arrays#save-the-data-to-csv-file-using-savetxt","position":22},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Save the data to csv file using savetxt"},"content":"You use savetxt with a three options to make your file easier to read:\n\nX = array_out: this option tells savetxt to save your 2D array, array_out, to the file x_y-squared.csv\n\nheader = 'x, y': this option writes a header before any data that labels the columns of the csv\n\ndelimiter = ',': this option tells savetxt to place a comma between each column in the file\n\nnp.savetxt(\"x_y-squared.csv\", X=array_out, header=\"x, y\", delimiter=\",\")\n\n\n\nOpen the file, x_y-squared.csv, and you’ll see the following:\n\n!head x_y-squared.csv\n\n\n\n","type":"content","url":"/save-load-arrays#save-the-data-to-csv-file-using-savetxt","position":23},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Our arrays as a csv file"},"type":"lvl2","url":"/save-load-arrays#our-arrays-as-a-csv-file","position":24},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Our arrays as a csv file"},"content":"There are two features that you shoud notice here:\n\nNumPy uses # to ignore headings when using loadtxt. If you’re using\n\n\nloadtxt\nwith other csv files, you can skip header rows with skiprows = .\n\nThe integers were written in scientific notation. You can specify\nthe format of the text using the savetxt option, \n\nfmt = , but it\nwill still be written with ASCII characters. In general, you cannot\npreserve the type of ASCII numbers as float or int.\n\nNow, delete x and y again and assign them to your columns in x-y_squared.csv.\n\ndel x, y\n\n\n\n\n\nload_xy = np.loadtxt(\"x_y-squared.csv\", delimiter=\",\")\n\n\n\n\n\nload_xy.shape\n\n\n\n\n\nx = load_xy[:, 0]\ny = load_xy[:, 1]\nprint(x)\nprint(y)\n\n\n\n","type":"content","url":"/save-load-arrays#our-arrays-as-a-csv-file","position":25},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Success, but remember your types"},"type":"lvl2","url":"/save-load-arrays#success-but-remember-your-types","position":26},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Success, but remember your types"},"content":"When you saved the arrays to the csv file, you did not preserve the\nint type. When loading the arrays back into your workspace the default process will be to load the csv file as a 2D floating point array e.g. load_xy.dtype == 'float64' and load_xy.shape == (10, 2).\n\n","type":"content","url":"/save-load-arrays#success-but-remember-your-types","position":27},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Wrapping up"},"type":"lvl2","url":"/save-load-arrays#wrapping-up","position":28},{"hierarchy":{"lvl1":"Saving and sharing your NumPy arrays","lvl2":"Wrapping up"},"content":"In conclusion, you can create, save, and load arrays in NumPy. Saving arrays makes sharing your work and collaboration much easier. There are other ways Python can save data to files, such as \n\npickle, but savez and savetxt will serve most of your storage needs for future NumPy work and sharing with other people, respectively.\n\nNext steps: you can import data with missing values from \n\nImporting with genfromtext or learn more about general NumPy IO with \n\nReading and Writing Files.","type":"content","url":"/save-load-arrays#wrapping-up","position":29},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India"},"type":"lvl1","url":"/tutorial-air-quality-analysis","position":0},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India"},"content":"","type":"content","url":"/tutorial-air-quality-analysis","position":1},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll do"},"type":"lvl2","url":"/tutorial-air-quality-analysis#what-youll-do","position":2},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll do"},"content":"Calculate Air Quality Indices (AQI) and perform paired Student’s t-test on them.","type":"content","url":"/tutorial-air-quality-analysis#what-youll-do","position":3},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll learn"},"type":"lvl2","url":"/tutorial-air-quality-analysis#what-youll-learn","position":4},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll learn"},"content":"You’ll learn the concept of moving averages\n\nYou’ll learn how to calculate Air Quality Index (AQI)\n\nYou’ll learn how to perform a paired Student’s t-test and find the t and p values\n\nYou’ll learn how to interpret these values","type":"content","url":"/tutorial-air-quality-analysis#what-youll-learn","position":5},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll need"},"type":"lvl2","url":"/tutorial-air-quality-analysis#what-youll-need","position":6},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What you’ll need"},"content":"SciPy installed in your environment\n\nBasic understanding of statistical terms like population, sample, mean, standard deviation etc.\n\n","type":"content","url":"/tutorial-air-quality-analysis#what-youll-need","position":7},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"The problem of air pollution"},"type":"lvl2","url":"/tutorial-air-quality-analysis#the-problem-of-air-pollution","position":8},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"The problem of air pollution"},"content":"Air pollution is one of the most prominent types of pollution we face that has an immediate effect on our daily lives. The\nCOVID-19 pandemic resulted in lockdowns in different parts of the world; offering a rare opportunity to study the effect of\nhuman activity (or lack thereof) on air pollution. In this tutorial, we will study the air quality in Delhi, one of the\nworst affected cities by air pollution, before and during the lockdown from March to June 2020. For this, we will first compute\nthe Air Quality Index for each hour from the collected pollutant measurements. Next, we will sample these indices and perform\na \n\npaired Student’s t-test on them. It will statistically show us that the air quality improved due to the lockdown, supporting our intuition.\n\nLet’s start by importing the necessary libraries into our environment.\n\nimport numpy as np\nfrom numpy.random import default_rng\nfrom scipy import stats\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#the-problem-of-air-pollution","position":9},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Building the dataset"},"type":"lvl2","url":"/tutorial-air-quality-analysis#building-the-dataset","position":10},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Building the dataset"},"content":"We will use a condensed version of the \n\nAir Quality Data in India dataset. This dataset contains air quality data and AQI (Air Quality Index) at hourly and daily level of various stations across multiple cities in India. The condensed version available with this tutorial contains hourly pollutant measurements for Delhi\nfrom May 31, 2019 to June 30, 2020. It has measurements of the standard pollutants that are required for Air Quality Index calculation and a few other important ones:\nParticulate Matter (PM 2.5 and PM 10), nitrogen dioxide (NO2), ammonia (NH3), sulfur dioxide (SO2), carbon monoxide (CO), ozone (O3), oxides of nitrogen (NOx), nitric oxide (NO), benzene, toluene, and xylene.\n\nLet’s print out the first few rows to have a glimpse of our dataset.\n\n! head air-quality-data.csv\n\n\n\nFor the purpose of this tutorial, we are only concerned with standard pollutants required for calculating the AQI, viz., PM 2.5, PM 10, NO2, NH3, SO2, CO, and O3. So, we will only import these particular columns with \n\nnp.loadtxt. We’ll then \n\nslice and create two sets: pollutants_A with PM 2.5, PM 10, NO2, NH3, and SO2, and pollutants_B with CO and O3. The\ntwo sets will be processed slightly differently, as we’ll see later on.\n\npollutant_data = np.loadtxt(\"air-quality-data.csv\", dtype=float, delimiter=\",\",\n skiprows=1, usecols=range(1, 8))\npollutants_A = pollutant_data[:, 0:5]\npollutants_B = pollutant_data[:, 5:]\n\nprint(pollutants_A.shape)\nprint(pollutants_B.shape)\n\n\n\nOur dataset might contain missing values, denoted by NaN, so let’s do a quick check with \n\nnp.isfinite.\n\nnp.all(np.isfinite(pollutant_data))\n\n\n\nWith this, we have successfully imported the data and checked that it is complete. Let’s move on to the AQI calculations!\n\n","type":"content","url":"/tutorial-air-quality-analysis#building-the-dataset","position":11},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Calculating the Air Quality Index"},"type":"lvl2","url":"/tutorial-air-quality-analysis#calculating-the-air-quality-index","position":12},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Calculating the Air Quality Index"},"content":"We will calculate the AQI using the method adopted by the Central Pollution Control Board of India. To summarize the steps:\n\nCollect 24-hourly average concentration values for the standard pollutants; 8-hourly in case of CO and O3.\n\nCalculate the sub-indices for these pollutants with the formula:Ip = \\dfrac{\\text{IHi – ILo}}{\\text{BPHi – BPLo}}\\cdot{\\text{Cp – BPLo}} + \\text{ILo}\n\nWhere,\n\nIp = sub-index of pollutant pCp = averaged concentration of pollutant pBPHi = concentration breakpoint i.e. greater than or equal to CpBPLo = concentration breakpoint i.e. less than or equal to CpIHi = AQI value corresponding to BPHiILo = AQI value corresponding to BPLo\n\nThe maximum sub-index at any given time is the Air Quality Index.\n\nThe Air Quality Index is calculated with the help of breakpoint ranges as shown in the chart below.\n\nLet’s create two arrays to store the AQI ranges and breakpoints so that we can use them later for our calculations.\n\nAQI = np.array([0, 51, 101, 201, 301, 401, 501])\n\nbreakpoints = {\n 'PM2.5': np.array([0, 31, 61, 91, 121, 251]),\n 'PM10': np.array([0, 51, 101, 251, 351, 431]),\n 'NO2': np.array([0, 41, 81, 181, 281, 401]),\n 'NH3': np.array([0, 201, 401, 801, 1201, 1801]),\n 'SO2': np.array([0, 41, 81, 381, 801, 1601]),\n 'CO': np.array([0, 1.1, 2.1, 10.1, 17.1, 35]),\n 'O3': np.array([0, 51, 101, 169, 209, 749])\n}\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#calculating-the-air-quality-index","position":13},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Moving averages","lvl2":"Calculating the Air Quality Index"},"type":"lvl3","url":"/tutorial-air-quality-analysis#moving-averages","position":14},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Moving averages","lvl2":"Calculating the Air Quality Index"},"content":"For the first step, we have to compute \n\nmoving averages for pollutants_A over a window of 24 hours and pollutants_B over a\nwindow of 8 hours. We will write a simple function moving_mean using \n\nnp.cumsum and \n\nsliced indexing to achieve this.\n\nTo make sure both the sets are of the same length, we will truncate the pollutants_B_8hr_avg according to the length of\npollutants_A_24hr_avg. This will also ensure we have concentrations for all the pollutants over the same period of time.\n\ndef moving_mean(a, n):\n ret = np.cumsum(a, dtype=float, axis=0)\n ret[n:] = ret[n:] - ret[:-n]\n return ret[n - 1:] / n\n\npollutants_A_24hr_avg = moving_mean(pollutants_A, 24)\npollutants_B_8hr_avg = moving_mean(pollutants_B, 8)[-(pollutants_A_24hr_avg.shape[0]):]\n\n\n\nNow, we can join both sets with \n\nnp.concatenate to form a single data set of all the averaged concentrations. Note that we have to join our arrays column-wise so we pass the\naxis=1 parameter.\n\npollutants = np.concatenate((pollutants_A_24hr_avg, pollutants_B_8hr_avg), axis=1)\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#moving-averages","position":15},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Sub-indices","lvl2":"Calculating the Air Quality Index"},"type":"lvl3","url":"/tutorial-air-quality-analysis#sub-indices","position":16},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Sub-indices","lvl2":"Calculating the Air Quality Index"},"content":"The subindices for each pollutant are calculated according to the linear relationship between the AQI and standard breakpoint ranges with the formula as above:Ip = \\dfrac{\\text{IHi – ILo}}{\\text{BPHi – BPLo}}\\cdot{\\text{Cp – BPLo}} + \\text{ILo}\n\nThe compute_indices function first fetches the correct upper and lower bounds of AQI categories and breakpoint concentrations for the input concentration and pollutant with the help of arrays AQI and breakpoints we created above. Then, it feeds these values into the formula to calculate the sub-index.\n\ndef compute_indices(pol, con):\n bp = breakpoints[pol]\n \n if pol == 'CO':\n inc = 0.1\n else:\n inc = 1\n \n if bp[0] <= con < bp[1]:\n Bl = bp[0]\n Bh = bp[1] - inc\n Ih = AQI[1] - inc\n Il = AQI[0]\n\n elif bp[1] <= con < bp[2]:\n Bl = bp[1]\n Bh = bp[2] - inc\n Ih = AQI[2] - inc\n Il = AQI[1]\n\n elif bp[2] <= con < bp[3]:\n Bl = bp[2]\n Bh = bp[3] - inc\n Ih = AQI[3] - inc\n Il = AQI[2]\n\n elif bp[3] <= con < bp[4]:\n Bl = bp[3]\n Bh = bp[4] - inc\n Ih = AQI[4] - inc\n Il = AQI[3]\n\n elif bp[4] <= con < bp[5]:\n Bl = bp[4]\n Bh = bp[5] - inc\n Ih = AQI[5] - inc\n Il = AQI[4]\n\n elif bp[5] <= con:\n Bl = bp[5]\n Bh = bp[5] + bp[4] - (2 * inc)\n Ih = AQI[6]\n Il = AQI[5]\n\n else:\n print(\"Concentration out of range!\")\n \n return ((Ih - Il) / (Bh - Bl)) * (con - Bl) + Il\n\n\n\nWe will use \n\nnp.vectorize to utilize the concept of vectorization. This simply means we don’t have loop over each element of the pollutant array ourselves. \n\nVectorization is one of the key advantages of NumPy.\n\nvcompute_indices = np.vectorize(compute_indices)\n\n\n\nBy calling our vectorized function vcompute_indices for each pollutant, we get the sub-indices. To get back an array with the original shape, we use \n\nnp.stack.\n\nsub_indices = np.stack((vcompute_indices('PM2.5', pollutants[..., 0]),\n vcompute_indices('PM10', pollutants[..., 1]),\n vcompute_indices('NO2', pollutants[..., 2]),\n vcompute_indices('NH3', pollutants[..., 3]),\n vcompute_indices('SO2', pollutants[..., 4]),\n vcompute_indices('CO', pollutants[..., 5]),\n vcompute_indices('O3', pollutants[..., 6])), axis=1)\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#sub-indices","position":17},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Air quality indices","lvl2":"Calculating the Air Quality Index"},"type":"lvl3","url":"/tutorial-air-quality-analysis#air-quality-indices","position":18},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Air quality indices","lvl2":"Calculating the Air Quality Index"},"content":"Using \n\nnp.max, we find out the maximum sub-index for each period, which is our Air Quality Index!\n\naqi_array = np.max(sub_indices, axis=1)\n\n\n\nWith this, we have the AQI for every hour from June 1, 2019 to June 30, 2020. Note that even though we started out with\nthe data from 31st May, we truncated that during the moving averages step.\n\n","type":"content","url":"/tutorial-air-quality-analysis#air-quality-indices","position":19},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Paired Student’s t-test on the AQIs"},"type":"lvl2","url":"/tutorial-air-quality-analysis#paired-students-t-test-on-the-aqis","position":20},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Paired Student’s t-test on the AQIs"},"content":"Hypothesis testing is a form of descriptive statistics used to help us make decisions with the data. From the calculated AQI data, we want to find out if there was a statistically significant difference in average AQI before and after the lockdown was imposed. We will use the left-tailed, \n\npaired Student’s t-test to compute two test statistics- the \n\nt statistic and the \n\np value. We will then compare these with the corresponding critical values to make a decision.","type":"content","url":"/tutorial-air-quality-analysis#paired-students-t-test-on-the-aqis","position":21},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Sampling","lvl2":"Paired Student’s t-test on the AQIs"},"type":"lvl3","url":"/tutorial-air-quality-analysis#sampling","position":22},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Sampling","lvl2":"Paired Student’s t-test on the AQIs"},"content":"We will now import the datetime column from our original dataset into a \n\ndatetime64 dtype array. We will use this array to index the AQI array and obtain subsets of the dataset.\n\ndatetime = np.loadtxt(\"air-quality-data.csv\", dtype='M8[h]', delimiter=\",\",\n skiprows=1, usecols=(0, ))[-(pollutants_A_24hr_avg.shape[0]):]\n\n\n\nSince total lockdown commenced in Delhi from March 24, 2020, the after-lockdown subset is of the period March 24, 2020 to June 30, 2020. The before-lockdown subset is for the same length of time before 24th March.\n\nafter_lock = aqi_array[np.where(datetime >= np.datetime64('2020-03-24T00'))]\n\nbefore_lock = aqi_array[np.where(datetime <= np.datetime64('2020-03-21T00'))][-(after_lock.shape[0]):]\n\nprint(after_lock.shape)\nprint(before_lock.shape)\n\n\n\nTo make sure our samples are approximately normally distributed, we take samples of size n = 30. before_sample and after_sample are the set of random observations drawn before and after the total lockdown. We use \n\nrandom​.Generator​.choice to generate the samples.\n\nrng = default_rng()\n\nbefore_sample = rng.choice(before_lock, size=30, replace=False)\nafter_sample = rng.choice(after_lock, size=30, replace=False)\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#sampling","position":23},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Defining the hypothesis","lvl2":"Paired Student’s t-test on the AQIs"},"type":"lvl3","url":"/tutorial-air-quality-analysis#defining-the-hypothesis","position":24},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Defining the hypothesis","lvl2":"Paired Student’s t-test on the AQIs"},"content":"Let us assume that there is no significant difference between the sample means before and after the lockdown. This will be the null hypothesis. The alternative hypothesis would be that there is a significant difference between the means and the AQI improved. Mathematically,\n\nH_{0}: \\mu_\\text{after-before} = 0 H_{a}: \\mu_\\text{after-before} < 0\n\n","type":"content","url":"/tutorial-air-quality-analysis#defining-the-hypothesis","position":25},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Calculating the test statistics","lvl2":"Paired Student’s t-test on the AQIs"},"type":"lvl3","url":"/tutorial-air-quality-analysis#calculating-the-test-statistics","position":26},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl3":"Calculating the test statistics","lvl2":"Paired Student’s t-test on the AQIs"},"content":"We will use the t statistic to evaluate our hypothesis and even calculate the p value from it. The formula for the t statistic is:t = \\frac{\\mu_\\text{after-before}}{\\sqrt{\\sigma^{2}/n}}\n\nwhere,\n\n\\mu_\\text{after-before} = mean differences of samples \\sigma^{2} = variance of mean differences n = sample size\n\ndef t_test(x, y):\n diff = y - x\n var = np.var(diff, ddof=1)\n num = np.mean(diff)\n denom = np.sqrt(var / len(x))\n return np.divide(num, denom)\n\nt_value = t_test(before_sample, after_sample)\n\n\n\nFor the p value, we will use SciPy’s stats.distributions.t.cdf() function. It takes two arguments- the t statistic and the degrees of freedom (dof). The formula for dof is n - 1.\n\ndof = len(before_sample) - 1\n\np_value = stats.distributions.t.cdf(t_value, dof)\n\nprint(\"The t value is {} and the p value is {}.\".format(t_value, p_value))\n\n\n\n","type":"content","url":"/tutorial-air-quality-analysis#calculating-the-test-statistics","position":27},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What do the t and p values mean?"},"type":"lvl2","url":"/tutorial-air-quality-analysis#what-do-the-t-and-p-values-mean","position":28},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"What do the t and p values mean?"},"content":"We will now compare the calculated test statistics with the critical test statistics. The critical t value is calculated by looking up the \n\nt-distribution table.\n\nFrom the table above, the critical value is 1.699 for 29 dof at a confidence level of 95%. Since we are using the left tailed test, our critical value is -1.699. Clearly, the calculated t value is less than the critical value so we can safely reject the null hypothesis.\n\nThe critical p value, denoted by \\alpha, is usually chosen to be 0.05, corresponding to a confidence level of 95%. If the calculated p value is less than \\alpha, then the null hypothesis can be safely rejected. Clearly, our p value is much less than \\alpha, so we can reject the null hypothesis.\n\nNote that this does not mean we can accept the alternative hypothesis. It only tells us that there is not enough evidence to reject H_{a}. In other words, we fail to reject the alternative hypothesis so, it may be true.\n\n","type":"content","url":"/tutorial-air-quality-analysis#what-do-the-t-and-p-values-mean","position":29},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"In practice..."},"type":"lvl2","url":"/tutorial-air-quality-analysis#in-practice","position":30},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"In practice..."},"content":"The \n\npandas library is preferable to use for time-series data analysis.\n\nThe SciPy stats module provides the \n\nstats.ttest_rel function which can be used to get the t statistic and p value.\n\nIn real life, data are generally not normally distributed. There are tests for such non-normal data like the \n\nWilcoxon test.","type":"content","url":"/tutorial-air-quality-analysis#in-practice","position":31},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Further reading"},"type":"lvl2","url":"/tutorial-air-quality-analysis#further-reading","position":32},{"hierarchy":{"lvl1":"Analyzing the impact of the lockdown on air quality in Delhi, India","lvl2":"Further reading"},"content":"There are various versions of the \n\nStudent’s t-test that you can adopt according to your needs.","type":"content","url":"/tutorial-air-quality-analysis#further-reading","position":33},{"hierarchy":{"lvl1":"Deep learning on MNIST"},"type":"lvl1","url":"/tutorial-deep-learning-on-mnist","position":0},{"hierarchy":{"lvl1":"Deep learning on MNIST"},"content":"This tutorial demonstrates how to build a simple \n\nfeedforward neural network (with one hidden layer) and train it from scratch with NumPy to recognize handwritten digit images.\n\nYour deep learning model — one of the most basic artificial neural networks that resembles the original \n\nmulti-layer perceptron — will learn to classify digits from 0 to 9 from the \n\nMNIST dataset. The dataset contains 60,000 training and 10,000 test images and corresponding labels. Each training and test image is of size 784 (or 28x28 pixels) — this will be your input for the neural network.\n\nBased on the image inputs and their labels (\n\nsupervised learning), your neural network will be trained to learn their features using forward propagation and backpropagation (\n\nreverse-mode differentiation). The final output of the network is a vector of 10 scores — one for each handwritten digit image. You will also evaluate how good your model is at classifying the images on the test set.\n\nThis tutorial was adapted from the work by \n\nAndrew Trask (with the author’s permission).","type":"content","url":"/tutorial-deep-learning-on-mnist","position":1},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Prerequisites"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#prerequisites","position":2},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Prerequisites"},"content":"The reader should have some knowledge of Python, NumPy array manipulation, and linear algebra. In addition, you should be familiar with main concepts of \n\ndeep learning.\n\nTo refresh the memory, you can take the \n\nPython and \n\nLinear algebra on n-dimensional arrays tutorials.\n\nYou are advised to read the \n\nDeep learning paper published in 2015 by Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, who are regarded as some of the pioneers of the field. You should also consider reading Andrew Trask’s \n\nGrokking Deep Learning, which teaches deep learning with NumPy.\n\nIn addition to NumPy, you will be utilizing the following Python standard modules for data loading and processing:\n\nurllib for URL handling\n\nrequest for URL opening\n\ngzip for gzip file decompression\n\npickle to work with the pickle file format\n\nas well as:\n\nMatplotlib for data visualization\n\nThis tutorial can be run locally in an isolated environment, such as \n\nVirtualenv or \n\nconda. You can use \n\nJupyter Notebook or JupyterLab to run each notebook cell. Don’t forget to \n\nset up NumPy and \n\nMatplotlib.","type":"content","url":"/tutorial-deep-learning-on-mnist#prerequisites","position":3},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Table of contents"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#table-of-contents","position":4},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Table of contents"},"content":"Load the MNIST dataset\n\nPreprocess the dataset\n\nBuild and train a small neural network from scratch\n\nNext steps","type":"content","url":"/tutorial-deep-learning-on-mnist#table-of-contents","position":5},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"1. Load the MNIST dataset"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#id-1-load-the-mnist-dataset","position":6},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"1. Load the MNIST dataset"},"content":"In this section, you will download the zipped MNIST dataset files originally developed by Yann LeCun’s research team. (More details of the MNIST dataset are available on \n\nKaggle.) Then, you will transform them into 4 files of NumPy array type using built-in Python modules. Finally, you will split the arrays into training and test sets.\n\n1. Define a variable to store the training/test image/label names of the MNIST dataset in a list:\n\ndata_sources = {\n \"training_images\": \"train-images-idx3-ubyte.gz\", # 60,000 training images.\n \"test_images\": \"t10k-images-idx3-ubyte.gz\", # 10,000 test images.\n \"training_labels\": \"train-labels-idx1-ubyte.gz\", # 60,000 training labels.\n \"test_labels\": \"t10k-labels-idx1-ubyte.gz\", # 10,000 test labels.\n}\n\n\n\n2. Load the data. First check if the data is stored locally; if not, then\ndownload it.\n\n# Use responsibly! When running notebooks locally, be sure to keep local\n# copies of the datasets to prevent unnecessary server requests\nheaders = {\n \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0\"\n}\nrequest_opts = {\n \"headers\": headers,\n \"params\": {\"raw\": \"true\"},\n}\n\n\n\nimport requests\nimport os\n\ndata_dir = \"../_data\"\nos.makedirs(data_dir, exist_ok=True)\n\nbase_url = \"https://ossci-datasets.s3.amazonaws.com/mnist/\"\n\nfor fname in data_sources.values():\n fpath = os.path.join(data_dir, fname)\n if not os.path.exists(fpath):\n print(\"Downloading file: \" + fname)\n resp = requests.get(base_url + fname, stream=True, **request_opts)\n resp.raise_for_status() # Ensure download was succesful\n with open(fpath, \"wb\") as fh:\n for chunk in resp.iter_content(chunk_size=128):\n fh.write(chunk)\n\n\n\n\n\n\n\n3. Decompress the 4 files and create 4 \n\nndarrays, saving them into a dictionary. Each original image is of size 28x28 and neural networks normally expect a 1D vector input; therefore, you also need to reshape the images by multiplying 28 by 28 (784).\n\nimport gzip\nimport numpy as np\n\nmnist_dataset = {}\n\n# Images\nfor key in (\"training_images\", \"test_images\"):\n with gzip.open(os.path.join(data_dir, data_sources[key]), \"rb\") as mnist_file:\n mnist_dataset[key] = np.frombuffer(\n mnist_file.read(), np.uint8, offset=16\n ).reshape(-1, 28 * 28)\n# Labels\nfor key in (\"training_labels\", \"test_labels\"):\n with gzip.open(os.path.join(data_dir, data_sources[key]), \"rb\") as mnist_file:\n mnist_dataset[key] = np.frombuffer(mnist_file.read(), np.uint8, offset=8)\n\n\n\n4. Split the data into training and test sets using the standard notation of x for data and y for labels, calling the training and test set images x_train and x_test, and the labels y_train and y_test:\n\nx_train, y_train, x_test, y_test = (\n mnist_dataset[\"training_images\"],\n mnist_dataset[\"training_labels\"],\n mnist_dataset[\"test_images\"],\n mnist_dataset[\"test_labels\"],\n)\n\n\n\n5. You can confirm that the shape of the image arrays is (60000, 784) and (10000, 784) for training and test sets, respectively, and the labels — (60000,) and (10000,):\n\nprint(\n \"The shape of training images: {} and training labels: {}\".format(\n x_train.shape, y_train.shape\n )\n)\nprint(\n \"The shape of test images: {} and test labels: {}\".format(\n x_test.shape, y_test.shape\n )\n)\n\n\n\n6. And you can inspect some images using Matplotlib:\n\nimport matplotlib.pyplot as plt\n\n# Take the 60,000th image (indexed at 59,999) from the training set,\n# reshape from (784, ) to (28, 28) to have a valid shape for displaying purposes.\nmnist_image = x_train[59999, :].reshape(28, 28)\n\nfig, ax = plt.subplots()\n# Set the color mapping to grayscale to have a black background.\nax.imshow(mnist_image, cmap=\"gray\")\n\n\n\n# Display 5 random images from the training set.\nnum_examples = 5\nseed = 147197952744\nrng = np.random.default_rng(seed)\n\nfig, axes = plt.subplots(1, num_examples)\nfor sample, ax in zip(rng.choice(x_train, size=num_examples, replace=False), axes):\n ax.imshow(sample.reshape(28, 28), cmap=\"gray\")\n\n\n\nAbove are five images taken from the MNIST training set. Various hand-drawn\nArabic numerals are shown, with exact values chosen randomly with each run of the code.\n\nNote: You can also visualize a sample image as an array by printing x_train[59999]. Here, 59999 is your 60,000th training image sample (0 would be your first). Your output will be quite long and should contain an array of 8-bit integers:...\n 0, 0, 38, 48, 48, 22, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 62, 97, 198, 243, 254, 254, 212, 27, 0, 0, 0, 0,\n...\n\n# Display the label of the 60,000th image (indexed at 59,999) from the training set.\ny_train[59999]\n\n\n\n","type":"content","url":"/tutorial-deep-learning-on-mnist#id-1-load-the-mnist-dataset","position":7},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"2. Preprocess the data"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#id-2-preprocess-the-data","position":8},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"2. Preprocess the data"},"content":"Neural networks can work with inputs that are in a form of tensors (multidimensional arrays) of floating-point type. When preprocessing the data, you should consider the following processes: \n\nvectorization and \n\nconversion to a floating-point format.\n\nSince the MNIST data is already vectorized and the arrays are of dtype uint8, your next challenge is to convert them to a floating-point format, such as float64 (\n\ndouble-precision):\n\nNormalizing the image data: a \n\nfeature scaling procedure that can speed up the neural network training process by standardizing the \n\ndistribution of your input data.\n\nOne-hot/categorical encoding of the image labels.\n\nIn practice, you can use different types of floating-point precision depending on your goals and you can find more information about that in the \n\nNvidia and \n\nGoogle Cloud blog posts.","type":"content","url":"/tutorial-deep-learning-on-mnist#id-2-preprocess-the-data","position":9},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Convert the image data to the floating-point format","lvl2":"2. Preprocess the data"},"type":"lvl3","url":"/tutorial-deep-learning-on-mnist#convert-the-image-data-to-the-floating-point-format","position":10},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Convert the image data to the floating-point format","lvl2":"2. Preprocess the data"},"content":"The images data contain 8-bit integers encoded in the [0, 255] interval with color values between 0 and 255.\n\nYou will normalize them into floating-point arrays in the [0, 1] interval by dividing them by 255.\n\n1. Check that the vectorized image data has type uint8:\n\nprint(\"The data type of training images: {}\".format(x_train.dtype))\nprint(\"The data type of test images: {}\".format(x_test.dtype))\n\n\n\n2. Normalize the arrays by dividing them by 255 (and thus promoting the data type from uint8 to float64) and then assign the train and test image data variables — x_train and x_test — to training_images and train_labels, respectively.\nTo reduce the model training and evaluation time in this example, only a subset\nof the training and test images will be used.\nBoth training_images and test_images will contain only 1,000 samples each out\nof the complete datasets of 60,000 and 10,000 images, respectively.\nThese values can be controlled by changing the training_sample and\ntest_sample below, up to their maximum values of 60,000 and 10,000.\n\ntraining_sample, test_sample = 1000, 1000\ntraining_images = x_train[0:training_sample] / 255\ntest_images = x_test[0:test_sample] / 255\n\n\n\n3. Confirm that the image data has changed to the floating-point format:\n\nprint(\"The data type of training images: {}\".format(training_images.dtype))\nprint(\"The data type of test images: {}\".format(test_images.dtype))\n\n\n\nNote: You can also check that normalization was successful by printing training_images[0] in a notebook cell. Your long output should contain an array of floating-point numbers:...\n 0. , 0. , 0.01176471, 0.07058824, 0.07058824,\n 0.07058824, 0.49411765, 0.53333333, 0.68627451, 0.10196078,\n 0.65098039, 1. , 0.96862745, 0.49803922, 0. ,\n...","type":"content","url":"/tutorial-deep-learning-on-mnist#convert-the-image-data-to-the-floating-point-format","position":11},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Convert the labels to floating point through categorical/one-hot encoding","lvl2":"2. Preprocess the data"},"type":"lvl3","url":"/tutorial-deep-learning-on-mnist#convert-the-labels-to-floating-point-through-categorical-one-hot-encoding","position":12},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Convert the labels to floating point through categorical/one-hot encoding","lvl2":"2. Preprocess the data"},"content":"You will use one-hot encoding to embed each digit label as an all-zero vector with np.zeros() and place 1 for a label index. As a result, your label data will be arrays with 1.0 (or 1.) in the position of each image label.\n\nSince there are 10 labels (from 0 to 9) in total, your arrays will look similar to this:array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])\n\n1. Confirm that the image label data are integers with dtype uint8:\n\nprint(\"The data type of training labels: {}\".format(y_train.dtype))\nprint(\"The data type of test labels: {}\".format(y_test.dtype))\n\n\n\n2. Define a function that performs one-hot encoding on arrays:\n\ndef one_hot_encoding(labels, dimension=10):\n # Define a one-hot variable for an all-zero vector\n # with 10 dimensions (number labels from 0 to 9).\n one_hot_labels = labels[..., None] == np.arange(dimension)[None]\n # Return one-hot encoded labels.\n return one_hot_labels.astype(np.float64)\n\n\n\n3. Encode the labels and assign the values to new variables:\n\ntraining_labels = one_hot_encoding(y_train[:training_sample])\ntest_labels = one_hot_encoding(y_test[:test_sample])\n\n\n\n4. Check that the data type has changed to floating point:\n\nprint(\"The data type of training labels: {}\".format(training_labels.dtype))\nprint(\"The data type of test labels: {}\".format(test_labels.dtype))\n\n\n\n5. Examine a few encoded labels:\n\nprint(training_labels[0])\nprint(training_labels[1])\nprint(training_labels[2])\n\n\n\n...and compare to the originals:\n\nprint(y_train[0])\nprint(y_train[1])\nprint(y_train[2])\n\n\n\nYou have finished preparing the dataset.","type":"content","url":"/tutorial-deep-learning-on-mnist#convert-the-labels-to-floating-point-through-categorical-one-hot-encoding","position":13},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"3. Build and train a small neural network from scratch"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#id-3-build-and-train-a-small-neural-network-from-scratch","position":14},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"3. Build and train a small neural network from scratch"},"content":"In this section you will familiarize yourself with some high-level concepts of the basic building blocks of a deep learning model. You can refer to the original \n\nDeep learning research publication for more information.\n\nAfterwards, you will construct the building blocks of a simple deep learning model in Python and NumPy and train it to learn to identify handwritten digits from the MNIST dataset with a certain level of accuracy.","type":"content","url":"/tutorial-deep-learning-on-mnist#id-3-build-and-train-a-small-neural-network-from-scratch","position":15},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Neural network building blocks with NumPy","lvl2":"3. Build and train a small neural network from scratch"},"type":"lvl3","url":"/tutorial-deep-learning-on-mnist#neural-network-building-blocks-with-numpy","position":16},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Neural network building blocks with NumPy","lvl2":"3. Build and train a small neural network from scratch"},"content":"Layers: These building blocks work as data filters — they process data and learn representations from inputs to better predict the target outputs.\n\nYou will use 1 hidden layer in your model to pass the inputs forward (forward propagation) and propagate the gradients/error derivatives of a loss function backward (backpropagation). These are input, hidden and output layers.\n\nIn the hidden (middle) and output (last) layers, the neural network model will compute the weighted sum of inputs. To compute this process, you will use NumPy’s matrix multiplication function (the “dot multiply” or np.dot(layer, weights)).\n\nNote: For simplicity, the bias term is omitted in this example (there is no np.dot(layer, weights) + bias).\n\nWeights: These are important adjustable parameters that the neural network fine-tunes by forward and backward propagating the data. They are optimized through a process called \n\ngradient descent. Before the model training starts, the weights are randomly initialized with NumPy’s \n\nGenerator.random().\n\nThe optimal weights should produce the highest prediction accuracy and the lowest error on the training and test sets.\n\nActivation function: Deep learning models are capable of determining non-linear relationships between inputs and outputs and these \n\nnon-linear functions are usually applied to the output of each layer.\n\nYou will use a \n\nrectified linear unit (ReLU) to the hidden layer’s output (for example, relu(np.dot(layer, weights)).\n\nRegularization: This \n\ntechnique helps prevent the neural network model from \n\noverfitting.\n\nIn this example, you will use a method called dropout — \n\ndilution — that randomly sets a number of features in a layer to 0s. You will define it with NumPy’s \n\nGenerator.integers() method and apply it to the hidden layer of the network.\n\nLoss function: The computation determines the quality of predictions by comparing the image labels (the truth) with the predicted values in the final layer’s output.\n\nFor simplicity, you will use a basic total squared error using NumPy’s np.sum() function (for example, np.sum((final_layer_output - image_labels) ** 2)).\n\nAccuracy: This metric measures the accuracy of the network’s ability to predict on the data it hasn’t seen.","type":"content","url":"/tutorial-deep-learning-on-mnist#neural-network-building-blocks-with-numpy","position":17},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Model architecture and training summary","lvl2":"3. Build and train a small neural network from scratch"},"type":"lvl3","url":"/tutorial-deep-learning-on-mnist#model-architecture-and-training-summary","position":18},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Model architecture and training summary","lvl2":"3. Build and train a small neural network from scratch"},"content":"Here is a summary of the neural network model architecture and the training process:\n\nThe input layer:\n\nIt is the input for the network — the previously preprocessed data that is loaded from training_images into layer_0.\n\nThe hidden (middle) layer:\n\nlayer_1 takes the output from the previous layer and performs matrix-multiplication of the input by weights (weights_1) with NumPy’s np.dot()).\n\nThen, this output is passed through the ReLU activation function for non-linearity and then dropout is applied to help with overfitting.\n\nThe output (last) layer:\n\nlayer_2 ingests the output from layer_1 and repeats the same “dot multiply” process with weights_2.\n\nThe final output returns 10 scores for each of the 0-9 digit labels. The network model ends with a size 10 layer — a 10-dimensional vector.\n\nForward propagation, backpropagation, training loop:\n\nIn the beginning of model training, your network randomly initializes the weights and feeds the input data forward through the hidden and output layers. This process is the forward pass or forward propagation.\n\nThen, the network propagates the “signal” from the loss function back through the hidden layer and adjusts the weights with the help of the learning rate parameter (more on that later).\n\nNote: In more technical terms, you:\n\nMeasure the error by comparing the real label of an image (the truth) with the prediction of the model.\n\nDifferentiate the loss function.\n\nIngest the \n\ngradients with the respect to the output, and backpropagate them with the respect to the inputs through the layer(s).\n\nSince the network contains tensor operations and weight matrices, backpropagation uses the \n\nchain rule.\n\nWith each iteration (epoch) of the neural network training, this forward and backward propagation cycle adjusts the weights, which is reflected in the accuracy and error metrics. As you train the model, your goal is to minimize the error and maximize the accuracy on the training data, where the model learns from, as well as the test data, where you evaluate the model.","type":"content","url":"/tutorial-deep-learning-on-mnist#model-architecture-and-training-summary","position":19},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Compose the model and begin training and testing it","lvl2":"3. Build and train a small neural network from scratch"},"type":"lvl3","url":"/tutorial-deep-learning-on-mnist#compose-the-model-and-begin-training-and-testing-it","position":20},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl3":"Compose the model and begin training and testing it","lvl2":"3. Build and train a small neural network from scratch"},"content":"Having covered the main deep learning concepts and the neural network architecture, let’s write the code.\n\n1. We’ll start by creating a new random number generator, providing a seed\nfor reproducibility:\n\nseed = 884736743\nrng = np.random.default_rng(seed)\n\n\n\n2. For the hidden layer, define the ReLU activation function for forward propagation and ReLU’s derivative that will be used during backpropagation:\n\n# Define ReLU that returns the input if it's positive and 0 otherwise.\ndef relu(x):\n return (x >= 0) * x\n\n\n# Set up a derivative of the ReLU function that returns 1 for a positive input\n# and 0 otherwise.\ndef relu2deriv(output):\n return output >= 0\n\n\n\n3. Set certain default values of \n\nhyperparameters, such as:\n\nLearning rate: learning_rate — helps limit the magnitude of weight updates to prevent them from overcorrecting.\n\nEpochs (iterations): epochs — the number of complete passes — forward and backward propagations — of the data through the network. This parameter can positively or negatively affect the results. The higher the iterations, the longer the learning process may take. Because this is a computationally intensive task, we have chosen a very low number of epochs (20). To get meaningful results, you should choose a much larger number.\n\nSize of the hidden (middle) layer in a network: hidden_size — different sizes of the hidden layer can affect the results during training and testing.\n\nSize of the input: pixels_per_image — you have established that the image input is 784 (28x28) (in pixels).\n\nNumber of labels: num_labels — indicates the output number for the output layer where the predictions occur for 10 (0 to 9) handwritten digit labels.\n\nlearning_rate = 0.005\nepochs = 20\nhidden_size = 100\npixels_per_image = 784\nnum_labels = 10\n\n\n\n4. Initialize the weight vectors that will be used in the hidden and output layers with random values:\n\nweights_1 = 0.2 * rng.random((pixels_per_image, hidden_size)) - 0.1\nweights_2 = 0.2 * rng.random((hidden_size, num_labels)) - 0.1\n\n\n\n5. Set up the neural network’s learning experiment with a training loop and start the training process.\nNote that the model is evaluated against the test set at each epoch to track\nits performance over the training epochs.\n\nStart the training process:\n\n# To store training and test set losses and accurate predictions\n# for visualization.\nstore_training_loss = []\nstore_training_accurate_pred = []\nstore_test_loss = []\nstore_test_accurate_pred = []\n\n# This is a training loop.\n# Run the learning experiment for a defined number of epochs (iterations).\nfor j in range(epochs):\n\n #################\n # Training step #\n #################\n\n # Set the initial loss/error and the number of accurate predictions to zero.\n training_loss = 0.0\n training_accurate_predictions = 0\n\n # For all images in the training set, perform a forward pass\n # and backpropagation and adjust the weights accordingly.\n for i in range(len(training_images)):\n # Forward propagation/forward pass:\n # 1. The input layer:\n # Initialize the training image data as inputs.\n layer_0 = training_images[i]\n # 2. The hidden layer:\n # Take in the training image data into the middle layer by\n # matrix-multiplying it by randomly initialized weights.\n layer_1 = np.dot(layer_0, weights_1)\n # 3. Pass the hidden layer's output through the ReLU activation function.\n layer_1 = relu(layer_1)\n # 4. Define the dropout function for regularization.\n dropout_mask = rng.integers(low=0, high=2, size=layer_1.shape)\n # 5. Apply dropout to the hidden layer's output.\n layer_1 *= dropout_mask * 2\n # 6. The output layer:\n # Ingest the output of the middle layer into the the final layer\n # by matrix-multiplying it by randomly initialized weights.\n # Produce a 10-dimension vector with 10 scores.\n layer_2 = np.dot(layer_1, weights_2)\n\n # Backpropagation/backward pass:\n # 1. Measure the training error (loss function) between the actual\n # image labels (the truth) and the prediction by the model.\n training_loss += np.sum((training_labels[i] - layer_2) ** 2)\n # 2. Increment the accurate prediction count.\n training_accurate_predictions += int(\n np.argmax(layer_2) == np.argmax(training_labels[i])\n )\n # 3. Differentiate the loss function/error.\n layer_2_delta = training_labels[i] - layer_2\n # 4. Propagate the gradients of the loss function back through the hidden layer.\n layer_1_delta = np.dot(weights_2, layer_2_delta) * relu2deriv(layer_1)\n # 5. Apply the dropout to the gradients.\n layer_1_delta *= dropout_mask\n # 6. Update the weights for the middle and input layers\n # by multiplying them by the learning rate and the gradients.\n weights_1 += learning_rate * np.outer(layer_0, layer_1_delta)\n weights_2 += learning_rate * np.outer(layer_1, layer_2_delta)\n\n # Store training set losses and accurate predictions.\n store_training_loss.append(training_loss)\n store_training_accurate_pred.append(training_accurate_predictions)\n\n ###################\n # Evaluation step #\n ###################\n\n # Evaluate model performance on the test set at each epoch.\n\n # Unlike the training step, the weights are not modified for each image\n # (or batch). Therefore the model can be applied to the test images in a\n # vectorized manner, eliminating the need to loop over each image\n # individually:\n\n results = relu(test_images @ weights_1) @ weights_2\n\n # Measure the error between the actual label (truth) and prediction values.\n test_loss = np.sum((test_labels - results) ** 2)\n\n # Measure prediction accuracy on test set\n test_accurate_predictions = np.sum(\n np.argmax(results, axis=1) == np.argmax(test_labels, axis=1)\n )\n\n # Store test set losses and accurate predictions.\n store_test_loss.append(test_loss)\n store_test_accurate_pred.append(test_accurate_predictions)\n\n # Summarize error and accuracy metrics at each epoch\n print(\n (\n f\"Epoch: {j}\\n\"\n f\" Training set error: {training_loss / len(training_images):.3f}\\n\"\n f\" Training set accuracy: {training_accurate_predictions / len(training_images)}\\n\"\n f\" Test set error: {test_loss / len(test_images):.3f}\\n\"\n f\" Test set accuracy: {test_accurate_predictions / len(test_images)}\"\n )\n )\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThe training process may take many minutes, depending on a number of factors, such as the processing power of the machine you are running the experiment on and the number of epochs. To reduce the waiting time, you can change the epoch (iteration) variable from 100 to a lower number, reset the runtime (which will reset the weights), and run the notebook cells again.\n\nAfter executing the cell above, you can visualize the training and test set errors and accuracy for an instance of this training process.\n\nepoch_range = np.arange(epochs) + 1 # Starting from 1\n\n# The training set metrics.\ntraining_metrics = {\n \"accuracy\": np.asarray(store_training_accurate_pred) / len(training_images),\n \"error\": np.asarray(store_training_loss) / len(training_images),\n}\n\n# The test set metrics.\ntest_metrics = {\n \"accuracy\": np.asarray(store_test_accurate_pred) / len(test_images),\n \"error\": np.asarray(store_test_loss) / len(test_images),\n}\n\n# Display the plots.\nfig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 5))\nfor ax, metrics, title in zip(\n axes, (training_metrics, test_metrics), (\"Training set\", \"Test set\")\n):\n # Plot the metrics\n for metric, values in metrics.items():\n ax.plot(epoch_range, values, label=metric.capitalize())\n ax.set_title(title)\n ax.set_xlabel(\"Epochs\")\n ax.legend()\n\n\n\nThe training and testing error is shown above in the left and right\nplots, respectively. As the number of Epochs increases, the total error\ndecreases and the accuracy increases.\n\nThe accuracy rates that your model reaches during training and testing may be somewhat plausible but you may also find the error rates to be quite high.\n\nTo reduce the error during training and testing, you can consider changing the simple loss function to, for example, categorical \n\ncross-entropy. Other possible solutions are discussed below.","type":"content","url":"/tutorial-deep-learning-on-mnist#compose-the-model-and-begin-training-and-testing-it","position":21},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Next steps"},"type":"lvl2","url":"/tutorial-deep-learning-on-mnist#next-steps","position":22},{"hierarchy":{"lvl1":"Deep learning on MNIST","lvl2":"Next steps"},"content":"You have learned how to build and train a simple feed-forward neural network from scratch using just NumPy to classify handwritten MNIST digits.\n\nTo further enhance and optimize your neural network model, you can consider one of a mixture of the following:\n\nIncrease the training sample size from 1,000 to a higher number (up to 60,000).\n\nUse \n\nmini-batches and reduce the learning rate.\n\nAlter the architecture by introducing more hidden layers to make the network \n\ndeeper.\n\nCombine the \n\ncross-entropy loss function with a \n\nsoftmax activation function in the last layer.\n\nIntroduce convolutional layers: replace the feedforward network with a \n\nconvolutional neural network architecture.\n\nUse a higher epoch size to train longer and add more regularization techniques, such as \n\nearly stopping, to prevent \n\noverfitting.\n\nIntroduce a \n\nvalidation set for an unbiased valuation of the model fit.\n\nApply \n\nbatch normalization for faster and more stable training.\n\nTune other parameters, such as the learning rate and hidden layer size.\n\nBuilding a neural network from scratch with NumPy is a great way to learn more about NumPy and about deep learning. However, for real-world applications you should use specialized frameworks — such as \n\nPyTorch, \n\nJAX, \n\nTensorFlow or \n\nMXNet — that provide NumPy-like APIs, have built-in \n\nautomatic differentiation and GPU support, and are designed for high-performance numerical computing and machine learning.\n\nFinally, when developing a machine learning model, you should think about potential ethical issues and apply practices to avoid or mitigate those:\n\nDocument a trained model with a Model Card - see the \n\nModel Cards for Model Reporting paper by Margaret Mitchell et al..\n\nDocument a dataset with a Datasheet - see the \n\nDatasheets for Datasets paper) by Timnit Gebru et al..\n\nConsider the impact of your model - who is affected by it, who does it benefit - see \n\nthe article and \n\ntalk by Pratyusha Kalluri.\n\nFor more resources, see \n\nthis blog post by Rachel Thomas and the \n\nRadical AI podcast.\n\n(Credit to \n\nhsjeong5 for demonstrating how to download MNIST without the use of external libraries.)","type":"content","url":"/tutorial-deep-learning-on-mnist#next-steps","position":23},{"hierarchy":{"lvl1":"Masked Arrays"},"type":"lvl1","url":"/tutorial-ma","position":0},{"hierarchy":{"lvl1":"Masked Arrays"},"content":"","type":"content","url":"/tutorial-ma","position":1},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll do"},"type":"lvl2","url":"/tutorial-ma#what-youll-do","position":2},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll do"},"content":"Use the masked arrays module from NumPy to analyze COVID-19 data and deal with missing values.","type":"content","url":"/tutorial-ma#what-youll-do","position":3},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll learn"},"type":"lvl2","url":"/tutorial-ma#what-youll-learn","position":4},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll learn"},"content":"You’ll understand what are masked arrays and how they can be created\n\nYou’ll see how to access and modify data for masked arrays\n\nYou’ll be able to decide when the use of masked arrays is appropriate in some of your applications","type":"content","url":"/tutorial-ma#what-youll-learn","position":5},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll need"},"type":"lvl2","url":"/tutorial-ma#what-youll-need","position":6},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What you’ll need"},"content":"Basic familiarity with Python. If you would like to refresh your memory, take a look at the \n\nPython tutorial.\n\nBasic familiarity with NumPy\n\nTo run the plots on your computer, you need \n\nmatplotlib.\n\n\n\n","type":"content","url":"/tutorial-ma#what-youll-need","position":7},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What are masked arrays?"},"type":"lvl2","url":"/tutorial-ma#what-are-masked-arrays","position":8},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"What are masked arrays?"},"content":"Consider the following problem. You have a dataset with missing or invalid entries. If you’re doing any kind of processing on this data, and want to skip or flag these unwanted entries without just deleting them, you may have to use conditionals or filter your data somehow. The \n\nnumpy.ma module provides some of the same functionality of \n\nNumPy ndarrays with added structure to ensure invalid entries are not used in computation.\n\nFrom the \n\nReference Guide:\n\nA masked array is the combination of a standard \n\nnumpy.ndarray and a mask. A mask is either nomask, indicating that no value of the associated array is invalid, or an array of booleans that determines for each element of the associated array whether the value is valid or not. When an element of the mask is False, the corresponding element of the associated array is valid and is said to be unmasked. When an element of the mask is True, the corresponding element of the associated array is said to be masked (invalid).\n\nWe can think of a \n\nMaskedArray as a combination of:\n\nData, as a regular numpy.ndarray of any shape or datatype;\n\nA boolean mask with the same shape as the data;\n\nA fill_value, a value that may be used to replace the invalid entries in order to return a standard numpy.ndarray.","type":"content","url":"/tutorial-ma#what-are-masked-arrays","position":9},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"When can they be useful?"},"type":"lvl2","url":"/tutorial-ma#when-can-they-be-useful","position":10},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"When can they be useful?"},"content":"There are a few situations where masked arrays can be more useful than just eliminating the invalid entries of an array:\n\nWhen you want to preserve the values you masked for later processing, without copying the array;\n\nWhen you have to handle many arrays, each with their own mask. If the mask is part of the array, you avoid bugs and the code is possibly more compact;\n\nWhen you have different flags for missing or invalid values, and wish to preserve these flags without replacing them in the original dataset, but exclude them from computations;\n\nIf you can’t avoid or eliminate missing values, but don’t want to deal with \n\nNaN (Not a Number) values in your operations.\n\nMasked arrays are also a good idea since the numpy.ma module also comes with a specific implementation of most \n\nNumPy universal functions (ufuncs), which means that you can still apply fast vectorized functions and operations on masked data. The output is then a masked array. We’ll see some examples of how this works in practice below.\n\n","type":"content","url":"/tutorial-ma#when-can-they-be-useful","position":11},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Using masked arrays to see COVID-19 data"},"type":"lvl2","url":"/tutorial-ma#using-masked-arrays-to-see-covid-19-data","position":12},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Using masked arrays to see COVID-19 data"},"content":"From \n\nKaggle it is possible to download a dataset with initial data about the COVID-19 outbreak in the beginning of 2020. We are going to look at a small subset of this data, contained in the file who_covid_19_sit_rep_time_series.csv. (Note that this file has been replaced with a version without missing data sometime in late 2020.)\n\nimport numpy as np\nimport os\n\n# The os.getcwd() function returns the current folder; you can change\n# the filepath variable to point to the folder where you saved the .csv file\nfilepath = os.getcwd()\nfilename = os.path.join(filepath, \"who_covid_19_sit_rep_time_series.csv\")\n\n\n\nThe data file contains data of different types and is organized as follows:\n\nThe first row is a header line that (mostly) describes the data in each column that follow in the rows below, and beginning in the fourth column, the header is the date of the observation.\n\nThe second through seventh row contain summary data that is of a different type than that which we are going to examine, so we will need to exclude that from the data with which we will work.\n\nThe numerical data we wish to work with begins at column 4, row 8, and extends from there to the rightmost column and the lowermost row.\n\nLet’s explore the data inside this file for the first 14 days of records. To gather data from the .csv file, we will use the \n\nnumpy.genfromtxt function, making sure we select only the columns with actual numbers instead of the first four columns which contain location data. We also skip the first 6\nrows of this file, since they contain other data we are not interested in. Separately, we will extract the information about dates and location for this data.\n\n# Note we are using skip_header and usecols to read only portions of the\n# data file into each variable.\n# Read just the dates for columns 4-18 from the first row\ndates = np.genfromtxt(\n filename,\n dtype=np.str_,\n delimiter=\",\",\n max_rows=1,\n usecols=range(4, 18),\n encoding=\"utf-8-sig\",\n)\n# Read the names of the geographic locations from the first two\n# columns, skipping the first six rows\nlocations = np.genfromtxt(\n filename,\n dtype=np.str_,\n delimiter=\",\",\n skip_header=6,\n usecols=(0, 1),\n encoding=\"utf-8-sig\",\n)\n# Read the numeric data from just the first 14 days\nnbcases = np.genfromtxt(\n filename,\n dtype=np.int_,\n delimiter=\",\",\n skip_header=6,\n usecols=range(4, 18),\n encoding=\"utf-8-sig\",\n)\n\n\n\nIncluded in the numpy.genfromtxt function call, we have selected the \n\nnumpy.dtype for each subset of the data (either an integer - numpy.int_ - or a string of characters - numpy.str_). We have also used the encoding argument to select utf-8-sig as the encoding for the file (read more about encoding in the \n\nofficial Python documentation. You can read more about the numpy.genfromtxt function from the \n\nReference Documentation or from the \n\nBasic IO tutorial.\n\n","type":"content","url":"/tutorial-ma#using-masked-arrays-to-see-covid-19-data","position":13},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Exploring the data"},"type":"lvl2","url":"/tutorial-ma#exploring-the-data","position":14},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Exploring the data"},"content":"First of all, we can plot the whole set of data we have and see what it looks like. In order to get a readable plot, we select only a few of the dates to show in our \n\nx-axis ticks. Note also that in our plot command, we use nbcases.T (the transpose of the nbcases array) since this means we will plot each row of the file as a separate line. We choose to plot a dashed line (using the '--' line style). See the \n\nmatplotlib documentation for more info on this.\n\nimport matplotlib.pyplot as plt\n\nselected_dates = [0, 3, 11, 13]\n\nfig, ax = plt.subplots()\nax.plot(dates, nbcases.T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020\")\n\n\n\nThe graph has a strange shape from January 24th to February 1st. It would be interesting to know where this data comes from. If we look at the locations array we extracted from the .csv file, we can see that we have two columns, where the first would contain regions and the second would contain the name of the country. However, only the first few rows contain data for the the first column (province names in China). Following that, we only have country names. So it would make sense to group all the data from China into a single row. For this, we’ll select from the nbcases array only the rows for which the second entry of the locations array corresponds to China. Next, we’ll use the \n\nnumpy.sum function to sum all the selected rows (axis=0). Note also that row 35 corresponds to the total counts for the whole country for each date. Since we want to calculate the sum ourselves from the provinces data, we have to remove that row first from both locations and nbcases:\n\ntotals_row = 35\nlocations = np.delete(locations, (totals_row), axis=0)\nnbcases = np.delete(nbcases, (totals_row), axis=0)\n\nchina_total = nbcases[locations[:, 1] == \"China\"].sum(axis=0)\nchina_total\n\n\n\nSomething’s wrong with this data - we are not supposed to have negative values in a cumulative data set. What’s going on?\n\n","type":"content","url":"/tutorial-ma#exploring-the-data","position":15},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Missing data"},"type":"lvl2","url":"/tutorial-ma#missing-data","position":16},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Missing data"},"content":"Looking at the data, here’s what we find: there is a period with missing data:\n\nnbcases\n\n\n\nAll the -1 values we are seeing come from numpy.genfromtxt attempting to read missing data from the original .csv file. Obviously, we\ndon’t want to compute missing data as -1 - we just want to skip this value so it doesn’t interfere in our analysis. After importing the numpy.ma module, we’ll create a new array, this time masking the invalid values:\n\nfrom numpy import ma\n\nnbcases_ma = ma.masked_values(nbcases, -1)\n\n\n\nIf we look at the nbcases_ma masked array, this is what we have:\n\nnbcases_ma\n\n\n\nWe can see that this is a different kind of array. As mentioned in the introduction, it has three attributes (data, mask and fill_value).\nKeep in mind that the mask attribute has a True value for elements corresponding to invalid data (represented by two dashes in the data attribute).\n\nLet’s try and see what the data looks like excluding the first row (data from the Hubei province in China) so we can look at the missing data more\nclosely:\n\nfig, ax = plt.subplots()\nax.plot(dates, nbcases_ma[1:].T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020\")\n\n\n\nNow that our data has been masked, let’s try summing up all the cases in China:\n\nchina_masked = nbcases_ma[locations[:, 1] == \"China\"].sum(axis=0)\nchina_masked\n\n\n\nNote that china_masked is a masked array, so it has a different data structure than a regular NumPy array. Now, we can access its data directly by using the .data attribute:\n\nchina_total = china_masked.data\nchina_total\n\n\n\nThat is better: no more negative values. However, we can still see that for some days, the cumulative number of cases seems to go down (from 835 to 10, for example), which does not agree with the definition of “cumulative data”. If we look more closely at the data, we can see that in the period where there was missing data in mainland China, there was valid data for Hong Kong, Taiwan, Macau and “Unspecified” regions of China. Maybe we can remove those from the total sum of cases in China, to get a better understanding of the data.\n\nFirst, we’ll identify the indices of locations in mainland China:\n\nchina_mask = (\n (locations[:, 1] == \"China\")\n & (locations[:, 0] != \"Hong Kong\")\n & (locations[:, 0] != \"Taiwan\")\n & (locations[:, 0] != \"Macau\")\n & (locations[:, 0] != \"Unspecified*\")\n)\n\n\n\nNow, china_mask is an array of boolean values (True or False); we can check that the indices are what we wanted with the \n\nma.nonzero method for masked arrays:\n\nchina_mask.nonzero()\n\n\n\nNow we can correctly sum entries for mainland China:\n\nchina_total = nbcases_ma[china_mask].sum(axis=0)\nchina_total\n\n\n\nWe can replace the data with this information and plot a new graph, focusing on Mainland China:\n\nfig, ax = plt.subplots()\nax.plot(dates, china_total.T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China\")\n\n\n\nIt’s clear that masked arrays are the right solution here. We cannot represent the missing data without mischaracterizing the evolution of the curve.\n\n","type":"content","url":"/tutorial-ma#missing-data","position":17},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Fitting Data"},"type":"lvl2","url":"/tutorial-ma#fitting-data","position":18},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Fitting Data"},"content":"One possibility we can think of is to interpolate the missing data to estimate the number of cases in late January. Observe that we can select the masked elements using the .mask attribute:\n\nchina_total.mask\ninvalid = china_total[china_total.mask]\ninvalid\n\n\n\nWe can also access the valid entries by using the logical negation for this mask:\n\nvalid = china_total[~china_total.mask]\nvalid\n\n\n\nNow, if we want to create a very simple approximation for this data, we should take into account the valid entries around the invalid ones. So first let’s select the dates for which the data is valid. Note that we can use the mask from the china_total masked array to index the dates array:\n\ndates[~china_total.mask]\n\n\n\nFinally, we can use the\n\n\nfitting functionality of the numpy.polynomial\npackage to create a cubic polynomial model that fits the data as best as possible:\n\nt = np.arange(len(china_total))\nmodel = np.polynomial.Polynomial.fit(t[~china_total.mask], valid, deg=3)\n\nfig, ax = plt.subplots()\nax.plot(t, china_total)\nax.plot(t, model(t), \"--\")\n\n\n\nThis plot is not so readable since the lines seem to be over each other, so let’s summarize in a more elaborate plot. We’ll plot the real data when\navailable, and show the cubic fit for unavailable data, using this fit to compute an estimate to the observed number of cases on January 28th 2020, 7 days after the beginning of the records:\n\nfig, ax = plt.subplots()\nax.plot(t, china_total)\nax.plot(t[china_total.mask], model(t)[china_total.mask], \"--\", color=\"orange\")\nax.plot(7, model(7), \"r*\")\n\nax.set_xticks([0, 7, 13], dates[[0, 7, 13]])\nax.set_yticks([0, model(7), 10000, 17500])\nax.legend([\"Mainland China\", \"Cubic estimate\", \"7 days after start\"])\nax.set_title(\n \"COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China\\n\"\n \"Cubic estimate for 7 days after start\"\n)\n\n\n\n","type":"content","url":"/tutorial-ma#fitting-data","position":19},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"In practice"},"type":"lvl2","url":"/tutorial-ma#in-practice","position":20},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"In practice"},"content":"\n\nAdding -1 to missing data is not a problem with numpy.genfromtxt; in this particular case, substituting the missing value with 0 might have been fine, but we’ll see later that this is far from a general solution. Also, it is possible to call the numpy.genfromtxt function using the usemask parameter. If usemask=True, numpy.genfromtxt automatically returns a masked array.\n\n","type":"content","url":"/tutorial-ma#in-practice","position":21},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Further reading"},"type":"lvl2","url":"/tutorial-ma#further-reading","position":22},{"hierarchy":{"lvl1":"Masked Arrays","lvl2":"Further reading"},"content":"Topics not covered in this tutorial can be found in the documentation:\n\nHardmasks vs. \n\nsoftmasks\n\nThe numpy.ma module","type":"content","url":"/tutorial-ma#further-reading","position":23},{"hierarchy":{"lvl1":"Masked Arrays","lvl3":"Reference","lvl2":"Further reading"},"type":"lvl3","url":"/tutorial-ma#reference","position":24},{"hierarchy":{"lvl1":"Masked Arrays","lvl3":"Reference","lvl2":"Further reading"},"content":"Ensheng Dong, Hongru Du, Lauren Gardner, An interactive web-based dashboard to track COVID-19 in real time, The Lancet Infectious Diseases, Volume 20, Issue 5, 2020, Pages 533-534, ISSN 1473-3099, \n\nDong et al. (2020).","type":"content","url":"/tutorial-ma#reference","position":25},{"hierarchy":{"lvl1":"Plotting Fractals"},"type":"lvl1","url":"/tutorial-plotting-fractals","position":0},{"hierarchy":{"lvl1":"Plotting Fractals"},"content":"\n\nFractals are beautiful, compelling mathematical forms that can be oftentimes created from a relatively simple set of instructions. In nature they can be found in various places, such as coastlines, seashells, and ferns, and even were used in creating certain types of antennas. The mathematical idea of fractals was known for quite some time, but they really began to be truly appreciated in the 1970’s as advancements in computer graphics and some accidental discoveries lead researchers like \n\nBenoît Mandelbrot to stumble upon the truly mystifying visualizations that fractals possess.\n\nToday we will learn how to plot these beautiful visualizations and will start to do a bit of exploring for ourselves as we gain familiarity of the mathematics behind fractals and will use the ever powerful NumPy universal functions to perform the necessary calculations efficiently.\n\n","type":"content","url":"/tutorial-plotting-fractals","position":1},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll do"},"type":"lvl2","url":"/tutorial-plotting-fractals#what-youll-do","position":2},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll do"},"content":"Write a function for plotting various Julia sets\n\nCreate a visualization of the Mandelbrot set\n\nWrite a function that computes Newton fractals\n\nExperiment with variations of general fractal types\n\n","type":"content","url":"/tutorial-plotting-fractals#what-youll-do","position":3},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll learn"},"type":"lvl2","url":"/tutorial-plotting-fractals#what-youll-learn","position":4},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll learn"},"content":"A better intuition for how fractals work mathematically\n\nA basic understanding about NumPy universal functions and Boolean Indexing\n\nThe basics of working with complex numbers in NumPy\n\nHow to create your own unique fractal visualizations\n\n","type":"content","url":"/tutorial-plotting-fractals#what-youll-learn","position":5},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll need"},"type":"lvl2","url":"/tutorial-plotting-fractals#what-youll-need","position":6},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"What you’ll need"},"content":"Matplotlib\n\nmake_axis_locatable function from mpl_toolkits API\n\nwhich can be imported as follows:\n\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.axes_grid1 import make_axes_locatable\n\n\n\nSome familiarity with Python, NumPy and matplotlib\n\nAn idea of elementary mathematical functions, such as \n\nexponents, \n\nsin, \n\npolynomials etc\n\nA very basic understanding of \n\ncomplex numbers would be useful\n\nKnowledge of \n\nderivatives may be helpful\n\n","type":"content","url":"/tutorial-plotting-fractals#what-youll-need","position":7},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Warmup"},"type":"lvl2","url":"/tutorial-plotting-fractals#warmup","position":8},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Warmup"},"content":"To gain some intuition for what fractals are, we will begin with an example.\n\nConsider the following equation:\n\nf(z) = z^2 -1 \n\nwhere z is a complex number (i.e of the form a + bi )\n\nFor our convenience, we will write a Python function for it\n\ndef f(z):\n return np.square(z) - 1\n\n\n\nNote that the square function we used is an example of a NumPy universal function; we will come back to the significance of this decision shortly.\n\nTo gain some intuition for the behaviour of the function, we can try plugging in some different values.\n\nFor z = 0, we would expect to get -1:\n\nf(0)\n\n\n\nSince we used a universal function in our design, we can compute multiple inputs at the same time:\n\nz = [4, 1-0.2j, 1.6]\nf(z)\n\n\n\nSome values grow, some values shrink, some don’t experience much change.\n\nTo see the behaviour of the function on a larger scale, we can apply the function to a subset of the complex plane and plot the result. To create our subset (or mesh), we can make use of the \n\nmeshgrid function.\n\nx, y = np.meshgrid(np.linspace(-10, 10, 20), np.linspace(-10, 10, 20))\nmesh = x + (1j * y) # Make mesh of complex plane\n\n\n\nNow we will apply our function to each value contained in the mesh. Since we used a universal function in our design, this means that we can pass in the entire mesh all at once. This is extremely convenient for two reasons: It reduces the amount of code needed to be written and greatly increases the efficiency (as universal functions make use of system level C programming in their computations).\n\nHere we plot the absolute value (or modulus) of each element in the mesh after one “iteration” of the function using a \n\n3D scatterplot:\n\noutput = np.abs(f(mesh)) # Take the absolute value of the output (for plotting)\n\nfig = plt.figure()\nax = plt.axes(projection='3d')\n\nax.scatter(x, y, output, alpha=0.2)\n\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\nax.set_zlabel('Absolute value')\nax.set_title('One Iteration: $ f(z) = z^2 - 1$');\n\n\n\nThis gives us a rough idea of what one iteration of the function does. Certain areas (notably in the areas closest to (0,0i)) remain rather small while other areas grow quite considerably. Note that we lose information about the output by taking the absolute value, but it is the only way for us to be able to make a plot.\n\nLet’s see what happens when we apply 2 iterations to the mesh:\n\noutput = np.abs(f(f(mesh)))\n\nax = plt.axes(projection='3d')\n\nax.scatter(x, y, output, alpha=0.2)\n\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\nax.set_zlabel('Absolute value')\nax.set_title('Two Iterations: $ f(z) = z^2 - 1$');\n\n\n\nOnce again, we see that values around the origin remain small, and values with a larger absolute value (or modulus) “explode”.\n\nFrom first impression, its behaviour appears to be normal, and may even seem mundane. Fractals tend to have more to them then what meets the eye; the exotic behavior shows itself when we begin applying more iterations.\n\nConsider three complex numbers:\n\nz_1 = 0.4 + 0.4i ,\n\nz_2 = z_1 + 0.1,\n\nz_3 = z_1 + 0.1i\n\nGiven the shape of our first two plots, we would expect that these values would remain near the origin as we apply iterations to them. Let us see what happens when we apply 10 iterations to each value:\n\nselected_values = np.array([0.4 + 0.4j, 0.41 + 0.4j, 0.4 + 0.41j])\nnum_iter = 9\n\noutputs = np.zeros((num_iter+1, selected_values.shape[0]), dtype=complex)\noutputs[0] = selected_values\n\nfor i in range(num_iter):\n outputs[i+1] = f(outputs[i]) # Apply 10 iterations, save each output\n\nfig, axes = plt.subplots(1, selected_values.shape[0], figsize=(16, 6))\naxes[1].set_xlabel('Real axis')\naxes[0].set_ylabel('Imaginary axis')\n\nfor ax, data in zip(axes, outputs.T):\n cycle = ax.scatter(data.real, data.imag, c=range(data.shape[0]), alpha=0.6)\n ax.set_title(f'Mapping of iterations on {data[0]}')\n\nfig.colorbar(cycle, ax=axes, location=\"bottom\", label='Iteration');\n\n\n\nTo our surprise, the behaviour of the function did not come close to matching our hypothesis. This is a prime example of the chaotic behaviour fractals possess. In the first two plots, the value “exploded” on the last iteration, jumping way beyond the region that it was contained in previously. The third plot on the other hand remained bounded to a small region close to the origin, yielding completely different behaviour despite the tiny change in value.\n\nThis leads us to an extremely important question: How many iterations can be applied to each value before they diverge (“explode”)?\n\nAs we saw from the first two plots, the further the values were from the origin, the faster they generally exploded. Although the behaviour is uncertain for smaller values (like z_1, z_2, z_3), we can assume that if a value surpasses a certain distance from the origin (say 2) that it is doomed to diverge. We will call this threshold the radius.\n\nThis allows us to quantify the behaviour of the function for a particular value without having to perform as many computations. Once the radius is surpassed, we are allowed to stop iterating, which gives us a way of answering the question we posed. If we tally how many computations were applied before divergence, we gain insight into the behaviour of the function that would be hard to keep track of otherwise.\n\nOf course, we can do much better and design a function that performs the procedure on an entire mesh.\n\ndef divergence_rate(mesh, num_iter=10, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(mesh.shape) # Keep tally of the number of iterations\n\n # Iterate on element if and only if |element| < radius (Otherwise assume divergence)\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n diverge_len[conv_mask] += 1\n z[conv_mask] = f(z[conv_mask])\n\n return diverge_len\n\n\n\nThe behaviour of this function may look confusing at first glance, so it will help to explain some of the notation.\n\nOur goal is to iterate over each value in the mesh and to tally the number of iterations before the value diverges. Since some values will diverge quicker than others, we need a procedure that only iterates over values that have an absolute value that is sufficiently small enough. We also want to stop tallying values once they surpass the radius. For this, we can use Boolean Indexing, a NumPy feature that when paired with universal functions is unbeatable. Boolean Indexing allows for operations to be performed conditionally on a NumPy array without having to resort to looping over and checking for each array value individually.\n\nIn our case, we use a loop to apply iterations to our function f(z) = z^2 -1 and keep tally. Using Boolean indexing, we only apply the iterations to values that have an absolute value less than 2.\n\nWith that out of the way, we can go about plotting our first fractal! We will use the \n\nimshow function to create a colour-coded visualization of the tallies.\n\nx, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))\nmesh = x + (1j * y)\n\noutput = divergence_rate(mesh)\n\nfig, ax = plt.subplots(figsize=(5, 5))\n\nax.set_title('$f(z) = z^2 -1$')\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\n\nim = ax.imshow(output, extent=[-2, 2, -2, 2])\ndivider = make_axes_locatable(ax)\ncax = divider.append_axes(\"right\", size=\"5%\", pad=0.1)\nplt.colorbar(im, cax=cax, label='Number of iterations');\n\n\n\nWhat this stunning visual conveys is the complexity of the function’s behaviour. The yellow region represents values that remain small, while the purple region represents the divergent values. The beautiful pattern that arises on the border of the converging and diverging values is even more fascinating when you realize that it is created from such a simple function.\n\n","type":"content","url":"/tutorial-plotting-fractals#warmup","position":9},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Julia set"},"type":"lvl2","url":"/tutorial-plotting-fractals#julia-set","position":10},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Julia set"},"content":"What we just explored was an example of a fractal visualization of a specific Julia Set.\n\nConsider the function f(z) = z^2 + c where c is a complex number. The filled-in Julia set of c is the set of all complex numbers z in which the function converges at f(z). Likewise, the boundary of the filled-in Julia set is what we call the Julia set. In our above visualization, we can see that the yellow region represents an approximation of the filled-in Julia set for c = -1 and the greenish-yellow border would contain the Julia set.\n\nTo gain access to a wider range of “Julia fractals”, we can write a function that allows for different values of c to be passed in:\n\ndef julia(mesh, c=-1, num_iter=10, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = np.square(z[conv_mask]) + c\n diverge_len[conv_mask] += 1\n\n return diverge_len\n\n\n\nTo make our lives easier, we will create a couple meshes that we will reuse throughout the rest of the examples:\n\nx, y = np.meshgrid(np.linspace(-1, 1, 400), np.linspace(-1, 1, 400))\nsmall_mesh = x + (1j * y)\n\nx, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))\nmesh = x + (1j * y)\n\n\n\nWe will also write a function that we will use to create our fractal plots:\n\ndef plot_fractal(fractal, title='Fractal', figsize=(6, 6), cmap='rainbow', extent=[-2, 2, -2, 2]):\n\n fig, ax = plt.subplots(figsize=figsize)\n\n ax.set_title(f'${title}$')\n ax.set_xlabel('Real axis')\n ax.set_ylabel('Imaginary axis')\n\n im = ax.imshow(fractal, extent=extent, cmap=cmap)\n divider = make_axes_locatable(ax)\n cax = divider.append_axes(\"right\", size=\"5%\", pad=0.1)\n plt.colorbar(im, cax=cax, label='Number of iterations')\n\n\n\nUsing our newly defined functions, we can make a quick plot of the first fractal again:\n\noutput = julia(mesh, num_iter=15)\nkwargs = {'title': 'f(z) = z^2 -1'}\n\nplot_fractal(output, **kwargs);\n\n\n\nWe also can explore some different Julia sets by experimenting with different values of c. It can be surprising how much influence it has on the shape of the fractal.\n\nFor example, setting c = \\frac{\\pi}{10} gives us a very elegant cloud shape, while setting c = -\\frac{3}{4} + 0.4i yields a completely different pattern.\n\noutput = julia(mesh, c=np.pi/10, num_iter=20)\nkwargs = {'title': r'f(z) = z^2 + \\dfrac{\\pi}{10}', 'cmap': 'plasma'}\n\nplot_fractal(output, **kwargs);\n\n\n\n\n\noutput = julia(mesh, c=-0.75 + 0.4j, num_iter=20)\nkwargs = {'title': r'f(z) = z^2 - \\dfrac{3}{4} + 0.4i', 'cmap': 'Greens_r'}\n\nplot_fractal(output, **kwargs);\n\n\n\n","type":"content","url":"/tutorial-plotting-fractals#julia-set","position":11},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Mandelbrot set"},"type":"lvl2","url":"/tutorial-plotting-fractals#mandelbrot-set","position":12},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Mandelbrot set"},"content":"Closely related to the Julia set is the famous Mandelbrot set, which has a slightly different definition. Once again, we define f(z) = z^2 + c where c is a complex number, but this time our focus is on our choice of c. We say that c is an element of the Mandelbrot set if f converges at z = 0. An equivalent definition is to say that c is an element of the Mandelbrot set if f(c) can be iterated infinitely and not ‘explode’. We will tweak our Julia function slightly (and rename it appropriately) so that we can plot a visualization of the Mandelbrot set, which possesses an elegant fractal pattern.\n\ndef mandelbrot(mesh, num_iter=10, radius=2):\n\n c = mesh.copy()\n z = np.zeros(mesh.shape, dtype=np.complex128)\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = np.square(z[conv_mask]) + c[conv_mask]\n diverge_len[conv_mask] += 1\n\n return diverge_len\n\n\n\n\n\noutput = mandelbrot(mesh, num_iter=50)\nkwargs = {'title': 'Mandelbrot \\\\ set', 'cmap': 'hot'}\n\nplot_fractal(output, **kwargs);\n\n\n\n","type":"content","url":"/tutorial-plotting-fractals#mandelbrot-set","position":13},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Generalizing the Julia set"},"type":"lvl2","url":"/tutorial-plotting-fractals#generalizing-the-julia-set","position":14},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Generalizing the Julia set"},"content":"We can generalize our Julia function even further by giving it a parameter for which universal function we would like to pass in. This would allow us to plot fractals of the form f(z) = g(z) + c where g is a universal function selected by us.\n\ndef general_julia(mesh, c=-1, f=np.square, num_iter=100, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = f(z[conv_mask]) + c\n diverge_len[conv_mask] += 1\n\n return diverge_len\n\n\n\nOne cool set of fractals that can be plotted using our general Julia function are ones of the form f(z) = z^n + c for some positive integer n. A very cool pattern which emerges is that the number of regions that ‘stick out’ matches the degree in which we raise the function to while iterating over it.\n\nfig, axes = plt.subplots(2, 3, figsize=(8, 8))\nbase_degree = 2\n\nfor deg, ax in enumerate(axes.ravel()):\n degree = base_degree + deg\n power = lambda z: np.power(z, degree) # Create power function for current degree\n\n diverge_len = general_julia(mesh, f=power, num_iter=15)\n ax.imshow(diverge_len, extent=[-2, 2, -2, 2], cmap='binary')\n ax.set_title(f'$f(z) = z^{degree} -1$')\n\n\n\nNeedless to say, there is a large amount of exploring that can be done by fiddling with the inputted function, value of c, number of iterations, radius and even the density of the mesh and choice of colours.\n\n","type":"content","url":"/tutorial-plotting-fractals#generalizing-the-julia-set","position":15},{"hierarchy":{"lvl1":"Plotting Fractals","lvl3":"Newton Fractals","lvl2":"Generalizing the Julia set"},"type":"lvl3","url":"/tutorial-plotting-fractals#newton-fractals","position":16},{"hierarchy":{"lvl1":"Plotting Fractals","lvl3":"Newton Fractals","lvl2":"Generalizing the Julia set"},"content":"Newton fractals are a specific class of fractals, where iterations involve adding or subtracting the ratio of a function (often a polynomial) and its derivative to the input values. Mathematically, it can be expressed as:\n\nz := z - \\frac{f(z)}{f'(z)}\n\nWe will define a general version of the fractal which will allow for different variations to be plotted by passing in our functions of choice.\n\ndef newton_fractal(mesh, f, df, num_iter=10, r=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < r\n pz = f(z[conv_mask])\n dp = df(z[conv_mask])\n z[conv_mask] = z[conv_mask] - pz/dp\n diverge_len[conv_mask] += 1\n\n return diverge_len\n\n\n\nNow we can experiment with some different functions. For polynomials, we can create our plots quite effortlessly using the \n\nNumPy Polynomial class, which has built in functionality for computing derivatives.\n\nFor example, let’s try a higher-degree polynomial:\n\np = np.polynomial.Polynomial([-16, 0, 0, 0, 15, 0, 0, 0, 1])\np\n\n\n\nwhich has the derivative:\n\np.deriv()\n\n\n\n\n\noutput = newton_fractal(mesh, p, p.deriv(), num_iter=15, r=2)\nkwargs = {'title': r'f(z) = z - \\dfrac{(z^8 + 15z^4 - 16)}{(8z^7 + 60z^3)}', 'cmap': 'copper'}\n\nplot_fractal(output, **kwargs)\n\n\n\nBeautiful! Let’s try another one:\n\nf(z) = tan^2(z)\n\n\\frac{df}{dz} = 2 \\cdot tan(z) sec^2(z) =\\frac{2 \\cdot tan(z)}{cos^2(z)}\n\nThis makes \\frac{f(z)}{f'(z)} = tan^2(z) \\cdot \\frac{cos^2(z)}{2 \\cdot tan(z)} = \\frac{tan(z)\\cdot cos^2(z)}{2} = \\frac{sin(z)\\cdot cos(z)}{2}\n\ndef f_tan(z):\n return np.square(np.tan(z))\n\n\ndef d_tan(z):\n return 2*np.tan(z) / np.square(np.cos(z))\n\n\n\n\n\noutput = newton_fractal(mesh, f_tan, d_tan, num_iter=15, r=50)\nkwargs = {'title': r'f(z) = z - \\dfrac{sin(z)cos(z)}{2}', 'cmap': 'binary'}\n\nplot_fractal(output, **kwargs);\n\n\n\nNote that you sometimes have to play with the radius in order to get a neat looking fractal.\n\nFinally, we can go a little bit wild with our function selection\n\nf(z) = \\sum_{i=1}^{10} sin^i(z)\n\n\\frac{df}{dz} = \\sum_{i=1}^{10} i \\cdot sin^{i-1}(z) \\cdot cos(z)\n\ndef sin_sum(z, n=10):\n total = np.zeros(z.size, dtype=z.dtype)\n for i in range(1, n+1):\n total += np.power(np.sin(z), i)\n return total\n\n\ndef d_sin_sum(z, n=10):\n total = np.zeros(z.size, dtype=z.dtype)\n for i in range(1, n+1):\n total += i * np.power(np.sin(z), i-1) * np.cos(z)\n return total\n\n\n\nWe will denote this one ‘Wacky fractal’, as its equation would not be fun to try and put in the title.\n\noutput = newton_fractal(small_mesh, sin_sum, d_sin_sum, num_iter=10, r=1)\nkwargs = {'title': 'Wacky \\\\ fractal', 'figsize': (6, 6), 'extent': [-1, 1, -1, 1], 'cmap': 'terrain'}\n\nplot_fractal(output, **kwargs)\n\n\n\nIt is truly fascinating how distinct yet similar these fractals are with each other. This leads us to the final section.\n\n","type":"content","url":"/tutorial-plotting-fractals#newton-fractals","position":17},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Creating your own fractals"},"type":"lvl2","url":"/tutorial-plotting-fractals#creating-your-own-fractals","position":18},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Creating your own fractals"},"content":"What makes fractals more exciting is how much there is to explore once you become familiar with the basics. Now we will wrap up our tutorial by exploring some of the different ways one can experiment in creating unique fractals. I encourage you to try some things out on your own (if you have not done so already).\n\nOne of the first places to experiment would be with the function for the generalized Julia set, where we can try passing in different functions as parameters.\n\nLet’s start by choosing\n\nf(z) = tan(z^2)\n\ndef f(z):\n return np.tan(np.square(z))\n\n\n\n\n\noutput = general_julia(mesh, f=f, num_iter=15, radius=2.1)\nkwargs = {'title': 'f(z) = tan(z^2)', 'cmap': 'gist_stern'}\n\nplot_fractal(output, **kwargs);\n\n\n\nWhat happens if we compose our defined function inside of a sine function?\n\nLet’s try defining\n\ng(z) = sin(f(z)) = sin(tan(z^2))\n\ndef g(z):\n return np.sin(f(z))\n\n\n\n\n\noutput = general_julia(mesh, f=g, num_iter=15, radius=2.1)\nkwargs = {'title': 'g(z) = sin(tan(z^2))', 'cmap': 'plasma_r'}\n\nplot_fractal(output, **kwargs);\n\n\n\nNext, let’s create a function that applies both f and g to the inputs each iteration and adds the result together:\n\nh(z) = f(z) + g(z) = tan(z^2) + sin(tan(z^2))\n\ndef h(z):\n return f(z) + g(z)\n\n\n\n\n\noutput = general_julia(small_mesh, f=h, num_iter=10, radius=2.1)\nkwargs = {'title': 'h(z) = tan(z^2) + sin(tan(z^2))', 'figsize': (7, 7), 'extent': [-1, 1, -1, 1], 'cmap': 'jet'}\n\nplot_fractal(output, **kwargs);\n\n\n\nYou can even create beautiful fractals through your own errors. Here is one that got created accidently by making a mistake in computing the derivative of a Newton fractal:\n\ndef accident(z):\n return z - (2 * np.power(np.tan(z), 2) / (np.sin(z) * np.cos(z)))\n\n\n\n\n\noutput = general_julia(mesh, f=accident, num_iter=15, c=0, radius=np.pi)\nkwargs = {'title': 'Accidental \\\\ fractal', 'cmap': 'Blues'}\n\nplot_fractal(output, **kwargs);\n\n\n\nNeedless to say, there are a nearly endless supply of interesting fractal creations that can be made just by playing around with various combinations of NumPy universal functions and by tinkering with the parameters.\n\n","type":"content","url":"/tutorial-plotting-fractals#creating-your-own-fractals","position":19},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"In conclusion"},"type":"lvl2","url":"/tutorial-plotting-fractals#in-conclusion","position":20},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"In conclusion"},"content":"We learned a lot about generating fractals today. We saw how complicated fractals requiring many iterations could be computed efficiently using universal functions. We also took advantage of boolean indexing, which allowed for less computations to be made without having to individually verify each value. Finally, we learned a lot about fractals themselves. As a recap:\n\nFractal images are created by iterating a function over a set of values, and keeping tally of how long it takes for each value to pass a certain threshold\n\nThe colours in the image correspond to the tally counts of the values\n\nThe filled-in Julia set for c consists of all complex numbers z in which f(z) = z^2 + c converges\n\nThe Julia set for c is the set of complex numbers that make up the boundary of the filled-in Julia set\n\nThe Mandelbrot set is all values c in which f(z) = z^2 + c converges at 0\n\nNewton fractals use functions of the form f(z) = z - \\frac{p(z)}{p'(z)}\n\nThe fractal images can vary as you adjust the number of iterations, radius of convergence, mesh size, colours, function choice and parameter choice\n\n","type":"content","url":"/tutorial-plotting-fractals#in-conclusion","position":21},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"On your own"},"type":"lvl2","url":"/tutorial-plotting-fractals#on-your-own","position":22},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"On your own"},"content":"Play around with the parameters of the generalized Julia set function, try playing with the constant value, number of iterations, function choice, radius, and colour choice.\n\nVisit the “List of fractals by Hausdorff dimension” Wikipedia page (linked in the Further reading section) and try writing a function for a fractal not mentioned in this tutorial.\n\n","type":"content","url":"/tutorial-plotting-fractals#on-your-own","position":23},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Further reading"},"type":"lvl2","url":"/tutorial-plotting-fractals#further-reading","position":24},{"hierarchy":{"lvl1":"Plotting Fractals","lvl2":"Further reading"},"content":"More information on the theory behind fractals\n\nFurther reading on Julia sets\n\nMore details about the Mandelbrot set\n\nA more complete treatment of Newton Fractals\n\nA list of different fractals","type":"content","url":"/tutorial-plotting-fractals#further-reading","position":25},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy"},"type":"lvl1","url":"/tutorial-static-equilibrium","position":0},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy"},"content":"When analyzing physical structures, it is crucial to understand the mechanics keeping them stable. Applied forces on a floor, a beam, or any other structure, create reaction forces and moments. These reactions are the structure resisting movement without breaking. In cases where structures do not move despite having forces applied to them, \n\nNewton’s second law states that both the acceleration and sum of forces in all directions in the system must be zero. You can represent and solve this concept with NumPy arrays.","type":"content","url":"/tutorial-static-equilibrium","position":1},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll do:"},"type":"lvl2","url":"/tutorial-static-equilibrium#what-youll-do","position":2},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll do:"},"content":"In this tutorial, you will use NumPy to create vectors and moments using NumPy arrays\n\nSolve problems involving cables and floors holding up structures\n\nWrite NumPy matrices to isolate unkowns\n\nUse NumPy functions to perform linear algebra operations","type":"content","url":"/tutorial-static-equilibrium#what-youll-do","position":3},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll learn:"},"type":"lvl2","url":"/tutorial-static-equilibrium#what-youll-learn","position":4},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll learn:"},"content":"How to represent points, vectors, and moments with NumPy.\n\nHow to find the \n\nnormal of vectors\n\nUsing NumPy to compute matrix calculations","type":"content","url":"/tutorial-static-equilibrium#what-youll-learn","position":5},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll need:"},"type":"lvl2","url":"/tutorial-static-equilibrium#what-youll-need","position":6},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"What you’ll need:"},"content":"NumPy\n\nMatplotlib\n\nimported with the following comands:\n\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n\n\nIn this tutorial you will use the following NumPy tools:\n\nnp.linalg.norm : this function determines the measure of vector magnitude\n\nnp.cross : this function takes two matrices and produces the cross product\n\n","type":"content","url":"/tutorial-static-equilibrium#what-youll-need","position":7},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Solving equilibrium with Newton’s second law"},"type":"lvl2","url":"/tutorial-static-equilibrium#solving-equilibrium-with-newtons-second-law","position":8},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Solving equilibrium with Newton’s second law"},"content":"Your model consists of a beam under a sum of forces and moments. You can start analyzing this system with Newton’s second law:\\sum{\\text{force}} = \\text{mass} \\times \\text{acceleration}.\n\nIn order to simplify the examples looked at, assume they are static, with acceleration =0. Due to our system existing in three dimensions, consider forces being applied in each of these dimensions. This means that you can represent these forces as vectors. You come to the same conclusion for \n\nmoments, which result from forces being applied a certain distance away from an object’s center of mass.\n\nAssume that the force F is represented as a three-dimensional vectorF = (F_x, F_y, F_z)\n\nwhere each of the three components represent the magnitude of the force being applied in each corresponding direction. Assume also that each component in the vectorr = (r_x, r_y, r_z)\n\nis the distance between the point where each component of the force is applied and the centroid of the system. Then, the moment can be computed byr \\times F = (r_x, r_y, r_z) \\times (F_x, F_y, F_z).\n\nStart with some simple examples of force vectors\n\nforceA = np.array([1, 0, 0])\nforceB = np.array([0, 1, 0])\nprint(\"Force A =\", forceA)\nprint(\"Force B =\", forceB)\n\n\n\nThis defines forceA as being a vector with magnitude of 1 in the x direction and forceB as magnitude 1 in the y direction.\n\nIt may be helpful to visualize these forces in order to better understand how they interact with each other.\nMatplotlib is a library with visualization tools that can be utilized for this purpose.\nQuiver plots will be used to demonstrate \n\nthree dimensional vectors, but the library can also be used for \n\ntwo dimensional demonstrations.\n\nfig = plt.figure()\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nx, y, z = np.array([0, 0, 0]) # defining the point of application. Make it the origin\n\nu, v, w = forceA # breaking the force vector into individual components\nd3.quiver(x, y, z, u, v, w, color=\"r\", label=\"forceA\")\n\nu, v, w = forceB\nd3.quiver(x, y, z, u, v, w, color=\"b\", label=\"forceB\")\n\nd3.legend()\n\n\n\nThere are two forces emanating from a single point. In order to simplify this problem, you can add them together to find the sum of forces. Note that both forceA and forceB are three-dimensional vectors, represented by NumPy as arrays with three components. Because NumPy is meant to simplify and optimize operations between vectors, you can easily compute the sum of these two vectors as follows:\n\nforceC = forceA + forceB\nprint(\"Force C =\", forceC)\n\n\n\nForce C now acts as a single force that represents both A and B.\nYou can plot it to see the result.\n\nfig = plt.figure()\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nx, y, z = np.array([0, 0, 0])\n\nu, v, w = forceA\nd3.quiver(x, y, z, u, v, w, color=\"r\", label=\"forceA\")\nu, v, w = forceB\nd3.quiver(x, y, z, u, v, w, color=\"b\", label=\"forceB\")\nu, v, w = forceC\nd3.quiver(x, y, z, u, v, w, color=\"g\", label=\"forceC\")\n\nd3.legend()\n\n\n\nHowever, the goal is equilibrium.\nThis means that you want your sum of forces to be (0, 0, 0) or else your object will experience acceleration.\nTherefore, there needs to be another force that counteracts the prior ones.\n\nYou can write this problem as A+B+R=0, with R being the reaction force that solves the problem.\n\nIn this example this would mean:(1, 0, 0) + (0, 1, 0) + (R_x, R_y, R_z) = (0, 0, 0)\n\nBroken into x, y, and z components this gives you:\\begin{cases}\n1+0+R_x=0\\\\\n0+1+R_y=0\\\\\n0+0+R_z=0\n\\end{cases}\n\nsolving for R_x, R_y, and R_z gives you a vector R of (-1, -1, 0).\n\nIf plotted, the forces seen in prior examples should be nullified.\nOnly if there is no force remaining is the system considered to be in equilibrium.\n\nR = np.array([-1, -1, 0])\n\nfig = plt.figure()\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nx, y, z = np.array([0, 0, 0])\n\nu, v, w = forceA + forceB + R # add them all together for sum of forces\nd3.quiver(x, y, z, u, v, w)\n\n\n\n\n\nThe empty graph signifies that there are no outlying forces. This denotes a system in equilibrium.","type":"content","url":"/tutorial-static-equilibrium#solving-equilibrium-with-newtons-second-law","position":9},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Solving Equilibrium as a sum of moments"},"type":"lvl2","url":"/tutorial-static-equilibrium#solving-equilibrium-as-a-sum-of-moments","position":10},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Solving Equilibrium as a sum of moments"},"content":"Next let’s move to a more complicated application.\nWhen forces are not all applied at the same point, moments are created.\n\nSimilar to forces, these moments must all sum to zero, otherwise rotational acceleration will be experienced. Similar to the sum of forces, this creates a linear equation for each of the three coordinate directions in space.\n\nA simple example of this would be from a force applied to a stationary pole secured in the ground.\nThe pole does not move, so it must apply a reaction force.\nThe pole also does not rotate, so it must also be creating a reaction moment.\nSolve for both the reaction force and moments.\n\nLet’s say a 5N force is applied perpendicularly 2m above the base of the pole.\n\nf = 5 # Force in newtons\nL = 2 # Length of the pole\n\nR = 0 - f\nM = 0 - f * L\nprint(\"Reaction force =\", R)\nprint(\"Reaction moment =\", M)\n\n\n\n","type":"content","url":"/tutorial-static-equilibrium#solving-equilibrium-as-a-sum-of-moments","position":11},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Finding values with physical properties"},"type":"lvl2","url":"/tutorial-static-equilibrium#finding-values-with-physical-properties","position":12},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Finding values with physical properties"},"content":"Let’s say that instead of a force acting perpendicularly to the beam, a force was applied to our pole through a wire that was also attached to the ground.\nGiven the tension in this cord, all you need to solve this problem are the physical locations of these objects.\n\nIn response to the forces acting upon the pole, the base generated reaction forces in the x and y directions, as well as a reaction moment.\n\nDenote the base of the pole as the origin.\nNow, say the cord is attached to the ground 3m in the x direction and attached to the pole 2m up, in the z direction.\n\nDefine these points in space as NumPy arrays, and then use those arrays to find directional vectors.\n\npoleBase = np.array([0, 0, 0])\ncordBase = np.array([3, 0, 0])\ncordConnection = np.array([0, 0, 2])\n\npoleDirection = cordConnection - poleBase\nprint(\"Pole direction =\", poleDirection)\ncordDirection = cordBase - cordConnection\nprint(\"Cord direction =\", cordDirection)\n\n\n\nIn order to use these vectors in relation to forces you need to convert them into unit vectors.\nUnit vectors have a magnitude of one, and convey only the direction of the forces.\n\ncordUnit = cordDirection / np.linalg.norm(cordDirection)\nprint(\"Cord unit vector =\", cordUnit)\n\n\n\nYou can then multiply this direction with the magnitude of the force in order to find the force vector.\n\nLet’s say the cord has a tension of 5N:\n\ncordTension = 5\nforceCord = cordUnit * cordTension\nprint(\"Force from the cord =\", forceCord)\n\n\n\nIn order to find the moment you need the cross product of the force vector and the radius.\n\nmomentCord = np.cross(forceCord, poleDirection)\nprint(\"Moment from the cord =\", momentCord)\n\n\n\nNow all you need to do is find the reaction force and moment.\n\nequilibrium = np.array([0, 0, 0])\nR = equilibrium - forceCord\nM = equilibrium - momentCord\nprint(\"Reaction force =\", R)\nprint(\"Reaction moment =\", M)\n\n\n\n","type":"content","url":"/tutorial-static-equilibrium#finding-values-with-physical-properties","position":13},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"Another Example","lvl2":"Finding values with physical properties"},"type":"lvl3","url":"/tutorial-static-equilibrium#another-example","position":14},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"Another Example","lvl2":"Finding values with physical properties"},"content":"Let’s look at a slightly more complicated model. In this example you will be observing a beam with two cables and an applied force. This time you need to find both the tension in the cords and the reaction forces of the beam. (Source: \n\nVector Mechanics for Engineers: Statics and Dynamics, Problem 4.106)\n\nDefine distance a as 3 meters\n\nAs before, start by defining the location of each relevant point as an array.\n\nA = np.array([0, 0, 0])\nB = np.array([0, 3, 0])\nC = np.array([0, 6, 0])\nD = np.array([1.5, 0, -3])\nE = np.array([1.5, 0, 3])\nF = np.array([-3, 0, 2])\n\n\n\nFrom these equations, you start by determining vector directions with unit vectors.\n\nAB = B - C\nAC = C - A\nBD = D - B\nBE = E - B\nCF = F - C\n\nUnitBD = BD / np.linalg.norm(BD)\nUnitBE = BE / np.linalg.norm(BE)\nUnitCF = CF / np.linalg.norm(CF)\n\nRadBD = np.cross(AB, UnitBD)\nRadBE = np.cross(AB, UnitBE)\nRadCF = np.cross(AC, UnitCF)\n\n\n\nThis lets you represent the tension (T) and reaction (R) forces acting on the system as\\left[\n\\begin{array}{ccccc}\n~1/3 & 1/3 & 1 & 0 & 0\\\\\n-2/3 & -2/3 & 0 & 1 & 0\\\\\n-2/3 & 2/3 & 0 & 0 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\nR_{x}\\\\\nR_{y}\\\\\nR_{z}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~195\\\\\n390\\\\\n-130\\\\\n\\end{array}\n\\right]\n\nand the moments as\\left[\n\\begin{array}{cc}\n~2 & -2\\\\\n1 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~780\\\\\n1170\\\\\n\\end{array}\n\\right]\n\nWhere T is the tension in the respective cord and R is the reaction force in a respective direction. Then you just have six equations:\n\n\\sum F_{x} = 0 = T_{BE}/3+T_{BD}/3-195+R_{x}\n\n\\sum F_{y} = 0 = (-\\frac{2}{3})T_{BE}-\\frac{2}{3}T_{BD}-390+R_{y}\n\n\\sum F_{z} = 0 = (-\\frac{2}{3})T_{BE}+\\frac{2}{3}T_{BD}+130+R_{z}\n\n\\sum M_{x} = 0 = 780+2T_{BE}-2T_{BD}\n\n\\sum M_{z} = 0 = 1170-T_{BE}-T_{BD}\n\nYou now have five unknowns with five equations, and can solve for:\n\n\\ T_{BD} = 780N\n\n\\ T_{BE} = 390N\n\n\\ R_{x} = -195N\n\n\\ R_{y} = 1170N\n\n\\ R_{z} = 130N\n\n","type":"content","url":"/tutorial-static-equilibrium#another-example","position":15},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Wrapping up"},"type":"lvl2","url":"/tutorial-static-equilibrium#wrapping-up","position":16},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl2":"Wrapping up"},"content":"You have learned how to use arrays to represent points, forces, and moments in three dimensional space. Each entry in an array can be used to represent a physical property broken into directional components. These can then be easily manipulated with NumPy functions.","type":"content","url":"/tutorial-static-equilibrium#wrapping-up","position":17},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"Additional Applications","lvl2":"Wrapping up"},"type":"lvl3","url":"/tutorial-static-equilibrium#additional-applications","position":18},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"Additional Applications","lvl2":"Wrapping up"},"content":"This same process can be applied to kinetic problems or in any number of dimensions. The examples done in this tutorial assumed three dimensional problems in static equilibrium. These methods can easily be used in more varied problems. More or less dimensions require larger or smaller arrays to represent. In systems experiencing acceleration, velocity and acceleration can be similarly be represented as vectors as well.","type":"content","url":"/tutorial-static-equilibrium#additional-applications","position":19},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"References","lvl2":"Wrapping up"},"type":"lvl3","url":"/tutorial-static-equilibrium#references","position":20},{"hierarchy":{"lvl1":"Determining Static Equilibrium in NumPy","lvl3":"References","lvl2":"Wrapping up"},"content":"Vector Mechanics for Engineers: Statics and Dynamics (Beer & Johnston & Mazurek & et al.)\n\nNumPy Reference","type":"content","url":"/tutorial-static-equilibrium#references","position":21},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial"},"type":"lvl1","url":"/tutorial-style-guide","position":0},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial"},"content":"\n\nImage credit: Daniele Procida's \n\nDiátaxis framework, licensed under \n\nCC-BY-SA 4.0.\n\n","type":"content","url":"/tutorial-style-guide","position":1},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll do"},"type":"lvl2","url":"/tutorial-style-guide#what-youll-do","position":2},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll do"},"content":"Guided by a template, you’ll write a NumPy tutorial.","type":"content","url":"/tutorial-style-guide#what-youll-do","position":3},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll learn"},"type":"lvl2","url":"/tutorial-style-guide#what-youll-learn","position":4},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll learn"},"content":"You’ll be able to craft a tutorial that follows a standard format and reflects good teaching practice.\n\nYou’ll learn the three standard headings that open a NumPy tutorial -- What you’ll do, What you’ll learn, and What you’ll need -- and some optional headings for the bottom -- On your own, In practice, Further reading.\n\nYou’ll know what makes What you’ll learn different from What you’ll do.\n\nYou’ll be able to distinguish a tutorial from a how-to.\n\nYou’ll learn what not to put in a What you’ll learn section.","type":"content","url":"/tutorial-style-guide#what-youll-learn","position":5},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll need"},"type":"lvl2","url":"/tutorial-style-guide#what-youll-need","position":6},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What you’ll need"},"content":"This template.\n\nA portrait of your intended reader.\n\nJust as schools list prerequisites for higher-level courses, you can assume readers know some things (which you must list, as noted in the next bullet). Overexplaining bogs down the tutorial and obscures the main points.\n\nBut also put yourself in the reader’s place and consider what to explain along the way.\n\n“What you’ll need” is a list of:\n\npackages that must be present on the user’s machine before they begin. Don’t include numpy.\n\nwhat you assumed the reader knew in the bullet above. Don’t say Python; familiarity with Python iterators is fine.\n\nInformality and enthusiasm. Imagine your reader not out in the audience but next to you.\n\nWillingness to write incomplete sentences for the What you’ll need bullets. They don’t begin with the words “You’ll need.”\n\nNot required are native English skills. Others can help.","type":"content","url":"/tutorial-style-guide#what-youll-need","position":7},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"After a horizontal rule, start your own headings"},"type":"lvl2","url":"/tutorial-style-guide#after-a-horizontal-rule-start-your-own-headings","position":8},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"After a horizontal rule, start your own headings"},"content":"Your tutorial steps begin here, using headings of your choice. At the end of the tutorial you’ll place another horizontal rule and return to standard headings.","type":"content","url":"/tutorial-style-guide#after-a-horizontal-rule-start-your-own-headings","position":9},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Titles have verbs"},"type":"lvl2","url":"/tutorial-style-guide#titles-have-verbs","position":10},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Titles have verbs"},"content":"In general, include a verb in the title; thus Learn to write a NumPy tutorial rather than “Rules for NumPy tutorials.” Consider putting verbs in the headings as well.","type":"content","url":"/tutorial-style-guide#titles-have-verbs","position":11},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Titles are lowercase"},"type":"lvl2","url":"/tutorial-style-guide#titles-are-lowercase","position":12},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Titles are lowercase"},"content":"Capitalize the first word, and after that only words that are ordinarily capitalized (so not “Titles Are Lowercase”).","type":"content","url":"/tutorial-style-guide#titles-are-lowercase","position":13},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What to say in “What you’ll learn”"},"type":"lvl2","url":"/tutorial-style-guide#what-to-say-in-what-youll-learn","position":14},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"What to say in “What you’ll learn”"},"content":"Avoid abstraction. “About” is a tipoff: Rather than writing “You’ll learn about NumPy I/O,” write “You’ll learn how to read a comma-delimited text file into a NumPy array.”","type":"content","url":"/tutorial-style-guide#what-to-say-in-what-youll-learn","position":15},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Why are “What you’ll do” and “What you’ll learn” different?"},"type":"lvl2","url":"/tutorial-style-guide#why-are-what-youll-do-and-what-youll-learn-different","position":16},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Why are “What you’ll do” and “What you’ll learn” different?"},"content":"What you’ll do is typically one sentence listing an end product: “You’ll bake a cake.” This makes the endpoint clear. What you’ll learn lists the payoffs, and there may be many: “You’ll learn to follow a recipe. You’ll get practice measuring ingredients. You’ll learn how to tell when a cake is ready to come out of the oven.”","type":"content","url":"/tutorial-style-guide#why-are-what-youll-do-and-what-youll-learn-different","position":17},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Avoid asides"},"type":"lvl2","url":"/tutorial-style-guide#avoid-asides","position":18},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Avoid asides"},"content":"As explained by expert documentation writer \n\nDaniele Procida:\n\nDon’t explain anything the learner doesn’t need to know in order to complete the tutorial.\n\nBecause tutorial steps are chosen to be clear and easy, they may fall short of\nproduction-grade. Yes, you should share this, but not during the tutorial, which should be straightforward and assured. The In practice section is the place for details, exceptions, alternatives, and similar fine print.","type":"content","url":"/tutorial-style-guide#avoid-asides","position":19},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Use plots and illustrations"},"type":"lvl2","url":"/tutorial-style-guide#use-plots-and-illustrations","position":20},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Use plots and illustrations"},"content":"Figures are a double win; they amplify your points and make the page inviting. Like English skills, artistic skills (or graphic-toolset skills) aren’t required. Even if you only scan a hand illustration, somebody can polish it.\n\nAn illustration below the title, even if it’s only decorative, makes your page distinctive.","type":"content","url":"/tutorial-style-guide#use-plots-and-illustrations","position":21},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Use real datasets when possible"},"type":"lvl2","url":"/tutorial-style-guide#use-real-datasets-when-possible","position":22},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Use real datasets when possible"},"content":"Readers are likelier to be engaged by a real use case. Be sure you have rights to the data.","type":"content","url":"/tutorial-style-guide#use-real-datasets-when-possible","position":23},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Tutorials and how-to’s -- similar but different"},"type":"lvl2","url":"/tutorial-style-guide#tutorials-and-how-tos-similar-but-different","position":24},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Tutorials and how-to’s -- similar but different"},"content":"Tutorial readers are out-of-towners who want a feel for the place. Pick any single destination and explain sights along the way.\n\nUnlike how-to readers, who know what they need, tutorial readers don’t know what it is they don’t know. So while tutorials need headings like What you’ll do and What you’ll learn, these headings would never appear in a how-to.","type":"content","url":"/tutorial-style-guide#tutorials-and-how-tos-similar-but-different","position":25},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Make use of the Google doc style guide"},"type":"lvl2","url":"/tutorial-style-guide#make-use-of-the-google-doc-style-guide","position":26},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Make use of the Google doc style guide"},"content":"NumPy docs follow the \n\nGoogle developer documentation style guide. In addition to providing answers to recurring questions (“crossreference” or “cross-reference”?) the guide is filled with suggestions that will strengthen your doc writing.","type":"content","url":"/tutorial-style-guide#make-use-of-the-google-doc-style-guide","position":27},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"The notebook must be fully executable"},"type":"lvl2","url":"/tutorial-style-guide#the-notebook-must-be-fully-executable","position":28},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"The notebook must be fully executable"},"content":"Run all cells should execute all cells to the bottom of the file. If you’re demonstrating a bad expression and want to show the traceback, comment\nthe expression and put the traceback in a text cell.\n\n(Note that triple backquotes won’t be enough for a traceback that contains ,\nthe angle brackets must be replaced by < and > as shown in the text cell markdown below.)\n\n# 100/0\n\n\n\n--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) in ----> 1 100/0\n\nZeroDivisionError: division by zero\n\n","type":"content","url":"/tutorial-style-guide#the-notebook-must-be-fully-executable","position":29},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"On your own"},"type":"lvl2","url":"/tutorial-style-guide#on-your-own","position":30},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"On your own"},"content":"Close the tutorial section with a horizontal rule. You’re free to take any direction now, but here are three suggested sections.\n\nIn an optional On your own section, you can offer an assignment for readers to exercise their new skills. If it’s a question with an answer, provide it -- perhaps in a footnote to keep it from being a spoiler.","type":"content","url":"/tutorial-style-guide#on-your-own","position":31},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"In practice..."},"type":"lvl2","url":"/tutorial-style-guide#in-practice","position":32},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"In practice..."},"content":"The fine print that you avoided can go in this section.\n\nDon’t just say it’s usually done another way; explain why.","type":"content","url":"/tutorial-style-guide#in-practice","position":33},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Further reading"},"type":"lvl2","url":"/tutorial-style-guide#further-reading","position":34},{"hierarchy":{"lvl1":"Learn to write a NumPy tutorial","lvl2":"Further reading"},"content":"Ideally, rather than giving bare links, Further reading describes the references: \n\nThe Documentation System is the inspiration for this tutorial, and describes three other kinds of documentation.\n\nThe Google guide is long; there’s also \n\na summary.\n\nNumPy’s website includes a \n\ndocumentation how-to.","type":"content","url":"/tutorial-style-guide#further-reading","position":35},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays"},"type":"lvl1","url":"/tutorial-svd","position":0},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays"},"content":"","type":"content","url":"/tutorial-svd","position":1},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Prerequisites"},"type":"lvl2","url":"/tutorial-svd#prerequisites","position":2},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Prerequisites"},"content":"Before reading this tutorial, you should know a bit of Python. If you would like to refresh your memory, take a look at the \n\nPython tutorial.\n\nIf you want to be able to run the examples in this tutorial, you should also have \n\nmatplotlib and \n\nSciPy installed on your computer.","type":"content","url":"/tutorial-svd#prerequisites","position":3},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Learner profile"},"type":"lvl2","url":"/tutorial-svd#learner-profile","position":4},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Learner profile"},"content":"This tutorial is for people who have a basic understanding of linear algebra and arrays in NumPy and want to understand how n-dimensional (n>=2) arrays are represented and can be manipulated. In particular, if you don’t know how to apply common functions to n-dimensional arrays (without using for-loops), or if you want to understand axis and shape properties for n-dimensional arrays, this tutorial might be of help.","type":"content","url":"/tutorial-svd#learner-profile","position":5},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Learning Objectives"},"type":"lvl2","url":"/tutorial-svd#learning-objectives","position":6},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Learning Objectives"},"content":"After this tutorial, you should be able to:\n\nUnderstand the difference between one-, two- and n-dimensional arrays in NumPy;\n\nUnderstand how to apply some linear algebra operations to n-dimensional arrays without using for-loops;\n\nUnderstand axis and shape properties for n-dimensional arrays.","type":"content","url":"/tutorial-svd#learning-objectives","position":7},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Content"},"type":"lvl2","url":"/tutorial-svd#content","position":8},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Content"},"content":"In this tutorial, we will use a \n\nmatrix decomposition from linear algebra, the Singular Value Decomposition, to generate a compressed approximation of an image. We’ll use the face image from the \n\nscipy.datasets module:\n\nfrom scipy.datasets import face\n\nimg = face()\n\n\n\nNote\n\nIf you prefer, you can use your own image as you work through this tutorial.\nIn order to transform your image into a NumPy array that can be manipulated, you\ncan use the imread function from the\n\n\nmatplotlib.pyplot submodule.\nAlternatively, you can use the\n\n\nimageio.imread\nfunction from the imageio library.\nBe aware that if you use your own image, you’ll likely need to adapt the steps below.\nFor more information on how images are treated when converted to NumPy arrays,\nsee \n\nA crash course on NumPy for images from the scikit-image documentation.\n\nNow, img is a NumPy array, as we can see when using the type function:\n\ntype(img)\n\n\n\nWe can see the image using the \n\nmatplotlib​.pyplot​.imshow function & the special iPython command, %matplotlib inline to display plots inline:\n\nimport matplotlib.pyplot as plt\n\n%matplotlib inline\n\n\n\n\n\nfig, ax = plt.subplots()\nax.imshow(img)\n\n\n\n","type":"content","url":"/tutorial-svd#content","position":9},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Shape, axis and array properties","lvl2":"Content"},"type":"lvl3","url":"/tutorial-svd#shape-axis-and-array-properties","position":10},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Shape, axis and array properties","lvl2":"Content"},"content":"Note that, in linear algebra, the dimension of a vector refers to the number of entries in an array. In NumPy, it instead defines the number of axes. For example, a 1D array is a vector such as [1, 2, 3], a 2D array is a matrix, and so forth.\n\nFirst, let’s check for the shape of the data in our array. Since this image is two-dimensional (the pixels in the image form a rectangle), we might expect a two-dimensional array to represent it (a matrix). However, using the shape property of this NumPy array gives us a different result:\n\nimg.shape\n\n\n\nThe output is a \n\ntuple with three elements, which means that this is a three-dimensional array. Since this is a color image, and we have used the imread function to read it, the data is organized as a 768×1024 grid of pixels, where each pixel contains 3 values representing color channels (red, green and blue - RGB). You can see this by looking at the shape, where the leftmost number corresponds to the outermost axis (image height), the middle number to the next axis (image width) and the rightmost number to the innermost axis (the color channels).\n\nFurthermore, using the ndim property of this array, we can see that\n\nimg.ndim\n\n\n\nNumPy refers to each dimension as an axis. Because of how imread works, the first index in the 3rd axis is the red pixel data for our image. We can access this by using the syntax\n\nimg[:, :, 0]\n\n\n\nFrom the output above, we can see that every value in img[:, :, 0] is an integer value between 0 and 255, representing the level of red in each corresponding image pixel (keep in mind that this might be different if you\nuse your own image instead of \n\nscipy.datasets.face).\n\nAs expected, this is a 768x1024 matrix:\n\nimg[:, :, 0].shape\n\n\n\nSince we are going to perform linear algebra operations on this data, it might be more interesting to have real numbers between 0 and 1 in each entry of the matrices to represent the RGB values. We can do that by setting\n\nimg_array = img / 255\n\n\n\nThis operation, dividing an array by a scalar, works because of NumPy’s \n\nbroadcasting rules.\n\nTip\n\nIn real-world applications, it may be better to use, for example, the\n\n\nimg_as_float\nutility function from scikit-image.\n\nYou can check that the above works by doing some tests; for example, inquiring\nabout maximum and minimum values for this array:\n\nimg_array.min(), img_array.max()\n\n\n\nor checking the type of data in the array:\n\nimg_array.dtype\n\n\n\nNote that we can assign each color channel to a separate matrix using the slice syntax:\n\nred_array = img_array[:, :, 0]\ngreen_array = img_array[:, :, 1]\nblue_array = img_array[:, :, 2]\n\n\n\n","type":"content","url":"/tutorial-svd#shape-axis-and-array-properties","position":11},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Operations on an axis","lvl2":"Content"},"type":"lvl3","url":"/tutorial-svd#operations-on-an-axis","position":12},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Operations on an axis","lvl2":"Content"},"content":"It is possible to use methods from linear algebra to approximate an existing set of data. Here, we will use the \n\nSVD (Singular Value Decomposition) to try to rebuild an image that uses less singular value information than the original one, while still retaining some of its features.\n\nNote\n\nWe will use NumPy’s linear algebra module,\n\n\nnumpy.linalg,\nto perform the operations in this tutorial.\nMost of the linear algebra functions in this module can also be found in\n\n\nscipy.linalg,\nand users are encouraged to use the \n\nscipy\nmodule for real-world applications.\nHowever, some functions in the\n\n\nscipy.linalg\nmodule, such as the SVD function, only support 2D arrays.\nFor more information on this, check the \n\nscipy.linalg page.\n\nIn order to extract information from a given matrix, we can use the SVD to obtain 3 arrays which can be multiplied to obtain the original matrix. From the theory of linear algebra, given a matrix A, the following product can be computed:U \\Sigma V^T = A\n\nwhere U and V^T are square and \\Sigma is the same size as A. \\Sigma is a diagonal matrix and contains the \n\nsingular values of A, organized from largest to smallest. These values are always non-negative and can be used as an indicator of the “importance” of some features represented by the matrix A.\n\nLet’s see how this works in practice with just one matrix first. Note that according to \n\ncolorimetry,\nit is possible to obtain a fairly reasonable grayscale version of our color image if we apply the formulaY = 0.2126 R + 0.7152 G + 0.0722 B\n\nwhere Y is the array representing the grayscale image, and R, G and B are the red, green and blue channel arrays we had originally. Notice we can use the @ operator (the matrix multiplication operator for NumPy arrays, see \n\nnumpy.matmul) for this:\n\nimg_gray = img_array @ [0.2126, 0.7152, 0.0722]\n\n\n\nNow, img_gray has shape\n\nimg_gray.shape\n\n\n\nTo see if this makes sense in our image, we should use a colormap from matplotlib corresponding to the color we wish to see in out image (otherwise, matplotlib will default to a colormap that does not correspond to the real data).\n\nIn our case, we are approximating the grayscale portion of the image, so we will use the colormap gray:\n\nfig, ax = plt.subplots()\nax.imshow(img_gray, cmap=\"gray\")\n\n\n\nNow, applying the \n\nlinalg.svd function to this matrix, we obtain the following decomposition:\n\nimport numpy as np\nU, s, Vt = np.linalg.svd(img_gray)\n\n\n\nNote\n\nIf you are using your own image, this command might take a while to run,\ndepending on the size of your image and your hardware.\nDon’t worry, this is normal! The SVD can be a pretty intensive computation.\n\nLet’s check that this is what we expected:\n\nU.shape, s.shape, Vt.shape\n\n\n\nNote that s has a particular shape: it has only one dimension. This means that some linear algebra functions that expect 2d arrays might not work. For example, from the theory, one might expect s and Vt to be\ncompatible for multiplication. However, this is not true as s does not have a second axis:\n\ns @ Vt\n\n\n\nresults in a ValueError. This happens because having a one-dimensional array for s, in this case, is much more economic in practice than building a diagonal matrix with the same data. To reconstruct the original matrix, we can rebuild the diagonal matrix \\Sigma with the elements of s in its diagonal and with the appropriate dimensions for multiplying: in our case, \\Sigma should be 768x1024 since U is 768x768 and Vt is 1024x1024. In order to add the singular values to the diagonal of Sigma, we will use the \n\nfill_diagonal function from NumPy:\n\nSigma = np.zeros((U.shape[1], Vt.shape[0]))\nnp.fill_diagonal(Sigma, s)\n\n\n\nNow, we want to check if the reconstructed U @ Sigma @ Vt is close to the original img_gray matrix.\n\n","type":"content","url":"/tutorial-svd#operations-on-an-axis","position":13},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Approximation"},"type":"lvl2","url":"/tutorial-svd#approximation","position":14},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Approximation"},"content":"The \n\nlinalg module includes a norm function, which computes the norm of a vector or matrix represented in a NumPy array. For example, from the SVD explanation above, we would expect the norm of the difference between img_gray and the reconstructed SVD product to be small. As expected, you should see something like\n\nnp.linalg.norm(img_gray - U @ Sigma @ Vt)\n\n\n\n(The actual result of this operation might be different depending on your architecture and linear algebra setup. Regardless, you should see a small number.)\n\nWe could also have used the \n\nnumpy.allclose function to make sure the reconstructed product is, in fact, close to our original matrix (the difference between the two arrays is small):\n\nnp.allclose(img_gray, U @ Sigma @ Vt)\n\n\n\nTo see if an approximation is reasonable, we can check the values in s:\n\nfig, ax = plt.subplots()\nax.plot(s)\n\n\n\nIn the graph, we can see that although we have 768 singular values in s, most of those (after the 150th entry or so) are pretty small. So it might make sense to use only the information related to the first (say, 50) singular values to build a more economical approximation to our image.\n\nThe idea is to consider all but the first k singular values in Sigma (which are the same as in s) as zeros, keeping U and Vt intact, and computing the product of these matrices as the approximation.\n\nFor example, if we choose\n\nk = 10\n\n\n\nwe can build the approximation by doing\n\napprox = U @ Sigma[:, :k] @ Vt[:k, :]\n\n\n\nNote that we had to use only the first k rows of Vt, since all other rows would be multiplied by the zeros corresponding to the singular values we eliminated from this approximation.\n\nfig, ax = plt.subplots()\nax.imshow(approx, cmap=\"gray\")\n\n\n\nNow, you can go ahead and repeat this experiment with other values of k, and each of your experiments should give you a slightly better (or worse) image depending on the value you choose.\n\n","type":"content","url":"/tutorial-svd#approximation","position":15},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Applying to all colors","lvl2":"Approximation"},"type":"lvl3","url":"/tutorial-svd#applying-to-all-colors","position":16},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Applying to all colors","lvl2":"Approximation"},"content":"Now we want to do the same kind of operation, but to all three colors. Our first instinct might be to repeat the same operation we did above to each color matrix individually. However, NumPy’s broadcasting takes care of this\nfor us.\n\nIf our array has more than two dimensions, then the SVD can be applied to all axes at once. However, the linear algebra functions in NumPy expect to see an array of the form (n, M, N), where the first axis n represents the number of MxN matrices in the stack.\n\nIn our case,\n\nimg_array.shape\n\n\n\nso we need to permutate the axis on this array to get a shape like (3, 768, 1024). Fortunately, the \n\nnumpy.transpose function can do that for us:\n\n# The values in the tuple indicate the original dim, and the order the new axis\n# so axis 2 -> 0, 0 -> 1, and 1 -> 2\nimg_array_transposed = np.transpose(img_array, (2, 0, 1))\nimg_array_transposed.shape\n\n\n\nNow we are ready to apply the SVD:\n\nU, s, Vt = np.linalg.svd(img_array_transposed)\n\n\n\nFinally, to obtain the full approximated image, we need to reassemble these matrices into the approximation. Now, note that\n\nU.shape, s.shape, Vt.shape\n\n\n\nTo build the final approximation matrix, we must understand how multiplication across different axes works.\n\n","type":"content","url":"/tutorial-svd#applying-to-all-colors","position":17},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Products with n-dimensional arrays","lvl2":"Approximation"},"type":"lvl3","url":"/tutorial-svd#products-with-n-dimensional-arrays","position":18},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Products with n-dimensional arrays","lvl2":"Approximation"},"content":"If you have worked before with only one- or two-dimensional arrays in NumPy, you might use \n\nnumpy.dot and \n\nnumpy.matmul (or the @ operator) interchangeably. However, for n-dimensional arrays, they work in very different ways. For more details, check the documentation on \n\nnumpy.matmul.\n\nNow, to build our approximation, we first need to make sure that our singular values are ready for multiplication, so we build our Sigma matrix similarly to what we did before. The Sigma array must have dimensions (3, 768, 1024). In order to add the singular values to the diagonal of Sigma, we will again use the \n\nfill_diagonal function, using each of the 3 rows in s as the diagonal for each of the 3 matrices in Sigma:\n\nSigma = np.zeros((3, 768, 1024))\nfor j in range(3):\n np.fill_diagonal(Sigma[j, :, :], s[j, :])\n\n\n\nNow, if we wish to rebuild the full SVD (with no approximation), we can do\n\nreconstructed = U @ Sigma @ Vt\n\n\n\nNote that\n\nreconstructed.shape\n\n\n\nThe reconstructed image should be indistinguishable from the original one, except for differences due to floating point errors from the reconstruction. Recall that our original image consisted of floating point values in the range [0., 1.]. The accumulation of floating point error from the reconstruction can result in values slightly outside this original range:\n\nreconstructed.min(), reconstructed.max()\n\n\n\nSince imshow expects values in the range, we can use clip to excise the floating point error:\n\nreconstructed = np.clip(reconstructed, 0, 1)\n\nfig, ax = plt.subplots()\nax.imshow(np.transpose(reconstructed, (1, 2, 0)))\n\n\n\nNote\n\nIn fact, imshow peforms this clipping under-the-hood, so if you skip the first\nline in the previous code cell, you might see a warning message saying\n\"Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\"\n\nNow, to do the approximation, we must choose only the first k singular values for each color channel. This can be done using the following syntax:\n\napprox_img = U @ Sigma[..., :k] @ Vt[..., :k, :]\n\n\n\nYou can see that we have selected only the first k components of the last axis for Sigma (this means that we have used only the first k columns of each of the three matrices in the stack), and that we have selected only the first k components in the second-to-last axis of Vt (this means we have selected only the first k rows from every matrix in the stack Vt and all columns). If you are unfamiliar with the ellipsis syntax, it is a\nplaceholder for other axes. For more details, see the documentation on \n\nIndexing.\n\nNow,\n\napprox_img.shape\n\n\n\nwhich is not the right shape for showing the image. Finally, reordering the axes back to our original shape of (768, 1024, 3), we can see our approximation:\n\nfig, ax = plt.subplots()\nax.imshow(np.transpose(np.clip(approx_img, 0, 1), (1, 2, 0)))\n\n\n\nEven though the image is not as sharp, using a small number of k singular values (compared to the original set of 768 values), we can recover many of the distinguishing features from this image.\n\n","type":"content","url":"/tutorial-svd#products-with-n-dimensional-arrays","position":19},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Final words","lvl2":"Approximation"},"type":"lvl3","url":"/tutorial-svd#final-words","position":20},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl3":"Final words","lvl2":"Approximation"},"content":"Of course, this is not the best method to approximate an image. However, there is, in fact, a result in linear algebra that says that the approximation we built above is the best we can get to the original matrix in\nterms of the norm of the difference. For more information, see G. H. Golub and C. F. Van Loan, Matrix Computations, Baltimore, MD, Johns Hopkins University Press, 1985.","type":"content","url":"/tutorial-svd#final-words","position":21},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Further reading"},"type":"lvl2","url":"/tutorial-svd#further-reading","position":22},{"hierarchy":{"lvl1":"Linear algebra on n-dimensional arrays","lvl2":"Further reading"},"content":"Python tutorial\n\nNumPy Reference\n\nSciPy Tutorial\n\nSciPy Lecture Notes\n\nA matlab, R, IDL, NumPy/SciPy dictionary","type":"content","url":"/tutorial-svd#further-reading","position":23},{"hierarchy":{"lvl1":"X-ray image processing"},"type":"lvl1","url":"/tutorial-x-ray-image-processing","position":0},{"hierarchy":{"lvl1":"X-ray image processing"},"content":"This tutorial demonstrates how to read and process X-ray images with NumPy,\nimageio, Matplotlib and SciPy. You will learn how to load medical images, focus\non certain parts, and visually compare them using the\n\n\nGaussian,\n\n\nLaplacian-Gaussian,\n\n\nSobel, and\n\n\nCanny filters for edge\ndetection.\n\nX-ray image analysis can be part of your data analysis and machine learning workflow\nwhen, for example, you’re building an algorithm that helps\n\n\ndetect pneumonia\nas part of a \n\nKaggle\n\n\ncompetition.\nIn the healthcare industry, medical image processing and analysis is\nparticularly important when images are estimated to account for\n\n\nat least 90% of all\nmedical data.\n\nYou’ll be working with radiology images from the\n\n\nChestX-ray8\ndataset provided by the \n\nNational Institutes of Health (NIH).\nChestX-ray8 contains over 100,000 de-identified X-ray images in the PNG format\nfrom more than 30,000 patients. You can find ChestX-ray8’s files on NIH’s public\nBox \n\nrepository in the /images\nfolder. (For more details, refer to the research\n\n\npaper\npublished at CVPR (a computer vision conference) in 2017.)\n\nFor your convenience, a small number of PNG images have been saved to this\ntutorial’s repository under tutorial-x-ray-image-processing/, since\nChestX-ray8 contains gigabytes of data and you may find it challenging to\ndownload it in batches.\n\n","type":"content","url":"/tutorial-x-ray-image-processing","position":1},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Prerequisites"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#prerequisites","position":2},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Prerequisites"},"content":"\n\nThe reader should have some knowledge of Python, NumPy arrays, and Matplotlib.\nTo refresh the memory, you can take the\n\n\nPython and Matplotlib\n\n\nPyPlot tutorials,\nand the NumPy \n\nquickstart.\n\nThe following packages are used in this tutorial:\n\nimageio for reading and writing image data. The\nhealthcare industry usually works with the\n\n\nDICOM format for medical imaging and\n\n\nimageio should be\nwell-suited for reading that format. For simplicity, in this tutorial you’ll be\nworking with PNG files.\n\nMatplotlib for data visualization.\n\nSciPy for multi-dimensional image processing via\n\n\nndimage.\n\nThis tutorial can be run locally in an isolated environment, such as\n\n\nVirtualenv or\n\n\nconda.\nYou can use \n\nJupyter Notebook or JupyterLab to run\neach notebook cell.\n\n","type":"content","url":"/tutorial-x-ray-image-processing#prerequisites","position":3},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Table of contents"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#table-of-contents","position":4},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Table of contents"},"content":"\n\nExamine an X-ray with imageio\n\nCombine images into a multi-dimensional array to demonstrate progression\n\nEdge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and\nCanny filters\n\nApply masks to X-rays with np.where()\n\nCompare the results\n\n","type":"content","url":"/tutorial-x-ray-image-processing#table-of-contents","position":5},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Examine an X-ray with imageio"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#examine-an-x-ray-with-imageio","position":6},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Examine an X-ray with imageio"},"content":"\n\nLet’s begin with a simple example using just one X-ray image from the\nChestX-ray8 dataset.\n\nThe file — 00000011_001.png — has been downloaded for you and saved in the\n/tutorial-x-ray-image-processing folder.\n\n1. Load the image with imageio:\n\nimport os\nimport imageio\n\nDIR = \"tutorial-x-ray-image-processing\"\n\nxray_image = imageio.v3.imread(os.path.join(DIR, \"00000011_001.png\"))\n\n\n\n2. Check that its shape is 1024x1024 pixels and that the array is made up of\n8-bit integers:\n\nprint(xray_image.shape)\nprint(xray_image.dtype)\n\n\n\n3. Import matplotlib and display the image in a grayscale colormap:\n\nimport matplotlib.pyplot as plt\n\nfig, ax = plt.subplots()\nax.imshow(xray_image, cmap=\"gray\")\nax.set_axis_off()\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#examine-an-x-ray-with-imageio","position":7},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Combine images into a multidimensional array to demonstrate progression"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#combine-images-into-a-multidimensional-array-to-demonstrate-progression","position":8},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Combine images into a multidimensional array to demonstrate progression"},"content":"\n\nIn the next example, instead of 1 image you’ll use 9 X-ray 1024x1024-pixel\nimages from the ChestX-ray8 dataset that have been downloaded and extracted\nfrom one of the dataset files. They are numbered from ...000.png to\n...008.png and let’s assume they belong to the same patient.\n\n1. Import NumPy, read in each of the X-rays, and create a three-dimensional\narray where the first dimension corresponds to image number:\n\nimport numpy as np\nnum_imgs = 9\n\ncombined_xray_images_1 = np.array(\n [imageio.v3.imread(os.path.join(DIR, f\"00000011_00{i}.png\")) for i in range(num_imgs)]\n)\n\n\n\n2. Check the shape of the new X-ray image array containing 9 stacked images:\n\ncombined_xray_images_1.shape\n\n\n\nNote that the shape in the first dimension matches num_imgs, so the\ncombined_xray_images_1 array can be interpreted as a stack of 2D images.\n\n3. You can now display the “health progress” by plotting each of frames next\nto each other using Matplotlib:\n\nfig, axes = plt.subplots(nrows=1, ncols=num_imgs, figsize=(30, 30))\n\nfor img, ax in zip(combined_xray_images_1, axes):\n ax.imshow(img, cmap='gray')\n ax.axis('off')\n\n\n\n4. In addition, it can be helpful to show the progress as an animation.\nLet’s create a GIF file with imageio.mimwrite() and display the result in the\nnotebook:\n\nGIF_PATH = os.path.join(DIR, \"xray_image.gif\")\nimageio.mimwrite(GIF_PATH, combined_xray_images_1, format= \".gif\", duration=1000)\n\n\n\nWhich gives us:\n","type":"content","url":"/tutorial-x-ray-image-processing#combine-images-into-a-multidimensional-array-to-demonstrate-progression","position":9},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#edge-detection-using-the-laplacian-gaussian-gaussian-gradient-sobel-and-canny-filters","position":10},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"content":"\n\nWhen processing biomedical data, it can be useful to emphasize the 2D\n\n\n“edges” to focus on particular\nfeatures in an image. To do that, using\n\n\nimage gradients can be\nparticularly helpful when detecting the change of color pixel intensity.\n\n","type":"content","url":"/tutorial-x-ray-image-processing#edge-detection-using-the-laplacian-gaussian-gaussian-gradient-sobel-and-canny-filters","position":11},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Laplace filter with Gaussian second derivatives","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"type":"lvl3","url":"/tutorial-x-ray-image-processing#the-laplace-filter-with-gaussian-second-derivatives","position":12},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Laplace filter with Gaussian second derivatives","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"content":"Let’s start with an n-dimensional\n\n\nLaplace filter\n(“Laplacian-Gaussian”) that uses\n\n\nGaussian second\nderivatives. This Laplacian method focuses on pixels with rapid intensity change\nin values and is combined with Gaussian smoothing to\n\n\nremove noise. Let’s examine\nhow it can be useful in analyzing 2D X-ray images.\n\nThe implementation of the Laplacian-Gaussian filter is relatively\nstraightforward: 1) import the ndimage module from SciPy; and 2) call\n\n\nscipy.ndimage.gaussian_laplace()\nwith a sigma (scalar) parameter, which affects the standard deviations of the\nGaussian filter (you’ll use 1 in the example below):\n\nfrom scipy import ndimage\n\nxray_image_laplace_gaussian = ndimage.gaussian_laplace(xray_image, sigma=1)\n\n\n\nDisplay the original X-ray and the one with the Laplacian-Gaussian filter:\n\nfig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Laplacian-Gaussian (edges)\")\naxes[1].imshow(xray_image_laplace_gaussian, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#the-laplace-filter-with-gaussian-second-derivatives","position":13},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Gaussian gradient magnitude method","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"type":"lvl3","url":"/tutorial-x-ray-image-processing#the-gaussian-gradient-magnitude-method","position":14},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Gaussian gradient magnitude method","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"content":"Another method for edge detection that can be useful is the\n\n\nGaussian (gradient) filter.\nIt computes the multidimensional gradient magnitude with Gaussian derivatives\nand helps by remove\n\n\nhigh-frequency\nimage components.\n\n1. Call \n\nscipy.ndimage.gaussian_gradient_magnitude()\nwith a sigma (scalar) parameter (for standard deviations; you’ll use 2 in the\nexample below):\n\nx_ray_image_gaussian_gradient = ndimage.gaussian_gradient_magnitude(xray_image, sigma=2)\n\n\n\n2. Display the original X-ray and the one with the Gaussian gradient filter:\n\nfig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Gaussian gradient (edges)\")\naxes[1].imshow(x_ray_image_gaussian_gradient, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#the-gaussian-gradient-magnitude-method","position":15},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Sobel-Feldman operator (the Sobel filter)","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"type":"lvl3","url":"/tutorial-x-ray-image-processing#the-sobel-feldman-operator-the-sobel-filter","position":16},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Sobel-Feldman operator (the Sobel filter)","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"content":"To find regions of high spatial frequency (the edges or the edge maps) along the\nhorizontal and vertical axes of a 2D X-ray image, you can use the\n\n\nSobel-Feldman operator (Sobel filter)\ntechnique. The Sobel filter applies two 3x3 kernel matrices — one for each axis\n— onto the X-ray through a \n\nconvolution.\nThen, these two points (gradients) are combined using the\n\n\nPythagorean theorem to\nproduce a gradient magnitude.\n\n1. Use the Sobel filters — (\n\nscipy.ndimage.sobel())\n— on x- and y-axes of the X-ray. Then, calculate the distance between x and\ny (with the Sobel filters applied to them) using the\n\n\nPythagorean theorem and\nNumPy’s \n\nnp.hypot()\nto obtain the magnitude. Finally, normalize the rescaled image for the pixel\nvalues to be between 0 and 255.\n\nImage normalization\nfollows the output_channel = 255.0 * (input_channel - min_value) / (max_value - min_value)\n\n\nformula. Because you’re\nusing a grayscale image, you need to normalize just one channel.\n\nx_sobel = ndimage.sobel(xray_image, axis=0)\ny_sobel = ndimage.sobel(xray_image, axis=1)\n\nxray_image_sobel = np.hypot(x_sobel, y_sobel)\n\nxray_image_sobel *= 255.0 / np.max(xray_image_sobel)\n\n\n\n2. Change the new image array data type to the 32-bit floating-point format\nfrom float16 to \n\nmake it compatible\nwith Matplotlib:\n\nprint(\"The data type - before: \", xray_image_sobel.dtype)\n\nxray_image_sobel = xray_image_sobel.astype(\"float32\")\n\nprint(\"The data type - after: \", xray_image_sobel.dtype)\n\n\n\n3. Display the original X-ray and the one with the Sobel “edge” filter\napplied. Note that both the grayscale and CMRmap colormaps are used to help\nemphasize the edges:\n\nfig, axes = plt.subplots(nrows=1, ncols=3, figsize=(15, 15))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Sobel (edges) - grayscale\")\naxes[1].imshow(xray_image_sobel, cmap=\"gray\")\naxes[2].set_title(\"Sobel (edges) - CMRmap\")\naxes[2].imshow(xray_image_sobel, cmap=\"CMRmap\")\nfor i in axes:\n i.axis(\"off\")\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#the-sobel-feldman-operator-the-sobel-filter","position":17},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Canny filter","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"type":"lvl3","url":"/tutorial-x-ray-image-processing#the-canny-filter","position":18},{"hierarchy":{"lvl1":"X-ray image processing","lvl3":"The Canny filter","lvl2":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters"},"content":"You can also consider using another well-known filter for edge detection called\nthe \n\nCanny filter.\n\nFirst, you apply a \n\nGaussian\nfilter to remove the noise in an image. In this example, you’re using using the\n\n\nFourier filter which\nsmoothens the X-ray through a \n\nconvolution\nprocess. Next, you apply the \n\nPrewitt filter\non each of the 2 axes of the image to help detect some of the edges — this will\nresult in 2 gradient values. Similar to the Sobel filter, the Prewitt operator\nalso applies two 3x3 kernel matrices — one for each axis — onto the X-ray\nthrough a \n\nconvolution.\nIn the end, you compute the magnitude between the two gradients using the\n\n\nPythagorean theorem and\n\n\nnormalize\nthe images, as before.\n\n1. Use SciPy’s Fourier filters — \n\nscipy.ndimage.fourier_gaussian()\n— with a small sigma value to remove some of the noise from the X-ray. Then,\ncalculate two gradients using \n\nscipy.ndimage.prewitt().\nNext, measure the distance between the gradients using NumPy’s np.hypot().\nFinally, \n\nnormalize\nthe rescaled image, as before.\n\nfourier_gaussian = ndimage.fourier_gaussian(xray_image, sigma=0.05)\n\nx_prewitt = ndimage.prewitt(fourier_gaussian, axis=0)\ny_prewitt = ndimage.prewitt(fourier_gaussian, axis=1)\n\nxray_image_canny = np.hypot(x_prewitt, y_prewitt)\n\nxray_image_canny *= 255.0 / np.max(xray_image_canny)\n\nprint(\"The data type - \", xray_image_canny.dtype)\n\n\n\n2. Plot the original X-ray image and the ones with the edges detected with\nthe help of the Canny filter technique. The edges can be emphasized using the\nprism, nipy_spectral, and terrain Matplotlib colormaps.\n\nfig, axes = plt.subplots(nrows=1, ncols=4, figsize=(20, 15))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Canny (edges) - prism\")\naxes[1].imshow(xray_image_canny, cmap=\"prism\")\naxes[2].set_title(\"Canny (edges) - nipy_spectral\")\naxes[2].imshow(xray_image_canny, cmap=\"nipy_spectral\")\naxes[3].set_title(\"Canny (edges) - terrain\")\naxes[3].imshow(xray_image_canny, cmap=\"terrain\")\nfor i in axes:\n i.axis(\"off\")\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#the-canny-filter","position":19},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Apply masks to X-rays with np.where()"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#apply-masks-to-x-rays-with-np-where","position":20},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Apply masks to X-rays with np.where()"},"content":"\n\nTo screen out only certain pixels in X-ray images to help detect particular\nfeatures, you can apply masks with NumPy’s\n\n\nnp.where(condition: array_like (bool), x: array_like, y: ndarray)\nthat returns x when True and y when False.\n\nIdentifying regions of interest — certain sets of pixels in an image — can be\nuseful and masks serve as boolean arrays of the same shape as the original\nimage.\n\n1. Retrieve some basics statistics about the pixel values in the original\nX-ray image you’ve been working with:\n\nprint(\"The data type of the X-ray image is: \", xray_image.dtype)\nprint(\"The minimum pixel value is: \", np.min(xray_image))\nprint(\"The maximum pixel value is: \", np.max(xray_image))\nprint(\"The average pixel value is: \", np.mean(xray_image))\nprint(\"The median pixel value is: \", np.median(xray_image))\n\n\n\n2. The array data type is uint8 and the minimum/maximum value results\nsuggest that all 256 colors (from 0 to 255) are used in the X-ray. Let’s\nvisualize the pixel intensity distribution of the original raw X-ray image\nwith ndimage.histogram() and Matplotlib:\n\npixel_intensity_distribution = ndimage.histogram(\n xray_image, min=np.min(xray_image), max=np.max(xray_image), bins=256\n)\n\nfig, ax = plt.subplots()\nax.plot(pixel_intensity_distribution)\nax.set_title(\"Pixel intensity distribution\")\n\n\n\nAs the pixel intensity distribution suggests, there are many low (between around\n0 and 20) and very high (between around 200 and 240) pixel values.\n\n3. You can create different conditional masks with NumPy’s np.where() —\nfor example, let’s have only those values of the image with the pixels exceeding\na certain threshold:\n\n# The threshold is \"greater than 150\"\n# Return the original image if true, `0` otherwise\nxray_image_mask_noisy = np.where(xray_image > 150, xray_image, 0)\n\nfig, ax = plt.subplots()\nax.imshow(xray_image_mask_noisy, cmap=\"gray\")\nax.set_axis_off()\n\n\n\n\n\n# The threshold is \"greater than 150\"\n# Return `1` if true, `0` otherwise\nxray_image_mask_less_noisy = np.where(xray_image > 150, 1, 0)\n\nfig, ax = plt.subplots()\nax.imshow(xray_image_mask_less_noisy, cmap=\"gray\")\nax.set_axis_off()\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#apply-masks-to-x-rays-with-np-where","position":21},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Compare the results"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#compare-the-results","position":22},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Compare the results"},"content":"\n\nLet’s display some of the results of processed X-ray images you’ve worked with\nso far:\n\nfig, axes = plt.subplots(nrows=1, ncols=9, figsize=(30, 30))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Laplace-Gaussian (edges)\")\naxes[1].imshow(xray_image_laplace_gaussian, cmap=\"gray\")\naxes[2].set_title(\"Gaussian gradient (edges)\")\naxes[2].imshow(x_ray_image_gaussian_gradient, cmap=\"gray\")\naxes[3].set_title(\"Sobel (edges) - grayscale\")\naxes[3].imshow(xray_image_sobel, cmap=\"gray\")\naxes[4].set_title(\"Sobel (edges) - hot\")\naxes[4].imshow(xray_image_sobel, cmap=\"hot\")\naxes[5].set_title(\"Canny (edges) - prism)\")\naxes[5].imshow(xray_image_canny, cmap=\"prism\")\naxes[6].set_title(\"Canny (edges) - nipy_spectral)\")\naxes[6].imshow(xray_image_canny, cmap=\"nipy_spectral\")\naxes[7].set_title(\"Mask (> 150, noisy)\")\naxes[7].imshow(xray_image_mask_noisy, cmap=\"gray\")\naxes[8].set_title(\"Mask (> 150, less noisy)\")\naxes[8].imshow(xray_image_mask_less_noisy, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")\n\n\n\n","type":"content","url":"/tutorial-x-ray-image-processing#compare-the-results","position":23},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Next steps"},"type":"lvl2","url":"/tutorial-x-ray-image-processing#next-steps","position":24},{"hierarchy":{"lvl1":"X-ray image processing","lvl2":"Next steps"},"content":"\n\nIf you want to use your own samples, you can use\n\n\nthis image\nor search for various other ones on the \n\nOpeni\ndatabase. Openi contains many biomedical images and it can be especially helpful\nif you have low bandwidth and/or are restricted by the amount of data you can\ndownload.\n\nTo learn more about image processing in the context of biomedical image data or\nsimply edge detection, you may find the following material useful:\n\nImage manipulation and processing using Numpy and Scipy (Scipy Lecture Notes)\n\nIntensity values (presentation, DataCamp)\n\nObject detection with Raspberry Pi and Python (Maker Portal)\n\nX-ray data preparation and segmentation with deep learning (a Kaggle-hosted Jupyter notebook)\n\nImage filtering (lecture slides, CS6670: Computer Vision, Cornell University)\n\nEdge detection in Python\n\nEdge detection with Scikit-Image (Data Carpentry)\n\nImage gradients and gradient filtering (lecture slides, 16-385 Computer Vision, Carnegie Mellon University)","type":"content","url":"/tutorial-x-ray-image-processing#next-steps","position":25}]} \ No newline at end of file diff --git a/myst.xref.json b/myst.xref.json new file mode 100644 index 00000000..ca7cb2e3 --- /dev/null +++ b/myst.xref.json @@ -0,0 +1 @@ +{"version":"1","myst":"1.8.0","references":[{"kind":"page","data":"/index.json","url":"/"},{"identifier":"useful-links-and-resources","kind":"heading","data":"/index.json","url":"/","implicit":true},{"kind":"page","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial"},{"identifier":"what-youll-do","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"skills-youll-learn","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"building-moores-law-as-an-exponential-function","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"loading-historical-manufacturing-data-to-your-workspace","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"calculating-the-historical-growth-curve-for-transistors","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"sharing-your-results-as-zipped-arrays-and-a-csv","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"zipping-the-arrays-into-a-file","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"creating-your-own-comma-separated-value-file","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"wrapping-up","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"identifier":"references","kind":"heading","data":"/mooreslaw-tutorial.json","url":"/mooreslaw-tutorial","implicit":true},{"kind":"page","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist"},{"identifier":"prerequisites","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"table-of-contents","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"id-1-load-the-mnist-dataset","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"id-2-preprocess-the-data","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"convert-the-image-data-to-the-floating-point-format","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"convert-the-labels-to-floating-point-through-categorical-one-hot-encoding","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"id-3-build-and-train-a-small-neural-network-from-scratch","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"neural-network-building-blocks-with-numpy","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"model-architecture-and-training-summary","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"compose-the-model-and-begin-training-and-testing-it","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"identifier":"next-steps","kind":"heading","data":"/tutorial-deep-learning-on-mnist.json","url":"/tutorial-deep-learning-on-mnist","implicit":true},{"kind":"page","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing"},{"identifier":"prerequisites","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"table-of-contents","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"examine-an-x-ray-with-imageio","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"combine-images-into-a-multidimensional-array-to-demonstrate-progression","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"edge-detection-using-the-laplacian-gaussian-gaussian-gradient-sobel-and-canny-filters","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"the-laplace-filter-with-gaussian-second-derivatives","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"the-gaussian-gradient-magnitude-method","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"the-sobel-feldman-operator-the-sobel-filter","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"the-canny-filter","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"apply-masks-to-x-rays-with-np-where","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"compare-the-results","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"identifier":"next-steps","kind":"heading","data":"/tutorial-x-ray-image-processing.json","url":"/tutorial-x-ray-image-processing","implicit":true},{"kind":"page","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium"},{"identifier":"what-youll-do","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"what-youll-learn","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"solving-equilibrium-with-newtons-second-law","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"solving-equilibrium-as-a-sum-of-moments","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"finding-values-with-physical-properties","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"another-example","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"wrapping-up","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"additional-applications","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"identifier":"references","kind":"heading","data":"/tutorial-static-equilibrium.json","url":"/tutorial-static-equilibrium","implicit":true},{"kind":"page","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals"},{"identifier":"what-youll-do","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"what-youll-learn","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"warmup","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"julia-set","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"mandelbrot-set","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"generalizing-the-julia-set","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"newton-fractals","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"creating-your-own-fractals","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"in-conclusion","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"on-your-own","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"identifier":"further-reading","kind":"heading","data":"/tutorial-plotting-fractals.json","url":"/tutorial-plotting-fractals","implicit":true},{"kind":"page","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis"},{"identifier":"what-youll-do","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"what-youll-learn","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"the-problem-of-air-pollution","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"building-the-dataset","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"calculating-the-air-quality-index","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"moving-averages","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"sub-indices","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"air-quality-indices","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"paired-students-t-test-on-the-aqis","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"sampling","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"defining-the-hypothesis","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"calculating-the-test-statistics","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"what-do-the-t-and-p-values-mean","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"in-practice","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"identifier":"further-reading","kind":"heading","data":"/tutorial-air-quality-analysis.json","url":"/tutorial-air-quality-analysis","implicit":true},{"kind":"page","data":"/tutorial-svd.json","url":"/tutorial-svd"},{"identifier":"prerequisites","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"learner-profile","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"learning-objectives","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"content","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"shape-axis-and-array-properties","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"operations-on-an-axis","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"approximation","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"applying-to-all-colors","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"products-with-n-dimensional-arrays","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"final-words","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"identifier":"further-reading","kind":"heading","data":"/tutorial-svd.json","url":"/tutorial-svd","implicit":true},{"kind":"page","data":"/save-load-arrays.json","url":"/save-load-arrays"},{"identifier":"what-youll-learn","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"what-youll-do","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"create-your-arrays","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"save-your-arrays-with-numpys-savez","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"remove-the-saved-arrays-and-load-them-back-with-numpys-load","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"reassign-the-npzfile-arrays-to-x-and-y","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"success","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"another-option-saving-to-human-readable-csv","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"rearrange-the-data-into-a-single-2d-array","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"save-the-data-to-csv-file-using-savetxt","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"our-arrays-as-a-csv-file","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"success-but-remember-your-types","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"identifier":"wrapping-up","kind":"heading","data":"/save-load-arrays.json","url":"/save-load-arrays","implicit":true},{"kind":"page","data":"/tutorial-ma.json","url":"/tutorial-ma"},{"identifier":"what-youll-do","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"what-youll-learn","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"what-are-masked-arrays","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"when-can-they-be-useful","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"using-masked-arrays-to-see-covid-19-data","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"exploring-the-data","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"missing-data","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"fitting-data","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"in-practice","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"further-reading","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"identifier":"reference","kind":"heading","data":"/tutorial-ma.json","url":"/tutorial-ma","implicit":true},{"kind":"page","data":"/contributing.json","url":"/contributing"},{"identifier":"contributing","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"building-the-website","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"quickstart","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"adding-your-own-tutorials","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"create-an-issue","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"check-out-our-suggested-template","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"identifier":"open-a-pull-request","kind":"heading","data":"/contributing.json","url":"/contributing","implicit":true},{"kind":"page","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide"},{"identifier":"what-youll-do","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"what-youll-learn","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"what-youll-need","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"after-a-horizontal-rule-start-your-own-headings","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"titles-have-verbs","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"titles-are-lowercase","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"what-to-say-in-what-youll-learn","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"why-are-what-youll-do-and-what-youll-learn-different","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"avoid-asides","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"use-plots-and-illustrations","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"use-real-datasets-when-possible","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"tutorials-and-how-tos-similar-but-different","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"make-use-of-the-google-doc-style-guide","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"the-notebook-must-be-fully-executable","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"on-your-own","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"in-practice","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true},{"identifier":"further-reading","kind":"heading","data":"/tutorial-style-guide.json","url":"/tutorial-style-guide","implicit":true}]} \ No newline at end of file diff --git a/myst.yml b/myst.yml deleted file mode 100644 index 86a537d1..00000000 --- a/myst.yml +++ /dev/null @@ -1,35 +0,0 @@ -version: 1 -project: - title: Numpy Tutorials - # description: - # keywords: [] - authors: Numpy Community - github: https://github.com/numpy/numpy-tutorials - toc: - - file: content/index.md - - - title: Applications - children: - - file: content/mooreslaw-tutorial.md - - file: content/tutorial-deep-learning-on-mnist.md - - file: content/tutorial-x-ray-image-processing.md - - file: content/tutorial-static_equilibrium.md - - file: content/tutorial-plotting-fractals.md - - file: content/tutorial-air-quality-analysis.md - - - title: Features - children: - - file: content/tutorial-svd.md - - file: content/save-load-arrays.md - - file: content/tutorial-ma.md - - title: Contributing - file: content/contributing.md - children: - - file: content/tutorial-style-guide.md - - -site: - template: book-theme - options: - favicon: _static/favicon.png - logo: _static/numpylogo.svg diff --git a/objects.inv b/objects.inv new file mode 100644 index 00000000..748e60a9 Binary files /dev/null and b/objects.inv differ diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index f0684fff..00000000 --- a/requirements.txt +++ /dev/null @@ -1,10 +0,0 @@ -# For the tutorials -numpy -scipy -pooch # for scipy.datasets -matplotlib -pandas -imageio -# For supporting .md-based notebooks and building the site -jupytext -jupyter-book>=2 diff --git a/robots.txt b/robots.txt new file mode 100644 index 00000000..b0072b54 --- /dev/null +++ b/robots.txt @@ -0,0 +1,5 @@ +# https://www.robotstxt.org/robotstxt.html + +User-agent: * +Allow: / +Sitemap: http://localhost:3000/sitemap.xml diff --git a/save-load-arrays.json b/save-load-arrays.json new file mode 100644 index 00000000..0d91c7c4 --- /dev/null +++ b/save-load-arrays.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"247857b1906d62b69213e6abe6fc5db3a279a4ac499453c6668316b01a4f044f","slug":"save-load-arrays","location":"/content/save-load-arrays.md","dependencies":[],"frontmatter":{"title":"Saving and sharing your NumPy arrays","short_title":"Sharing Array Data","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/save-load-arrays.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/save-load-arrays.md","exports":[{"format":"md","filename":"save-load-arrays.md","url":"/numpy-tutorials/build/save-load-arrays-551403733be0c632191e3a33e11c78f2.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"xfK4l0S5pL"}],"identifier":"what-youll-learn","label":"What you’ll learn","html_id":"what-youll-learn","implicit":true,"key":"foaFdgAeZl"},{"type":"paragraph","position":{"start":{"line":19,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"text","value":"You’ll save your NumPy arrays as zipped files and human-readable\ncomma-delimited files i.e. *.csv. You will also learn to load both of these\nfile types back into NumPy workspaces.","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"Vh6hHuXttw"}],"key":"sydbgYWop2"},{"type":"heading","depth":2,"position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"gFXvlM0nSM"}],"identifier":"what-youll-do","label":"What you’ll do","html_id":"what-youll-do","implicit":true,"key":"MSCXEszi0F"},{"type":"paragraph","position":{"start":{"line":25,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"text","value":"You’ll learn two ways of saving and reading files--as compressed and as\ntext files--that will serve most of your storage needs in NumPy.","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"p7A0tQMgqx"}],"key":"G5DZYbLiGY"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":28,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll create two 1D arrays and one 2D array","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"key":"p9N5AcOtQ1"}],"key":"Y1eGeHdZap"}],"key":"dcPTevG6g0"},{"type":"listItem","spread":true,"position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll save these arrays to files","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"OuMbSQi57s"}],"key":"IheRuVD9a3"}],"key":"lV2CZtxiSz"},{"type":"listItem","spread":true,"position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll remove variables from your workspace","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"Ow533VhwDW"}],"key":"GyGfRkM8jS"}],"key":"qdyoGo0qne"},{"type":"listItem","spread":true,"position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll load the variables from your saved file","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"mFl01ARjTu"}],"key":"H3PUhfFkIv"}],"key":"cyuFFGSH8t"},{"type":"listItem","spread":true,"position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll compare zipped binary files to human-readable delimited files","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"tXw9XOgAZ7"}],"key":"M0vySV4nMO"}],"key":"wRy38iaRy9"},{"type":"listItem","spread":true,"position":{"start":{"line":33,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll finish with the skills of saving, loading, and sharing NumPy arrays","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"CmXO5Io68S"}],"key":"ZocU78gehW"}],"key":"fL5HNymOQo"}],"key":"PWdP04HwL1"},{"type":"heading","depth":2,"position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"YpMelbRImb"}],"identifier":"what-youll-need","label":"What you’ll need","html_id":"what-youll-need","implicit":true,"key":"oxAom27gkg"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":38,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"NumPy","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"Ks1SqBQlrR"}],"key":"d7NFXJo17v"}],"key":"hllRVWfSkD"},{"type":"listItem","spread":true,"position":{"start":{"line":39,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"read-write access to your working directory","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"BuTUgZsMik"}],"key":"JCRkrKyny7"}],"key":"y6EtFdcCfm"}],"key":"j82QOxxI5O"},{"type":"paragraph","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"Load the necessary functions using the following command.","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"xAf7pUluRK"}],"key":"ILS6AskwvU"}],"key":"bWBucZz8bM"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np","key":"wNb1vNMJXb"},{"type":"outputs","id":"Nro3EdcmDGHncwxPxGdwY","children":[],"key":"AHMjc99c7g"}],"key":"LrdKHY4gHR"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"In this tutorial, you will use the following Python, IPython magic, and NumPy functions:","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"PuUsP5BgSA"}],"key":"gX0lHGWwrT"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":49,"column":1},"end":{"line":58,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.arange.html","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"inlineCode","value":"np.arange","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"dd8VKX4fuS"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.arange.html","key":"ea4BnZJY9D"}],"key":"lQcgGOgUFv"}],"key":"k5B2NpvHPq"},{"type":"listItem","spread":true,"position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"children":[{"type":"inlineCode","value":"np.savez","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"wX6BoTiqoB"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html","key":"G6qvuhVO4i"}],"key":"bG7KYvq247"}],"key":"DA9AFg1IiQ"},{"type":"listItem","spread":true,"position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://docs.python.org/3/reference/simple_stmts.html#del","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"children":[{"type":"inlineCode","value":"del","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"xNeBPASz5E"}],"urlSource":"https://docs.python.org/3/reference/simple_stmts.html#del","key":"JwCu8LG2vJ"}],"key":"IiLVbgPWDk"}],"key":"uFUp5Fn7S2"},{"type":"listItem","spread":true,"position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-whos","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"inlineCode","value":"whos","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"key":"JhpVSv0uHQ"}],"urlSource":"https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-whos","key":"xL7VPW9V4T"}],"key":"CAfsWO1tRw"}],"key":"bofEP5MiKJ"},{"type":"listItem","spread":true,"position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.load.html","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"children":[{"type":"inlineCode","value":"np.load","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"key":"p4onPEYh39"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.load.html","key":"MuJwF0QA4c"}],"key":"IsjYcSyVso"}],"key":"e2Kz0mh88G"},{"type":"listItem","spread":true,"position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"inlineCode","value":"np.block","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"key":"JPuy1t9awq"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.block.html","key":"zUK9NCIYww"}],"key":"x3RiIBGL65"}],"key":"jzLxbh1N9E"},{"type":"listItem","spread":true,"position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/constants.html?highlight=newaxis#numpy.newaxis","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"inlineCode","value":"np.newaxis","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"nl8EOYsYsq"}],"urlSource":"https://numpy.org/doc/stable/reference/constants.html?highlight=newaxis#numpy.newaxis","key":"o4HGDRTC23"}],"key":"K2RS8FiZyy"}],"key":"PfOwG7KZsL"},{"type":"listItem","spread":true,"position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"inlineCode","value":"np.savetxt","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"key":"vp90SAwOLi"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html","key":"hPLi8oiNxd"}],"key":"CqUecbWC7w"}],"key":"A83Z87VDFs"},{"type":"listItem","spread":true,"position":{"start":{"line":57,"column":1},"end":{"line":58,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"inlineCode","value":"np.loadtxt","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"iFtgSxuy7y"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","key":"zFEg47mUAF"}],"key":"GePtG7BoUM"}],"key":"ixxGRuKCDM"}],"key":"PWVLl6Nfd3"}],"key":"jYxdoQriM2"},{"type":"block","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"thematicBreak","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"IbOpb0o6iO"},{"type":"heading","depth":2,"position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"children":[{"type":"text","value":"Create your arrays","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"n8SRV3jWbe"}],"identifier":"create-your-arrays","label":"Create your arrays","html_id":"create-your-arrays","implicit":true,"key":"fq3SvnUF74"},{"type":"paragraph","position":{"start":{"line":65,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"text","value":"Now that you have imported the NumPy library, you can make a couple of\narrays; let’s start with two 1D arrays, ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"NFfa2lS0om"},{"type":"inlineCode","value":"x","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"aqpuQkDvmL"},{"type":"text","value":" and ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"RZLPK1MSu4"},{"type":"inlineCode","value":"y","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"q1IQqR7J1G"},{"type":"text","value":", where ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"ybDapYd0UA"},{"type":"inlineCode","value":"y = x**2","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"rAqrjr4TWF"},{"type":"text","value":".You\nwill assign ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"FveBhgqwCH"},{"type":"inlineCode","value":"x","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"FMhzpIpOeE"},{"type":"text","value":" to the integers from 0 to 9 using\n","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"avPKXAZt1V"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.arange.html","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"children":[{"type":"inlineCode","value":"np.arange","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"hQMfIQIKcH"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.arange.html","key":"vtZRYilN3n"},{"type":"text","value":".","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"O8Dw1LlVix"}],"key":"QMhvspPtLo"}],"key":"CJd7EZnzxR"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x = np.arange(10)\ny = x ** 2\nprint(x)\nprint(y)","key":"ppl3LdOATD"},{"type":"outputs","id":"ZBNECnzhJM6KDBJzJNcsk","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"[0 1 2 3 4 5 6 7 8 9]\n[ 0 1 4 9 16 25 36 49 64 81]\n"},"key":"Xw2xZxhfhC"}],"key":"OlAgapaQu6"}],"key":"kgEZeCSSzn"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"Save your arrays with NumPy’s ","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"ieZjoAfe2j"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html?highlight=savez#numpy.savez","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"inlineCode","value":"savez","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"peN1lkMfiK"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html?highlight=savez#numpy.savez","key":"ChzFYXFkak"}],"identifier":"save-your-arrays-with-numpys-savez","label":"Save your arrays with NumPy’s savez","html_id":"save-your-arrays-with-numpys-savez","implicit":true,"key":"NFAWv1qA13"},{"type":"paragraph","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"children":[{"type":"text","value":"Now you have two arrays in your workspace,","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"key":"nZEGtVY8er"}],"key":"Wz3c5s07B6"},{"type":"paragraph","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"children":[{"type":"inlineCode","value":"x: [0 1 2 3 4 5 6 7 8 9]","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"Mk7YNrKyAl"}],"key":"aj8xWfzC4Z"},{"type":"paragraph","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"inlineCode","value":"y: [ 0 1 4 9 16 25 36 49 64 81]","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"BDJNMhd5cY"}],"key":"E90ZOR8TKr"},{"type":"paragraph","position":{"start":{"line":86,"column":1},"end":{"line":89,"column":1}},"children":[{"type":"text","value":"The first thing you will do is save them to a file as zipped arrays\nusing\n","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"LPHzL1EUo3"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html?highlight=savez#numpy.savez","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"children":[{"type":"inlineCode","value":"savez","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"FYruF1vvMw"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savez.html?highlight=savez#numpy.savez","key":"XOXSyWub1m"},{"type":"text","value":".\nYou will use two options to label the arrays in the file,","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"u0qbsImPtw"}],"key":"WX8QoOh0bp"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":91,"column":1},"end":{"line":93,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"x_axis = x","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"LE55RZsNey"},{"type":"text","value":": this option is assigning the name ","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"xZAAPf8iT0"},{"type":"inlineCode","value":"x_axis","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"yMjv5yz7jx"},{"type":"text","value":" to the variable ","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"ybfL5FB874"},{"type":"inlineCode","value":"x","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"Amt9cDwT4d"}],"key":"h4a4CWchZr"}],"key":"wj9xO5pEqx"},{"type":"listItem","spread":true,"position":{"start":{"line":92,"column":1},"end":{"line":93,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"y_axis = y","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"OIhYK7SJ1I"},{"type":"text","value":": this option is assigning the name ","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"P9sPJyR9lc"},{"type":"inlineCode","value":"y_axis","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"m8WlDbbZmq"},{"type":"text","value":" to the variable ","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"sFSGcHqLu0"},{"type":"inlineCode","value":"y","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"KAc7uwh6Vi"}],"key":"MhBZdmT7sK"}],"key":"PJOEtTKeWq"}],"key":"talnS9Zz7T"}],"key":"sX1nJRb54H"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.savez(\"x_y-squared.npz\", x_axis=x, y_axis=y)","key":"tswY624nM9"},{"type":"outputs","id":"a1JWPAxZLk7lWDr_XuE8y","children":[],"key":"iKkKFVrPs6"}],"key":"T54YCYB3lQ"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"children":[{"type":"text","value":"Remove the saved arrays and load them back with NumPy’s ","position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"key":"srvWExF8jF"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.load.html#numpy.load","position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"children":[{"type":"inlineCode","value":"load","position":{"start":{"line":98,"column":1},"end":{"line":98,"column":1}},"key":"ng9Nc8tV1m"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.load.html#numpy.load","key":"zl9XsyEJc0"}],"identifier":"remove-the-saved-arrays-and-load-them-back-with-numpys-load","label":"Remove the saved arrays and load them back with NumPy’s load","html_id":"remove-the-saved-arrays-and-load-them-back-with-numpys-load","implicit":true,"key":"td9l5QKTHW"},{"type":"paragraph","position":{"start":{"line":100,"column":1},"end":{"line":107,"column":1}},"children":[{"type":"text","value":"In your current working directory, you should have a new file with the\nname ","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"kVDpSDNNE5"},{"type":"inlineCode","value":"x_y-squared.npz","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"BdvWvzK8mH"},{"type":"text","value":". This file is a zipped binary of the two arrays,\n","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"HqpqJb4eeO"},{"type":"inlineCode","value":"x","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"yas7EpglDL"},{"type":"text","value":" and ","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"RcWqbAvGp6"},{"type":"inlineCode","value":"y","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"xzVBdz0hvM"},{"type":"text","value":". Let’s clear the workspace and load the values back in. This\n","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"nhVjrnq8zb"},{"type":"inlineCode","value":"x_y-squared.npz","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"x2vT0Ay4Zg"},{"type":"text","value":" file contains two ","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"Qd1QxJ1Jb5"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"children":[{"type":"text","value":"NPY\nformat","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"wYoY8ctbo5"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.lib.format.html#module-numpy.lib.format","key":"mujvqqJniV"},{"type":"text","value":"\nfiles. The NPY format is a ","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"PhzlGrxHXr"},{"type":"link","url":"https://en.wikipedia.org/wiki/Binary_file","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"children":[{"type":"text","value":"native binary\nformat","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"hrzrmuRLAX"}],"urlSource":"https://en.wikipedia.org/wiki/Binary_file","data":{"page":"Binary_file","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"b38ITcGrXr"},{"type":"text","value":". You cannot read\nthe numbers in a standard text editor or spreadsheet.","position":{"start":{"line":100,"column":1},"end":{"line":100,"column":1}},"key":"o85aok2ldX"}],"key":"IskoyicDu2"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":109,"column":1},"end":{"line":111,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"remove ","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"AthOFbUJ1k"},{"type":"inlineCode","value":"x","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"wx2gybLRVm"},{"type":"text","value":" and ","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"qIvny1POiI"},{"type":"inlineCode","value":"y","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"PRi0JL8O7i"},{"type":"text","value":" from the workspaec with ","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"uPUptySaOM"},{"type":"link","url":"https://docs.python.org/3/reference/simple_stmts.html#del","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"children":[{"type":"inlineCode","value":"del","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"S474XesZB5"}],"urlSource":"https://docs.python.org/3/reference/simple_stmts.html#del","key":"wOlFznpaJl"}],"key":"qt2cxLKcSW"}],"key":"vYnvm3cTyS"},{"type":"listItem","spread":true,"position":{"start":{"line":110,"column":1},"end":{"line":111,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"load the arrays into the workspace in a dictionary with ","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"key":"JgpBwX6alF"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.load.html#numpy.load","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"children":[{"type":"inlineCode","value":"np.load","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"key":"yyHEqIHEpp"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.load.html#numpy.load","key":"BNyZFXVzrY"}],"key":"uJ8JNFx0XG"}],"key":"C5bduq36Hs"}],"key":"EqrfAmoHXM"},{"type":"paragraph","position":{"start":{"line":112,"column":1},"end":{"line":114,"column":1}},"children":[{"type":"text","value":"To see what variables are in the workspace, use the Jupyter/IPython\n“magic” command\n","position":{"start":{"line":112,"column":1},"end":{"line":112,"column":1}},"key":"oyStzuWkrF"},{"type":"link","url":"https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-whos","position":{"start":{"line":112,"column":1},"end":{"line":112,"column":1}},"children":[{"type":"inlineCode","value":"whos","position":{"start":{"line":112,"column":1},"end":{"line":112,"column":1}},"key":"GHGY7E8GCI"}],"urlSource":"https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-whos","key":"Ic52gALSXY"},{"type":"text","value":".","position":{"start":{"line":112,"column":1},"end":{"line":112,"column":1}},"key":"yqr5NKxh9B"}],"key":"T93JKHTPPZ"}],"key":"nxIOKA9Dmf"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"del x, y","key":"AvFegVx7Yq"},{"type":"outputs","id":"kwOCfsZw-N6POSltQsHDs","children":[],"key":"M0vrVZk189"}],"key":"SNOtR6UkNC"},{"type":"block","children":[],"key":"oJLMf3qfN1"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"%whos","key":"bpttYbqulH"},{"type":"outputs","id":"53-bq9zltOUXzF4MMzSkc","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Variable Type Data/Info\n------------------------------\nnp module kages/numpy/__init__.py'>\n"},"key":"fy0lxFjvrY"}],"key":"NO67VkSAbY"}],"key":"JfOFbXZoWX"},{"type":"block","children":[],"key":"KEm0lGpIEI"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"load_xy = np.load(\"x_y-squared.npz\")\n\nprint(load_xy.files)","key":"BNxIgTDq3I"},{"type":"outputs","id":"ob_TyEZRsBRuqzdKCIHnL","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"['x_axis', 'y_axis']\n"},"key":"OF2f9kwK6b"}],"key":"Bj9wcHMFrc"}],"key":"CQsinUAwet"},{"type":"block","children":[],"key":"owVvRh5oAW"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"%whos","key":"RLxqYaEg6i"},{"type":"outputs","id":"kPctG11bCdlv0eTXw7iS2","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Variable Type Data/Info\n-------------------------------\nload_xy NpzFile NpzFile 'x_y-squared.npz'<...>with keys: x_axis, y_axis\nnp module kages/numpy/__init__.py'>\n"},"key":"VG5Gvl7V9D"}],"key":"ay37HVN6U8"}],"key":"R1vz2EUqKm"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"children":[{"type":"text","value":"Reassign the NpzFile arrays to ","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"Wy1RWl3AG5"},{"type":"inlineCode","value":"x","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"gy3QyhKX85"},{"type":"text","value":" and ","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"cFNwj8k5B3"},{"type":"inlineCode","value":"y","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"HVwOhdslBz"}],"identifier":"reassign-the-npzfile-arrays-to-x-and-y","label":"Reassign the NpzFile arrays to x and y","html_id":"reassign-the-npzfile-arrays-to-x-and-y","implicit":true,"key":"O5XfKp3JEx"},{"type":"paragraph","position":{"start":{"line":136,"column":1},"end":{"line":138,"column":1}},"children":[{"type":"text","value":"You’ve now created the dictionary with an ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"Uf5V49UHpV"},{"type":"inlineCode","value":"NpzFile","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"K0FdDckKmX"},{"type":"text","value":"-type. The\nincluded files are ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"ZlZatsfhkX"},{"type":"inlineCode","value":"x_axis","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"Oxk2mZRIxP"},{"type":"text","value":" and ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"XXVQh5mAls"},{"type":"inlineCode","value":"y_axis","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"srvpFCXEWH"},{"type":"text","value":" that you defined in your\n","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"dhVxVh6hza"},{"type":"inlineCode","value":"savez","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"H6CWmaOcTh"},{"type":"text","value":" command. You can reassign ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"mo2VKTORUc"},{"type":"inlineCode","value":"x","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"YMaAG89u2x"},{"type":"text","value":" and ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"pUUT9xlMqe"},{"type":"inlineCode","value":"y","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"BamlVH62i6"},{"type":"text","value":" to the ","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"u7WMhhZfrO"},{"type":"inlineCode","value":"load_xy","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"sHECmxaf2i"},{"type":"text","value":" files.","position":{"start":{"line":136,"column":1},"end":{"line":136,"column":1}},"key":"tS5CJzF4HY"}],"key":"JjJzPoPkwV"}],"key":"Nr4kUZTk3E"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x = load_xy[\"x_axis\"]\ny = load_xy[\"y_axis\"]\nprint(x)\nprint(y)","key":"LINJAPMHEq"},{"type":"outputs","id":"Cplah8U-ogQNQtws_ht2R","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"[0 1 2 3 4 5 6 7 8 9]\n[ 0 1 4 9 16 25 36 49 64 81]\n"},"key":"eEILlf0i4l"}],"key":"pn9BUgozI8"}],"key":"aabIE5kqTU"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":147,"column":1},"end":{"line":147,"column":1}},"children":[{"type":"text","value":"Success","position":{"start":{"line":147,"column":1},"end":{"line":147,"column":1}},"key":"myjkfJqGGI"}],"identifier":"success","label":"Success","html_id":"success","implicit":true,"key":"P3JKaJb1n4"},{"type":"paragraph","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"children":[{"type":"text","value":"You have created, saved, deleted, and loaded the variables ","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"KhITM0ymlA"},{"type":"inlineCode","value":"x","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"XC1E9WQJfX"},{"type":"text","value":" and ","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"UYNpTHp7ci"},{"type":"inlineCode","value":"y","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"lasRibzp5Q"},{"type":"text","value":" using ","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"dujuHugWk4"},{"type":"inlineCode","value":"savez","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"c6fTqVUR3n"},{"type":"text","value":" and ","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"Sfh3grOStD"},{"type":"inlineCode","value":"load","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"E0PX1R7n60"},{"type":"text","value":". Nice work.","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"lg7LoRPAe8"}],"key":"OUWMmmWder"},{"type":"heading","depth":2,"position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"Another option: saving to human-readable csv","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"so5HqhPWqr"}],"identifier":"another-option-saving-to-human-readable-csv","label":"Another option: saving to human-readable csv","html_id":"another-option-saving-to-human-readable-csv","implicit":true,"key":"UDuCufZfD8"},{"type":"paragraph","position":{"start":{"line":151,"column":1},"end":{"line":157,"column":1}},"children":[{"type":"text","value":"Let’s consider another scenario, you want to share ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"tdApcWTKk8"},{"type":"inlineCode","value":"x","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"nqM4J9wlOG"},{"type":"text","value":" and ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"QMWrhOfX2O"},{"type":"inlineCode","value":"y","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"huN3dKgniF"},{"type":"text","value":" with\nother people or other programs. You may need human-readable text file\nthat is easier to share. Next, you use the\n","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"KDdfeoO9aH"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html#numpy.savetxt","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"children":[{"type":"inlineCode","value":"savetxt","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"BCe4jmh81V"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html#numpy.savetxt","key":"FDliscGfeZ"},{"type":"text","value":"\nto save ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"Ijfewc5ctB"},{"type":"inlineCode","value":"x","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"EZC8RcG5Qi"},{"type":"text","value":" and ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"ljC46gL6Xa"},{"type":"inlineCode","value":"y","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"mMdP2780TQ"},{"type":"text","value":" in a comma separated value file, ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"nq0Mf2Lzjo"},{"type":"inlineCode","value":"x_y-squared.csv","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"ChyewXzPYn"},{"type":"text","value":".\nThe resulting csv is composed of ASCII characters. You can load the file\nback into NumPy or read it with other programs.","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"rYd8FjsgcI"}],"key":"R3fzaZyzy8"},{"type":"heading","depth":2,"position":{"start":{"line":159,"column":1},"end":{"line":159,"column":1}},"children":[{"type":"text","value":"Rearrange the data into a single 2D array","position":{"start":{"line":159,"column":1},"end":{"line":159,"column":1}},"key":"QDupBo3IyE"}],"identifier":"rearrange-the-data-into-a-single-2d-array","label":"Rearrange the data into a single 2D array","html_id":"rearrange-the-data-into-a-single-2d-array","implicit":true,"key":"wHUqTBUGFi"},{"type":"paragraph","position":{"start":{"line":160,"column":1},"end":{"line":165,"column":1}},"children":[{"type":"text","value":"First, you have to create a single 2D array from your two 1D arrays. The\ncsv-filetype is a spreadsheet-style dataset. The csv arranges numbers in\nrows--separated by new lines--and columns--separated by commas. If the\ndata is more complex e.g. multiple 2D arrays or higher dimensional\narrays, it is better to use ","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"gFhTBpYKMS"},{"type":"inlineCode","value":"savez","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"fwYJhQjCnF"},{"type":"text","value":". Here, you use\ntwo NumPy functions to format the data:","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"yNju9mlHd1"}],"key":"EPlq9cOHIg"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":167,"column":1},"end":{"line":170,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":167,"column":1},"end":{"line":168,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":167,"column":1},"end":{"line":167,"column":1}},"children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.block.html?highlight=block#numpy.block","position":{"start":{"line":167,"column":1},"end":{"line":167,"column":1}},"children":[{"type":"inlineCode","value":"np.block","position":{"start":{"line":167,"column":1},"end":{"line":167,"column":1}},"key":"LBbYwGeldW"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.block.html?highlight=block#numpy.block","key":"sL2HjHBP0F"},{"type":"text","value":": this function appends arrays together into a 2D array","position":{"start":{"line":167,"column":1},"end":{"line":167,"column":1}},"key":"uoOKqr07wh"}],"key":"DJ0O4v3fAS"}],"key":"jdd5SETUdi"},{"type":"listItem","spread":true,"position":{"start":{"line":169,"column":1},"end":{"line":170,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/constants.html?highlight=newaxis#numpy.newaxis","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"children":[{"type":"inlineCode","value":"np.newaxis","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"zHImptD8bD"}],"urlSource":"https://numpy.org/doc/stable/reference/constants.html?highlight=newaxis#numpy.newaxis","key":"LokbDPKYas"},{"type":"text","value":": this function forces the 1D array into a 2D column vector with 10 rows and 1 column.","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"ugEAEc6c3L"}],"key":"yHlPHkAErF"}],"key":"ejOYPol8vw"}],"key":"e2OLwzR2Av"}],"key":"MB40PcnRdm"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"array_out = np.block([x[:, np.newaxis], y[:, np.newaxis]])\nprint(\"the output array has shape \", array_out.shape, \" with values:\")\nprint(array_out)","key":"qSvH9BmcqU"},{"type":"outputs","id":"DtNUjqD_dNNd53DQJg32D","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"the output array has shape (10, 2) with values:\n[[ 0 0]\n [ 1 1]\n [ 2 4]\n [ 3 9]\n [ 4 16]\n [ 5 25]\n [ 6 36]\n [ 7 49]\n [ 8 64]\n [ 9 81]]\n"},"key":"kdNsx16zmH"}],"key":"BfUO5r3AEr"}],"key":"KM7ajIQ7fB"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"children":[{"type":"text","value":"Save the data to csv file using ","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"key":"tjd5PVhdR9"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html#numpy.savetxt","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"children":[{"type":"inlineCode","value":"savetxt","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"key":"tyniYjy7u9"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.savetxt.html#numpy.savetxt","key":"EoG9gUecv0"}],"identifier":"save-the-data-to-csv-file-using-savetxt","label":"Save the data to csv file using savetxt","html_id":"save-the-data-to-csv-file-using-savetxt","implicit":true,"key":"rdxFZbHXTF"},{"type":"paragraph","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"children":[{"type":"text","value":"You use ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"x06YbXeFwo"},{"type":"inlineCode","value":"savetxt","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"ewX1lHg9f2"},{"type":"text","value":" with a three options to make your file easier to read:","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"ANuMLn7fGy"}],"key":"ziIjOyKl6y"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":181,"column":1},"end":{"line":184,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"X = array_out","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"ktZ4GhGGLT"},{"type":"text","value":": this option tells ","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"Rzutmfvr9F"},{"type":"inlineCode","value":"savetxt","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"WEm5ch3ORq"},{"type":"text","value":" to save your 2D array, ","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"eQSiQSfABH"},{"type":"inlineCode","value":"array_out","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"hA2uY0pNut"},{"type":"text","value":", to the file ","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"FoQKqpGvEa"},{"type":"inlineCode","value":"x_y-squared.csv","position":{"start":{"line":181,"column":1},"end":{"line":181,"column":1}},"key":"m0SBFSOLUD"}],"key":"vgHvoOrva7"}],"key":"dy0In4csJ6"},{"type":"listItem","spread":true,"position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"header = 'x, y'","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"rAFUHGa6US"},{"type":"text","value":": this option writes a header before any data that labels the columns of the csv","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"CC7pb0uKMC"}],"key":"KhpOy5Em7f"}],"key":"SyltZDUDEx"},{"type":"listItem","spread":true,"position":{"start":{"line":183,"column":1},"end":{"line":184,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"delimiter = ','","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"EjgAAnQHwt"},{"type":"text","value":": this option tells ","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"cDIO7gzCxp"},{"type":"inlineCode","value":"savetxt","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"ch3CmFHiky"},{"type":"text","value":" to place a comma between each column in the file","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"X2Ak9nYegI"}],"key":"gDuTe4cJwR"}],"key":"uFEWPQDijT"}],"key":"NUEKbGhP8b"}],"key":"gHNT2LDsSJ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.savetxt(\"x_y-squared.csv\", X=array_out, header=\"x, y\", delimiter=\",\")","key":"Wmb5GNBDS3"},{"type":"outputs","id":"g6oF6LdGrGLwYhoIEz7V6","children":[],"key":"iqnz8sQMYh"}],"key":"hhF9XUPDIk"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"children":[{"type":"text","value":"Open the file, ","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"tQ5LwwoN4V"},{"type":"inlineCode","value":"x_y-squared.csv","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"XnDrEDVlEd"},{"type":"text","value":", and you’ll see the following:","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"h7uOM4QnQ7"}],"key":"ylbChgg4ub"}],"key":"Ss0mhmSMsy"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"!head x_y-squared.csv","key":"Sumt1AxpPQ"},{"type":"outputs","id":"NS3KEHKe_45kQ--2vCMre","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"# x, y\r\n0.000000000000000000e+00,0.000000000000000000e+00\r\n1.000000000000000000e+00,1.000000000000000000e+00\r\n2.000000000000000000e+00,4.000000000000000000e+00\r\n3.000000000000000000e+00,9.000000000000000000e+00\r\n4.000000000000000000e+00,1.600000000000000000e+01\r\n5.000000000000000000e+00,2.500000000000000000e+01\r\n6.000000000000000000e+00,3.600000000000000000e+01\r\n7.000000000000000000e+00,4.900000000000000000e+01\r\n8.000000000000000000e+00,6.400000000000000000e+01\r\n"},"key":"fBfK5Tp93j"}],"key":"BLZBdlxtYW"}],"key":"at3Ek8hTkt"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":195,"column":1},"end":{"line":195,"column":1}},"children":[{"type":"text","value":"Our arrays as a csv file","position":{"start":{"line":195,"column":1},"end":{"line":195,"column":1}},"key":"IgXsMSs4Ay"}],"identifier":"our-arrays-as-a-csv-file","label":"Our arrays as a csv file","html_id":"our-arrays-as-a-csv-file","implicit":true,"key":"goSifHlDma"},{"type":"paragraph","position":{"start":{"line":197,"column":1},"end":{"line":197,"column":1}},"children":[{"type":"text","value":"There are two features that you shoud notice here:","position":{"start":{"line":197,"column":1},"end":{"line":197,"column":1}},"key":"Ba5DGllw0A"}],"key":"LWbDhbbtAh"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":199,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":199,"column":1},"end":{"line":202,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"NumPy uses ","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"gd9o59tvfG"},{"type":"inlineCode","value":"#","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"bIvHxucwaq"},{"type":"text","value":" to ignore headings when using ","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"M1mqJLtoXj"},{"type":"inlineCode","value":"loadtxt","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"mlkTRK6CXa"},{"type":"text","value":". If you’re using\n","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"V9LLOzHZ6A"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"children":[{"type":"inlineCode","value":"loadtxt","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"hR9SWMgO2M"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.loadtxt.html","key":"BbE6NI6axg"},{"type":"text","value":"\nwith other csv files, you can skip header rows with ","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"EB2k8FOyHN"},{"type":"inlineCode","value":"skiprows = ","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"js7JOTjvaV"},{"type":"text","value":".","position":{"start":{"line":199,"column":1},"end":{"line":199,"column":1}},"key":"cdX65VwNsr"}],"key":"pFxShLyL1s"}],"key":"TwttYy4eNO"},{"type":"listItem","spread":true,"position":{"start":{"line":203,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The integers were written in scientific notation. ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"LpPjYY9YCx"},{"type":"emphasis","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"children":[{"type":"text","value":"You can","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"AXSqo4F9si"}],"key":"W1WuAnc8QS"},{"type":"text","value":" specify\nthe format of the text using the ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"Fm8RFAZrEs"},{"type":"inlineCode","value":"savetxt","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"s1iFM8jdas"},{"type":"text","value":" option, ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"Aeb0yTSnMu"},{"type":"link","url":"https://docs.python.org/3/library/string.html#formatstrings","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"children":[{"type":"inlineCode","value":"fmt = ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"X9ePOt6A2G"}],"urlSource":"https://docs.python.org/3/library/string.html#formatstrings","key":"JZ90CvmZGC"},{"type":"text","value":", but it\nwill still be written with ASCII characters. In general, you cannot\npreserve the type of ASCII numbers as ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"X53TzDKGfY"},{"type":"inlineCode","value":"float","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"q2gCSsWWD5"},{"type":"text","value":" or ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"a4SsHcR9v9"},{"type":"inlineCode","value":"int","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"h45OwwPfKh"},{"type":"text","value":".","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"MGTRwaYikl"}],"key":"R9CYTUTZGJ"}],"key":"cjyy04ggPe"}],"key":"rbBix0uSN2"},{"type":"paragraph","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"children":[{"type":"text","value":"Now, delete ","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"SmstrIKJEv"},{"type":"inlineCode","value":"x","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"lKNOLLQTGs"},{"type":"text","value":" and ","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"j0lHnx5bZ1"},{"type":"inlineCode","value":"y","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"nW852d2wu0"},{"type":"text","value":" again and assign them to your columns in ","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"YpAgTOCZlG"},{"type":"inlineCode","value":"x-y_squared.csv","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"U4RsgYUIVA"},{"type":"text","value":".","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"JUrgTApVFH"}],"key":"TjaHLTmAw9"}],"key":"AUZzDG6kbY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"del x, y","key":"xSFX3nLS8h"},{"type":"outputs","id":"f_bNE64GQOV-6Uicr1wJ2","children":[],"key":"CavxnlsnLb"}],"key":"XQ9xyERVCi"},{"type":"block","children":[],"key":"qKMzdJ5DdK"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"load_xy = np.loadtxt(\"x_y-squared.csv\", delimiter=\",\")","key":"DRhHUUexg7"},{"type":"outputs","id":"OSPODdwpCZsXkydop2v8t","children":[],"key":"d7ifuyTcds"}],"key":"FnqRGXvxoo"},{"type":"block","children":[],"key":"t6Iv6uS494"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"load_xy.shape","key":"lhemjyc1WH"},{"type":"outputs","id":"qY4yb6rtaC1ojS1dvWiMC","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":14,"metadata":{},"data":{"text/plain":{"content":"(10, 2)","content_type":"text/plain"}}},"key":"q47vYbDTXT"}],"key":"R7IoiB8o77"}],"key":"zxvGkJeiCC"},{"type":"block","children":[],"key":"PJmRTJRxrE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x = load_xy[:, 0]\ny = load_xy[:, 1]\nprint(x)\nprint(y)","key":"fu74bkxcMz"},{"type":"outputs","id":"O6bFyWtPjO09S60peeood","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]\n[ 0. 1. 4. 9. 16. 25. 36. 49. 64. 81.]\n"},"key":"yQqjsHjyPh"}],"key":"CvHHi2wr8i"}],"key":"AP3K5geQP9"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":231,"column":1},"end":{"line":231,"column":1}},"children":[{"type":"text","value":"Success, but remember your types","position":{"start":{"line":231,"column":1},"end":{"line":231,"column":1}},"key":"PN6yYSMicI"}],"identifier":"success-but-remember-your-types","label":"Success, but remember your types","html_id":"success-but-remember-your-types","implicit":true,"key":"Yuv2H5GZQh"},{"type":"paragraph","position":{"start":{"line":233,"column":1},"end":{"line":234,"column":1}},"children":[{"type":"text","value":"When you saved the arrays to the csv file, you did not preserve the\n","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"BXTPOBjJhW"},{"type":"inlineCode","value":"int","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"CTdcDif30E"},{"type":"text","value":" type. When loading the arrays back into your workspace the default process will be to load the csv file as a 2D floating point array e.g. ","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"TfvtTMBu8k"},{"type":"inlineCode","value":"load_xy.dtype == 'float64'","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"fDI4dS0SOn"},{"type":"text","value":" and ","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"YZFUDTN7Lq"},{"type":"inlineCode","value":"load_xy.shape == (10, 2)","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"U7xNUKuMpg"},{"type":"text","value":".","position":{"start":{"line":233,"column":1},"end":{"line":233,"column":1}},"key":"V9Uptry8Yc"}],"key":"mjoiLFUyzD"}],"key":"DHAlXrsmed"},{"type":"block","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":238,"column":1},"end":{"line":238,"column":1}},"children":[{"type":"text","value":"Wrapping up","position":{"start":{"line":238,"column":1},"end":{"line":238,"column":1}},"key":"WWSdDyu6Nc"}],"identifier":"wrapping-up","label":"Wrapping up","html_id":"wrapping-up","implicit":true,"key":"E1VDYywrBg"},{"type":"paragraph","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"children":[{"type":"text","value":"In conclusion, you can create, save, and load arrays in NumPy. Saving arrays makes sharing your work and collaboration much easier. There are other ways Python can save data to files, such as ","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"UDWUNz4whZ"},{"type":"link","url":"https://docs.python.org/3/library/pickle.html","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"children":[{"type":"text","value":"pickle","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"Yi0yTlBFMw"}],"urlSource":"https://docs.python.org/3/library/pickle.html","key":"QdJRhCTlO8"},{"type":"text","value":", but ","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"r841CHKmDL"},{"type":"inlineCode","value":"savez","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"ff6UccFgyB"},{"type":"text","value":" and ","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"Y4j9VZO7hN"},{"type":"inlineCode","value":"savetxt","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"rKXyXESmPu"},{"type":"text","value":" will serve most of your storage needs for future NumPy work and sharing with other people, respectively.","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"RMOxLyIbuw"}],"key":"CRUZErSNPW"},{"type":"paragraph","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"strong","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"Next steps","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"gMpCkXzzKO"}],"key":"VD0g7iDmKV"},{"type":"text","value":": you can import data with missing values from ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"QT6hZ1xjk2"},{"type":"link","url":"https://numpy.org/devdocs/user/basics.io.genfromtxt.html","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"Importing with genfromtext","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"iBQqYlr3kP"}],"urlSource":"https://numpy.org/devdocs/user/basics.io.genfromtxt.html","key":"OnS6mlVpTl"},{"type":"text","value":" or learn more about general NumPy IO with ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"LIJOtiqXgf"},{"type":"link","url":"https://numpy.org/devdocs/user/how-to-io.html","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"Reading and Writing Files","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"Rsrfk99Auf"}],"urlSource":"https://numpy.org/devdocs/user/how-to-io.html","key":"TbLtII7bm4"},{"type":"text","value":".","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"NDv2K8atgC"}],"key":"Sg5x4oluNW"}],"key":"xvo2q7rCwC"}],"key":"PHyFlwWWE5"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Linear algebra on n-dimensional arrays","short_title":"Linear Algebra on n-D arrays","url":"/tutorial-svd","group":"Features"},"next":{"title":"Masked Arrays","url":"/tutorial-ma","group":"Features"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/save-load-arrays/index.html b/save-load-arrays/index.html new file mode 100644 index 00000000..7f00d006 --- /dev/null +++ b/save-load-arrays/index.html @@ -0,0 +1,120 @@ +Saving and sharing your NumPy arrays - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Saving and sharing your NumPy arrays

What you’ll learn

You’ll save your NumPy arrays as zipped files and human-readable +comma-delimited files i.e. *.csv. You will also learn to load both of these +file types back into NumPy workspaces.

What you’ll do

You’ll learn two ways of saving and reading files--as compressed and as +text files--that will serve most of your storage needs in NumPy.

  • You’ll create two 1D arrays and one 2D array

  • You’ll save these arrays to files

  • You’ll remove variables from your workspace

  • You’ll load the variables from your saved file

  • You’ll compare zipped binary files to human-readable delimited files

  • You’ll finish with the skills of saving, loading, and sharing NumPy arrays

What you’ll need

  • NumPy

  • read-write access to your working directory

Load the necessary functions using the following command.

import numpy as np

In this tutorial, you will use the following Python, IPython magic, and NumPy functions:


Create your arrays

Now that you have imported the NumPy library, you can make a couple of +arrays; let’s start with two 1D arrays, x and y, where y = x**2.You +will assign x to the integers from 0 to 9 using +np.arange.

x = np.arange(10)
+y = x ** 2
+print(x)
+print(y)
[0 1 2 3 4 5 6 7 8 9]
+[ 0  1  4  9 16 25 36 49 64 81]
+

Save your arrays with NumPy’s savez

Now you have two arrays in your workspace,

x: [0 1 2 3 4 5 6 7 8 9]

y: [ 0 1 4 9 16 25 36 49 64 81]

The first thing you will do is save them to a file as zipped arrays +using +savez. +You will use two options to label the arrays in the file,

  1. x_axis = x: this option is assigning the name x_axis to the variable x

  2. y_axis = y: this option is assigning the name y_axis to the variable y

np.savez("x_y-squared.npz", x_axis=x, y_axis=y)

Remove the saved arrays and load them back with NumPy’s load

In your current working directory, you should have a new file with the +name x_y-squared.npz. This file is a zipped binary of the two arrays, +x and y. Let’s clear the workspace and load the values back in. This +x_y-squared.npz file contains two NPY +format +files. The NPY format is a native binary +format. You cannot read +the numbers in a standard text editor or spreadsheet.

  1. remove x and y from the workspaec with del

  2. load the arrays into the workspace in a dictionary with np.load

To see what variables are in the workspace, use the Jupyter/IPython +“magic” command +whos.

del x, y
%whos
Variable   Type      Data/Info
+------------------------------
+np         module    <module 'numpy' from '/ho<...>kages/numpy/__init__.py'>
+
load_xy = np.load("x_y-squared.npz")
+
+print(load_xy.files)
['x_axis', 'y_axis']
+
%whos
Variable   Type       Data/Info
+-------------------------------
+load_xy    NpzFile    NpzFile 'x_y-squared.npz'<...>with keys: x_axis, y_axis
+np         module     <module 'numpy' from '/ho<...>kages/numpy/__init__.py'>
+

Reassign the NpzFile arrays to x and y

You’ve now created the dictionary with an NpzFile-type. The +included files are x_axis and y_axis that you defined in your +savez command. You can reassign x and y to the load_xy files.

x = load_xy["x_axis"]
+y = load_xy["y_axis"]
+print(x)
+print(y)
[0 1 2 3 4 5 6 7 8 9]
+[ 0  1  4  9 16 25 36 49 64 81]
+

Success

You have created, saved, deleted, and loaded the variables x and y using savez and load. Nice work.

Another option: saving to human-readable csv

Let’s consider another scenario, you want to share x and y with +other people or other programs. You may need human-readable text file +that is easier to share. Next, you use the +savetxt +to save x and y in a comma separated value file, x_y-squared.csv. +The resulting csv is composed of ASCII characters. You can load the file +back into NumPy or read it with other programs.

Rearrange the data into a single 2D array

First, you have to create a single 2D array from your two 1D arrays. The +csv-filetype is a spreadsheet-style dataset. The csv arranges numbers in +rows--separated by new lines--and columns--separated by commas. If the +data is more complex e.g. multiple 2D arrays or higher dimensional +arrays, it is better to use savez. Here, you use +two NumPy functions to format the data:

  1. np.block: this function appends arrays together into a 2D array

  2. np.newaxis: this function forces the 1D array into a 2D column vector with 10 rows and 1 column.

array_out = np.block([x[:, np.newaxis], y[:, np.newaxis]])
+print("the output array has shape ", array_out.shape, " with values:")
+print(array_out)
the output array has shape  (10, 2)  with values:
+[[ 0  0]
+ [ 1  1]
+ [ 2  4]
+ [ 3  9]
+ [ 4 16]
+ [ 5 25]
+ [ 6 36]
+ [ 7 49]
+ [ 8 64]
+ [ 9 81]]
+

Save the data to csv file using savetxt

You use savetxt with a three options to make your file easier to read:

  • X = array_out: this option tells savetxt to save your 2D array, array_out, to the file x_y-squared.csv

  • header = 'x, y': this option writes a header before any data that labels the columns of the csv

  • delimiter = ',': this option tells savetxt to place a comma between each column in the file

np.savetxt("x_y-squared.csv", X=array_out, header="x, y", delimiter=",")

Open the file, x_y-squared.csv, and you’ll see the following:

!head x_y-squared.csv
# x, y
+0.000000000000000000e+00,0.000000000000000000e+00
+1.000000000000000000e+00,1.000000000000000000e+00
+2.000000000000000000e+00,4.000000000000000000e+00
+3.000000000000000000e+00,9.000000000000000000e+00
+4.000000000000000000e+00,1.600000000000000000e+01
+5.000000000000000000e+00,2.500000000000000000e+01
+6.000000000000000000e+00,3.600000000000000000e+01
+7.000000000000000000e+00,4.900000000000000000e+01
+8.000000000000000000e+00,6.400000000000000000e+01
+

Our arrays as a csv file

There are two features that you shoud notice here:

  1. NumPy uses # to ignore headings when using loadtxt. If you’re using +loadtxt +with other csv files, you can skip header rows with skiprows = <number_of_header_lines>.

  2. The integers were written in scientific notation. You can specify +the format of the text using the savetxt option, fmt = , but it +will still be written with ASCII characters. In general, you cannot +preserve the type of ASCII numbers as float or int.

Now, delete x and y again and assign them to your columns in x-y_squared.csv.

del x, y
load_xy = np.loadtxt("x_y-squared.csv", delimiter=",")
load_xy.shape
(10, 2)
x = load_xy[:, 0]
+y = load_xy[:, 1]
+print(x)
+print(y)
[0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]
+[ 0.  1.  4.  9. 16. 25. 36. 49. 64. 81.]
+

Success, but remember your types

When you saved the arrays to the csv file, you did not preserve the +int type. When loading the arrays back into your workspace the default process will be to load the csv file as a 2D floating point array e.g. load_xy.dtype == 'float64' and load_xy.shape == (10, 2).

Wrapping up

In conclusion, you can create, save, and load arrays in NumPy. Saving arrays makes sharing your work and collaboration much easier. There are other ways Python can save data to files, such as pickle, but savez and savetxt will serve most of your storage needs for future NumPy work and sharing with other people, respectively.

Next steps: you can import data with missing values from Importing with genfromtext or learn more about general NumPy IO with Reading and Writing Files.

\ No newline at end of file diff --git a/service-worker.js b/service-worker.js new file mode 100644 index 00000000..ad691d85 --- /dev/null +++ b/service-worker.js @@ -0,0 +1 @@ +"use strict";const CACHE="precache",broadcast=new BroadcastChannel("/api/drive.v1");let enableCache=!1;function onInstall(e){self.skipWaiting(),e.waitUntil(cacheAll())}function onActivate(e){const a=new URL(location.href).searchParams;enableCache="true"===a.get("enableCache"),e.waitUntil(self.clients.claim())}async function onFetch(e){const{request:a}=e,t=new URL(e.request.url);if("/api/service-worker-heartbeat"===t.pathname)return void e.respondWith(new Response("ok"));let n=null;shouldBroadcast(t)?n=broadcastOne(a):shouldDrop(a,t)||(n=maybeFromCache(e)),n&&e.respondWith(n)}async function maybeFromCache(e){const{request:a}=e;if(!enableCache)return await fetch(a);let t=await fromCache(a);return t?e.waitUntil(refetch(a)):(t=await fetch(a),e.waitUntil(updateCache(a,t.clone()))),t}async function fromCache(e){const a=await openCache(),t=await a.match(e);return t&&404!==t.status?t:null}async function refetch(e){const a=await fetch(e);return await updateCache(e,a),a}function shouldBroadcast(e){return e.origin===location.origin&&e.pathname.includes("/api/drive")}function shouldDrop(e,a){return"GET"!==e.method||null===a.origin.match(/^http/)||a.pathname.includes("/api/")}async function broadcastOne(e){const a=new Promise((e=>{broadcast.onmessage=a=>{e(new Response(JSON.stringify(a.data)))}})),t=await e.json();return t.receiver="broadcast.ts",broadcast.postMessage(t),await a}async function openCache(){return await caches.open(CACHE)}async function updateCache(e,a){return(await openCache()).put(e,a)}async function cacheAll(){const e=await openCache();return await e.addAll([])}self.addEventListener("install",onInstall),self.addEventListener("activate",onActivate),self.addEventListener("fetch",onFetch); \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..53b35d35 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,40 @@ + + + + + http://localhost:3000 + + + http://localhost:3000/mooreslaw-tutorial + + + http://localhost:3000/tutorial-deep-learning-on-mnist + + + http://localhost:3000/tutorial-x-ray-image-processing + + + http://localhost:3000/tutorial-static-equilibrium + + + http://localhost:3000/tutorial-plotting-fractals + + + http://localhost:3000/tutorial-air-quality-analysis + + + http://localhost:3000/tutorial-svd + + + http://localhost:3000/save-load-arrays + + + http://localhost:3000/tutorial-ma + + + http://localhost:3000/contributing + + + http://localhost:3000/tutorial-style-guide + + \ No newline at end of file diff --git a/sitemap_style.xsl b/sitemap_style.xsl new file mode 100644 index 00000000..cea5251e --- /dev/null +++ b/sitemap_style.xsl @@ -0,0 +1,73 @@ + + + + + + + + +XML Sitemap + + + +
+
+

XML Sitemap

+

This XML Sitemap is generated by Curvenote to make your content more visible for search engines.

+

+Learn more about XML sitemaps. +

+
+
+

+Number of URLs in this XML Sitemap: + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
URLLast ModifiedChange FrequencyPriority
+ + + + + + + + + +
+
+
+ + +
+
\ No newline at end of file diff --git a/test_requirements.txt b/test_requirements.txt deleted file mode 100644 index d20d5b24..00000000 --- a/test_requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -pytest -nbval diff --git a/thebe-core.css b/thebe-core.css new file mode 100644 index 00000000..e3d24e67 --- /dev/null +++ b/thebe-core.css @@ -0,0 +1,3285 @@ +/* ../../node_modules/@jupyterlab/theme-light-extension/style/variables.css */ +:root { + --jp-shadow-base-lightness: 0; + --jp-shadow-umbra-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.2 ); + --jp-shadow-penumbra-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.14 ); + --jp-shadow-ambient-color: rgba( var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), var(--jp-shadow-base-lightness), 0.12 ); + --jp-elevation-z0: none; + --jp-elevation-z1: + 0 2px 1px -1px var(--jp-shadow-umbra-color), + 0 1px 1px 0 var(--jp-shadow-penumbra-color), + 0 1px 3px 0 var(--jp-shadow-ambient-color); + --jp-elevation-z2: + 0 3px 1px -2px var(--jp-shadow-umbra-color), + 0 2px 2px 0 var(--jp-shadow-penumbra-color), + 0 1px 5px 0 var(--jp-shadow-ambient-color); + --jp-elevation-z4: + 0 2px 4px -1px var(--jp-shadow-umbra-color), + 0 4px 5px 0 var(--jp-shadow-penumbra-color), + 0 1px 10px 0 var(--jp-shadow-ambient-color); + --jp-elevation-z6: + 0 3px 5px -1px var(--jp-shadow-umbra-color), + 0 6px 10px 0 var(--jp-shadow-penumbra-color), + 0 1px 18px 0 var(--jp-shadow-ambient-color); + --jp-elevation-z8: + 0 5px 5px -3px var(--jp-shadow-umbra-color), + 0 8px 10px 1px var(--jp-shadow-penumbra-color), + 0 3px 14px 2px var(--jp-shadow-ambient-color); + --jp-elevation-z12: + 0 7px 8px -4px var(--jp-shadow-umbra-color), + 0 12px 17px 2px var(--jp-shadow-penumbra-color), + 0 5px 22px 4px var(--jp-shadow-ambient-color); + --jp-elevation-z16: + 0 8px 10px -5px var(--jp-shadow-umbra-color), + 0 16px 24px 2px var(--jp-shadow-penumbra-color), + 0 6px 30px 5px var(--jp-shadow-ambient-color); + --jp-elevation-z20: + 0 10px 13px -6px var(--jp-shadow-umbra-color), + 0 20px 31px 3px var(--jp-shadow-penumbra-color), + 0 8px 38px 7px var(--jp-shadow-ambient-color); + --jp-elevation-z24: + 0 11px 15px -7px var(--jp-shadow-umbra-color), + 0 24px 38px 3px var(--jp-shadow-penumbra-color), + 0 9px 46px 8px var(--jp-shadow-ambient-color); + --jp-border-width: 1px; + --jp-border-color0: var(--md-grey-400, #bdbdbd); + --jp-border-color1: var(--md-grey-400, #bdbdbd); + --jp-border-color2: var(--md-grey-300, #e0e0e0); + --jp-border-color3: var(--md-grey-200, #eee); + --jp-inverse-border-color: var(--md-grey-600, #757575); + --jp-border-radius: 2px; + --jp-ui-font-scale-factor: 1.2; + --jp-ui-font-size0: 0.83333em; + --jp-ui-font-size1: 13px; + --jp-ui-font-size2: 1.2em; + --jp-ui-font-size3: 1.44em; + --jp-ui-font-family: + system-ui, + -apple-system, + blinkmacsystemfont, + "Segoe UI", + helvetica, + arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol"; + --jp-ui-font-color0: rgba(0, 0, 0, 1); + --jp-ui-font-color1: rgba(0, 0, 0, 0.87); + --jp-ui-font-color2: rgba(0, 0, 0, 0.54); + --jp-ui-font-color3: rgba(0, 0, 0, 0.38); + --jp-ui-inverse-font-color0: rgba(255, 255, 255, 1); + --jp-ui-inverse-font-color1: rgba(255, 255, 255, 1); + --jp-ui-inverse-font-color2: rgba(255, 255, 255, 0.7); + --jp-ui-inverse-font-color3: rgba(255, 255, 255, 0.5); + --jp-content-line-height: 1.6; + --jp-content-font-scale-factor: 1.2; + --jp-content-font-size0: 0.83333em; + --jp-content-font-size1: 14px; + --jp-content-font-size2: 1.2em; + --jp-content-font-size3: 1.44em; + --jp-content-font-size4: 1.728em; + --jp-content-font-size5: 2.0736em; + --jp-content-presentation-font-size1: 17px; + --jp-content-heading-line-height: 1; + --jp-content-heading-margin-top: 1.2em; + --jp-content-heading-margin-bottom: 0.8em; + --jp-content-heading-font-weight: 500; + --jp-content-font-color0: rgba(0, 0, 0, 1); + --jp-content-font-color1: rgba(0, 0, 0, 0.87); + --jp-content-font-color2: rgba(0, 0, 0, 0.54); + --jp-content-font-color3: rgba(0, 0, 0, 0.38); + --jp-content-link-color: var(--md-blue-900, #0d47a1); + --jp-content-link-visited-color: var(--md-purple-700, #7b1fa2); + --jp-content-font-family: + system-ui, + -apple-system, + blinkmacsystemfont, + "Segoe UI", + helvetica, + arial, + sans-serif, + "Apple Color Emoji", + "Segoe UI Emoji", + "Segoe UI Symbol"; + --jp-code-font-size: 13px; + --jp-code-line-height: 1.3077; + --jp-code-padding: 5px; + --jp-code-font-family-default: + menlo, + consolas, + "DejaVu Sans Mono", + monospace; + --jp-code-font-family: var(--jp-code-font-family-default); + --jp-code-presentation-font-size: 16px; + --jp-code-cursor-width0: 1.4px; + --jp-code-cursor-width1: 2px; + --jp-code-cursor-width2: 4px; + --jp-layout-color0: white; + --jp-layout-color1: white; + --jp-layout-color2: var(--md-grey-200, #eee); + --jp-layout-color3: var(--md-grey-400, #bdbdbd); + --jp-layout-color4: var(--md-grey-600, #757575); + --jp-inverse-layout-color0: #111; + --jp-inverse-layout-color1: var(--md-grey-900, #212121); + --jp-inverse-layout-color2: var(--md-grey-800, #424242); + --jp-inverse-layout-color3: var(--md-grey-700, #616161); + --jp-inverse-layout-color4: var(--md-grey-600, #757575); + --jp-brand-color0: var(--md-blue-900, #0d47a1); + --jp-brand-color1: var(--md-blue-700, #1976d2); + --jp-brand-color2: var(--md-blue-300, #64b5f6); + --jp-brand-color3: var(--md-blue-100, #bbdefb); + --jp-brand-color4: var(--md-blue-50, #e3f2fd); + --jp-accent-color0: var(--md-green-900, #1b5e20); + --jp-accent-color1: var(--md-green-700, #388e3c); + --jp-accent-color2: var(--md-green-300, #81c784); + --jp-accent-color3: var(--md-green-100, #c8e6c9); + --jp-warn-color0: var(--md-orange-900, #e65100); + --jp-warn-color1: var(--md-orange-700, #f57c00); + --jp-warn-color2: var(--md-orange-300, #ffb74d); + --jp-warn-color3: var(--md-orange-100, #ffe0b2); + --jp-error-color0: var(--md-red-900, #b71c1c); + --jp-error-color1: var(--md-red-700, #d32f2f); + --jp-error-color2: var(--md-red-300, #e57373); + --jp-error-color3: var(--md-red-100, #ffcdd2); + --jp-success-color0: var(--md-green-900, #1b5e20); + --jp-success-color1: var(--md-green-700, #388e3c); + --jp-success-color2: var(--md-green-300, #81c784); + --jp-success-color3: var(--md-green-100, #c8e6c9); + --jp-info-color0: var(--md-cyan-900, #006064); + --jp-info-color1: var(--md-cyan-700, #0097a7); + --jp-info-color2: var(--md-cyan-300, #4dd0e1); + --jp-info-color3: var(--md-cyan-100, #b2ebf2); + --jp-cell-padding: 5px; + --jp-cell-collapser-width: 8px; + --jp-cell-collapser-min-height: 20px; + --jp-cell-collapser-not-active-hover-opacity: 0.6; + --jp-cell-editor-background: var(--md-grey-100, #f5f5f5); + --jp-cell-editor-border-color: var(--md-grey-300, #e0e0e0); + --jp-cell-editor-box-shadow: inset 0 0 2px var(--md-blue-300, #64b5f6); + --jp-cell-editor-active-background: var(--jp-layout-color0); + --jp-cell-editor-active-border-color: var(--jp-brand-color1); + --jp-cell-prompt-width: 64px; + --jp-cell-prompt-font-family: var(--jp-code-font-family-default); + --jp-cell-prompt-letter-spacing: 0; + --jp-cell-prompt-opacity: 1; + --jp-cell-prompt-not-active-opacity: 0.5; + --jp-cell-prompt-not-active-font-color: var(--md-grey-700, #616161); + --jp-cell-inprompt-font-color: #307fc1; + --jp-cell-outprompt-font-color: #bf5b3d; + --jp-notebook-padding: 10px; + --jp-notebook-select-background: var(--jp-layout-color1); + --jp-notebook-multiselected-color: var(--md-blue-50, #e3f2fd); + --jp-notebook-scroll-padding: calc( 100% - var(--jp-code-font-size) * var(--jp-code-line-height) - var(--jp-code-padding) - var(--jp-cell-padding) - 1px ); + --jp-rendermime-error-background: #fdd; + --jp-rendermime-table-row-background: var(--md-grey-100, #cfd8dc); + --jp-rendermime-table-row-hover-background: var(--md-light-blue-50, #e1f5fe); + --jp-dialog-background: rgba(0, 0, 0, 0.25); + --jp-console-padding: 10px; + --jp-toolbar-border-color: var(--jp-border-color1); + --jp-toolbar-micro-height: 8px; + --jp-toolbar-background: var(--jp-layout-color1); + --jp-toolbar-box-shadow: 0 0 2px 0 rgba(0, 0, 0, 0.24); + --jp-toolbar-header-margin: 4px 4px 0 4px; + --jp-toolbar-active-background: var(--md-grey-300, #90a4ae); + --jp-statusbar-height: 24px; + --jp-input-box-shadow: inset 0 0 2px var(--md-blue-300, #64b5f6); + --jp-input-active-background: var(--jp-layout-color1); + --jp-input-hover-background: var(--jp-layout-color1); + --jp-input-background: var(--md-grey-100, #f5f5f5); + --jp-input-border-color: var(--jp-inverse-border-color); + --jp-input-active-border-color: var(--jp-brand-color1); + --jp-input-active-box-shadow-color: rgba(19, 124, 189, 0.3); + --jp-editor-selected-background: #d9d9d9; + --jp-editor-selected-focused-background: #d7d4f0; + --jp-editor-cursor-color: var(--jp-ui-font-color0); + --jp-mirror-editor-keyword-color: #008000; + --jp-mirror-editor-atom-color: #88f; + --jp-mirror-editor-number-color: #080; + --jp-mirror-editor-def-color: #00f; + --jp-mirror-editor-variable-color: var(--md-grey-900, #212121); + --jp-mirror-editor-variable-2-color: rgb(0, 54, 109); + --jp-mirror-editor-variable-3-color: #085; + --jp-mirror-editor-punctuation-color: #05a; + --jp-mirror-editor-property-color: #05a; + --jp-mirror-editor-operator-color: #a2f; + --jp-mirror-editor-comment-color: #408080; + --jp-mirror-editor-string-color: #ba2121; + --jp-mirror-editor-string-2-color: #708; + --jp-mirror-editor-meta-color: #a2f; + --jp-mirror-editor-qualifier-color: #555; + --jp-mirror-editor-builtin-color: #008000; + --jp-mirror-editor-bracket-color: #997; + --jp-mirror-editor-tag-color: #170; + --jp-mirror-editor-attribute-color: #00c; + --jp-mirror-editor-header-color: blue; + --jp-mirror-editor-quote-color: #090; + --jp-mirror-editor-link-color: #00c; + --jp-mirror-editor-error-color: #f00; + --jp-mirror-editor-hr-color: #999; + --jp-collaborator-color1: #ffad8e; + --jp-collaborator-color2: #dac83d; + --jp-collaborator-color3: #72dd76; + --jp-collaborator-color4: #00e4d0; + --jp-collaborator-color5: #45d4ff; + --jp-collaborator-color6: #e2b1ff; + --jp-collaborator-color7: #ff9de6; + --jp-vega-background: white; + --jp-sidebar-min-width: 250px; + --jp-search-toggle-off-opacity: 0.5; + --jp-search-toggle-hover-opacity: 0.8; + --jp-search-toggle-on-opacity: 1; + --jp-search-selected-match-background-color: rgb(245, 200, 0); + --jp-search-selected-match-color: black; + --jp-search-unselected-match-background-color: var( --jp-inverse-layout-color0 ); + --jp-search-unselected-match-color: var(--jp-ui-inverse-font-color0); + --jp-icon-contrast-color0: var(--md-purple-600, #8e24aa); + --jp-icon-contrast-color1: var(--md-green-600, #43a047); + --jp-icon-contrast-color2: var(--md-pink-600, #d81b60); + --jp-icon-contrast-color3: var(--md-blue-600, #1e88e5); + --jp-accept-color-normal: var(--md-blue-700, #1976d2); + --jp-accept-color-hover: var(--md-blue-800, #1565c0); + --jp-accept-color-active: var(--md-blue-900, #0d47a1); + --jp-warn-color-normal: var(--md-red-700, #d32f2f); + --jp-warn-color-hover: var(--md-red-800, #c62828); + --jp-warn-color-active: var(--md-red-900, #b71c1c); + --jp-reject-color-normal: var(--md-grey-600, #757575); + --jp-reject-color-hover: var(--md-grey-700, #616161); + --jp-reject-color-active: var(--md-grey-800, #424242); + --jp-jupyter-icon-color: #f37626; + --jp-notebook-icon-color: #f37626; + --jp-json-icon-color: var(--md-orange-700, #f57c00); + --jp-console-icon-background-color: var(--md-blue-700, #1976d2); + --jp-console-icon-color: white; + --jp-terminal-icon-background-color: var(--md-grey-800, #424242); + --jp-terminal-icon-color: var(--md-grey-200, #eee); + --jp-text-editor-icon-color: var(--md-grey-700, #616161); + --jp-inspector-icon-color: var(--md-grey-700, #616161); + --jp-switch-color: var(--md-grey-400, #bdbdbd); + --jp-switch-true-position-color: var(--md-orange-900, #e65100); +} + +/* ../../node_modules/@jupyterlab/theme-light-extension/style/theme.css */ +tt, +code, +kbd, +samp, +pre { + font-family: var(--jp-code-font-family); + font-size: var(--jp-code-font-size); + line-height: var(--jp-code-line-height); +} + +/* ../../node_modules/@jupyter-widgets/controls/css/lumino.css */ +.jupyter-widgets.widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.jupyter-widgets.widget-tab > .p-TabBar[data-orientation=horizontal], +.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation=horizontal], +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation=horizontal] { + flex-direction: row; +} +.jupyter-widgets.widget-tab > .p-TabBar[data-orientation=vertical], +.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation=vertical], +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation=vertical] { + flex-direction: column; +} +.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content { + margin: 0; + padding: 0; + display: flex; + flex: 1 1 auto; + list-style-type: none; +} +.jupyter-widgets.widget-tab > .p-TabBar[data-orientation=horizontal] > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation=horizontal] > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation=horizontal] > .lm-TabBar-content { + flex-direction: row; +} +.jupyter-widgets.widget-tab > .p-TabBar[data-orientation=vertical] > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation=vertical] > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation=vertical] > .lm-TabBar-content { + flex-direction: column; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab { + display: flex; + flex-direction: row; + box-sizing: border-box; + overflow: hidden; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon { + flex: 0 0 auto; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel { + flex: 1 1 auto; + overflow: hidden; + white-space: nowrap; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-hidden { + display: none !important; +} +.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging .lm-TabBar-tab { + position: relative; +} +.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging[data-orientation=horizontal] .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging[data-orientation=horizontal] .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging[data-orientation=horizontal] .lm-TabBar-tab { + left: 0; + transition: left 150ms ease; +} +.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging[data-orientation=vertical] .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging[data-orientation=vertical] .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging[data-orientation=vertical] .lm-TabBar-tab { + top: 0; + transition: top 150ms ease; +} +.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab.p-mod-dragging, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging { + transition: none; +} + +/* ../../node_modules/@jupyter-widgets/controls/css/nouislider.css */ +.widget-slider, +.jupyter-widget-slider { +} +.widget-slider .noUi-target, +.jupyter-widget-slider .noUi-target, +.widget-slider .noUi-target *, +.jupyter-widget-slider .noUi-target * { + -webkit-touch-callout: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-user-select: none; + -ms-touch-action: none; + touch-action: none; + -ms-user-select: none; + -moz-user-select: none; + user-select: none; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.widget-slider .noUi-target, +.jupyter-widget-slider .noUi-target { + position: relative; +} +.widget-slider .noUi-base, +.jupyter-widget-slider .noUi-base, +.widget-slider .noUi-connects, +.jupyter-widget-slider .noUi-connects { + width: 100%; + height: 100%; + position: relative; + z-index: 1; +} +.widget-slider .noUi-connects, +.jupyter-widget-slider .noUi-connects { + overflow: hidden; + z-index: 0; +} +.widget-slider .noUi-connect, +.jupyter-widget-slider .noUi-connect, +.widget-slider .noUi-origin, +.jupyter-widget-slider .noUi-origin { + will-change: transform; + position: absolute; + z-index: 1; + top: 0; + right: 0; + -ms-transform-origin: 0 0; + -webkit-transform-origin: 0 0; + -webkit-transform-style: preserve-3d; + transform-origin: 0 0; + transform-style: flat; +} +.widget-slider .noUi-connect, +.jupyter-widget-slider .noUi-connect { + height: 100%; + width: 100%; +} +.widget-slider .noUi-origin, +.jupyter-widget-slider .noUi-origin { + height: 10%; + width: 10%; +} +.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin, +.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin { + left: 0; + right: auto; +} +.widget-slider .noUi-vertical .noUi-origin, +.jupyter-widget-slider .noUi-vertical .noUi-origin { + width: 0; +} +.widget-slider .noUi-horizontal .noUi-origin, +.jupyter-widget-slider .noUi-horizontal .noUi-origin { + height: 0; +} +.widget-slider .noUi-handle, +.jupyter-widget-slider .noUi-handle { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + position: absolute; +} +.widget-slider .noUi-touch-area, +.jupyter-widget-slider .noUi-touch-area { + height: 100%; + width: 100%; +} +.widget-slider .noUi-state-tap .noUi-connect, +.jupyter-widget-slider .noUi-state-tap .noUi-connect, +.widget-slider .noUi-state-tap .noUi-origin, +.jupyter-widget-slider .noUi-state-tap .noUi-origin { + -webkit-transition: transform 0.3s; + transition: transform 0.3s; +} +.widget-slider .noUi-state-drag *, +.jupyter-widget-slider .noUi-state-drag * { + cursor: inherit !important; +} +.widget-slider .noUi-horizontal, +.jupyter-widget-slider .noUi-horizontal { + height: 18px; +} +.widget-slider .noUi-horizontal .noUi-handle, +.jupyter-widget-slider .noUi-horizontal .noUi-handle { + width: 34px; + height: 28px; + right: -17px; + top: -6px; +} +.widget-slider .noUi-vertical, +.jupyter-widget-slider .noUi-vertical { + width: 18px; +} +.widget-slider .noUi-vertical .noUi-handle, +.jupyter-widget-slider .noUi-vertical .noUi-handle { + width: 28px; + height: 34px; + right: -6px; + top: -17px; +} +.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle, +.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle { + left: -17px; + right: auto; +} +.widget-slider .noUi-target, +.jupyter-widget-slider .noUi-target { + background: #FAFAFA; + border-radius: 4px; + border: 1px solid #D3D3D3; + box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; +} +.widget-slider .noUi-connects, +.jupyter-widget-slider .noUi-connects { + border-radius: 3px; +} +.widget-slider .noUi-connect, +.jupyter-widget-slider .noUi-connect { + background: #3FB8AF; +} +.widget-slider .noUi-draggable, +.jupyter-widget-slider .noUi-draggable { + cursor: ew-resize; +} +.widget-slider .noUi-vertical .noUi-draggable, +.jupyter-widget-slider .noUi-vertical .noUi-draggable { + cursor: ns-resize; +} +.widget-slider .noUi-handle, +.jupyter-widget-slider .noUi-handle { + border: 1px solid #D9D9D9; + border-radius: 3px; + background: #FFF; + cursor: default; + box-shadow: + inset 0 0 1px #FFF, + inset 0 1px 7px #EBEBEB, + 0 3px 6px -3px #BBB; +} +.widget-slider .noUi-active, +.jupyter-widget-slider .noUi-active { + box-shadow: + inset 0 0 1px #FFF, + inset 0 1px 7px #DDD, + 0 3px 6px -3px #BBB; +} +.widget-slider .noUi-handle:before, +.jupyter-widget-slider .noUi-handle:before, +.widget-slider .noUi-handle:after, +.jupyter-widget-slider .noUi-handle:after { + content: ""; + display: block; + position: absolute; + height: 14px; + width: 1px; + background: #E8E7E6; + left: 14px; + top: 6px; +} +.widget-slider .noUi-handle:after, +.jupyter-widget-slider .noUi-handle:after { + left: 17px; +} +.widget-slider .noUi-vertical .noUi-handle:before, +.jupyter-widget-slider .noUi-vertical .noUi-handle:before, +.widget-slider .noUi-vertical .noUi-handle:after, +.jupyter-widget-slider .noUi-vertical .noUi-handle:after { + width: 14px; + height: 1px; + left: 6px; + top: 14px; +} +.widget-slider .noUi-vertical .noUi-handle:after, +.jupyter-widget-slider .noUi-vertical .noUi-handle:after { + top: 17px; +} +.widget-slider [disabled] .noUi-connect, +.jupyter-widget-slider [disabled] .noUi-connect { + background: #B8B8B8; +} +.widget-slider [disabled].noUi-target, +.jupyter-widget-slider [disabled].noUi-target, +.widget-slider [disabled].noUi-handle, +.jupyter-widget-slider [disabled].noUi-handle, +.widget-slider [disabled] .noUi-handle, +.jupyter-widget-slider [disabled] .noUi-handle { + cursor: not-allowed; +} +.widget-slider .noUi-pips, +.jupyter-widget-slider .noUi-pips, +.widget-slider .noUi-pips *, +.jupyter-widget-slider .noUi-pips * { + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.widget-slider .noUi-pips, +.jupyter-widget-slider .noUi-pips { + position: absolute; + color: #999; +} +.widget-slider .noUi-value, +.jupyter-widget-slider .noUi-value { + position: absolute; + white-space: nowrap; + text-align: center; +} +.widget-slider .noUi-value-sub, +.jupyter-widget-slider .noUi-value-sub { + color: #ccc; + font-size: 10px; +} +.widget-slider .noUi-marker, +.jupyter-widget-slider .noUi-marker { + position: absolute; + background: #CCC; +} +.widget-slider .noUi-marker-sub, +.jupyter-widget-slider .noUi-marker-sub { + background: #AAA; +} +.widget-slider .noUi-marker-large, +.jupyter-widget-slider .noUi-marker-large { + background: #AAA; +} +.widget-slider .noUi-pips-horizontal, +.jupyter-widget-slider .noUi-pips-horizontal { + padding: 10px 0; + height: 80px; + top: 100%; + left: 0; + width: 100%; +} +.widget-slider .noUi-value-horizontal, +.jupyter-widget-slider .noUi-value-horizontal { + -webkit-transform: translate(-50%, 50%); + transform: translate(-50%, 50%); +} +.noUi-rtl .widget-slider .noUi-value-horizontal, +.noUi-rtl .jupyter-widget-slider .noUi-value-horizontal { + -webkit-transform: translate(50%, 50%); + transform: translate(50%, 50%); +} +.widget-slider .noUi-marker-horizontal.noUi-marker, +.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker { + margin-left: -1px; + width: 2px; + height: 5px; +} +.widget-slider .noUi-marker-horizontal.noUi-marker-sub, +.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-sub { + height: 10px; +} +.widget-slider .noUi-marker-horizontal.noUi-marker-large, +.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-large { + height: 15px; +} +.widget-slider .noUi-pips-vertical, +.jupyter-widget-slider .noUi-pips-vertical { + padding: 0 10px; + height: 100%; + top: 0; + left: 100%; +} +.widget-slider .noUi-value-vertical, +.jupyter-widget-slider .noUi-value-vertical { + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + padding-left: 25px; +} +.noUi-rtl .widget-slider .noUi-value-vertical, +.noUi-rtl .jupyter-widget-slider .noUi-value-vertical { + -webkit-transform: translate(0, 50%); + transform: translate(0, 50%); +} +.widget-slider .noUi-marker-vertical.noUi-marker, +.jupyter-widget-slider .noUi-marker-vertical.noUi-marker { + width: 5px; + height: 2px; + margin-top: -1px; +} +.widget-slider .noUi-marker-vertical.noUi-marker-sub, +.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-sub { + width: 10px; +} +.widget-slider .noUi-marker-vertical.noUi-marker-large, +.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-large { + width: 15px; +} +.widget-slider .noUi-tooltip, +.jupyter-widget-slider .noUi-tooltip { + display: block; + position: absolute; + border: 1px solid #D9D9D9; + border-radius: 3px; + background: #fff; + color: #000; + padding: 5px; + text-align: center; + white-space: nowrap; +} +.widget-slider .noUi-horizontal .noUi-tooltip, +.jupyter-widget-slider .noUi-horizontal .noUi-tooltip { + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0); + left: 50%; + bottom: 120%; +} +.widget-slider .noUi-vertical .noUi-tooltip, +.jupyter-widget-slider .noUi-vertical .noUi-tooltip { + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%); + top: 50%; + right: 120%; +} +.widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip, +.jupyter-widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip { + -webkit-transform: translate(50%, 0); + transform: translate(50%, 0); + left: auto; + bottom: 10px; +} +.widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip, +.jupyter-widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip { + -webkit-transform: translate(0, -18px); + transform: translate(0, -18px); + top: auto; + right: 28px; +} +.widget-slider .noUi-connect, +.jupyter-widget-slider .noUi-connect { + background: #2196f3; +} +.widget-slider .noUi-horizontal, +.jupyter-widget-slider .noUi-horizontal { + height: var(--jp-widgets-slider-track-thickness); +} +.widget-slider .noUi-vertical, +.jupyter-widget-slider .noUi-vertical { + width: var(--jp-widgets-slider-track-thickness); + height: 100%; +} +.widget-slider .noUi-horizontal .noUi-handle, +.jupyter-widget-slider .noUi-horizontal .noUi-handle { + width: var(--jp-widgets-slider-handle-size); + height: var(--jp-widgets-slider-handle-size); + border-radius: 50%; + top: calc((var(--jp-widgets-slider-track-thickness) - var(--jp-widgets-slider-handle-size)) / 2); + right: calc(var(--jp-widgets-slider-handle-size) / -2); +} +.widget-slider .noUi-vertical .noUi-handle, +.jupyter-widget-slider .noUi-vertical .noUi-handle { + height: var(--jp-widgets-slider-handle-size); + width: var(--jp-widgets-slider-handle-size); + border-radius: 50%; + right: calc((var(--jp-widgets-slider-handle-size) - var(--jp-widgets-slider-track-thickness)) / -2); + top: calc(var(--jp-widgets-slider-handle-size) / -2); +} +.widget-slider .noUi-handle:after, +.jupyter-widget-slider .noUi-handle:after { + content: none; +} +.widget-slider .noUi-handle:before, +.jupyter-widget-slider .noUi-handle:before { + content: none; +} +.widget-slider .noUi-target, +.jupyter-widget-slider .noUi-target { + background: #fafafa; + border-radius: 4px; + border: 1px; +} +.widget-slider .ui-slider, +.jupyter-widget-slider .ui-slider { + border: var(--jp-widgets-slider-border-width) solid var(--jp-layout-color3); + background: var(--jp-layout-color3); + box-sizing: border-box; + position: relative; + border-radius: 0px; +} +.widget-slider .noUi-handle, +.jupyter-widget-slider .noUi-handle { + width: var(--jp-widgets-slider-handle-size); + border: 1px solid #d9d9d9; + border-radius: 3px; + background: #fff; + cursor: default; + box-shadow: none; + outline: none; +} +.widget-slider .noUi-target:not([disabled]) .noUi-handle:hover, +.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:hover, +.widget-slider .noUi-target:not([disabled]) .noUi-handle:focus, +.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:focus { + background-color: var(--jp-widgets-slider-active-handle-color); + border: var(--jp-widgets-slider-border-width) solid var(--jp-widgets-slider-active-handle-color); +} +.widget-slider [disabled].noUi-target, +.jupyter-widget-slider [disabled].noUi-target { + opacity: 0.35; +} +.widget-slider .noUi-connects, +.jupyter-widget-slider .noUi-connects { + overflow: visible; + z-index: 0; + background: var(--jp-layout-color3); +} +.widget-slider .noUi-vertical .noUi-connect, +.jupyter-widget-slider .noUi-vertical .noUi-connect { + width: calc(100% + 2px); + right: -1px; +} +.widget-slider .noUi-horizontal .noUi-connect, +.jupyter-widget-slider .noUi-horizontal .noUi-connect { + height: calc(100% + 2px); + top: -1px; +} + +/* ../../node_modules/@jupyter-widgets/controls/css/widgets-base.css */ +:root { + --jp-widgets-color: var(--jp-content-font-color1); + --jp-widgets-label-color: var(--jp-widgets-color); + --jp-widgets-readout-color: var(--jp-widgets-color); + --jp-widgets-font-size: var(--jp-ui-font-size1); + --jp-widgets-margin: 2px; + --jp-widgets-inline-height: 28px; + --jp-widgets-inline-width: 300px; + --jp-widgets-inline-width-short: calc( var(--jp-widgets-inline-width) / 2 - var(--jp-widgets-margin) ); + --jp-widgets-inline-width-tiny: calc( var(--jp-widgets-inline-width-short) / 2 - var(--jp-widgets-margin) ); + --jp-widgets-inline-margin: 4px; + --jp-widgets-inline-label-width: 80px; + --jp-widgets-border-width: var(--jp-border-width); + --jp-widgets-vertical-height: 200px; + --jp-widgets-horizontal-tab-height: 24px; + --jp-widgets-horizontal-tab-width: 144px; + --jp-widgets-horizontal-tab-top-border: 2px; + --jp-widgets-progress-thickness: 20px; + --jp-widgets-container-padding: 15px; + --jp-widgets-input-padding: 4px; + --jp-widgets-radio-item-height-adjustment: 8px; + --jp-widgets-radio-item-height: calc( var(--jp-widgets-inline-height) - var(--jp-widgets-radio-item-height-adjustment) ); + --jp-widgets-slider-track-thickness: 4px; + --jp-widgets-slider-border-width: var(--jp-widgets-border-width); + --jp-widgets-slider-handle-size: 16px; + --jp-widgets-slider-handle-border-color: var(--jp-border-color1); + --jp-widgets-slider-handle-background-color: var(--jp-layout-color1); + --jp-widgets-slider-active-handle-color: var(--jp-brand-color1); + --jp-widgets-menu-item-height: 24px; + --jp-widgets-dropdown-arrow: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDpub25lO30KPC9zdHlsZT4KPHBhdGggZD0iTTUuMiw1LjlMOSw5LjdsMy44LTMuOGwxLjIsMS4ybC00LjksNWwtNC45LTVMNS4yLDUuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTAtMC42aDE4djE4SDBWLTAuNnoiLz4KPC9zdmc+Cg); + --jp-widgets-input-color: var(--jp-ui-font-color1); + --jp-widgets-input-background-color: var(--jp-layout-color1); + --jp-widgets-input-border-color: var(--jp-border-color1); + --jp-widgets-input-focus-border-color: var(--jp-brand-color2); + --jp-widgets-input-border-width: var(--jp-widgets-border-width); + --jp-widgets-disabled-opacity: 0.6; + --md-shadow-key-umbra-opacity: 0.2; + --md-shadow-key-penumbra-opacity: 0.14; + --md-shadow-ambient-shadow-opacity: 0.12; +} +.jupyter-widgets { + margin: var(--jp-widgets-margin); + box-sizing: border-box; + color: var(--jp-widgets-color); + overflow: visible; +} +.jp-Output-result > .jupyter-widgets { + margin-left: 0; + margin-right: 0; +} +.widget-inline-hbox, +.jupyter-widget-inline-hbox { + box-sizing: border-box; + display: flex; + flex-direction: row; + align-items: baseline; +} +.widget-inline-vbox, +.jupyter-widget-inline-vbox { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; +} +.widget-box, +.jupyter-widget-box { + box-sizing: border-box; + display: flex; + margin: 0; + overflow: auto; +} +.widget-gridbox, +.jupyter-widget-gridbox { + box-sizing: border-box; + display: grid; + margin: 0; + overflow: auto; +} +.widget-hbox, +.jupyter-widget-hbox { + flex-direction: row; +} +.widget-vbox, +.jupyter-widget-vbox { + flex-direction: column; +} +.jupyter-widget-tagsinput { + display: flex; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + overflow: auto; + cursor: text; +} +.jupyter-widget-tag { + padding-left: 10px; + padding-right: 10px; + padding-top: 0px; + padding-bottom: 0px; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + font-size: var(--jp-widgets-font-size); + height: calc(var(--jp-widgets-inline-height) - 2px); + border: 0px solid; + line-height: calc(var(--jp-widgets-inline-height) - 2px); + box-shadow: none; + color: var(--jp-ui-font-color1); + background-color: var(--jp-layout-color2); + border-color: var(--jp-border-color2); + border: none; + user-select: none; + cursor: grab; + transition: margin-left 200ms; + margin: 1px 1px 1px 1px; +} +.jupyter-widget-tag.mod-active { + box-shadow: + 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)), + 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)), + 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity)); + color: var(--jp-ui-font-color1); + background-color: var(--jp-layout-color3); +} +.jupyter-widget-colortag { + color: var(--jp-inverse-ui-font-color1); +} +.jupyter-widget-colortag.mod-active { + color: var(--jp-inverse-ui-font-color0); +} +.jupyter-widget-taginput { + color: var(--jp-ui-font-color0); + background-color: var(--jp-layout-color0); + cursor: text; + text-align: left; +} +.jupyter-widget-taginput:focus { + outline: none; +} +.jupyter-widget-tag-close { + margin-left: var(--jp-widgets-inline-margin); + padding: 2px 0px 2px 2px; +} +.jupyter-widget-tag-close:hover { + cursor: pointer; +} +.jupyter-widget-tag.mod-primary { + color: var(--jp-inverse-ui-font-color1); + background-color: var(--jp-brand-color1); +} +.jupyter-widget-tag.mod-primary.mod-active { + color: var(--jp-inverse-ui-font-color0); + background-color: var(--jp-brand-color0); +} +.jupyter-widget-tag.mod-success { + color: var(--jp-inverse-ui-font-color1); + background-color: var(--jp-success-color1); +} +.jupyter-widget-tag.mod-success.mod-active { + color: var(--jp-inverse-ui-font-color0); + background-color: var(--jp-success-color0); +} +.jupyter-widget-tag.mod-info { + color: var(--jp-inverse-ui-font-color1); + background-color: var(--jp-info-color1); +} +.jupyter-widget-tag.mod-info.mod-active { + color: var(--jp-inverse-ui-font-color0); + background-color: var(--jp-info-color0); +} +.jupyter-widget-tag.mod-warning { + color: var(--jp-inverse-ui-font-color1); + background-color: var(--jp-warn-color1); +} +.jupyter-widget-tag.mod-warning.mod-active { + color: var(--jp-inverse-ui-font-color0); + background-color: var(--jp-warn-color0); +} +.jupyter-widget-tag.mod-danger { + color: var(--jp-inverse-ui-font-color1); + background-color: var(--jp-error-color1); +} +.jupyter-widget-tag.mod-danger.mod-active { + color: var(--jp-inverse-ui-font-color0); + background-color: var(--jp-error-color0); +} +.jupyter-button { + padding-left: 10px; + padding-right: 10px; + padding-top: 0px; + padding-bottom: 0px; + display: inline-block; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + font-size: var(--jp-widgets-font-size); + cursor: pointer; + height: var(--jp-widgets-inline-height); + border: 0px solid; + line-height: var(--jp-widgets-inline-height); + box-shadow: none; + color: var(--jp-ui-font-color1); + background-color: var(--jp-layout-color2); + border-color: var(--jp-border-color2); + border: none; + user-select: none; +} +.jupyter-button i.fa { + margin-right: var(--jp-widgets-inline-margin); + pointer-events: none; +} +.jupyter-button:empty:before { + content: "\200b"; +} +.jupyter-widgets.jupyter-button:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.jupyter-button i.fa.center { + margin-right: 0; +} +.jupyter-button:hover:enabled, +.jupyter-button:focus:enabled { + box-shadow: + 0 2px 2px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)), + 0 3px 1px -2px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity)), + 0 1px 5px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)); +} +.jupyter-button:active, +.jupyter-button.mod-active { + box-shadow: + 0 4px 5px 0 rgba(0, 0, 0, var(--md-shadow-key-penumbra-opacity)), + 0 1px 10px 0 rgba(0, 0, 0, var(--md-shadow-ambient-shadow-opacity)), + 0 2px 4px -1px rgba(0, 0, 0, var(--md-shadow-key-umbra-opacity)); + color: var(--jp-ui-font-color1); + background-color: var(--jp-layout-color3); +} +.jupyter-button:focus:enabled { + outline: 1px solid var(--jp-widgets-input-focus-border-color); +} +.jupyter-button.mod-primary { + color: var(--jp-ui-inverse-font-color1); + background-color: var(--jp-brand-color1); +} +.jupyter-button.mod-primary.mod-active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-brand-color0); +} +.jupyter-button.mod-primary:active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-brand-color0); +} +.jupyter-button.mod-success { + color: var(--jp-ui-inverse-font-color1); + background-color: var(--jp-success-color1); +} +.jupyter-button.mod-success.mod-active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-success-color0); +} +.jupyter-button.mod-success:active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-success-color0); +} +.jupyter-button.mod-info { + color: var(--jp-ui-inverse-font-color1); + background-color: var(--jp-info-color1); +} +.jupyter-button.mod-info.mod-active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-info-color0); +} +.jupyter-button.mod-info:active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-info-color0); +} +.jupyter-button.mod-warning { + color: var(--jp-ui-inverse-font-color1); + background-color: var(--jp-warn-color1); +} +.jupyter-button.mod-warning.mod-active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-warn-color0); +} +.jupyter-button.mod-warning:active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-warn-color0); +} +.jupyter-button.mod-danger { + color: var(--jp-ui-inverse-font-color1); + background-color: var(--jp-error-color1); +} +.jupyter-button.mod-danger.mod-active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-error-color0); +} +.jupyter-button.mod-danger:active { + color: var(--jp-ui-inverse-font-color0); + background-color: var(--jp-error-color0); +} +.widget-button, +.widget-toggle-button, +.widget-upload, +.jupyter-widget-button, +.jupyter-widget-toggle-button, +.jupyter-widget-upload { + width: var(--jp-widgets-inline-width-short); +} +.jupyter-widgets label { + margin-bottom: initial; +} +.widget-label-basic, +.jupyter-widget-label-basic { + color: var(--jp-widgets-label-color); + font-size: var(--jp-widgets-font-size); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: var(--jp-widgets-inline-height); +} +.widget-label, +.jupyter-widget-label { + color: var(--jp-widgets-label-color); + font-size: var(--jp-widgets-font-size); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + line-height: var(--jp-widgets-inline-height); +} +.widget-inline-hbox .widget-label, +.jupyter-widget-inline-hbox .jupyter-widget-label { + color: var(--jp-widgets-label-color); + text-align: right; + margin-right: calc(var(--jp-widgets-inline-margin) * 2); + width: var(--jp-widgets-inline-label-width); + flex-shrink: 0; +} +.widget-inline-vbox .widget-label, +.jupyter-widget-inline-vbox .jupyter-widget-label { + color: var(--jp-widgets-label-color); + text-align: center; + line-height: var(--jp-widgets-inline-height); +} +.widget-readout, +.jupyter-widget-readout { + color: var(--jp-widgets-readout-color); + font-size: var(--jp-widgets-font-size); + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); + overflow: hidden; + white-space: nowrap; + text-align: center; +} +.widget-readout.overflow, +.jupyter-widget-readout.overflow { + -webkit-box-shadow: + 0 2px 2px 0 rgba(0, 0, 0, 0.2), + 0 3px 1px -2px rgba(0, 0, 0, 0.14), + 0 1px 5px 0 rgba(0, 0, 0, 0.12); + -moz-box-shadow: + 0 2px 2px 0 rgba(0, 0, 0, 0.2), + 0 3px 1px -2px rgba(0, 0, 0, 0.14), + 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: + 0 2px 2px 0 rgba(0, 0, 0, 0.2), + 0 3px 1px -2px rgba(0, 0, 0, 0.14), + 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.widget-inline-hbox .widget-readout, +.jupyter-widget-inline-hbox .jupyter-widget-readout { + text-align: center; + max-width: var(--jp-widgets-inline-width-short); + min-width: var(--jp-widgets-inline-width-tiny); + margin-left: var(--jp-widgets-inline-margin); +} +.widget-inline-vbox .widget-readout, +.jupyter-widget-inline-vbox .jupyter-widget-readout { + margin-top: var(--jp-widgets-inline-margin); + width: inherit; +} +.widget-checkbox, +.jupyter-widget-checkbox { + width: var(--jp-widgets-inline-width); + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); +} +.widget-checkbox input[type=checkbox], +.jupyter-widget-checkbox input[type=checkbox] { + margin: 0px calc(var(--jp-widgets-inline-margin) * 2) 0px 0px; + line-height: var(--jp-widgets-inline-height); + font-size: large; + flex-grow: 1; + flex-shrink: 0; + align-self: center; +} +.widget-valid, +.jupyter-widget-valid { + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); + width: var(--jp-widgets-inline-width-short); + font-size: var(--jp-widgets-font-size); +} +.widget-valid i, +.jupyter-widget-valid i { + line-height: var(--jp-widgets-inline-height); + margin-right: var(--jp-widgets-inline-margin); + margin-left: var(--jp-widgets-inline-margin); +} +.widget-valid.mod-valid i, +.jupyter-widget-valid.mod-valid i { + color: green; +} +.widget-valid.mod-invalid i, +.jupyter-widget-valid.mod-invalid i { + color: red; +} +.widget-valid.mod-valid .widget-valid-readout, +.jupyter-widget-valid.mod-valid .jupyter-widget-valid-readout { + display: none; +} +.widget-textarea, +.widget-text, +.jupyter-widget-textarea, +.jupyter-widget-text { + width: var(--jp-widgets-inline-width); +} +.widget-text input[type=text], +.widget-text input[type=number], +.widget-text input[type=password], +.jupyter-widget-text input[type=text], +.jupyter-widget-text input[type=number], +.jupyter-widget-text input[type=password] { + height: var(--jp-widgets-inline-height); +} +.widget-text input[type=text]:disabled, +.widget-text input[type=number]:disabled, +.widget-text input[type=password]:disabled, +.widget-textarea textarea:disabled, +.jupyter-widget-text input[type=text]:disabled, +.jupyter-widget-text input[type=number]:disabled, +.jupyter-widget-text input[type=password]:disabled, +.jupyter-widget-textarea textarea:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.widget-text input[type=text], +.widget-text input[type=number], +.widget-text input[type=password], +.widget-textarea textarea, +.jupyter-widget-text input[type=text], +.jupyter-widget-text input[type=number], +.jupyter-widget-text input[type=password], +.jupyter-widget-textarea textarea { + box-sizing: border-box; + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + background-color: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + font-size: var(--jp-widgets-font-size); + flex-grow: 1; + min-width: 0; + flex-shrink: 1; + outline: none !important; +} +.widget-text input[type=text], +.widget-text input[type=password], +.widget-textarea textarea, +.jupyter-widget-text input[type=text], +.jupyter-widget-text input[type=password], +.jupyter-widget-textarea textarea { + padding: var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2); +} +.widget-text input[type=number], +.jupyter-widget-text input[type=number] { + padding: var(--jp-widgets-input-padding) 0 var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2); +} +.widget-textarea textarea, +.jupyter-widget-textarea textarea { + height: inherit; + width: inherit; +} +.widget-text input:focus, +.widget-textarea textarea:focus, +.jupyter-widget-text input:focus, +.jupyter-widget-textarea textarea:focus { + border-color: var(--jp-widgets-input-focus-border-color); +} +.widget-hslider, +.jupyter-widget-hslider { + width: var(--jp-widgets-inline-width); + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); + align-items: center; +} +.widgets-slider .slider-container, +.jupyter-widgets-slider .slider-container { + overflow: visible; +} +.widget-hslider .slider-container, +.jupyter-widget-hslider .slider-container { + margin-left: calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width)); + margin-right: calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width)); + flex: 1 1 var(--jp-widgets-inline-width-short); +} +.widget-vbox .widget-label, +.jupyter-widget-vbox .jupyter-widget-label { + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); +} +.widget-vslider, +.jupyter-widget-vslider { + height: var(--jp-widgets-vertical-height); + width: var(--jp-widgets-inline-width-tiny); +} +.widget-vslider .slider-container, +.jupyter-widget-vslider .slider-container { + flex: 1 1 var(--jp-widgets-inline-width-short); + margin-left: auto; + margin-right: auto; + margin-bottom: calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width)); + margin-top: calc(var(--jp-widgets-slider-handle-size) / 2 - 2 * var(--jp-widgets-slider-border-width)); + display: flex; + flex-direction: column; +} +.progress-bar { + -webkit-transition: none; + -moz-transition: none; + -ms-transition: none; + -o-transition: none; + transition: none; +} +.progress-bar { + height: var(--jp-widgets-inline-height); +} +.progress-bar { + background-color: var(--jp-brand-color1); +} +.progress-bar-success { + background-color: var(--jp-success-color1); +} +.progress-bar-info { + background-color: var(--jp-info-color1); +} +.progress-bar-warning { + background-color: var(--jp-warn-color1); +} +.progress-bar-danger { + background-color: var(--jp-error-color1); +} +.progress { + background-color: var(--jp-layout-color2); + border: none; + box-shadow: none; +} +.widget-hprogress, +.jupyter-widget-hprogress { + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); + width: var(--jp-widgets-inline-width); + align-items: center; +} +.widget-hprogress .progress, +.jupyter-widget-hprogress .progress { + flex-grow: 1; + margin-top: var(--jp-widgets-input-padding); + margin-bottom: var(--jp-widgets-input-padding); + align-self: stretch; + height: initial; +} +.widget-vprogress, +.jupyter-widget-vprogress { + height: var(--jp-widgets-vertical-height); + width: var(--jp-widgets-inline-width-tiny); +} +.widget-vprogress .progress, +.jupyter-widget-vprogress .progress { + flex-grow: 1; + width: var(--jp-widgets-progress-thickness); + margin-left: auto; + margin-right: auto; + margin-bottom: 0; +} +.widget-dropdown, +.jupyter-widget-dropdown { + height: var(--jp-widgets-inline-height); + width: var(--jp-widgets-inline-width); + line-height: var(--jp-widgets-inline-height); +} +.widget-dropdown > select, +.jupyter-widget-dropdown > select { + padding-right: 20px; + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + border-radius: 0; + height: inherit; + flex: 1 1 var(--jp-widgets-inline-width-short); + min-width: 0; + box-sizing: border-box; + outline: none !important; + box-shadow: none; + background-color: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + font-size: var(--jp-widgets-font-size); + vertical-align: top; + padding-left: calc(var(--jp-widgets-input-padding) * 2); + appearance: none; + -webkit-appearance: none; + -moz-appearance: none; + background-repeat: no-repeat; + background-size: 20px; + background-position: right center; + background-image: var(--jp-widgets-dropdown-arrow); +} +.widget-dropdown > select:focus, +.jupyter-widget-dropdown > select:focus { + border-color: var(--jp-widgets-input-focus-border-color); +} +.widget-dropdown > select:disabled, +.jupyter-widget-dropdown > select:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.widget-dropdown > select:-moz-focusring, +.jupyter-widget-dropdown > select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #000; +} +.widget-select, +.jupyter-widget-select { + width: var(--jp-widgets-inline-width); + line-height: var(--jp-widgets-inline-height); + align-items: flex-start; +} +.widget-select > select, +.jupyter-widget-select > select { + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + background-color: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + font-size: var(--jp-widgets-font-size); + flex: 1 1 var(--jp-widgets-inline-width-short); + outline: none !important; + overflow: auto; + height: inherit; + padding-top: 5px; +} +.widget-select > select:focus, +.jupyter-widget-select > select:focus { + border-color: var(--jp-widgets-input-focus-border-color); +} +.wiget-select > select > option, +.jupyter-wiget-select > select > option { + padding-left: var(--jp-widgets-input-padding); + line-height: var(--jp-widgets-inline-height); + padding-top: calc(var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2); + padding-bottom: calc(var(--jp-widgets-inline-height) - var(--jp-widgets-font-size) / 2); +} +.widget-toggle-buttons, +.jupyter-widget-toggle-buttons { + line-height: var(--jp-widgets-inline-height); +} +.widget-toggle-buttons .widget-toggle-button, +.jupyter-widget-toggle-buttons .jupyter-widget-toggle-button { + margin-left: var(--jp-widgets-margin); + margin-right: var(--jp-widgets-margin); +} +.widget-toggle-buttons .jupyter-button:disabled, +.jupyter-widget-toggle-buttons .jupyter-button:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.widget-radio, +.jupyter-widget-radio { + width: var(--jp-widgets-inline-width); + line-height: var(--jp-widgets-inline-height); +} +.widget-radio-box, +.jupyter-widget-radio-box { + display: flex; + flex-direction: column; + align-items: stretch; + box-sizing: border-box; + flex-grow: 1; + margin-bottom: var(--jp-widgets-radio-item-height-adjustment); +} +.widget-radio-box-vertical, +.jupyter-widget-radio-box-vertical { + flex-direction: column; +} +.widget-radio-box-horizontal, +.jupyter-widget-radio-box-horizontal { + flex-direction: row; +} +.widget-radio-box label, +.jupyter-widget-radio-box label { + height: var(--jp-widgets-radio-item-height); + line-height: var(--jp-widgets-radio-item-height); + font-size: var(--jp-widgets-font-size); +} +.widget-radio-box-horizontal label, +.jupyter-widget-radio-box-horizontal label { + margin: 0 calc(var(--jp-widgets-input-padding) * 2) 0 0; +} +.widget-radio-box input, +.jupyter-widget-radio-box input { + height: var(--jp-widgets-radio-item-height); + line-height: var(--jp-widgets-radio-item-height); + margin: 0 calc(var(--jp-widgets-input-padding) * 2) 0 1px; + float: left; +} +.widget-colorpicker, +.jupyter-widget-colorpicker { + width: var(--jp-widgets-inline-width); + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); +} +.widget-colorpicker > .widget-colorpicker-input, +.jupyter-widget-colorpicker > .jupyter-widget-colorpicker-input { + flex-grow: 1; + flex-shrink: 1; + min-width: var(--jp-widgets-inline-width-tiny); +} +.widget-colorpicker input[type=color], +.jupyter-widget-colorpicker input[type=color] { + width: var(--jp-widgets-inline-height); + height: var(--jp-widgets-inline-height); + padding: 0 2px; + background: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + border-left: none; + flex-grow: 0; + flex-shrink: 0; + box-sizing: border-box; + align-self: stretch; + outline: none !important; +} +.widget-colorpicker.concise input[type=color], +.jupyter-widget-colorpicker.concise input[type=color] { + border-left: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); +} +.widget-colorpicker input[type=color]:focus, +.widget-colorpicker input[type=text]:focus, +.jupyter-widget-colorpicker input[type=color]:focus, +.jupyter-widget-colorpicker input[type=text]:focus { + border-color: var(--jp-widgets-input-focus-border-color); +} +.widget-colorpicker input[type=text], +.jupyter-widget-colorpicker input[type=text] { + flex-grow: 1; + outline: none !important; + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); + background: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + font-size: var(--jp-widgets-font-size); + padding: var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2); + min-width: 0; + flex-shrink: 1; + box-sizing: border-box; +} +.widget-colorpicker input[type=text]:disabled, +.jupyter-widget-colorpicker input[type=text]:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.widget-datepicker, +.jupyter-widget-datepicker { + width: var(--jp-widgets-inline-width); + height: var(--jp-widgets-inline-height); + line-height: var(--jp-widgets-inline-height); +} +.widget-datepicker input[type=date], +.jupyter-widget-datepicker input[type=date] { + flex-grow: 1; + flex-shrink: 1; + min-width: 0; + outline: none !important; + height: var(--jp-widgets-inline-height); + border: var(--jp-widgets-input-border-width) solid var(--jp-widgets-input-border-color); + background-color: var(--jp-widgets-input-background-color); + color: var(--jp-widgets-input-color); + font-size: var(--jp-widgets-font-size); + padding: var(--jp-widgets-input-padding) calc(var(--jp-widgets-input-padding) * 2); + box-sizing: border-box; +} +.widget-datepicker input[type=date]:focus, +.jupyter-widget-datepicker input[type=date]:focus { + border-color: var(--jp-widgets-input-focus-border-color); +} +.widget-datepicker input[type=date]:invalid, +.jupyter-widget-datepicker input[type=date]:invalid { + border-color: var(--jp-warn-color1); +} +.widget-datepicker input[type=date]:disabled, +.jupyter-widget-datepicker input[type=date]:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.widget-play, +.jupyter-widget-play { + width: var(--jp-widgets-inline-width-short); + display: flex; + align-items: stretch; +} +.widget-play .jupyter-button, +.jupyter-widget-play .jupyter-button { + flex-grow: 1; + height: auto; +} +.widget-play .jupyter-button:disabled, +.jupyter-widget-play .jupyter-button:disabled { + opacity: var(--jp-widgets-disabled-opacity); +} +.jupyter-widgets.widget-tab, +.jupyter-widgets.jupyter-widget-tab { + display: flex; + flex-direction: column; +} +.jupyter-widgets.widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar { + overflow-x: visible; + overflow-y: visible; +} +.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content { + align-items: flex-end; + min-width: 0; + min-height: 0; +} +.jupyter-widgets.widget-tab > .widget-tab-contents, +.jupyter-widgets.jupyter-widget-tab > .widget-tab-contents { + width: 100%; + box-sizing: border-box; + margin: 0; + background: var(--jp-layout-color1); + color: var(--jp-ui-font-color1); + border: var(--jp-border-width) solid var(--jp-border-color1); + padding: var(--jp-widgets-container-padding); + flex-grow: 1; + overflow: auto; +} +.jupyter-widgets.widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar { + font: + var(--jp-widgets-font-size) Helvetica, + Arial, + sans-serif; + min-height: calc(var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)); +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab { + flex: 0 1 var(--jp-widgets-horizontal-tab-width); + min-width: 35px; + min-height: calc(var(--jp-widgets-horizontal-tab-height) + var(--jp-border-width)); + line-height: var(--jp-widgets-horizontal-tab-height); + margin-left: calc(-1 * var(--jp-border-width)); + padding: 0px 10px; + background: var(--jp-layout-color2); + color: var(--jp-ui-font-color2); + border: var(--jp-border-width) solid var(--jp-border-color1); + border-bottom: none; + position: relative; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current { + color: var(--jp-ui-font-color0); + background: var(--jp-layout-color1); + min-height: calc(var(--jp-widgets-horizontal-tab-height) + 2 * var(--jp-border-width)); + transform: translateY(var(--jp-border-width)); + overflow: visible; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current:before { + position: absolute; + top: calc(-1 * var(--jp-border-width)); + left: calc(-1 * var(--jp-border-width)); + content: ""; + height: var(--jp-widgets-horizontal-tab-top-border); + width: calc(100% + 2 * var(--jp-border-width)); + background: var(--jp-brand-color1); +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab:first-child, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab:first-child, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab:first-child { + margin-left: 0; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab:hover:not(.p-mod-current), +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab:hover:not(.p-mod-current), +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab:hover:not(.lm-mod-current) { + background: var(--jp-layout-color1); + color: var(--jp-ui-font-color1); +} +.jupyter-widgets.widget-tab > .p-TabBar .p-mod-closable > .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-mod-closable > .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-mod-closable > .lm-TabBar-tabCloseIcon { + margin-left: 4px; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-mod-closable > .p-TabBar-tabCloseIcon:before, +.jupyter-widgets.jupyter-widget-widget-tab > .p-TabBar .p-mod-closable > .p-TabBar-tabCloseIcon:before, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-mod-closable > .lm-TabBar-tabCloseIcon:before { + font-family: FontAwesome; + content: "\f00d"; +} +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, +.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, +.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel, +.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon { + line-height: var(--jp-widgets-horizontal-tab-height); +} +.jupyter-widget-Collapse { + display: flex; + flex-direction: column; + align-items: stretch; +} +.jupyter-widget-Collapse-header { + padding: var(--jp-widgets-input-padding); + cursor: pointer; + color: var(--jp-ui-font-color2); + background-color: var(--jp-layout-color2); + border: var(--jp-widgets-border-width) solid var(--jp-border-color1); + padding: calc(var(--jp-widgets-container-padding) * 2 / 3) var(--jp-widgets-container-padding); + font-weight: bold; +} +.jupyter-widget-Collapse-header:hover { + background-color: var(--jp-layout-color1); + color: var(--jp-ui-font-color1); +} +.jupyter-widget-Collapse-open > .jupyter-widget-Collapse-header { + background-color: var(--jp-layout-color1); + color: var(--jp-ui-font-color0); + cursor: default; + border-bottom: none; +} +.jupyter-widget-Collapse-contents { + padding: var(--jp-widgets-container-padding); + background-color: var(--jp-layout-color1); + color: var(--jp-ui-font-color1); + border-left: var(--jp-widgets-border-width) solid var(--jp-border-color1); + border-right: var(--jp-widgets-border-width) solid var(--jp-border-color1); + border-bottom: var(--jp-widgets-border-width) solid var(--jp-border-color1); + overflow: auto; +} +.jupyter-widget-Accordion { + display: flex; + flex-direction: column; + align-items: stretch; +} +.jupyter-widget-Accordion .jupyter-widget-Collapse { + margin-bottom: 0; +} +.jupyter-widget-Accordion .jupyter-widget-Collapse + .jupyter-widget-Collapse { + margin-top: 4px; +} +.widget-html, +.widget-htmlmath, +.jupyter-widget-html, +.jupyter-widget-htmlmath { + font-size: var(--jp-widgets-font-size); +} +.widget-html > .widget-html-content, +.widget-htmlmath > .widget-html-content, +.jupyter-widget-html > .jupyter-widget-html-content, +.jupyter-widget-htmlmath > .jupyter-widget-html-content { + align-self: stretch; + flex-grow: 1; + flex-shrink: 1; + line-height: var(--jp-widgets-inline-height); + position: relative; +} +.widget-image, +.jupyter-widget-image { + max-width: 100%; + height: auto; +} + +/* ../../node_modules/@lumino/widgets/style/widget.css */ +.lm-Widget { + box-sizing: border-box; + position: relative; +} +.lm-Widget.lm-mod-hidden { + display: none !important; +} + +/* ../../node_modules/@lumino/widgets/style/accordionpanel.css */ +.lm-AccordionPanel[data-orientation=horizontal] > .lm-AccordionPanel-title { + display: block; + transform-origin: top left; + transform: rotate(-90deg) translate(-100%); +} + +/* ../../node_modules/@lumino/widgets/style/commandpalette.css */ +.lm-CommandPalette { + display: flex; + flex-direction: column; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lm-CommandPalette-search { + flex: 0 0 auto; +} +.lm-CommandPalette-content { + flex: 1 1 auto; + margin: 0; + padding: 0; + min-height: 0; + overflow: auto; + list-style-type: none; +} +.lm-CommandPalette-header { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.lm-CommandPalette-item { + display: flex; + flex-direction: row; +} +.lm-CommandPalette-itemIcon { + flex: 0 0 auto; +} +.lm-CommandPalette-itemContent { + flex: 1 1 auto; + overflow: hidden; +} +.lm-CommandPalette-itemShortcut { + flex: 0 0 auto; +} +.lm-CommandPalette-itemLabel { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.lm-close-icon { + border: 1px solid transparent; + background-color: transparent; + position: absolute; + z-index: 1; + right: 3%; + top: 0; + bottom: 0; + margin: auto; + padding: 7px 0; + display: none; + vertical-align: middle; + outline: 0; + cursor: pointer; +} +.lm-close-icon:after { + content: "X"; + display: block; + width: 15px; + height: 15px; + text-align: center; + color: #000; + font-weight: normal; + font-size: 12px; + cursor: pointer; +} + +/* ../../node_modules/@lumino/widgets/style/dockpanel.css */ +.lm-DockPanel { + z-index: 0; +} +.lm-DockPanel-widget { + z-index: 0; +} +.lm-DockPanel-tabBar { + z-index: 1; +} +.lm-DockPanel-handle { + z-index: 2; +} +.lm-DockPanel-handle.lm-mod-hidden { + display: none !important; +} +.lm-DockPanel-handle:after { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + content: ""; +} +.lm-DockPanel-handle[data-orientation=horizontal] { + cursor: ew-resize; +} +.lm-DockPanel-handle[data-orientation=vertical] { + cursor: ns-resize; +} +.lm-DockPanel-handle[data-orientation=horizontal]:after { + left: 50%; + min-width: 8px; + transform: translateX(-50%); +} +.lm-DockPanel-handle[data-orientation=vertical]:after { + top: 50%; + min-height: 8px; + transform: translateY(-50%); +} +.lm-DockPanel-overlay { + z-index: 3; + box-sizing: border-box; + pointer-events: none; +} +.lm-DockPanel-overlay.lm-mod-hidden { + display: none !important; +} + +/* ../../node_modules/@lumino/widgets/style/menu.css */ +.lm-Menu { + z-index: 10000; + position: absolute; + white-space: nowrap; + overflow-x: hidden; + overflow-y: auto; + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lm-Menu-content { + margin: 0; + padding: 0; + display: table; + list-style-type: none; +} +.lm-Menu-item { + display: table-row; +} +.lm-Menu-item.lm-mod-hidden, +.lm-Menu-item.lm-mod-collapsed { + display: none !important; +} +.lm-Menu-itemIcon, +.lm-Menu-itemSubmenuIcon { + display: table-cell; + text-align: center; +} +.lm-Menu-itemLabel { + display: table-cell; + text-align: left; +} +.lm-Menu-itemShortcut { + display: table-cell; + text-align: right; +} + +/* ../../node_modules/@lumino/widgets/style/menubar.css */ +.lm-MenuBar { + outline: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lm-MenuBar-content { + margin: 0; + padding: 0; + display: flex; + flex-direction: row; + list-style-type: none; +} +.lm-MenuBar-item { + box-sizing: border-box; +} +.lm-MenuBar-itemIcon, +.lm-MenuBar-itemLabel { + display: inline-block; +} + +/* ../../node_modules/@lumino/widgets/style/scrollbar.css */ +.lm-ScrollBar { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lm-ScrollBar[data-orientation=horizontal] { + flex-direction: row; +} +.lm-ScrollBar[data-orientation=vertical] { + flex-direction: column; +} +.lm-ScrollBar-button { + box-sizing: border-box; + flex: 0 0 auto; +} +.lm-ScrollBar-track { + box-sizing: border-box; + position: relative; + overflow: hidden; + flex: 1 1 auto; +} +.lm-ScrollBar-thumb { + box-sizing: border-box; + position: absolute; +} + +/* ../../node_modules/@lumino/widgets/style/splitpanel.css */ +.lm-SplitPanel-child { + z-index: 0; +} +.lm-SplitPanel-handle { + z-index: 1; +} +.lm-SplitPanel-handle.lm-mod-hidden { + display: none !important; +} +.lm-SplitPanel-handle:after { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + content: ""; +} +.lm-SplitPanel[data-orientation=horizontal] > .lm-SplitPanel-handle { + cursor: ew-resize; +} +.lm-SplitPanel[data-orientation=vertical] > .lm-SplitPanel-handle { + cursor: ns-resize; +} +.lm-SplitPanel[data-orientation=horizontal] > .lm-SplitPanel-handle:after { + left: 50%; + min-width: 8px; + transform: translateX(-50%); +} +.lm-SplitPanel[data-orientation=vertical] > .lm-SplitPanel-handle:after { + top: 50%; + min-height: 8px; + transform: translateY(-50%); +} + +/* ../../node_modules/@lumino/widgets/style/tabbar.css */ +.lm-TabBar { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.lm-TabBar[data-orientation=horizontal] { + flex-direction: row; + align-items: flex-end; +} +.lm-TabBar[data-orientation=vertical] { + flex-direction: column; + align-items: flex-end; +} +.lm-TabBar-content { + margin: 0; + padding: 0; + display: flex; + flex: 1 1 auto; + list-style-type: none; +} +.lm-TabBar[data-orientation=horizontal] > .lm-TabBar-content { + flex-direction: row; +} +.lm-TabBar[data-orientation=vertical] > .lm-TabBar-content { + flex-direction: column; +} +.lm-TabBar-tab { + display: flex; + flex-direction: row; + box-sizing: border-box; + overflow: hidden; + touch-action: none; +} +.lm-TabBar-tabIcon, +.lm-TabBar-tabCloseIcon { + flex: 0 0 auto; +} +.lm-TabBar-tabLabel { + flex: 1 1 auto; + overflow: hidden; + white-space: nowrap; +} +.lm-TabBar-tabInput { + user-select: all; + width: 100%; + box-sizing: border-box; +} +.lm-TabBar-tab.lm-mod-hidden { + display: none !important; +} +.lm-TabBar-addButton.lm-mod-hidden { + display: none !important; +} +.lm-TabBar.lm-mod-dragging .lm-TabBar-tab { + position: relative; +} +.lm-TabBar.lm-mod-dragging[data-orientation=horizontal] .lm-TabBar-tab { + left: 0; + transition: left 150ms ease; +} +.lm-TabBar.lm-mod-dragging[data-orientation=vertical] .lm-TabBar-tab { + top: 0; + transition: top 150ms ease; +} +.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging { + transition: none; +} +.lm-TabBar-tabLabel .lm-TabBar-tabInput { + user-select: all; + width: 100%; + box-sizing: border-box; + background: inherit; +} + +/* ../../node_modules/@lumino/widgets/style/tabpanel.css */ +.lm-TabPanel-tabBar { + z-index: 1; +} +.lm-TabPanel-stackedPanel { + z-index: 0; +} + +/* ../../node_modules/@lumino/widgets/style/index.css */ + +/* ../../node_modules/@jupyterlab/apputils/style/commandpalette.css */ +:root { + --jp-private-commandpalette-search-height: 28px; +} +.lm-CommandPalette { + padding-bottom: 0; + color: var(--jp-ui-font-color1); + background: var(--jp-layout-color1); + font-size: var(--jp-ui-font-size1); +} +.jp-ModalCommandPalette { + position: absolute; + z-index: 10000; + top: 38px; + left: 30%; + margin: 0; + padding: 4px; + width: 40%; + box-shadow: var(--jp-elevation-z4); + border-radius: 4px; + background: var(--jp-layout-color0); +} +.jp-ModalCommandPalette .lm-CommandPalette { + max-height: 40vh; +} +.jp-ModalCommandPalette .lm-CommandPalette .lm-close-icon::after { + display: none; +} +.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-header { + display: none; +} +.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item { + margin-left: 4px; + margin-right: 4px; +} +.jp-ModalCommandPalette .lm-CommandPalette .lm-CommandPalette-item.lm-mod-disabled { + display: none; +} +.lm-CommandPalette-search { + padding: 4px; + background-color: var(--jp-layout-color1); + z-index: 2; +} +.lm-CommandPalette-wrapper { + overflow: overlay; + padding: 0 9px; + background-color: var(--jp-input-active-background); + height: 30px; + box-shadow: inset 0 0 0 var(--jp-border-width) var(--jp-input-border-color); +} +.lm-CommandPalette.lm-mod-focused .lm-CommandPalette-wrapper { + box-shadow: inset 0 0 0 1px var(--jp-input-active-box-shadow-color), inset 0 0 0 3px var(--jp-input-active-box-shadow-color); +} +.jp-SearchIconGroup { + color: white; + background-color: var(--jp-brand-color1); + position: absolute; + top: 4px; + right: 4px; + padding: 5px 5px 1px; +} +.jp-SearchIconGroup svg { + height: 20px; + width: 20px; +} +.jp-SearchIconGroup .jp-icon3[fill] { + fill: var(--jp-layout-color0); +} +.lm-CommandPalette-input { + background: transparent; + width: calc(100% - 18px); + float: left; + border: none; + outline: none; + font-size: var(--jp-ui-font-size1); + color: var(--jp-ui-font-color0); + line-height: var(--jp-private-commandpalette-search-height); +} +.lm-CommandPalette-input::-webkit-input-placeholder, +.lm-CommandPalette-input::-moz-placeholder, +.lm-CommandPalette-input:-ms-input-placeholder { + color: var(--jp-ui-font-color2); + font-size: var(--jp-ui-font-size1); +} +.lm-CommandPalette-header:first-child { + margin-top: 0; +} +.lm-CommandPalette-header { + border-bottom: solid var(--jp-border-width) var(--jp-border-color2); + color: var(--jp-ui-font-color1); + cursor: pointer; + display: flex; + font-size: var(--jp-ui-font-size0); + font-weight: 600; + letter-spacing: 1px; + margin-top: 8px; + padding: 8px 0 8px 12px; + text-transform: uppercase; +} +.lm-CommandPalette-header.lm-mod-active { + background: var(--jp-layout-color2); +} +.lm-CommandPalette-header > mark { + background-color: transparent; + font-weight: bold; + color: var(--jp-ui-font-color1); +} +.lm-CommandPalette-item { + padding: 4px 12px 4px 4px; + color: var(--jp-ui-font-color1); + font-size: var(--jp-ui-font-size1); + font-weight: 400; + display: flex; +} +.lm-CommandPalette-item.lm-mod-disabled { + color: var(--jp-ui-font-color2); +} +.lm-CommandPalette-item.lm-mod-active { + color: var(--jp-ui-inverse-font-color1); + background: var(--jp-brand-color1); +} +.lm-CommandPalette-item.lm-mod-active .lm-CommandPalette-itemLabel > mark { + color: var(--jp-ui-inverse-font-color0); +} +.lm-CommandPalette-item.lm-mod-active .jp-icon-selectable[fill] { + fill: var(--jp-layout-color0); +} +.lm-CommandPalette-item.lm-mod-active:hover:not(.lm-mod-disabled) { + color: var(--jp-ui-inverse-font-color1); + background: var(--jp-brand-color1); +} +.lm-CommandPalette-item:hover:not(.lm-mod-active):not(.lm-mod-disabled) { + background: var(--jp-layout-color2); +} +.lm-CommandPalette-itemContent { + overflow: hidden; +} +.lm-CommandPalette-itemLabel > mark { + color: var(--jp-ui-font-color0); + background-color: transparent; + font-weight: bold; +} +.lm-CommandPalette-item.lm-mod-disabled mark { + color: var(--jp-ui-font-color2); +} +.lm-CommandPalette-item .lm-CommandPalette-itemIcon { + margin: 0 4px 0 0; + position: relative; + width: 16px; + top: 2px; + flex: 0 0 auto; +} +.lm-CommandPalette-item.lm-mod-disabled .lm-CommandPalette-itemIcon { + opacity: 0.6; +} +.lm-CommandPalette-item .lm-CommandPalette-itemShortcut { + flex: 0 0 auto; +} +.lm-CommandPalette-itemCaption { + display: none; +} +.lm-CommandPalette-content { + background-color: var(--jp-layout-color1); +} +.lm-CommandPalette-content:empty::after { + content: "No results"; + margin: auto; + margin-top: 20px; + width: 100px; + display: block; + font-size: var(--jp-ui-font-size2); + font-family: var(--jp-ui-font-family); + font-weight: lighter; +} +.lm-CommandPalette-emptyMessage { + text-align: center; + margin-top: 24px; + line-height: 1.32; + padding: 0 8px; + color: var(--jp-content-font-color3); +} + +/* ../../node_modules/@jupyterlab/apputils/style/dialog.css */ +.jp-Dialog { + position: absolute; + z-index: 10000; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + top: 0; + left: 0; + margin: 0; + padding: 0; + width: 100%; + height: 100%; + background: var(--jp-dialog-background); +} +.jp-Dialog-content { + display: flex; + flex-direction: column; + margin-left: auto; + margin-right: auto; + background: var(--jp-layout-color1); + padding: 24px 24px 12px; + min-width: 300px; + min-height: 150px; + max-width: 1000px; + max-height: 500px; + box-sizing: border-box; + box-shadow: var(--jp-elevation-z20); + word-wrap: break-word; + border-radius: var(--jp-border-radius); + font-size: var(--jp-ui-font-size1); + color: var(--jp-ui-font-color1); + resize: both; +} +.jp-Dialog-content.jp-Dialog-content-small { + max-width: 500px; +} +.jp-Dialog-button { + overflow: visible; +} +button.jp-Dialog-button:disabled { + opacity: 0.6; +} +button.jp-Dialog-button:focus { + outline: 1px solid var(--jp-brand-color1); + outline-offset: 4px; + -moz-outline-radius: 0; +} +button.jp-Dialog-button:focus::-moz-focus-inner { + border: 0; +} +button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus, +button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus, +button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus { + outline-offset: 4px; + -moz-outline-radius: 0; +} +button.jp-Dialog-button.jp-mod-styled.jp-mod-accept:focus { + outline: 1px solid var(--jp-accept-color-normal, var(--jp-brand-color1)); +} +button.jp-Dialog-button.jp-mod-styled.jp-mod-warn:focus { + outline: 1px solid var(--jp-warn-color-normal, var(--jp-error-color1)); +} +button.jp-Dialog-button.jp-mod-styled.jp-mod-reject:focus { + outline: 1px solid var(--jp-reject-color-normal, var(--md-grey-600, #757575)); +} +button.jp-Dialog-close-button { + padding: 0; + height: 100%; + min-width: unset; + min-height: unset; +} +.jp-Dialog-header { + display: flex; + justify-content: space-between; + flex: 0 0 auto; + padding-bottom: 12px; + font-size: var(--jp-ui-font-size3); + font-weight: 400; + color: var(--jp-ui-font-color1); +} +.jp-Dialog-body { + display: flex; + flex-direction: column; + flex: 1 1 auto; + font-size: var(--jp-ui-font-size1); + background: var(--jp-layout-color1); + color: var(--jp-ui-font-color1); + overflow: auto; +} +.jp-Dialog-footer { + display: flex; + flex-direction: row; + justify-content: flex-end; + align-items: center; + flex: 0 0 auto; + margin-left: -12px; + margin-right: -12px; + padding: 12px; +} +.jp-Dialog-checkbox { + padding-right: 5px; +} +.jp-Dialog-spacer { + flex: 1 1 auto; +} +.jp-Dialog-title { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.jp-Dialog-body > .jp-select-wrapper { + width: 100%; +} +.jp-Dialog-body > button { + padding: 0 16px; +} +.jp-Dialog-body > label { + line-height: 1.4; + color: var(--jp-ui-font-color0); +} +.jp-Dialog-button.jp-mod-styled:not(:last-child) { + margin-right: 12px; +} + +/* ../../node_modules/@jupyterlab/apputils/style/inputdialog.css */ +.jp-Input-Boolean-Dialog { + flex-direction: row-reverse; + align-items: end; + width: 100%; +} +.jp-Input-Boolean-Dialog > label { + flex: 1 1 auto; +} +.jp-InputDialog-inputWrapper { + display: flex; + align-items: baseline; +} +.jp-InputDialog-inputWrapper > input.jp-mod-styled:invalid { + border-color: var(--jp-error-color0); + background: var(--jp-error-color3); +} +.jp-InputDialog-inputWrapper > input[required].jp-mod-styled:invalid:placeholder-shown { + border-color: unset; + background: unset; +} + +/* ../../node_modules/@jupyterlab/apputils/style/mainareawidget.css */ +.jp-MainAreaWidget > :focus { + outline: none; +} +.jp-MainAreaWidget .jp-MainAreaWidget-error { + padding: 6px; +} +.jp-MainAreaWidget .jp-MainAreaWidget-error > pre { + width: auto; + padding: 10px; + background: var(--jp-error-color3); + border: var(--jp-border-width) solid var(--jp-error-color1); + border-radius: var(--jp-border-radius); + color: var(--jp-ui-font-color1); + font-size: var(--jp-ui-font-size1); + white-space: pre-wrap; + word-wrap: break-word; +} + +/* ../../node_modules/@jupyterlab/apputils/style/materialcolors.css */ +:root { + --md-red-50: #ffebee; + --md-red-100: #ffcdd2; + --md-red-200: #ef9a9a; + --md-red-300: #e57373; + --md-red-400: #ef5350; + --md-red-500: #f44336; + --md-red-600: #e53935; + --md-red-700: #d32f2f; + --md-red-800: #c62828; + --md-red-900: #b71c1c; + --md-red-A100: #ff8a80; + --md-red-A200: #ff5252; + --md-red-A400: #ff1744; + --md-red-A700: #d50000; + --md-pink-50: #fce4ec; + --md-pink-100: #f8bbd0; + --md-pink-200: #f48fb1; + --md-pink-300: #f06292; + --md-pink-400: #ec407a; + --md-pink-500: #e91e63; + --md-pink-600: #d81b60; + --md-pink-700: #c2185b; + --md-pink-800: #ad1457; + --md-pink-900: #880e4f; + --md-pink-A100: #ff80ab; + --md-pink-A200: #ff4081; + --md-pink-A400: #f50057; + --md-pink-A700: #c51162; + --md-purple-50: #f3e5f5; + --md-purple-100: #e1bee7; + --md-purple-200: #ce93d8; + --md-purple-300: #ba68c8; + --md-purple-400: #ab47bc; + --md-purple-500: #9c27b0; + --md-purple-600: #8e24aa; + --md-purple-700: #7b1fa2; + --md-purple-800: #6a1b9a; + --md-purple-900: #4a148c; + --md-purple-A100: #ea80fc; + --md-purple-A200: #e040fb; + --md-purple-A400: #d500f9; + --md-purple-A700: #a0f; + --md-deep-purple-50: #ede7f6; + --md-deep-purple-100: #d1c4e9; + --md-deep-purple-200: #b39ddb; + --md-deep-purple-300: #9575cd; + --md-deep-purple-400: #7e57c2; + --md-deep-purple-500: #673ab7; + --md-deep-purple-600: #5e35b1; + --md-deep-purple-700: #512da8; + --md-deep-purple-800: #4527a0; + --md-deep-purple-900: #311b92; + --md-deep-purple-A100: #b388ff; + --md-deep-purple-A200: #7c4dff; + --md-deep-purple-A400: #651fff; + --md-deep-purple-A700: #6200ea; + --md-indigo-50: #e8eaf6; + --md-indigo-100: #c5cae9; + --md-indigo-200: #9fa8da; + --md-indigo-300: #7986cb; + --md-indigo-400: #5c6bc0; + --md-indigo-500: #3f51b5; + --md-indigo-600: #3949ab; + --md-indigo-700: #303f9f; + --md-indigo-800: #283593; + --md-indigo-900: #1a237e; + --md-indigo-A100: #8c9eff; + --md-indigo-A200: #536dfe; + --md-indigo-A400: #3d5afe; + --md-indigo-A700: #304ffe; + --md-blue-50: #e3f2fd; + --md-blue-100: #bbdefb; + --md-blue-200: #90caf9; + --md-blue-300: #64b5f6; + --md-blue-400: #42a5f5; + --md-blue-500: #2196f3; + --md-blue-600: #1e88e5; + --md-blue-700: #1976d2; + --md-blue-800: #1565c0; + --md-blue-900: #0d47a1; + --md-blue-A100: #82b1ff; + --md-blue-A200: #448aff; + --md-blue-A400: #2979ff; + --md-blue-A700: #2962ff; + --md-light-blue-50: #e1f5fe; + --md-light-blue-100: #b3e5fc; + --md-light-blue-200: #81d4fa; + --md-light-blue-300: #4fc3f7; + --md-light-blue-400: #29b6f6; + --md-light-blue-500: #03a9f4; + --md-light-blue-600: #039be5; + --md-light-blue-700: #0288d1; + --md-light-blue-800: #0277bd; + --md-light-blue-900: #01579b; + --md-light-blue-A100: #80d8ff; + --md-light-blue-A200: #40c4ff; + --md-light-blue-A400: #00b0ff; + --md-light-blue-A700: #0091ea; + --md-cyan-50: #e0f7fa; + --md-cyan-100: #b2ebf2; + --md-cyan-200: #80deea; + --md-cyan-300: #4dd0e1; + --md-cyan-400: #26c6da; + --md-cyan-500: #00bcd4; + --md-cyan-600: #00acc1; + --md-cyan-700: #0097a7; + --md-cyan-800: #00838f; + --md-cyan-900: #006064; + --md-cyan-A100: #84ffff; + --md-cyan-A200: #18ffff; + --md-cyan-A400: #00e5ff; + --md-cyan-A700: #00b8d4; + --md-teal-50: #e0f2f1; + --md-teal-100: #b2dfdb; + --md-teal-200: #80cbc4; + --md-teal-300: #4db6ac; + --md-teal-400: #26a69a; + --md-teal-500: #009688; + --md-teal-600: #00897b; + --md-teal-700: #00796b; + --md-teal-800: #00695c; + --md-teal-900: #004d40; + --md-teal-A100: #a7ffeb; + --md-teal-A200: #64ffda; + --md-teal-A400: #1de9b6; + --md-teal-A700: #00bfa5; + --md-green-50: #e8f5e9; + --md-green-100: #c8e6c9; + --md-green-200: #a5d6a7; + --md-green-300: #81c784; + --md-green-400: #66bb6a; + --md-green-500: #4caf50; + --md-green-600: #43a047; + --md-green-700: #388e3c; + --md-green-800: #2e7d32; + --md-green-900: #1b5e20; + --md-green-A100: #b9f6ca; + --md-green-A200: #69f0ae; + --md-green-A400: #00e676; + --md-green-A700: #00c853; + --md-light-green-50: #f1f8e9; + --md-light-green-100: #dcedc8; + --md-light-green-200: #c5e1a5; + --md-light-green-300: #aed581; + --md-light-green-400: #9ccc65; + --md-light-green-500: #8bc34a; + --md-light-green-600: #7cb342; + --md-light-green-700: #689f38; + --md-light-green-800: #558b2f; + --md-light-green-900: #33691e; + --md-light-green-A100: #ccff90; + --md-light-green-A200: #b2ff59; + --md-light-green-A400: #76ff03; + --md-light-green-A700: #64dd17; + --md-lime-50: #f9fbe7; + --md-lime-100: #f0f4c3; + --md-lime-200: #e6ee9c; + --md-lime-300: #dce775; + --md-lime-400: #d4e157; + --md-lime-500: #cddc39; + --md-lime-600: #c0ca33; + --md-lime-700: #afb42b; + --md-lime-800: #9e9d24; + --md-lime-900: #827717; + --md-lime-A100: #f4ff81; + --md-lime-A200: #eeff41; + --md-lime-A400: #c6ff00; + --md-lime-A700: #aeea00; + --md-yellow-50: #fffde7; + --md-yellow-100: #fff9c4; + --md-yellow-200: #fff59d; + --md-yellow-300: #fff176; + --md-yellow-400: #ffee58; + --md-yellow-500: #ffeb3b; + --md-yellow-600: #fdd835; + --md-yellow-700: #fbc02d; + --md-yellow-800: #f9a825; + --md-yellow-900: #f57f17; + --md-yellow-A100: #ffff8d; + --md-yellow-A200: #ff0; + --md-yellow-A400: #ffea00; + --md-yellow-A700: #ffd600; + --md-amber-50: #fff8e1; + --md-amber-100: #ffecb3; + --md-amber-200: #ffe082; + --md-amber-300: #ffd54f; + --md-amber-400: #ffca28; + --md-amber-500: #ffc107; + --md-amber-600: #ffb300; + --md-amber-700: #ffa000; + --md-amber-800: #ff8f00; + --md-amber-900: #ff6f00; + --md-amber-A100: #ffe57f; + --md-amber-A200: #ffd740; + --md-amber-A400: #ffc400; + --md-amber-A700: #ffab00; + --md-orange-50: #fff3e0; + --md-orange-100: #ffe0b2; + --md-orange-200: #ffcc80; + --md-orange-300: #ffb74d; + --md-orange-400: #ffa726; + --md-orange-500: #ff9800; + --md-orange-600: #fb8c00; + --md-orange-700: #f57c00; + --md-orange-800: #ef6c00; + --md-orange-900: #e65100; + --md-orange-A100: #ffd180; + --md-orange-A200: #ffab40; + --md-orange-A400: #ff9100; + --md-orange-A700: #ff6d00; + --md-deep-orange-50: #fbe9e7; + --md-deep-orange-100: #ffccbc; + --md-deep-orange-200: #ffab91; + --md-deep-orange-300: #ff8a65; + --md-deep-orange-400: #ff7043; + --md-deep-orange-500: #ff5722; + --md-deep-orange-600: #f4511e; + --md-deep-orange-700: #e64a19; + --md-deep-orange-800: #d84315; + --md-deep-orange-900: #bf360c; + --md-deep-orange-A100: #ff9e80; + --md-deep-orange-A200: #ff6e40; + --md-deep-orange-A400: #ff3d00; + --md-deep-orange-A700: #dd2c00; + --md-brown-50: #efebe9; + --md-brown-100: #d7ccc8; + --md-brown-200: #bcaaa4; + --md-brown-300: #a1887f; + --md-brown-400: #8d6e63; + --md-brown-500: #795548; + --md-brown-600: #6d4c41; + --md-brown-700: #5d4037; + --md-brown-800: #4e342e; + --md-brown-900: #3e2723; + --md-grey-50: #fafafa; + --md-grey-100: #f5f5f5; + --md-grey-200: #eee; + --md-grey-300: #e0e0e0; + --md-grey-400: #bdbdbd; + --md-grey-500: #9e9e9e; + --md-grey-600: #757575; + --md-grey-700: #616161; + --md-grey-800: #424242; + --md-grey-900: #212121; + --md-blue-grey-50: #eceff1; + --md-blue-grey-100: #cfd8dc; + --md-blue-grey-200: #b0bec5; + --md-blue-grey-300: #90a4ae; + --md-blue-grey-400: #78909c; + --md-blue-grey-500: #607d8b; + --md-blue-grey-600: #546e7a; + --md-blue-grey-700: #455a64; + --md-blue-grey-800: #37474f; + --md-blue-grey-900: #263238; +} + +/* ../../node_modules/@jupyterlab/apputils/style/toolbar.css */ +.jp-Toolbar-item.jp-Toolbar-kernelStatus { + display: inline-block; + width: 32px; + background-repeat: no-repeat; + background-position: center; + background-size: 16px; +} + +/* ../../node_modules/@jupyterlab/apputils/style/base.css */ + +/* ../../node_modules/@jupyterlab/rendermime/style/base.css */ +:root { + --jp-private-code-span-padding: calc( (var(--jp-code-line-height) - 1) * var(--jp-code-font-size) / 2 ); +} +.jp-RenderedText { + text-align: left; + padding-left: var(--jp-code-padding); + line-height: var(--jp-code-line-height); + font-family: var(--jp-code-font-family); +} +.jp-RenderedText pre, +.jp-RenderedJavaScript pre, +.jp-RenderedHTMLCommon pre { + color: var(--jp-content-font-color1); + font-size: var(--jp-code-font-size); + border: none; + margin: 0; + padding: 0; +} +.jp-RenderedText pre a[href]:link { + text-decoration: none; + color: var(--jp-content-link-color); +} +.jp-RenderedText pre a[href]:hover { + text-decoration: underline; + color: var(--jp-content-link-hover-color, var(--jp-content-link-color)); +} +.jp-RenderedText pre a[href]:visited { + text-decoration: none; + color: var(--jp-content-link-visited-color, var(--jp-content-link-color)); +} +.jp-RenderedText pre .ansi-black-fg { + color: #3e424d; +} +.jp-RenderedText pre .ansi-red-fg { + color: #e75c58; +} +.jp-RenderedText pre .ansi-green-fg { + color: #00a250; +} +.jp-RenderedText pre .ansi-yellow-fg { + color: #ddb62b; +} +.jp-RenderedText pre .ansi-blue-fg { + color: #208ffb; +} +.jp-RenderedText pre .ansi-magenta-fg { + color: #d160c4; +} +.jp-RenderedText pre .ansi-cyan-fg { + color: #60c6c8; +} +.jp-RenderedText pre .ansi-white-fg { + color: #c5c1b4; +} +.jp-RenderedText pre .ansi-black-bg { + background-color: #3e424d; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-red-bg { + background-color: #e75c58; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-green-bg { + background-color: #00a250; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-yellow-bg { + background-color: #ddb62b; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-blue-bg { + background-color: #208ffb; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-magenta-bg { + background-color: #d160c4; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-cyan-bg { + background-color: #60c6c8; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-white-bg { + background-color: #c5c1b4; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-black-intense-fg { + color: #282c36; +} +.jp-RenderedText pre .ansi-red-intense-fg { + color: #b22b31; +} +.jp-RenderedText pre .ansi-green-intense-fg { + color: #007427; +} +.jp-RenderedText pre .ansi-yellow-intense-fg { + color: #b27d12; +} +.jp-RenderedText pre .ansi-blue-intense-fg { + color: #0065ca; +} +.jp-RenderedText pre .ansi-magenta-intense-fg { + color: #a03196; +} +.jp-RenderedText pre .ansi-cyan-intense-fg { + color: #258f8f; +} +.jp-RenderedText pre .ansi-white-intense-fg { + color: #a1a6b2; +} +.jp-RenderedText pre .ansi-black-intense-bg { + background-color: #282c36; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-red-intense-bg { + background-color: #b22b31; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-green-intense-bg { + background-color: #007427; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-yellow-intense-bg { + background-color: #b27d12; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-blue-intense-bg { + background-color: #0065ca; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-magenta-intense-bg { + background-color: #a03196; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-cyan-intense-bg { + background-color: #258f8f; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-white-intense-bg { + background-color: #a1a6b2; + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-default-inverse-fg { + color: var(--jp-ui-inverse-font-color0); +} +.jp-RenderedText pre .ansi-default-inverse-bg { + background-color: var(--jp-inverse-layout-color0); + padding: var(--jp-private-code-span-padding) 0; +} +.jp-RenderedText pre .ansi-bold { + font-weight: bold; +} +.jp-RenderedText pre .ansi-underline { + text-decoration: underline; +} +.jp-RenderedText[data-mime-type="application/vnd.jupyter.stderr"] { + background: var(--jp-rendermime-error-background); + padding-top: var(--jp-code-padding); +} +.jp-RenderedLatex { + color: var(--jp-content-font-color1); + font-size: var(--jp-content-font-size1); + line-height: var(--jp-content-line-height); +} +.jp-OutputArea-output.jp-RenderedLatex { + padding: var(--jp-code-padding); + text-align: left; +} +.jp-RenderedHTMLCommon { + color: var(--jp-content-font-color1); + font-family: var(--jp-content-font-family); + font-size: var(--jp-content-font-size1); + line-height: var(--jp-content-line-height); + padding-right: 20px; +} +.jp-RenderedHTMLCommon em { + font-style: italic; +} +.jp-RenderedHTMLCommon strong { + font-weight: bold; +} +.jp-RenderedHTMLCommon u { + text-decoration: underline; +} +.jp-RenderedHTMLCommon a:link { + text-decoration: none; + color: var(--jp-content-link-color); +} +.jp-RenderedHTMLCommon a:hover { + text-decoration: underline; + color: var(--jp-content-link-hover-color, var(--jp-content-link-color)); +} +.jp-RenderedHTMLCommon a:visited { + text-decoration: none; + color: var(--jp-content-link-visited-color, var(--jp-content-link-color)); +} +.jp-RenderedHTMLCommon h1, +.jp-RenderedHTMLCommon h2, +.jp-RenderedHTMLCommon h3, +.jp-RenderedHTMLCommon h4, +.jp-RenderedHTMLCommon h5, +.jp-RenderedHTMLCommon h6 { + line-height: var(--jp-content-heading-line-height); + font-weight: var(--jp-content-heading-font-weight); + font-style: normal; + margin: var(--jp-content-heading-margin-top) 0 var(--jp-content-heading-margin-bottom) 0; + scroll-margin-top: var(--jp-content-heading-margin-top); +} +.jp-RenderedHTMLCommon h1:first-child, +.jp-RenderedHTMLCommon h2:first-child, +.jp-RenderedHTMLCommon h3:first-child, +.jp-RenderedHTMLCommon h4:first-child, +.jp-RenderedHTMLCommon h5:first-child, +.jp-RenderedHTMLCommon h6:first-child { + margin-top: calc(0.5 * var(--jp-content-heading-margin-top)); + scroll-margin-top: calc(0.5 * var(--jp-content-heading-margin-top)); +} +.jp-RenderedHTMLCommon h1:last-child, +.jp-RenderedHTMLCommon h2:last-child, +.jp-RenderedHTMLCommon h3:last-child, +.jp-RenderedHTMLCommon h4:last-child, +.jp-RenderedHTMLCommon h5:last-child, +.jp-RenderedHTMLCommon h6:last-child { + margin-bottom: calc(0.5 * var(--jp-content-heading-margin-bottom)); +} +.jp-RenderedHTMLCommon h1 { + font-size: var(--jp-content-font-size5); +} +.jp-RenderedHTMLCommon h2 { + font-size: var(--jp-content-font-size4); +} +.jp-RenderedHTMLCommon h3 { + font-size: var(--jp-content-font-size3); +} +.jp-RenderedHTMLCommon h4 { + font-size: var(--jp-content-font-size2); +} +.jp-RenderedHTMLCommon h5 { + font-size: var(--jp-content-font-size1); +} +.jp-RenderedHTMLCommon h6 { + font-size: var(--jp-content-font-size0); +} +.jp-RenderedHTMLCommon ul:not(.list-inline), +.jp-RenderedHTMLCommon ol:not(.list-inline) { + padding-left: 2em; +} +.jp-RenderedHTMLCommon ul { + list-style: disc; +} +.jp-RenderedHTMLCommon ul ul { + list-style: square; +} +.jp-RenderedHTMLCommon ul ul ul { + list-style: circle; +} +.jp-RenderedHTMLCommon ol { + list-style: decimal; +} +.jp-RenderedHTMLCommon ol ol { + list-style: upper-alpha; +} +.jp-RenderedHTMLCommon ol ol ol { + list-style: lower-alpha; +} +.jp-RenderedHTMLCommon ol ol ol ol { + list-style: lower-roman; +} +.jp-RenderedHTMLCommon ol ol ol ol ol { + list-style: decimal; +} +.jp-RenderedHTMLCommon ol, +.jp-RenderedHTMLCommon ul { + margin-bottom: 1em; +} +.jp-RenderedHTMLCommon ul ul, +.jp-RenderedHTMLCommon ul ol, +.jp-RenderedHTMLCommon ol ul, +.jp-RenderedHTMLCommon ol ol { + margin-bottom: 0; +} +.jp-RenderedHTMLCommon hr { + color: var(--jp-border-color2); + background-color: var(--jp-border-color1); + margin-top: 1em; + margin-bottom: 1em; +} +.jp-RenderedHTMLCommon > pre { + margin: 1.5em 2em; +} +.jp-RenderedHTMLCommon pre, +.jp-RenderedHTMLCommon code { + border: 0; + background-color: var(--jp-layout-color0); + color: var(--jp-content-font-color1); + font-family: var(--jp-code-font-family); + font-size: inherit; + line-height: var(--jp-code-line-height); + padding: 0; + white-space: pre-wrap; +} +.jp-RenderedHTMLCommon :not(pre) > code { + background-color: var(--jp-layout-color2); + padding: 1px 5px; +} +.jp-RenderedHTMLCommon table { + border-collapse: collapse; + border-spacing: 0; + border: none; + color: var(--jp-ui-font-color1); + font-size: var(--jp-ui-font-size1); + table-layout: fixed; + margin-left: auto; + margin-bottom: 1em; + margin-right: auto; +} +.jp-RenderedHTMLCommon thead { + border-bottom: var(--jp-border-width) solid var(--jp-border-color1); + vertical-align: bottom; +} +.jp-RenderedHTMLCommon td, +.jp-RenderedHTMLCommon th, +.jp-RenderedHTMLCommon tr { + vertical-align: middle; + padding: 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +.jp-RenderedMarkdown.jp-RenderedHTMLCommon td, +.jp-RenderedMarkdown.jp-RenderedHTMLCommon th { + max-width: none; +} +:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td, +:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th, +:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr { + text-align: right; +} +.jp-RenderedHTMLCommon th { + font-weight: bold; +} +.jp-RenderedHTMLCommon tbody tr:nth-child(odd) { + background: var(--jp-layout-color0); +} +.jp-RenderedHTMLCommon tbody tr:nth-child(even) { + background: var(--jp-rendermime-table-row-background); +} +.jp-RenderedHTMLCommon tbody tr:hover { + background: var(--jp-rendermime-table-row-hover-background); +} +.jp-RenderedHTMLCommon p { + text-align: left; + margin: 0; + margin-bottom: 1em; +} +.jp-RenderedHTMLCommon img { + -moz-force-broken-image-icon: 1; +} +.jp-RenderedHTMLCommon > img { + display: block; + margin-left: 0; + margin-right: 0; + margin-bottom: 1em; +} +[data-jp-theme-light=false] .jp-RenderedImage img.jp-needs-light-background { + background-color: var(--jp-inverse-layout-color1); +} +[data-jp-theme-light=true] .jp-RenderedImage img.jp-needs-dark-background { + background-color: var(--jp-inverse-layout-color1); +} +.jp-RenderedHTMLCommon img, +.jp-RenderedImage img, +.jp-RenderedHTMLCommon svg, +.jp-RenderedSVG svg { + max-width: 100%; + height: auto; +} +.jp-RenderedHTMLCommon img.jp-mod-unconfined, +.jp-RenderedImage img.jp-mod-unconfined, +.jp-RenderedHTMLCommon svg.jp-mod-unconfined, +.jp-RenderedSVG svg.jp-mod-unconfined { + max-width: none; +} +.jp-RenderedHTMLCommon .alert { + padding: var(--jp-notebook-padding); + border: var(--jp-border-width) solid transparent; + border-radius: var(--jp-border-radius); + margin-bottom: 1em; +} +.jp-RenderedHTMLCommon .alert-info { + color: var(--jp-info-color0); + background-color: var(--jp-info-color3); + border-color: var(--jp-info-color2); +} +.jp-RenderedHTMLCommon .alert-info hr { + border-color: var(--jp-info-color3); +} +.jp-RenderedHTMLCommon .alert-info > p:last-child, +.jp-RenderedHTMLCommon .alert-info > ul:last-child { + margin-bottom: 0; +} +.jp-RenderedHTMLCommon .alert-warning { + color: var(--jp-warn-color0); + background-color: var(--jp-warn-color3); + border-color: var(--jp-warn-color2); +} +.jp-RenderedHTMLCommon .alert-warning hr { + border-color: var(--jp-warn-color3); +} +.jp-RenderedHTMLCommon .alert-warning > p:last-child, +.jp-RenderedHTMLCommon .alert-warning > ul:last-child { + margin-bottom: 0; +} +.jp-RenderedHTMLCommon .alert-success { + color: var(--jp-success-color0); + background-color: var(--jp-success-color3); + border-color: var(--jp-success-color2); +} +.jp-RenderedHTMLCommon .alert-success hr { + border-color: var(--jp-success-color3); +} +.jp-RenderedHTMLCommon .alert-success > p:last-child, +.jp-RenderedHTMLCommon .alert-success > ul:last-child { + margin-bottom: 0; +} +.jp-RenderedHTMLCommon .alert-danger { + color: var(--jp-error-color0); + background-color: var(--jp-error-color3); + border-color: var(--jp-error-color2); +} +.jp-RenderedHTMLCommon .alert-danger hr { + border-color: var(--jp-error-color3); +} +.jp-RenderedHTMLCommon .alert-danger > p:last-child, +.jp-RenderedHTMLCommon .alert-danger > ul:last-child { + margin-bottom: 0; +} +.jp-RenderedHTMLCommon blockquote { + margin: 1em 2em; + padding: 0 1em; + border-left: 5px solid var(--jp-border-color2); +} +a.jp-InternalAnchorLink { + visibility: hidden; + margin-left: 8px; + color: var(--md-blue-800, #1565c0); +} +h1:hover .jp-InternalAnchorLink, +h2:hover .jp-InternalAnchorLink, +h3:hover .jp-InternalAnchorLink, +h4:hover .jp-InternalAnchorLink, +h5:hover .jp-InternalAnchorLink, +h6:hover .jp-InternalAnchorLink { + visibility: visible; +} +.jp-RenderedHTMLCommon kbd { + background-color: var(--jp-rendermime-table-row-background); + border: 1px solid var(--jp-border-color0); + border-bottom-color: var(--jp-border-color2); + border-radius: 3px; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + display: inline-block; + font-size: var(--jp-ui-font-size0); + line-height: 1em; + padding: 0.2em 0.5em; +} +.jp-RenderedHTMLCommon > *:last-child { + margin-bottom: 0.5em; +} + +/* src/index.css */ +.thebe-output-busy-spinner-alt { + border: 2px solid #f3f3f3; + border-top: 2px solid #3498db; + border-radius: 50%; + width: 30px; + height: 30px; + -webkit-animation: thebeoutputspin 2s linear infinite; + animation: thebeoutputspin 1s linear infinite; +} +.thebe-output-busy-spinner { + height: 28px; + width: 28px; + border-radius: 50%; + background-color: rgba(250, 250, 250, 0.9); + z-index: 9999; + display: block; +} +.thebe-output-busy-spinner::after { + content: ""; + display: block; + position: relative; + top: 2px; + left: 2px; + width: 20px; + height: 20px; + border-style: solid; + border-color: #3498db; + border-top-color: transparent; + border-width: 2px; + border-radius: 50%; + -webkit-animation: thebeoutputspin 0.8s linear infinite; + animation: thebeoutputspin 0.8s linear infinite; +} +@-webkit-keyframes thebeoutputspin { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(360deg); + } +} +@keyframes thebeoutputspin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} +.thebe-ipywidgets-placeholder { + display: flex; + flex-direction: column; + align-items: center; + font-size: 95%; +} +.thebe-ipywidgets-placeholder > pre { + font-size: 80%; + font-family: monospace; + margin: 8px 16px; +} +.thebe-output .jp-OutputArea-child > .lm-Widget { + overflow: auto; +} diff --git a/thebe-core.min.js b/thebe-core.min.js new file mode 100644 index 00000000..16d6ab3a --- /dev/null +++ b/thebe-core.min.js @@ -0,0 +1,3 @@ +/*! For license information please see thebe-core.min.js.LICENSE.txt */ +(()=>{var __webpack_modules__={17998:(e,t,n)=>{"use strict";n.r(t),n.d(t,{BROKEN_FILE_SVG_ICON:()=>g,DOMWidgetModel:()=>P,DOMWidgetView:()=>B,ErrorWidgetView:()=>G,IJupyterWidgetRegistry:()=>W,JUPYTER_WIDGETS_VERSION:()=>k,JupyterLuminoPanelWidget:()=>R,JupyterLuminoWidget:()=>L,JupyterPhosphorPanelWidget:()=>j,JupyterPhosphorWidget:()=>D,LayoutModel:()=>F,LayoutView:()=>$,PROTOCOL_VERSION:()=>M,StyleModel:()=>U,StyleView:()=>q,ViewList:()=>H,WidgetModel:()=>A,WidgetView:()=>N,assign:()=>l,createErrorWidgetModel:()=>K,createErrorWidgetView:()=>J,difference:()=>o,isEqual:()=>a,isObject:()=>f,isSerializable:()=>p,pack_models:()=>I,put_buffers:()=>h,reject:()=>d,remove_buffers:()=>m,resolvePromisesDict:()=>c,shims:()=>V,unpack_models:()=>O,uuid:()=>u});var i=n(75764),r=n(46343),s=n.n(r);function o(e,t){return e.filter((e=>-1===t.indexOf(e)))}function a(e,t){return s()(e,t)}const l=Object.assign||function(e,...t){for(let n=1;n{const n={};for(let i=0;i=0&&t.item(n)!==this;);return n>-1};class S extends _.View{_removeElement(){this.undelegateEvents(),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}_setElement(e){this.el=e}_setAttributes(e){for(const t in e)t in this.el?this.el[t]=e[t]:this.el.setAttribute(t,e[t])}delegate(e,t,n){"string"!=typeof t&&(n=t,t=null),void 0===this._domEvents&&(this._domEvents=[]);const i=this.el,r=t?function(e){let r=e.target||e.srcElement;for(;r&&r!==i;r=r.parentNode)if(x.call(r,t))return e.delegateTarget=r,n.handleEvent?n.handleEvent(e):n(e)}:n;return this.el.addEventListener(e,r,!1),this._domEvents.push({eventName:e,handler:r,listener:n,selector:t}),r}undelegate(e,t,n){if("function"==typeof t&&(n=t,t=null),this.el&&this._domEvents){const i=this._domEvents.slice();let r=i.length;for(;r--;){const s=i[r];!(s.eventName!==e||n&&s.listener!==n||t&&s.selector!==t)&&(this.el.removeEventListener(s.eventName,s.handler,!1),this._domEvents.splice(r,1))}}return this}undelegateEvents(){if(this.el&&this._domEvents){const e=this._domEvents.length;for(let t=0;tthis.views[e].then((e=>e.remove()))));return delete this.views,Promise.all(e).then((()=>{}))}return Promise.resolve()}_handle_comm_closed(e){this.trigger("comm:close"),this.close(!0)}_handle_comm_msg(e){const t=e.content.data,n=t.method;switch(n){case"update":case"echo_update":return this.state_change=this.state_change.then((()=>{var i,r,s;const o=t.state,a=null!==(i=t.buffer_paths)&&void 0!==i?i:[],l=null!==(s=null===(r=e.buffers)||void 0===r?void 0:r.slice(0,a.length))&&void 0!==s?s:[];if(h(o,a,l),e.parent_header&&"echo_update"===n){const t=e.parent_header.msg_id;Object.keys(o).filter((e=>this._expectedEchoMsgIds.has(e))).forEach((e=>{this._expectedEchoMsgIds.get(e)!==t?delete o[e]:(this._expectedEchoMsgIds.delete(e),null!==this._msg_buffer&&Object.prototype.hasOwnProperty.call(this._msg_buffer,e)&&delete o[e])}))}return this.constructor._deserialize_state(o,this.widget_manager)})).then((e=>{this.set_state(e)})).catch(d(`Could not process update msg for model id: ${this.model_id}`,!0)),this.state_change;case"custom":return this.trigger("msg:custom",t.content,e.buffers),Promise.resolve()}return Promise.resolve()}set_state(e){this._state_lock=e;try{this.set(e)}catch(e){console.error(`Error setting state: ${e instanceof Error?e.message:e}`)}finally{this._state_lock=null}}get_state(e){const t=this.attributes;if(e){const e=this.defaults,n="function"==typeof e?e.call(this):e,i={};return Object.keys(t).forEach((e=>{a(t[e],n[e])||(i[e]=t[e])})),i}return Object.assign({},t)}_handle_status(e){if(void 0!==this.comm&&"idle"===e.content.execution_state&&(this._pending_msgs--,this._pending_msgs<0&&(console.error(`Jupyter Widgets message throttle: Pending messages < 0 (=${this._pending_msgs}), which is unexpected. Resetting to 0 to continue.`),this._pending_msgs=0),null!==this._msg_buffer&&this._pending_msgs<1)){const e=this.send_sync_message(this._msg_buffer,this._msg_buffer_callbacks);this.rememberLastUpdateFor(e),this._msg_buffer=null,this._msg_buffer_callbacks=null}}callbacks(e){return this.widget_manager.callbacks(e)}set(e,t,n){const i=v.call(this,e,t,n);if(void 0!==this._buffered_state_diff){const e=this.changedAttributes()||{};if(this._state_lock)for(const t of Object.keys(this._state_lock))e[t]===this._state_lock[t]&&delete e[t];if(this._buffered_state_diff_synced)for(const t of Object.keys(this._buffered_state_diff_synced))e[t]===this._buffered_state_diff_synced[t]&&delete e[t];this._buffered_state_diff=l(this._buffered_state_diff,e)}return!1===this._changing&&(this._buffered_state_diff_synced={}),i}sync(e,t,n={}){if(void 0===this.comm)throw"Syncing error: no comm channel defined";const i="patch"===e?n.attrs:t.get_state(n.drop_defaults);if(this._state_lock)for(const e of Object.keys(this._state_lock))i[e]===this._state_lock[e]&&delete i[e];Object.keys(i).forEach((e=>{this._attrsToUpdate.add(e)}));const r=this.serialize(i);if(Object.keys(r).length>0){const t=n.callbacks||this.callbacks();if(this._pending_msgs>=1){switch(e){case"patch":this._msg_buffer=l(this._msg_buffer||{},r);break;case"update":case"create":this._msg_buffer=r;break;default:throw"unrecognized syncing method"}this._msg_buffer_callbacks=t}else{const e=this.send_sync_message(i,t);this.rememberLastUpdateFor(e)}}}rememberLastUpdateFor(e){this._attrsToUpdate.forEach((t=>{this._expectedEchoMsgIds.set(t,e)})),this._attrsToUpdate=new Set}serialize(e){const t=this.constructor.serializers||i.JSONExt.emptyObject;for(const n of Object.keys(e))try{t[n]&&t[n].serialize?e[n]=t[n].serialize(e[n],this):e[n]=JSON.parse(JSON.stringify(e[n])),e[n]&&e[n].toJSON&&(e[n]=e[n].toJSON())}catch(e){throw console.error("Error serializing widget state attribute: ",n),e}return e}send_sync_message(e,t={}){if(!this.comm)return"";try{const n=(t={shell:Object.assign({},t.shell),iopub:Object.assign({},t.iopub),input:t.input}).iopub.status;t.iopub.status=e=>{this._handle_status(e),n&&n(e)};const i=m(e),r=this.comm.send({method:"update",state:i.state,buffer_paths:i.buffer_paths},t,{},i.buffers);return this._pending_msgs++,r}catch(e){console.error("Could not send widget sync message",e)}return""}save_changes(e){if(this.comm_live){const t={patch:!0};e&&(t.callbacks=e),this.save(this._buffered_state_diff,t),this._changing&&l(this._buffered_state_diff_synced,this._buffered_state_diff),this._buffered_state_diff={}}}on_some_change(e,t,n){this.on("change",((...i)=>{e.some(this.hasChanged,this)&&t.apply(n,i)}),this)}toJSON(e){return`IPY_MODEL_${this.model_id}`}static _deserialize_state(e,t){const n=this.serializers;let i;if(n){i={};for(const r in e)n[r]&&n[r].deserialize?i[r]=n[r].deserialize(e[r],t):i[r]=e[r]}else i=e;return c(i)}}class P extends A{defaults(){return l(super.defaults(),{_dom_classes:[],tabbable:null,tooltip:null})}}P.serializers=Object.assign(Object.assign({},A.serializers),{layout:{deserialize:O},style:{deserialize:O}});class N extends S{constructor(e){super(e)}initialize(e){this.listenTo(this.model,"change",((e,t)=>{const n=Object.keys(this.model.changedAttributes()||{});"_view_count"===n[0]&&1===n.length||this.update(t)})),this.options=e.options,this.once("remove",(()=>{"number"==typeof this.model.get("_view_count")&&(this.model.set("_view_count",this.model.get("_view_count")-1),this.model.save_changes())})),this.once("displayed",(()=>{"number"==typeof this.model.get("_view_count")&&(this.model.set("_view_count",this.model.get("_view_count")+1),this.model.save_changes())})),this.displayed=new Promise(((e,t)=>{this.once("displayed",e),this.model.on("msg:custom",this.handle_message.bind(this))}))}handle_message(e){"focus"===e.do?this.el.focus():"blur"===e.do&&this.el.blur()}update(e){}render(){}create_child_view(e,t={}){return t=Object.assign({parent:this},t),this.model.widget_manager.create_view(e,t).catch(d("Could not create child view",!0))}callbacks(){return this.model.callbacks(this)}send(e,t){this.model.send(e,this.callbacks(),t)}touch(){this.model.save_changes(this.callbacks())}remove(){return super.remove(),this.trigger("remove"),this}}class L extends C.Widget{constructor(e){const t=e.view;delete e.view,super(e),this._view=t}dispose(){this.isDisposed||(super.dispose(),this._view.remove(),this._view=null)}processMessage(e){super.processMessage(e),this._view.processLuminoMessage(e)}}const D=L;class R extends C.Panel{constructor(e){const t=e.view;delete e.view,super(e),this._view=t}processMessage(e){super.processMessage(e),this._view.processLuminoMessage(e)}dispose(){var e;this.isDisposed||(super.dispose(),null===(e=this._view)||void 0===e||e.remove(),this._view=null)}}const j=R;class B extends N{initialize(e){super.initialize(e),this.listenTo(this.model,"change:_dom_classes",((e,t)=>{const n=e.previous("_dom_classes");this.update_classes(n,t)})),this.layoutPromise=Promise.resolve(),this.listenTo(this.model,"change:layout",((e,t)=>{this.setLayout(t,e.previous("layout"))})),this.stylePromise=Promise.resolve(),this.listenTo(this.model,"change:style",((e,t)=>{this.setStyle(t,e.previous("style"))})),this.displayed.then((()=>{this.update_classes([],this.model.get("_dom_classes")),this.setLayout(this.model.get("layout")),this.setStyle(this.model.get("style"))})),this._comm_live_update(),this.listenTo(this.model,"comm_live_update",(()=>{this._comm_live_update()})),this.listenTo(this.model,"change:tooltip",this.updateTooltip),this.updateTooltip()}setLayout(e,t){e&&(this.layoutPromise=this.layoutPromise.then((t=>(t&&(t.unlayout(),this.stopListening(t.model),t.remove()),this.create_child_view(e).then((e=>this.displayed.then((()=>(e.trigger("displayed"),this.listenTo(e.model,"change",(()=>{E.MessageLoop.postMessage(this.luminoWidget,C.Widget.ResizeMessage.UnknownSize)})),E.MessageLoop.postMessage(this.luminoWidget,C.Widget.ResizeMessage.UnknownSize),this.trigger("layout-changed"),e))))).catch(d("Could not add LayoutView to DOMWidgetView",!0))))))}setStyle(e,t){e&&(this.stylePromise=this.stylePromise.then((t=>(t&&(t.unstyle(),this.stopListening(t.model),t.remove()),this.create_child_view(e).then((e=>this.displayed.then((()=>(e.trigger("displayed"),this.trigger("style-changed"),e))))).catch(d("Could not add styleView to DOMWidgetView",!0))))))}updateTooltip(){const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.el.setAttribute("title",e):this.el.removeAttribute("title")}update_classes(e,t,n){void 0===n&&(n=this.el),o(e,t).map((function(e){n.classList?n.classList.remove(e):n.setAttribute("class",n.getAttribute("class").replace(e,""))})),o(t,e).map((function(e){n.classList?n.classList.add(e):n.setAttribute("class",n.getAttribute("class").concat(" ",e))}))}update_mapped_classes(e,t,n){let i=this.model.previous(t);const r=e[i]?e[i]:[];i=this.model.get(t);const s=e[i]?e[i]:[];this.update_classes(r,s,n||this.el)}set_mapped_classes(e,t,n){const i=this.model.get(t),r=e[i]?e[i]:[];this.update_classes([],r,n||this.el)}_setElement(e){this.luminoWidget&&this.luminoWidget.dispose(),this.$el=e instanceof y()?e:y()(e),this.el=this.$el[0],this.luminoWidget=new L({node:e,view:this})}remove(){return this.luminoWidget&&this.luminoWidget.dispose(),super.remove()}processLuminoMessage(e){switch(e.type){case"after-attach":this.trigger("displayed");break;case"show":this.trigger("shown")}}_comm_live_update(){this.model.comm_live?this.luminoWidget.removeClass("jupyter-widgets-disconnected"):this.luminoWidget.addClass("jupyter-widgets-disconnected")}updateTabindex(){const e=this.model.get("tabbable");!0===e?this.el.setAttribute("tabIndex","0"):!1===e?this.el.setAttribute("tabIndex","-1"):null===e&&this.el.removeAttribute("tabIndex")}get pWidget(){return this.luminoWidget}set pWidget(e){this.luminoWidget=e}}const z={align_content:null,align_items:null,align_self:null,border_top:null,border_right:null,border_bottom:null,border_left:null,bottom:null,display:null,flex:null,flex_flow:null,height:null,justify_content:null,justify_items:null,left:null,margin:null,max_height:null,max_width:null,min_height:null,min_width:null,overflow:null,order:null,padding:null,right:null,top:null,visibility:null,width:null,object_fit:null,object_position:null,grid_auto_columns:null,grid_auto_flow:null,grid_auto_rows:null,grid_gap:null,grid_template_rows:null,grid_template_columns:null,grid_template_areas:null,grid_row:null,grid_column:null,grid_area:null};class F extends A{defaults(){return l(super.defaults(),{_model_name:"LayoutModel",_view_name:"LayoutView"},z)}}class $ extends N{initialize(e){this._traitNames=[],super.initialize(e);for(const e of Object.keys(z))this.registerTrait(e)}registerTrait(e){this._traitNames.push(e),this.listenTo(this.model,"change:"+e,((t,n)=>{this.handleChange(e,n)})),this.handleChange(e,this.model.get(e))}css_name(e){return e.replace(/_/g,"-")}handleChange(e,t){const n=this.options.parent;n?null===t?n.el.style.removeProperty(this.css_name(e)):n.el.style.setProperty(this.css_name(e),t):console.warn("Style not applied because a parent view does not exist")}unlayout(){const e=this.options.parent;this._traitNames.forEach((t=>{e?e.el.style.removeProperty(this.css_name(t)):console.warn("Style not removed because a parent view does not exist")}),this)}}class U extends A{defaults(){const e=this.constructor;return l(super.defaults(),{_model_name:"StyleModel",_view_name:"StyleView"},Object.keys(e.styleProperties).reduce(((t,n)=>(t[n]=e.styleProperties[n].default,t)),{}))}}U.styleProperties={};class q extends N{initialize(e){this._traitNames=[],super.initialize(e);const t=this.model.constructor;for(const e of Object.keys(t.styleProperties))this.registerTrait(e);this.style()}registerTrait(e){this._traitNames.push(e),this.listenTo(this.model,"change:"+e,((t,n)=>{this.handleChange(e,n)}))}handleChange(e,t){const n=this.options.parent;if(n){const i=this.model.constructor.styleProperties,r=i[e].attribute,s=i[e].selector,o=s?n.el.querySelectorAll(s):[n.el];if(null===t)for(let e=0;e!==o.length;++e)o[e].style.removeProperty(r);else for(let e=0;e!==o.length;++e)o[e].style.setProperty(r,t)}else console.warn("Style not applied because a parent view does not exist")}style(){for(const e of this._traitNames)this.handleChange(e,this.model.get(e))}unstyle(){const e=this.options.parent,t=this.model.constructor.styleProperties;this._traitNames.forEach((n=>{if(e){const i=t[n].attribute,r=t[n].selector,s=r?e.el.querySelectorAll(r):[e.el];for(let e=0;e!==s.length;++e)s[e].style.removeProperty(i)}else console.warn("Style not removed because a parent view does not exist")}),this)}}var V;!function(e){let t;!function(e){e.CommManager=class{constructor(e){this.targets=Object.create(null),this.comms=Object.create(null),this.init_kernel(e)}init_kernel(e){this.kernel=e,this.jsServicesKernel=e}async new_comm(e,n,i,r,s,o){const a=this.jsServicesKernel.createComm(e,s),l=new t(a);return this.register_comm(l),l.open(n,i,r,o),l}register_target(e,n){const i=this.jsServicesKernel.registerCommTarget(e,((e,i)=>{const r=new t(e);this.register_comm(r);try{return n(r,i)}catch(e){r.close(),console.error(e),console.error(new Error("Exception opening new comm"))}}));this.targets[e]=i}unregister_target(e,t){this.targets[e].dispose(),delete this.targets[e]}register_comm(e){return this.comms[e.comm_id]=Promise.resolve(e),e.kernel=this.kernel,e.comm_id}};class t{constructor(e){this.jsServicesComm=e}get comm_id(){return this.jsServicesComm.commId}get target_name(){return this.jsServicesComm.targetName}open(e,t,n,i){const r=this.jsServicesComm.open(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}send(e,t,n,i){const r=this.jsServicesComm.send(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}close(e,t,n,i){const r=this.jsServicesComm.close(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}on_msg(e){this.jsServicesComm.onMsg=e.bind(this)}on_close(e){this.jsServicesComm.onClose=e.bind(this)}_hookupCallbacks(e,t){t&&(e.onReply=function(e){t.shell&&t.shell.reply&&t.shell.reply(e)},e.onStdin=function(e){t.input&&t.input(e)},e.onIOPub=function(e){if(t.iopub)if(t.iopub.status&&"status"===e.header.msg_type)t.iopub.status(e);else if(t.iopub.clear_output&&"clear_output"===e.header.msg_type)t.iopub.clear_output(e);else if(t.iopub.output)switch(e.header.msg_type){case"display_data":case"execute_result":case"stream":case"error":t.iopub.output(e)}})}}e.Comm=t}(t=e.services||(e.services={}))}(V||(V={}));class H{constructor(e,t,n){this.initialize(e,t,n)}initialize(e,t,n){this._handler_context=n||this,this._models=[],this.views=[],this._create_view=e,this._remove_view=t||function(e){e.remove()}}update(e,t,n,i){const r=n||this._remove_view,s=t||this._create_view;i=i||this._handler_context;let o=0;for(;o=this._models.length||e[o]!==this._models[o]);o++);const a=o,l=this.views.splice(a,this.views.length-a);for(let e=0;e{e.forEach((e=>this._remove_view.call(this._handler_context,e))),this.views=[],this._models=[]}))}dispose(){this.views=null,this._models=null}}const W=new i.Token("jupyter.extensions.jupyterWidgetRegistry");function K(e,t){return class extends P{constructor(n,i){super(n=Object.assign(Object.assign({},n),{_view_name:"ErrorWidgetView",_view_module:"@jupyter-widgets/base",_model_module_version:k,_view_module_version:k,msg:t,error:e}),i),this.comm_live=!0}}}class G extends B{generateErrorMessage(){return{msg:this.model.get("msg"),stack:String(this.model.get("error").stack)}}render(){const{msg:e,stack:t}=this.generateErrorMessage();this.el.classList.add("jupyter-widgets");const n=document.createElement("div");n.classList.add("jupyter-widgets-error-widget","icon-error"),n.innerHTML=g;const i=document.createElement("pre");let r,s;i.style.textAlign="center",i.innerText="Click to show javascript error.",n.append(i),this.el.appendChild(n),this.el.onclick=()=>{n.classList.contains("icon-error")&&(s=s||n.clientHeight,r=r||n.clientWidth,n.classList.remove("icon-error"),n.innerHTML=`\n
[Open Browser Console for more detailed log - Double click to close this message]\n${e}\n${t}
\n `,n.style.height=`${s}px`,n.style.width=`${r}px`,n.classList.add("text-error"))},this.el.ondblclick=()=>{n.classList.contains("text-error")&&(n.classList.remove("text-error"),n.innerHTML=g,n.append(i),n.classList.add("icon-error"))}}}function J(e,t){return class extends G{generateErrorMessage(){return{msg:t,stack:String(e instanceof Error?e.stack:e)}}}}},75803:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AccordionModel:()=>Vt,AccordionView:()=>Wt,AudioModel:()=>K,AudioView:()=>G,BaseIntSliderView:()=>je,BoolModel:()=>y,BoundedFloatModel:()=>Je,BoundedFloatTextModel:()=>it,BoundedIntModel:()=>Ne,BoundedIntTextModel:()=>$e,BoxModel:()=>D,BoxView:()=>B,ButtonModel:()=>T,ButtonStyleModel:()=>M,ButtonView:()=>O,CheckboxModel:()=>w,CheckboxStyleModel:()=>_,CheckboxView:()=>x,ColorPickerModel:()=>X,ColorPickerView:()=>Y,ColorsInputModel:()=>Bn,ColorsInputView:()=>zn,ComboboxModel:()=>di,ComboboxView:()=>hi,ControllerAxisModel:()=>lt,ControllerAxisView:()=>ut,ControllerButtonModel:()=>ot,ControllerButtonView:()=>at,ControllerModel:()=>ct,ControllerView:()=>dt,DatePickerModel:()=>ee,DatePickerView:()=>te,DatetimeModel:()=>de,DatetimeView:()=>he,DescriptionModel:()=>u,DescriptionStyleModel:()=>l,DescriptionView:()=>c,DirectionalLinkModel:()=>g,DropdownModel:()=>ft,DropdownView:()=>mt,FileUploadModel:()=>pi,FileUploadView:()=>fi,FloatLogSliderModel:()=>Ye,FloatLogSliderView:()=>et,FloatModel:()=>Ge,FloatProgressModel:()=>st,FloatRangeSliderModel:()=>Qe,FloatRangeSliderView:()=>tt,FloatSliderModel:()=>Xe,FloatSliderView:()=>Ze,FloatTextModel:()=>nt,FloatTextView:()=>rt,FloatsInputModel:()=>Un,FloatsInputView:()=>qn,GridBoxModel:()=>U,GridBoxView:()=>$,HBoxModel:()=>R,HBoxView:()=>z,HTMLMathModel:()=>ti,HTMLMathStyleModel:()=>Gn,HTMLMathView:()=>ni,HTMLModel:()=>Zn,HTMLStyleModel:()=>Kn,HTMLView:()=>ei,ImageModel:()=>q,ImageView:()=>V,IntModel:()=>Pe,IntProgressModel:()=>Ve,IntRangeSliderModel:()=>Re,IntRangeSliderView:()=>Be,IntSliderModel:()=>De,IntSliderView:()=>ze,IntTextModel:()=>Fe,IntTextView:()=>Ue,IntsInputModel:()=>Vn,IntsInputView:()=>Hn,JUPYTER_CONTROLS_VERSION:()=>a.A,JupyterLuminoAccordionWidget:()=>Ht,JupyterLuminoTabPanelWidget:()=>Gt,LabelModel:()=>ii,LabelStyleModel:()=>Jn,LabelView:()=>ri,LabeledDOMWidgetModel:()=>d,LabeledDOMWidgetView:()=>h,LinkModel:()=>v,MultipleSelectionModel:()=>Ct,NaiveDatetimeModel:()=>ve,PasswordModel:()=>ui,PasswordView:()=>ci,PlayModel:()=>We,PlayView:()=>Ke,ProgressStyleModel:()=>qe,ProgressView:()=>He,RadioButtonsModel:()=>_t,RadioButtonsView:()=>bt,SelectModel:()=>gt,SelectMultipleModel:()=>kt,SelectMultipleView:()=>Mt,SelectView:()=>vt,SelectionContainerModel:()=>qt,SelectionModel:()=>ht,SelectionRangeSliderModel:()=>Tt,SelectionRangeSliderView:()=>Ot,SelectionSliderModel:()=>St,SelectionSliderView:()=>Et,SelectionView:()=>pt,SliderStyleModel:()=>Le,StackModel:()=>Xt,StackView:()=>Yt,StringModel:()=>Yn,StringView:()=>Qn,TabModel:()=>Kt,TabView:()=>Jt,TagsInputModel:()=>Rn,TagsInputView:()=>jn,TextModel:()=>ai,TextStyleModel:()=>Xn,TextView:()=>li,TextareaModel:()=>si,TextareaView:()=>oi,TimeModel:()=>oe,TimeView:()=>ae,ToggleButtonModel:()=>S,ToggleButtonStyleModel:()=>b,ToggleButtonView:()=>E,ToggleButtonsModel:()=>wt,ToggleButtonsStyleModel:()=>yt,ToggleButtonsView:()=>xt,VBoxModel:()=>j,VBoxView:()=>F,ValidModel:()=>C,ValidView:()=>k,VideoModel:()=>H,VideoView:()=>W,datetime_serializers:()=>ce,deserialize_date:()=>Z,deserialize_datetime:()=>ue,deserialize_naive:()=>me,deserialize_time:()=>re,escape_html:()=>s,naive_serializers:()=>ge,reject:()=>o,resolvePromisesDict:()=>i.resolvePromisesDict,serialize_date:()=>Q,serialize_datetime:()=>le,serialize_naive:()=>fe,serialize_time:()=>ie,time_serializers:()=>se,typeset:()=>r,uuid:()=>i.uuid,version:()=>mi});var i=n(17998);function r(e,t){void 0!==t&&(e.textContent=t),void 0!==window.MathJax&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,e])}function s(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function o(e,t){return function(n){throw t&&console.error(new Error(e)),n}}var a=n(19874);class l extends i.StyleModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DescriptionStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}l.styleProperties={description_width:{selector:".widget-label",attribute:"width",default:null}};class u extends i.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DescriptionModel",_view_name:"DescriptionView",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A,description:"",description_allow_html:!1})}}class c extends i.DOMWidgetView{render(){this.label=document.createElement("label"),this.el.appendChild(this.label),this.label.className="widget-label",this.label.style.display="none",this.listenTo(this.model,"change:description",this.updateDescription),this.listenTo(this.model,"change:description_allow_html",this.updateDescription),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.updateDescription(),this.updateTabindex(),this.updateTooltip()}typeset(e,t){this.displayed.then((()=>{var n,i,s;if(null===(i=null===(n=window.MathJax)||void 0===n?void 0:n.Hub)||void 0===i?void 0:i.Queue)return r(e,t);const o=null===(s=this.model.widget_manager._rendermime)||void 0===s?void 0:s.latexTypesetter;o&&(void 0!==t&&(e.textContent=t),o.typeset(e))}))}updateDescription(){const e=this.model.get("description");0===e.length?this.label.style.display="none":(this.model.get("description_allow_html")?this.label.innerHTML=this.model.widget_manager.inline_sanitize(e):this.label.textContent=e,this.typeset(this.label),this.label.style.display="")}updateTooltip(){this.label&&(this.label.title=this.model.get("tooltip"))}}class d extends u{}class h extends c{}class p extends i.WidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreWidgetModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class f extends i.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreDOMWidgetModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class m extends u{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreDescriptionModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class g extends p{defaults(){return Object.assign(Object.assign({},super.defaults()),{target:void 0,source:void 0,_model_name:"DirectionalLinkModel"})}initialize(e,t){super.initialize(e,t),this.on("change",this.updateBindings,this),this.updateBindings()}updateValue(e,t,n,i){if(!this._updating){this._updating=!0;try{n&&(n.set(i,e.get(t)),n.save_changes())}finally{this._updating=!1}}}updateBindings(){this.cleanup(),[this.sourceModel,this.sourceAttr]=this.get("source")||[null,null],[this.targetModel,this.targetAttr]=this.get("target")||[null,null],this.sourceModel&&(this.listenTo(this.sourceModel,"change:"+this.sourceAttr,(()=>{this.updateValue(this.sourceModel,this.sourceAttr,this.targetModel,this.targetAttr)})),this.updateValue(this.sourceModel,this.sourceAttr,this.targetModel,this.targetAttr),this.listenToOnce(this.sourceModel,"destroy",this.cleanup)),this.targetModel&&this.listenToOnce(this.targetModel,"destroy",this.cleanup)}cleanup(){this.sourceModel&&(this.stopListening(this.sourceModel,"change:"+this.sourceAttr,void 0),this.stopListening(this.sourceModel,"destroy",void 0)),this.targetModel&&this.stopListening(this.targetModel,"destroy",void 0)}}g.serializers=Object.assign(Object.assign({},p.serializers),{target:{deserialize:i.unpack_models},source:{deserialize:i.unpack_models}});class v extends g{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"LinkModel"})}updateBindings(){super.updateBindings(),this.targetModel&&this.listenTo(this.targetModel,"change:"+this.targetAttr,(()=>{this.updateValue(this.targetModel,this.targetAttr,this.sourceModel,this.sourceAttr)}))}cleanup(){super.cleanup(),this.targetModel&&this.stopListening(this.targetModel,"change:"+this.targetAttr,void 0)}}class _ extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CheckboxStyleModel"})}}_.styleProperties=Object.assign(Object.assign({},l.styleProperties),{background:{selector:"",attribute:"background",default:null}});class b extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ToggleButtonStyleModel"})}}b.styleProperties=Object.assign(Object.assign({},l.styleProperties),{font_family:{selector:"",attribute:"font-family",default:""},font_size:{selector:"",attribute:"font-size",default:""},font_style:{selector:"",attribute:"font-style",default:""},font_variant:{selector:"",attribute:"font-variant",default:""},font_weight:{selector:"",attribute:"font-weight",default:""},text_color:{selector:"",attribute:"color",default:""},text_decoration:{selector:"",attribute:"text-decoration",default:""}});class y extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:!1,disabled:!1,_model_name:"BoolModel"})}}class w extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{indent:!0,style:null,_view_name:"CheckboxView",_model_name:"CheckboxModel"})}}class x extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-checkbox"),this.label.innerHTML="​",this.checkboxLabel=document.createElement("label"),this.checkboxLabel.classList.add("widget-label-basic"),this.el.appendChild(this.checkboxLabel),this.checkbox=document.createElement("input"),this.checkbox.setAttribute("type","checkbox"),this.checkboxLabel.appendChild(this.checkbox),this.descriptionSpan=document.createElement("span"),this.checkboxLabel.appendChild(this.descriptionSpan),this.listenTo(this.model,"change:indent",this.updateIndent),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.update(),this.updateDescription(),this.updateIndent(),this.updateTabindex(),this.updateTooltip()}updateDescription(){if(null==this.checkboxLabel)return;const e=this.model.get("description");this.model.get("description_allow_html")?this.descriptionSpan.innerHTML=this.model.widget_manager.inline_sanitize(e):this.descriptionSpan.textContent=e,this.typeset(this.descriptionSpan),this.descriptionSpan.title=e,this.checkbox.title=e}updateIndent(){const e=this.model.get("indent");this.label.style.display=e?"":"none"}updateTabindex(){if(!this.checkbox)return;const e=this.model.get("tabbable");!0===e?this.checkbox.setAttribute("tabIndex","0"):!1===e?this.checkbox.setAttribute("tabIndex","-1"):null===e&&this.checkbox.removeAttribute("tabIndex")}updateTooltip(){if(!this.checkbox)return;const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.checkbox.setAttribute("title",e):this.checkbox.removeAttribute("title")}events(){return{'click input[type="checkbox"]':"_handle_click"}}_handle_click(){const e=this.model.get("value");this.model.set("value",!e,{updated_view:this}),this.touch()}update(e){return this.checkbox.checked=this.model.get("value"),void 0!==e&&e.updated_view==this||(this.checkbox.disabled=this.model.get("disabled")),super.update()}handle_message(e){"focus"==e.do?this.checkbox.focus():"blur"==e.do&&this.checkbox.blur()}}class S extends y{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"ToggleButtonView",_model_name:"ToggleButtonModel",tooltip:"",icon:"",button_style:"",style:null})}}class E extends i.DOMWidgetView{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("jupyter-button"),this.el.classList.add("widget-toggle-button"),this.listenTo(this.model,"change:button_style",this.update_button_style),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.set_button_style(),this.update()}update_button_style(){this.update_mapped_classes(E.class_map,"button_style")}set_button_style(){this.set_mapped_classes(E.class_map,"button_style")}update(e){if(this.model.get("value")?this.el.classList.add("mod-active"):this.el.classList.remove("mod-active"),void 0===e||e.updated_view!==this){this.el.disabled=this.model.get("disabled"),this.el.setAttribute("tabbable",this.model.get("tabbable")),this.el.setAttribute("title",this.model.get("tooltip"));const e=this.model.get("description"),t=this.model.get("icon");if(0===e.trim().length&&0===t.trim().length)this.el.innerHTML=" ";else{if(this.el.textContent="",t.trim().length){const e=document.createElement("i");this.el.appendChild(e),e.classList.add("fa"),e.classList.add("fa-"+t)}this.el.appendChild(document.createTextNode(e))}}return this.updateTabindex(),super.update()}events(){return{click:"_handle_click"}}_handle_click(e){e.preventDefault();const t=this.model.get("value");this.model.set("value",!t,{updated_view:this}),this.touch()}preinitialize(){this.tagName="button"}}E.class_map={primary:["mod-primary"],success:["mod-success"],info:["mod-info"],warning:["mod-warning"],danger:["mod-danger"]};class C extends y{defaults(){return Object.assign(Object.assign({},super.defaults()),{readout:"Invalid",_view_name:"ValidView",_model_name:"ValidModel"})}}class k extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-valid"),this.el.classList.add("widget-inline-hbox"),this.icon=document.createElement("i"),this.icon.classList.add("fa","fa-fw"),this.el.appendChild(this.icon),this.readout=document.createElement("span"),this.readout.classList.add("widget-valid-readout"),this.readout.classList.add("widget-readout"),this.el.appendChild(this.readout),this.update()}update(){this.el.classList.remove("mod-valid"),this.el.classList.remove("mod-invalid"),this.icon.classList.remove("fa-check"),this.icon.classList.remove("fa-times"),this.readout.textContent=this.model.get("readout"),this.model.get("value")?(this.el.classList.add("mod-valid"),this.icon.classList.add("fa-check")):(this.el.classList.add("mod-invalid"),this.icon.classList.add("fa-times"))}}class M extends i.StyleModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ButtonStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}M.styleProperties={button_color:{selector:"",attribute:"background-color",default:null},font_family:{selector:"",attribute:"font-family",default:""},font_size:{selector:"",attribute:"font-size",default:""},font_style:{selector:"",attribute:"font-style",default:""},font_variant:{selector:"",attribute:"font-variant",default:""},font_weight:{selector:"",attribute:"font-weight",default:""},text_color:{selector:"",attribute:"color",default:""},text_decoration:{selector:"",attribute:"text-decoration",default:""}};class T extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{description:"",tooltip:"",disabled:!1,icon:"",button_style:"",_view_name:"ButtonView",_model_name:"ButtonModel",style:null})}}class O extends i.DOMWidgetView{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("jupyter-button"),this.el.classList.add("widget-button"),this.listenTo(this.model,"change:button_style",this.update_button_style),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.set_button_style(),this.update()}update(){this.el.disabled=this.model.get("disabled"),this.updateTabindex();const e=this.model.get("tooltip"),t=this.model.get("description"),n=this.model.get("icon");if(this.el.setAttribute("title",null!=e?e:t),t.length||n.length){if(this.el.textContent="",n.length){const e=document.createElement("i");e.classList.add("fa"),e.classList.add(...n.split(/[\s]+/).filter(Boolean).map((e=>`fa-${e}`))),0===t.length&&e.classList.add("center"),this.el.appendChild(e)}this.el.appendChild(document.createTextNode(t))}return super.update()}update_button_style(){this.update_mapped_classes(O.class_map,"button_style")}set_button_style(){this.set_mapped_classes(O.class_map,"button_style")}events(){return{click:"_handle_click"}}_handle_click(e){e.preventDefault(),this.send({event:"click"})}preinitialize(){this.tagName="button"}}O.class_map={primary:["mod-primary"],success:["mod-success"],info:["mod-info"],warning:["mod-warning"],danger:["mod-danger"]};var I=n(38135),A=n(33326),P=n(75735),N=n(34651),L=n.n(N);class D extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"BoxView",_model_name:"BoxModel",children:[],box_style:""})}}D.serializers=Object.assign(Object.assign({},f.serializers),{children:{deserialize:i.unpack_models}});class R extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"HBoxView",_model_name:"HBoxModel"})}}class j extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"VBoxView",_model_name:"VBoxModel"})}}class B extends i.DOMWidgetView{_createElement(e){return this.luminoWidget=new i.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=L()(this.luminoWidget.node)}initialize(e){super.initialize(e),this.children_views=new i.ViewList(this.add_child_model,null,this),this.listenTo(this.model,"change:children",this.update_children),this.listenTo(this.model,"change:box_style",this.update_box_style),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-container"),this.luminoWidget.addClass("widget-box")}render(){super.render(),this.update_children(),this.set_box_style()}update_children(){var e;null===(e=this.children_views)||void 0===e||e.update(this.model.get("children")).then((e=>{e.forEach((e=>{A.MessageLoop.postMessage(e.luminoWidget,P.Widget.ResizeMessage.UnknownSize)}))}))}update_box_style(){this.update_mapped_classes(B.class_map,"box_style")}set_box_style(){this.set_mapped_classes(B.class_map,"box_style")}add_child_model(e){const t=new P.Widget;return this.luminoWidget.addWidget(t),this.create_child_view(e).then((e=>{const n=I.Rw.firstIndexOf(this.luminoWidget.widgets,t);return this.luminoWidget.insertWidget(n,e.luminoWidget),t.dispose(),e})).catch((0,i.reject)("Could not add child view to box",!0))}remove(){this.children_views=null,super.remove()}}B.class_map={success:["alert","alert-success"],info:["alert","alert-info"],warning:["alert","alert-warning"],danger:["alert","alert-danger"]};class z extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-hbox")}}class F extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-vbox")}}class $ extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-gridbox"),this.luminoWidget.removeClass("widget-box")}}class U extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"GridBoxView",_model_name:"GridBoxModel"})}}class q extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ImageModel",_view_name:"ImageView",format:"png",width:"",height:"",value:new DataView(new ArrayBuffer(0))})}}q.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class V extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-image"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`image/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;this.el.src=e,i&&URL.revokeObjectURL(i);const r=this.model.get("width");void 0!==r&&r.length>0?this.el.setAttribute("width",r):this.el.removeAttribute("width");const s=this.model.get("height");return void 0!==s&&s.length>0?this.el.setAttribute("height",s):this.el.removeAttribute("height"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="img"}}class H extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"VideoModel",_view_name:"VideoView",format:"mp4",width:"",height:"",autoplay:!0,loop:!0,controls:!0,value:new DataView(new ArrayBuffer(0))})}}H.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class W extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-image"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`video/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;this.el.src=e,i&&URL.revokeObjectURL(i);const r=this.model.get("width");void 0!==r&&r.length>0?this.el.setAttribute("width",r):this.el.removeAttribute("width");const s=this.model.get("height");return void 0!==s&&s.length>0?this.el.setAttribute("height",s):this.el.removeAttribute("height"),this.el.loop=this.model.get("loop"),this.el.autoplay=this.model.get("autoplay"),this.el.controls=this.model.get("controls"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="video"}}class K extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"AudioModel",_view_name:"AudioView",format:"mp3",autoplay:!0,loop:!0,controls:!0,value:new DataView(new ArrayBuffer(0))})}}K.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class G extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`audio/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;return this.el.src=e,i&&URL.revokeObjectURL(i),this.el.loop=this.model.get("loop"),this.el.autoplay=this.model.get("autoplay"),this.el.controls=this.model.get("controls"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="audio"}}const J={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};class X extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:"black",concise:!1,_model_name:"ColorPickerModel",_view_name:"ColorPickerView"})}}class Y extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-colorpicker"),this._color_container=document.createElement("div"),this._color_container.className="widget-inline-hbox widget-colorpicker-input",this.el.appendChild(this._color_container),this._textbox=document.createElement("input"),this._textbox.setAttribute("type","text"),this._textbox.id=this.label.htmlFor=(0,i.uuid)(),this._color_container.appendChild(this._textbox),this._textbox.value=this.model.get("value"),this._colorpicker=document.createElement("input"),this._colorpicker.setAttribute("type","color"),this._color_container.appendChild(this._colorpicker),this.listenTo(this.model,"change:value",this._update_value),this.listenTo(this.model,"change:concise",this._update_concise),this._update_concise(),this._update_value(),this.update()}update(e){if(void 0===e||e.updated_view!=this){const e=this.model.get("disabled");this._textbox.disabled=e,this._colorpicker.disabled=e}return super.update()}events(){return this._picker_change,this._text_change,{'change [type="color"]':"_picker_change",'change [type="text"]':"_text_change"}}_update_value(){const e=this.model.get("value");var t,n;this._colorpicker.value=J[(t=e).toLowerCase()]||(7===(n=t).length?n:"#"+n.charAt(1)+n.charAt(1)+n.charAt(2)+n.charAt(2)+n.charAt(3)+n.charAt(3)),this._textbox.value=e}_update_concise(){this.model.get("concise")?(this.el.classList.add("concise"),this._textbox.style.display="none"):(this.el.classList.remove("concise"),this._textbox.style.display="")}_picker_change(){this.model.set("value",this._colorpicker.value),this.touch()}_text_change(){const e=this._validate_color(this._textbox.value,this.model.get("value"));this.model.set("value",e),this.touch()}_validate_color(e,t){return e.match(/#[a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?$/)||J[e.toLowerCase()]?e:t}}function Q(e){return null===e?null:{year:e.getUTCFullYear(),month:e.getUTCMonth(),date:e.getUTCDate()}}function Z(e){if(null===e)return null;{const t=new Date;return t.setUTCFullYear(e.year,e.month,e.date),t.setUTCHours(0,0,0,0),t}}class ee extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:null,_model_name:"DatePickerModel",_view_name:"DatePickerView"})}}ee.serializers=Object.assign(Object.assign({},m.serializers),{value:{serialize:Q,deserialize:Z}});class te extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-datepicker"),this._datepicker=document.createElement("input"),this._datepicker.setAttribute("type","date"),this._datepicker.id=this.label.htmlFor=(0,i.uuid)(),this.el.appendChild(this._datepicker),this.listenTo(this.model,"change:value",this._update_value),this._update_value(),this.update()}update(e){return void 0!==e&&e.updated_view===this||(this._datepicker.disabled=this.model.get("disabled")),super.update()}events(){return this._picker_change,this._picker_focusout,{'change [type="date"]':"_picker_change",'focusout [type="date"]':"_picker_focusout"}}_update_value(){const e=this.model.get("value");this._datepicker.valueAsDate=e}_picker_change(){this._datepicker.validity.badInput||(this.model.set("value",this._datepicker.valueAsDate),this.touch())}_picker_focusout(){this._datepicker.validity.badInput&&(this.model.set("value",null),this.touch())}}const ne=/(\d\d):(\d\d)(:(\d\d)(.(\d{1,3})\d*)?)?/;function ie(e){if(null===e)return null;{const t=ne.exec(e);return null===t?null:{hours:Math.min(23,parseInt(t[1],10)),minutes:Math.min(59,parseInt(t[2],10)),seconds:t[4]?Math.min(59,parseInt(t[4],10)):0,milliseconds:t[6]?parseInt(t[6],10):0}}}function re(e){if(null===e)return null;{const t=[`${e.hours.toString().padStart(2,"0")}:${e.minutes.toString().padStart(2,"0")}`];return(e.seconds>0||e.milliseconds>0)&&(t.push(`:${e.seconds.toString().padStart(2,"0")}`),e.milliseconds>0&&t.push(`.${e.milliseconds.toString().padStart(3,"0")}`)),t.join("")}}const se={serialize:ie,deserialize:re};class oe extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:oe.model_name,_view_name:oe.view_name,value:null,disabled:!1,min:null,max:null,step:60})}}oe.serializers=Object.assign(Object.assign({},m.serializers),{value:se,min:se,max:se}),oe.model_name="TimeModel",oe.view_name="TimeView";class ae extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-timepicker"),this._timepicker=document.createElement("input"),this._timepicker.setAttribute("type","time"),this._timepicker.id=this.label.htmlFor=(0,i.uuid)(),this.el.appendChild(this._timepicker),this.listenTo(this.model,"change:value",this._update_value),this.listenTo(this.model,"change",this.update2),this._update_value(),this.update2()}update2(e,t){return void 0!==t&&t.updated_view===this||(this._timepicker.disabled=this.model.get("disabled"),this._timepicker.min=this.model.get("min"),this._timepicker.max=this.model.get("max"),this._timepicker.step=this.model.get("step")),super.update()}events(){return this._picker_change,this._picker_focusout,{'change [type="time"]':"_picker_change",'focusout [type="time"]':"_picker_focusout"}}_update_value(e,t,n){void 0!==n&&n.updated_view===this||(this._timepicker.value=this.model.get("value"))}_picker_change(){this._timepicker.validity.badInput||(this.model.set("value",this._timepicker.value,{updated_view:this}),this.touch())}_picker_focusout(){this._timepicker.validity.badInput&&(this.model.set("value",null,{updated_view:this}),this.touch())}}function le(e){return null===e?null:{year:e.getUTCFullYear(),month:e.getUTCMonth(),date:e.getUTCDate(),hours:e.getUTCHours(),minutes:e.getUTCMinutes(),seconds:e.getUTCSeconds(),milliseconds:e.getUTCMilliseconds()}}function ue(e){if(null===e)return null;{const t=new Date;return t.setUTCFullYear(e.year,e.month,e.date),t.setUTCHours(e.hours,e.minutes,e.seconds,e.milliseconds),t}}const ce={serialize:le,deserialize:ue};class de extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DatetimeModel",_view_name:"DatetimeView",value:null,disabled:!1,min:null,max:null})}}de.serializers=Object.assign(Object.assign({},m.serializers),{value:ce,min:ce,max:ce});class he extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-datetimepicker");const e=document.createElement("input");e.type="datetime-local","text"===e.type?(this._datepicker=document.createElement("input"),this._datepicker.setAttribute("type","date"),this._datepicker.id=this.label.htmlFor=(0,i.uuid)(),this._timepicker=document.createElement("input"),this._timepicker.setAttribute("type","time"),this._timepicker.id=(0,i.uuid)(),this.el.appendChild(this._datepicker),this.el.appendChild(this._timepicker)):(this._datetimepicker=e,this._datetimepicker.id=this.label.htmlFor=(0,i.uuid)(),this.el.appendChild(this._datetimepicker)),this.listenTo(this.model,"change:value",this._update_value),this.listenTo(this.model,"change",this.update2),this._update_value(),this.update2()}update2(e,t){if(void 0===t||t.updated_view!==this){const e=this.model.get("min"),t=this.model.get("max");this._datetimepicker?(this._datetimepicker.disabled=this.model.get("disabled"),this._datetimepicker.min=pe.dt_as_dt_string(e),this._datetimepicker.max=pe.dt_as_dt_string(t)):(this._datepicker.disabled=this.model.get("disabled"),this._datepicker.min=pe.dt_as_date_string(e),this._datepicker.max=pe.dt_as_date_string(t),this._timepicker.disabled=this.model.get("disabled"))}}events(){return this._picker_change,this._picker_focusout,{'change [type="date"]':"_picker_change",'change [type="time"]':"_picker_change",'change [type="datetime-local"]':"_picker_change",'focusout [type="date"]':"_picker_focusout",'focusout [type="datetime-local"]':"_picker_focusout",'focusout [type="time"]':"_picker_focusout"}}_update_value(e,t,n){if(void 0===n||n.updated_view!==this){const e=this.model.get("value");this._datetimepicker?this._datetimepicker.value=pe.dt_as_dt_string(e):(this._datepicker.valueAsDate=e,this._timepicker.value=pe.dt_as_time_string(e))}}_picker_change(){if(this._datetimepicker){if(!this._datetimepicker.validity.badInput){const e=this._datetimepicker.value;let t=e?new Date(e):null;t&&isNaN(t.valueOf())&&(t=null),this.model.set("value",t,{updated_view:this}),this.touch()}}else if(!this._datepicker.validity.badInput&&!this._timepicker.validity.badInput){const e=this._datepicker.valueAsDate,t=ie(this._timepicker.value);null!==e&&null!==t&&e.setHours(t.hours,t.minutes,t.seconds,t.milliseconds),this.model.set("value",null!==t&&e,{updated_view:this}),this.touch()}}_picker_focusout(){[this._datetimepicker,this._datepicker,this._timepicker].some((e=>e&&e.validity.badInput))&&(this.model.set("value",null),this.touch())}}var pe;function fe(e){return null===e?null:{year:e.getFullYear(),month:e.getMonth(),date:e.getDate(),hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds(),milliseconds:e.getMilliseconds()}}function me(e){if(null===e)return null;{const t=new Date;return t.setFullYear(e.year,e.month,e.date),t.setHours(e.hours,e.minutes,e.seconds,e.milliseconds),t}}!function(e){function t(e){if(null===e)return"";const t=[];return t.push(`${e.getFullYear().toString().padStart(4,"0")}`),t.push(`-${(e.getMonth()+1).toString().padStart(2,"0")}`),t.push(`-${e.getDate().toString().padStart(2,"0")}`),t.push(`T${e.getHours().toString().padStart(2,"0")}`),t.push(`:${e.getMinutes().toString().padStart(2,"0")}`),(e.getSeconds()>0||e.getMilliseconds()>0)&&(t.push(`:${e.getSeconds().toString().padStart(2,"0")}`),e.getMilliseconds()>0&&t.push(`.${e.getMilliseconds().toString().padStart(3,"0")}`)),t.join("")}e.dt_as_dt_string=t,e.dt_as_date_string=function(e){return e?t(e).split("T",2)[0]:""},e.dt_as_time_string=function(e){return e?t(e).split("T",2)[1]:""}}(pe||(pe={}));const ge={serialize:fe,deserialize:me};class ve extends de{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"NaiveDatetimeModel"})}}function _e(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,i=e.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+e.slice(n+1)]}ve.serializers=Object.assign(Object.assign({},m.serializers),{value:ge,min:ge,max:ge});var be,ye=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function we(e){if(!(t=ye.exec(e)))throw new Error("invalid format: "+e);var t;return new xe({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}function xe(e){this.fill=void 0===e.fill?" ":e.fill+"",this.align=void 0===e.align?">":e.align+"",this.sign=void 0===e.sign?"-":e.sign+"",this.symbol=void 0===e.symbol?"":e.symbol+"",this.zero=!!e.zero,this.width=void 0===e.width?void 0:+e.width,this.comma=!!e.comma,this.precision=void 0===e.precision?void 0:+e.precision,this.trim=!!e.trim,this.type=void 0===e.type?"":e.type+""}function Se(e,t){var n=_e(e,t);if(!n)return e+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}we.prototype=xe.prototype,xe.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};const Ee={"%":(e,t)=>(100*e).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:function(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)},e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Se(100*e,t),r:Se,s:function(e,t){var n=_e(e,t);if(!n)return e+"";var i=n[0],r=n[1],s=r-(be=3*Math.max(-8,Math.min(8,Math.floor(r/3))))+1,o=i.length;return s===o?i:s>o?i+new Array(s-o+1).join("0"):s>0?i.slice(0,s)+"."+i.slice(s):"0."+new Array(1-s).join("0")+_e(e,Math.max(0,t+s-1))[0]},X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Ce(e){return e}var ke,Me,Te=Array.prototype.map,Oe=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];ke=function(e){var t,n,i=void 0===e.grouping||void 0===e.thousands?Ce:(t=Te.call(e.grouping,Number),n=e.thousands+"",function(e,i){for(var r=e.length,s=[],o=0,a=t[0],l=0;r>0&&a>0&&(l+a+1>i&&(a=Math.max(1,i-l)),s.push(e.substring(r-=a,r+a)),!((l+=a+1)>i));)a=t[o=(o+1)%t.length];return s.reverse().join(n)}),r=void 0===e.currency?"":e.currency[0]+"",s=void 0===e.currency?"":e.currency[1]+"",o=void 0===e.decimal?".":e.decimal+"",a=void 0===e.numerals?Ce:function(e){return function(t){return t.replace(/[0-9]/g,(function(t){return e[+t]}))}}(Te.call(e.numerals,String)),l=void 0===e.percent?"%":e.percent+"",u=void 0===e.minus?"−":e.minus+"",c=void 0===e.nan?"NaN":e.nan+"";function d(e){var t=(e=we(e)).fill,n=e.align,d=e.sign,h=e.symbol,p=e.zero,f=e.width,m=e.comma,g=e.precision,v=e.trim,_=e.type;"n"===_?(m=!0,_="g"):Ee[_]||(void 0===g&&(g=12),v=!0,_="g"),(p||"0"===t&&"="===n)&&(p=!0,t="0",n="=");var b="$"===h?r:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",y="$"===h?s:/[%p]/.test(_)?l:"",w=Ee[_],x=/[defgprs%]/.test(_);function S(e){var r,s,l,h=b,S=y;if("c"===_)S=w(e)+S,e="";else{var E=(e=+e)<0||1/e<0;if(e=isNaN(e)?c:w(Math.abs(e),g),v&&(e=function(e){e:for(var t,n=e.length,i=1,r=-1;i0&&(r=0)}return r>0?e.slice(0,r)+e.slice(t+1):e}(e)),E&&0==+e&&"+"!==d&&(E=!1),h=(E?"("===d?d:u:"-"===d||"("===d?"":d)+h,S=("s"===_?Oe[8+be/3]:"")+S+(E&&"("===d?")":""),x)for(r=-1,s=e.length;++r(l=e.charCodeAt(r))||l>57){S=(46===l?o+e.slice(r+1):e.slice(r))+S,e=e.slice(0,r);break}}m&&!p&&(e=i(e,1/0));var C=h.length+e.length+S.length,k=C>1)+h+e+S+k.slice(C);break;default:e=k+h+e+S}return a(e)}return g=void 0===g?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,g)):Math.max(0,Math.min(20,g)),S.toString=function(){return e+""},S}return{format:d,formatPrefix:function(e,t){var n,i=d(((e=we(e)).type="f",e)),r=3*Math.max(-8,Math.min(8,Math.floor((n=t,((n=_e(Math.abs(n)))?n[1]:NaN)/3)))),s=Math.pow(10,-r),o=Oe[8+r/3];return function(e){return i(s*e)+o}}}}({thousands:",",grouping:[3],currency:["$",""]}),Me=ke.format,ke.formatPrefix;var Ie=n(15715),Ae=n.n(Ie);class Pe extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"IntModel",value:0})}}class Ne extends Pe{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"BoundedIntModel",max:100,min:0})}}class Le extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"SliderStyleModel"})}}Le.styleProperties=Object.assign(Object.assign({},l.styleProperties),{handle_color:{selector:".noUi-handle",attribute:"background-color",default:null}});class De extends Ne{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"IntSliderModel",_view_name:"IntSliderView",step:1,orientation:"horizontal",readout:!0,readout_format:"d",continuous_update:!0,style:null,disabled:!1})}initialize(e,t){super.initialize(e,t),this.on("change:readout_format",this.update_readout_format,this),this.update_readout_format()}update_readout_format(){this.readout_formatter=Me(this.get("readout_format"))}}class Re extends De{}class je extends c{constructor(){super(...arguments),this._parse_value=parseInt}render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-slider"),this.el.classList.add("widget-hslider"),this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.slider_container=document.createElement("div"),this.slider_container.classList.add("slider-container"),this.slider_container.appendChild(this.$slider),this.el.appendChild(this.slider_container),this.readout=document.createElement("div"),this.el.appendChild(this.readout),this.readout.classList.add("widget-readout"),this.readout.contentEditable="true",this.readout.style.display="none",this.createSlider(),this.model.on("change:orientation",this.regenSlider,this),this.model.on("change:max",this.updateSliderOptions,this),this.model.on("change:min",this.updateSliderOptions,this),this.model.on("change:step",this.updateSliderOptions,this),this.model.on("change:value",this.updateSliderValue,this),this.update()}update(e){return void 0!==e&&e.updated_view===this||(this.model.get("disabled")?(this.readout.contentEditable="false",this.$slider.setAttribute("disabled",!0)):(this.readout.contentEditable="true",this.$slider.removeAttribute("disabled")),"vertical"===this.model.get("orientation")?(this.el.classList.remove("widget-hslider"),this.el.classList.add("widget-vslider"),this.el.classList.remove("widget-inline-hbox"),this.el.classList.add("widget-inline-vbox")):(this.el.classList.remove("widget-vslider"),this.el.classList.add("widget-hslider"),this.el.classList.remove("widget-inline-vbox"),this.el.classList.add("widget-inline-hbox")),this.model.get("readout")?(this.readout.style.display="",this.displayed.then((()=>{this.readout_overflow()?this.readout.classList.add("overflow"):this.readout.classList.remove("overflow")}))):this.readout.style.display="none"),super.update()}readout_overflow(){return this.readout.scrollWidth>this.readout.clientWidth}events(){return{"blur [contentEditable=true]":"handleTextChange","keydown [contentEditable=true]":"handleKeyDown"}}handleKeyDown(e){13===e.keyCode&&(e.preventDefault(),this.handleTextChange())}createSlider(){const e=this.model.get("orientation"),t=this.model.get("behavior");Ae().create(this.$slider,{start:this.model.get("value"),connect:!0,behaviour:t,range:{min:this.model.get("min"),max:this.model.get("max")},step:this.model.get("step"),animate:!1,orientation:e,direction:"horizontal"===e?"ltr":"rtl",format:{from:e=>Number(e),to:e=>this._validate_slide_value(e)}}),this.$slider.noUiSlider.on("update",((e,t)=>{this.handleSliderUpdateEvent(e,t)})),this.$slider.noUiSlider.on("change",((e,t)=>{this.handleSliderChangeEvent(e,t)}))}regenSlider(e){this.$slider.noUiSlider.destroy(),this.createSlider()}_validate_slide_value(e){return Math.round(e)}}class Be extends je{constructor(){super(...arguments),this._range_regex=/^\s*([+-]?\d+)\s*[-:–]\s*([+-]?\d+)/}update(e){super.update(e);const t=this.model.get("value");this.readout.textContent=this.valueToString(t),this.model.get("value")!==t&&(this.model.set("value",t,{updated_view:this}),this.touch())}valueToString(e){const t=this.model.readout_formatter;return e.map((function(e){return t(e)})).join(" – ")}stringToValue(e){if(null===e)return null;const t=this._range_regex.exec(e);return t?[this._parse_value(t[1]),this._parse_value(t[2])]:null}handleTextChange(){let e=this.stringToValue(this.readout.textContent);const t=this.model.get("min"),n=this.model.get("max");null===e||isNaN(e[0])||isNaN(e[1])||e[0]>e[1]?this.readout.textContent=this.valueToString(this.model.get("value")):(e=[Math.max(Math.min(e[0],n),t),Math.max(Math.min(e[1],n),t)],e[0]!==this.model.get("value")[0]||e[1]!==this.model.get("value")[1]?(this.readout.textContent=this.valueToString(e),this.model.set("value",e),this.touch()):this.readout.textContent=this.valueToString(this.model.get("value")))}handleSliderChangeEvent(e,t){const n=e.map(this._validate_slide_value);this.readout.textContent=this.valueToString(n),this.handleSliderChanged(e,t)}handleSliderUpdateEvent(e,t){const n=e.map(this._validate_slide_value);this.readout.textContent=this.valueToString(n),this.model.get("continuous_update")&&this.handleSliderChanged(e,t)}handleSliderChanged(e,t){const n=e.map(this._validate_slide_value);this.model.set("value",n,{updated_view:this}),this.touch()}updateSliderOptions(e){this.$slider.noUiSlider.updateOptions({start:this.model.get("value"),range:{min:this.model.get("min"),max:this.model.get("max")},step:this.model.get("step")})}updateSliderValue(e,t,n){if(n.updated_view===this)return;const i=this.$slider.noUiSlider.get(),r=this.model.get("value");i[0]===r[0]&&i[1]===r[1]||this.$slider.noUiSlider.set(r)}}class ze extends je{update(e){super.update(e);const t=this.model.get("min"),n=this.model.get("max");let i=this.model.get("value");i>n?i=n:i=1){const e=n.substr(1);n=n[0]+e.replace(/[+-]/g,"")}t.value!==n&&(e.preventDefault(),t.value=n)}handleChanging(e){const t=e.target.value.trim();""===t||["-","-.",".","+.","+"].indexOf(t)>=0||this.model.get("continuous_update")&&this.handleChanged(e)}handleChanged(e){const t=e.target;let n=this._parse_value(t.value);if(isNaN(n))t.value=this.model.get("value");else{let e=n;void 0!==this.model.get("max")&&(e=Math.min(this.model.get("max"),e)),void 0!==this.model.get("min")&&(e=Math.max(this.model.get("min"),e)),e!==n&&(t.value=e,n=e),n!==this.model.get("value")&&(this.model.set("value",n,{updated_view:this}),this.touch())}}}class qe extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ProgressStyleModel"})}}qe.styleProperties=Object.assign(Object.assign({},l.styleProperties),{bar_color:{selector:".progress-bar",attribute:"background-color",default:null}});class Ve extends Ne{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"IntProgressModel",_view_name:"ProgressView",orientation:"horizontal",bar_style:"",style:null})}}class He extends c{initialize(e){super.initialize(e),this.listenTo(this.model,"change:bar_style",this.update_bar_style),this.luminoWidget.addClass("jupyter-widgets")}render(){super.render();const e="horizontal"===this.model.get("orientation")?"widget-hprogress":"widget-vprogress";this.el.classList.add(e),this.progress=document.createElement("div"),this.progress.classList.add("progress"),this.progress.style.position="relative",this.el.appendChild(this.progress),this.bar=document.createElement("div"),this.bar.classList.add("progress-bar"),this.bar.style.position="absolute",this.bar.style.bottom="0px",this.bar.style.left="0px",this.progress.appendChild(this.bar),this.update(),this.set_bar_style()}update(){const e=this.model.get("value"),t=this.model.get("max"),n=this.model.get("min"),i=100*(e-n)/(t-n);return"horizontal"===this.model.get("orientation")?(this.el.classList.remove("widget-inline-vbox"),this.el.classList.remove("widget-vprogress"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-hprogress"),this.bar.style.width=i+"%",this.bar.style.height="100%"):(this.el.classList.remove("widget-inline-hbox"),this.el.classList.remove("widget-hprogress"),this.el.classList.add("widget-inline-vbox"),this.el.classList.add("widget-vprogress"),this.bar.style.width="100%",this.bar.style.height=i+"%"),super.update()}update_bar_style(){this.update_mapped_classes(He.class_map,"bar_style",this.bar)}set_bar_style(){this.set_mapped_classes(He.class_map,"bar_style",this.bar)}}He.class_map={success:["progress-bar-success"],info:["progress-bar-info"],warning:["progress-bar-warning"],danger:["progress-bar-danger"]};class We extends Ne{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"PlayModel",_view_name:"PlayView",repeat:!1,playing:!1,show_repeat:!0,interval:100,step:1,disabled:!1})}initialize(e,t){super.initialize(e,t)}loop(){if(!this.get("playing"))return;const e=this.get("value")+this.get("step");e<=this.get("max")?(this.set("value",e),this.schedule_next()):this.get("repeat")?(this.set("value",this.get("min")),this.schedule_next()):this.pause(),this.save_changes()}schedule_next(){this._timerId=window.setTimeout(this.loop.bind(this),this.get("interval"))}stop(){this.pause(),this.set("value",this.get("min")),this.save_changes()}pause(){window.clearTimeout(this._timerId),this._timerId=void 0,this.set("playing",!1),this.save_changes()}animate(){void 0===this._timerId&&(this.get("value")===this.get("max")?(this.set("value",this.get("min")),this.schedule_next(),this.save_changes()):this.loop(),this.save_changes())}play(){this.set("playing",!this.get("playing")),this.save_changes()}repeat(){this.set("repeat",!this.get("repeat")),this.save_changes()}}class Ke extends i.DOMWidgetView{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-play"),this.playPauseButton=document.createElement("button"),this.stopButton=document.createElement("button"),this.repeatButton=document.createElement("button"),this.playPauseButton.className="jupyter-button",this.stopButton.className="jupyter-button",this.repeatButton.className="jupyter-button",this.el.appendChild(this.playPauseButton),this.el.appendChild(this.stopButton),this.el.appendChild(this.repeatButton);const e=document.createElement("i");e.className="fa fa-play",this.playPauseButton.appendChild(e);const t=document.createElement("i");t.className="fa fa-stop",this.stopButton.appendChild(t);const n=document.createElement("i");n.className="fa fa-retweet",this.repeatButton.appendChild(n),this.playPauseButton.onclick=this.model.play.bind(this.model),this.stopButton.onclick=this.model.stop.bind(this.model),this.repeatButton.onclick=this.model.repeat.bind(this.model),this.listenTo(this.model,"change:playing",this.onPlayingChanged),this.listenTo(this.model,"change:repeat",this.updateRepeat),this.listenTo(this.model,"change:show_repeat",this.updateRepeat),this.updatePlaying(),this.updateRepeat(),this.update()}update(){const e=this.model.get("disabled");this.playPauseButton.disabled=e,this.stopButton.disabled=e,this.repeatButton.disabled=e,this.updatePlaying()}onPlayingChanged(){this.updatePlaying();const e=this.model.previous("playing"),t=this.model.get("playing");!e&&t?this.model.animate():this.model.pause()}updatePlaying(){const e=this.model.get("playing");this.playPauseButton.getElementsByTagName("i")[0].className=e?"fa fa-pause":"fa fa-play"}updateRepeat(){const e=this.model.get("repeat");this.repeatButton.style.display=this.model.get("show_repeat")?this.playPauseButton.style.display:"none",e?this.repeatButton.classList.add("mod-active"):this.repeatButton.classList.remove("mod-active")}}class Ge extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FloatModel",value:0})}}class Je extends Ge{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"BoundedFloatModel",max:100,min:0})}}class Xe extends Je{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FloatSliderModel",_view_name:"FloatSliderView",step:1,orientation:"horizontal",_range:!1,readout:!0,readout_format:".2f",slider_color:null,continuous_update:!0,disabled:!1})}initialize(e,t){super.initialize(e,t),this.on("change:readout_format",this.update_readout_format,this),this.update_readout_format()}update_readout_format(){this.readout_formatter=Me(this.get("readout_format"))}}class Ye extends Je{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FloatLogSliderModel",_view_name:"FloatLogSliderView",step:.1,orientation:"horizontal",_range:!1,readout:!0,readout_format:".3g",slider_color:null,continuous_update:!0,disabled:!1,base:10,value:1,min:0,max:4})}initialize(e,t){super.initialize(e,t),this.on("change:readout_format",this.update_readout_format,this),this.update_readout_format()}update_readout_format(){this.readout_formatter=Me(this.get("readout_format"))}}class Qe extends Xe{}class Ze extends ze{constructor(){super(...arguments),this._parse_value=parseFloat}_validate_slide_value(e){return e}}class et extends je{constructor(){super(...arguments),this._parse_value=parseFloat}update(e){super.update(e);const t=this.model.get("value");this.readout.textContent=this.valueToString(t)}logCalc(e){const t=this.model.get("min"),n=this.model.get("max"),i=this.model.get("base");let r=Math.log(e)/Math.log(i);return r>n?r=n:rNumber(e),to:e=>e}}),this.$slider.noUiSlider.on("update",((e,t)=>{this.handleSliderUpdateEvent(e,t)})),this.$slider.noUiSlider.on("change",((e,t)=>{this.handleSliderChangeEvent(e,t)}))}valueToString(e){return(0,this.model.readout_formatter)(e)}stringToValue(e){return null===e?NaN:this._parse_value(e)}handleTextChange(){let e=this.stringToValue(this.readout.textContent);const t=this.model.get("min"),n=this.model.get("max"),i=this.model.get("base");isNaN(e)?this.readout.textContent=this.valueToString(this.model.get("value")):(e=Math.max(Math.min(e,Math.pow(i,n)),Math.pow(i,t)),e!==this.model.get("value")?(this.readout.textContent=this.valueToString(e),this.model.set("value",e),this.touch()):this.readout.textContent=this.valueToString(this.model.get("value")))}handleSliderUpdateEvent(e,t){const n=this.model.get("base"),i=Math.pow(n,this._validate_slide_value(e[0]));this.readout.textContent=this.valueToString(i),this.model.get("continuous_update")&&this.handleSliderChanged(e,t)}handleSliderChangeEvent(e,t){const n=this.model.get("base"),i=Math.pow(n,this._validate_slide_value(e[0]));this.readout.textContent=this.valueToString(i),this.handleSliderChanged(e,t)}handleSliderChanged(e,t){if(this._updating_slider)return;const n=this.model.get("base"),i=Math.pow(n,this._validate_slide_value(e[0]));this.model.set("value",i,{updated_view:this}),this.touch()}updateSliderValue(e,t,n){if(n.updated_view===this)return;const i=this.logCalc(this.model.get("value"));this.$slider.noUiSlider.set(i)}updateSliderOptions(e){this.$slider.noUiSlider.updateOptions({start:this.logCalc(this.model.get("value")),range:{min:this.model.get("min"),max:this.model.get("max")},step:this.model.get("step")})}_validate_slide_value(e){return e}}class tt extends Be{constructor(){super(...arguments),this._parse_value=parseFloat,this._range_regex=/^\s*([+-]?(?:\d*\.?\d+|\d+\.)(?:[eE][-:]?\d+)?)\s*[-:–]\s*([+-]?(?:\d*\.?\d+|\d+\.)(?:[eE][+-]?\d+)?)/}_validate_slide_value(e){return e}}class nt extends Ge{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FloatTextModel",_view_name:"FloatTextView",disabled:!1,continuous_update:!1})}}class it extends Je{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"BoundedFloatTextModel",_view_name:"FloatTextView",disabled:!1,continuous_update:!1,step:.1})}}class rt extends Ue{constructor(){super(...arguments),this._parse_value=parseFloat,this._default_step="any"}handleKeypress(e){e.stopPropagation()}handleKeyUp(e){}}class st extends Je{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FloatProgressModel",_view_name:"ProgressView",orientation:"horizontal",bar_style:"",style:null})}}class ot extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ControllerButtonModel",_view_name:"ControllerButtonView",value:0,pressed:!1})}}class at extends i.DOMWidgetView{render(){this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-controller-button"),this.el.style.width="fit-content",this.support=document.createElement("div"),this.support.style.position="relative",this.support.style.margin="1px",this.support.style.width="16px",this.support.style.height="16px",this.support.style.border="1px solid black",this.support.style.background="lightgray",this.el.appendChild(this.support),this.bar=document.createElement("div"),this.bar.style.position="absolute",this.bar.style.width="100%",this.bar.style.bottom="0px",this.bar.style.background="gray",this.support.appendChild(this.bar),this.update(),this.label=document.createElement("div"),this.label.textContent=this.model.get("description"),this.label.style.textAlign="center",this.el.appendChild(this.label)}update(){this.bar.style.height=100*this.model.get("value")+"%"}}class lt extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ControllerAxisModel",_view_name:"ControllerAxisView",value:0})}}class ut extends i.DOMWidgetView{render(){this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-controller-axis"),this.el.style.width="16px",this.el.style.padding="4px",this.support=document.createElement("div"),this.support.style.position="relative",this.support.style.margin="1px",this.support.style.width="4px",this.support.style.height="64px",this.support.style.border="1px solid black",this.support.style.background="lightgray",this.bullet=document.createElement("div"),this.bullet.style.position="absolute",this.bullet.style.margin="-3px",this.bullet.style.boxSizing="unset",this.bullet.style.width="10px",this.bullet.style.height="10px",this.bullet.style.background="gray",this.label=document.createElement("div"),this.label.textContent=this.model.get("description"),this.label.style.textAlign="center",this.support.appendChild(this.bullet),this.el.appendChild(this.support),this.el.appendChild(this.label),this.update()}update(){this.bullet.style.top=50*(this.model.get("value")+1)+"%"}}class ct extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ControllerModel",_view_name:"ControllerView",index:0,name:"",mapping:"",connected:!1,timestamp:0,buttons:[],axes:[]})}initialize(e,t){super.initialize(e,t),void 0===navigator.getGamepads?(this.readout="This browser does not support gamepads.",console.error(this.readout)):(this.readout="Connect gamepad and press any button.",this.get("connected")?this.update_loop():this.wait_loop())}wait_loop(){const e=this.get("index"),t=navigator.getGamepads()[e];t?this.setup(t).then((e=>{this.set(e),this.save_changes(),window.requestAnimationFrame(this.update_loop.bind(this))})):window.requestAnimationFrame(this.wait_loop.bind(this))}setup(e){return this.set({name:e.id,mapping:e.mapping,connected:e.connected,timestamp:e.timestamp}),i.resolvePromisesDict({buttons:Promise.all(e.buttons.map(((e,t)=>this._create_button_model(t)))),axes:Promise.all(e.axes.map(((e,t)=>this._create_axis_model(t))))})}update_loop(){const e=this.get("index"),t=this.get("name"),n=navigator.getGamepads()[e];n&&e===n.index&&t===n.id?(this.set({timestamp:n.timestamp,connected:n.connected}),this.save_changes(),this.get("buttons").forEach((function(e,t){e.set({value:n.buttons[t].value,pressed:n.buttons[t].pressed}),e.save_changes()})),this.get("axes").forEach((function(e,t){e.set("value",n.axes[t]),e.save_changes()})),window.requestAnimationFrame(this.update_loop.bind(this))):this.reset_gamepad()}reset_gamepad(){this.get("buttons").forEach((function(e){e.close()})),this.get("axes").forEach((function(e){e.close()})),this.set({name:"",mapping:"",connected:!1,timestamp:0,buttons:[],axes:[]}),this.save_changes(),window.requestAnimationFrame(this.wait_loop.bind(this))}_create_button_model(e){return this.widget_manager.new_widget({model_name:"ControllerButtonModel",model_module:"@jupyter-widgets/controls",model_module_version:this.get("_model_module_version"),view_name:"ControllerButtonView",view_module:"@jupyter-widgets/controls",view_module_version:this.get("_view_module_version")}).then((function(t){return t.set("description",e),t}))}_create_axis_model(e){return this.widget_manager.new_widget({model_name:"ControllerAxisModel",model_module:"@jupyter-widgets/controls",model_module_version:this.get("_model_module_version"),view_name:"ControllerAxisView",view_module:"@jupyter-widgets/controls",view_module_version:this.get("_view_module_version")}).then((function(t){return t.set("description",e),t}))}}ct.serializers=Object.assign(Object.assign({},f.serializers),{buttons:{deserialize:i.unpack_models},axes:{deserialize:i.unpack_models}});class dt extends i.DOMWidgetView{_createElement(e){return this.luminoWidget=new i.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=L()(this.luminoWidget.node)}initialize(e){super.initialize(e),this.button_views=new i.ViewList(this.add_button,null,this),this.listenTo(this.model,"change:buttons",((e,t)=>{this.button_views.update(t)})),this.axis_views=new i.ViewList(this.add_axis,null,this),this.listenTo(this.model,"change:axes",((e,t)=>{this.axis_views.update(t)})),this.listenTo(this.model,"change:name",this.update_label)}render(){this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-controller"),this.label=document.createElement("div"),this.el.appendChild(this.label),this.axis_box=new P.Panel,this.axis_box.node.style.display="flex",this.luminoWidget.addWidget(this.axis_box),this.button_box=new P.Panel,this.button_box.node.style.display="flex",this.luminoWidget.addWidget(this.button_box),this.button_views.update(this.model.get("buttons")),this.axis_views.update(this.model.get("axes")),this.update_label()}update_label(){this.label.textContent=this.model.get("name")||this.model.readout}add_button(e){const t=new P.Widget;return this.button_box.addWidget(t),this.create_child_view(e).then((e=>{const n=I.Rw.firstIndexOf(this.button_box.widgets,t);return this.button_box.insertWidget(n,e.luminoWidget),t.dispose(),e})).catch((0,i.reject)("Could not add child button view to controller",!0))}add_axis(e){const t=new P.Widget;return this.axis_box.addWidget(t),this.create_child_view(e).then((e=>{const n=I.Rw.firstIndexOf(this.axis_box.widgets,t);return this.axis_box.insertWidget(n,e.luminoWidget),t.dispose(),e})).catch((0,i.reject)("Could not add child axis view to controller",!0))}remove(){super.remove(),this.button_views.remove(),this.axis_views.remove()}}class ht extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"SelectionModel",index:"",_options_labels:[],disabled:!1})}}class pt extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox")}update(){super.update(),this.listbox&&(this.listbox.disabled=this.model.get("disabled")),this.updateTabindex(),this.updateTooltip()}updateTabindex(){if(!this.listbox)return;const e=this.model.get("tabbable");!0===e?this.listbox.setAttribute("tabIndex","0"):!1===e?this.listbox.setAttribute("tabIndex","-1"):null===e&&this.listbox.removeAttribute("tabIndex")}updateTooltip(){if(!this.listbox)return;const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.listbox.setAttribute("title",e):this.listbox.removeAttribute("title")}}class ft extends ht{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DropdownModel",_view_name:"DropdownView",button_style:""})}}class mt extends pt{render(){super.render(),this.el.classList.add("widget-dropdown"),this.listbox=document.createElement("select"),this.listbox.id=this.label.htmlFor=(0,i.uuid)(),this.el.appendChild(this.listbox),this._updateOptions(),this.update()}update(e){(null==e?void 0:e.updated_view)!==this&&this.model.hasChanged("_options_labels")&&this._updateOptions();const t=this.model.get("index");return this.listbox.selectedIndex=null===t?-1:t,super.update()}_updateOptions(){this.listbox.textContent="";const e=this.model.get("_options_labels");for(let t=0;te.value));let i=t.length!==n.length;if(!i)for(let e=0,r=t.length;e{const n=document.createElement("label");n.textContent=e,this.container.appendChild(n);const i=document.createElement("input");i.setAttribute("type","radio"),i.value=t.toString(),i.setAttribute("data-value",encodeURIComponent(e)),n.appendChild(i)}))),t.forEach(((e,t)=>{const n='input[data-value="'+encodeURIComponent(e)+'"]',i=this.container.querySelectorAll(n);if(i.length>0){const e=i[0];e.checked=this.model.get("index")===t,e.disabled=this.model.get("disabled")}})),setTimeout(this.adjustPadding,0,this),super.update(e)}adjustPadding(e){const t=window.getComputedStyle(e.el),n=parseInt(t.marginTop,10)+parseInt(t.marginBottom,10),i=e.label.offsetHeight+n,r=window.getComputedStyle(e.container),s=parseInt(r.marginBottom,10),o=(e.el.offsetHeight+n-s)%i,a=0===o?0:i-o;e.container.style.marginBottom=a+"px"}events(){return{'click input[type="radio"]':"_handle_click"}}_handle_click(e){const t=e.target;this.model.set("index",parseInt(t.value,10),{updated_view:this}),this.touch()}handle_message(e){if("focus"==e.do)this.container.firstElementChild.focus();else if("blur"==e.do)for(let e=0;ee.value));let c=!1;for(let e=0,r=t.length;e{let i;i=0!==e.trim().length||n[t]&&0!==n[t].trim().length?s(e):" ";const l=document.createElement("i"),u=document.createElement("button");n[t]&&(l.className="fa fa-"+n[t]),u.setAttribute("type","button"),u.className="widget-toggle-button jupyter-button",r&&u.classList.add(r),u.innerHTML=i,u.setAttribute("data-value",encodeURIComponent(e)),u.setAttribute("value",t.toString()),u.appendChild(l),u.disabled=a,o[t]&&u.setAttribute("title",o[t]),this.update_style_traits(u),this.buttongroup.appendChild(u)}))),t.forEach(((e,t)=>{const n='[data-value="'+encodeURIComponent(e)+'"]',i=this.buttongroup.querySelector(n);this.model.get("index")===t?i.classList.add("mod-active"):i.classList.remove("mod-active")})),this.stylePromise.then((function(e){e&&e.style()})),super.update(e)}update_style_traits(e){for(const t in this._css_state)if(Object.prototype.hasOwnProperty.call(this._css_state,"name"))if("margin"===t)this.buttongroup.style[t]=this._css_state[t];else if("width"!==t)if(e)e.style[t]=this._css_state[t];else{const e=this.buttongroup.querySelectorAll("button");e.length&&(e[0].style[t]=this._css_state[t])}}update_button_style(){const e=this.buttongroup.querySelectorAll("button");for(let t=0;tNumber(e),to:e=>Math.round(e)}}),this.$slider.noUiSlider.on("update",((e,t)=>{this.handleSliderUpdateEvent(e,t)})),this.$slider.noUiSlider.on("change",((e,t)=>{this.handleSliderChangeEvent(e,t)}))}events(){return{slide:"handleSliderChange",slidestop:"handleSliderChanged"}}updateSelection(){const e=this.model.get("index");this.updateReadout(e)}updateReadout(e){const t=this.model.get("_options_labels")[e];this.readout.textContent=t}handleSliderUpdateEvent(e,t){const n=e[0];this.updateReadout(n),this.model.get("continuous_update")&&this.handleSliderChanged(e,t)}handleSliderChangeEvent(e,t){const n=e[0];this.updateReadout(n),this.handleSliderChanged(e,t)}handleSliderChanged(e,t){const n=e[0];this.updateReadout(n),this.model.set("index",n,{updated_view:this}),this.touch()}updateSliderOptions(e){const t=this.model.get("_options_labels").length-1;this.$slider.noUiSlider.updateOptions({start:this.model.get("index"),range:{min:0,max:t},step:1})}updateSliderValue(e,t,n){if(n.updated_view===this)return;const i=this.$slider.noUiSlider.get(),r=this.model.get("index");i!==r&&this.$slider.noUiSlider.set(r)}}class Ct extends ht{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"MultipleSelectionModel"})}}class kt extends Ct{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"SelectMultipleModel",_view_name:"SelectMultipleView",rows:null})}}class Mt extends vt{initialize(e){super.initialize(e),this.listbox.multiple=!0}render(){super.render(),this.el.classList.add("widget-select-multiple")}updateSelection(){const e=this.model.get("index")||[],t=this.listbox.options;this.listbox.selectedIndex=-1,e.forEach((e=>{t[e].selected=!0}))}_handle_change(){const e=Array.prototype.map.call(this.listbox.selectedOptions||[],(function(e){return e.index}));this.model.set("index",e,{updated_view:this}),this.touch()}}class Tt extends Ct{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"SelectionSliderModel",_view_name:"SelectionSliderView",orientation:"horizontal",readout:!0,continuous_update:!0})}}class Ot extends Et{render(){super.render()}updateSelection(e){e=e||this.model.get("index"),this.updateReadout(e)}updateReadout(e){const t=this.model.get("_options_labels"),n=t[e[0]],i=t[e[1]];this.readout.textContent=`${n}-${i}`}handleSliderUpdateEvent(e,t){const n=e.map(Math.trunc);this.updateReadout(n),this.model.get("continuous_update")&&this.handleSliderChanged(e,t)}handleSliderChanged(e,t){const n=e.map(Math.round);this.updateReadout(n),this.model.set("index",n.slice(),{updated_view:this}),this.touch()}updateSliderValue(e,t,n){if(n.updated_view===this)return;const i=this.$slider.noUiSlider.get().map(Math.round),r=this.model.get("index").map(Math.round);i[0]===r[0]&&i[1]===r[1]||this.$slider.noUiSlider.set(r)}}var It,At,Pt,Nt,Lt,Dt=n(38571);!function(e){e.copyText=function(e){var t=document.body,n=function(i){i.preventDefault(),i.stopPropagation(),i.clipboardData.setData("text",e),t.removeEventListener("copy",n,!0)};t.addEventListener("copy",n,!0),document.execCommand("copy")}}(It||(It={})),function(e){e.boxSizing=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.borderTopWidth)||0,i=parseFloat(t.borderLeftWidth)||0,r=parseFloat(t.borderRightWidth)||0,s=parseFloat(t.borderBottomWidth)||0,o=parseFloat(t.paddingTop)||0,a=parseFloat(t.paddingLeft)||0,l=parseFloat(t.paddingRight)||0,u=parseFloat(t.paddingBottom)||0;return{borderTop:n,borderLeft:i,borderRight:r,borderBottom:s,paddingTop:o,paddingLeft:a,paddingRight:l,paddingBottom:u,horizontalSum:i+a+l+r,verticalSum:n+o+u+s}},e.sizeLimits=function(e){var t=window.getComputedStyle(e),n=parseFloat(t.minWidth)||0,i=parseFloat(t.minHeight)||0,r=parseFloat(t.maxWidth)||1/0,s=parseFloat(t.maxHeight)||1/0;return{minWidth:n,minHeight:i,maxWidth:r=Math.max(n,r),maxHeight:s=Math.max(i,s)}},e.hitTest=function(e,t,n){var i=e.getBoundingClientRect();return t>=i.left&&t=i.top&&n=n.bottom||(i.topn.bottom&&i.height>=n.height?e.scrollTop-=n.top-i.top:(i.topn.height||i.bottom>n.bottom&&i.height0;)if(h(n))t++;else if(h(i))c++;else if(h(r))c++;else if(h(o))d++;else if(h(a))c++;else if(h(s))d++;else if(!h(l))return 0;return(t=Math.min(t,255))<<16|(c=Math.min(c,255))<<8|Math.min(d,255)};var n=/^#[^\s\+>~#\.\[:]+/,i=/^\.[^\s\+>~#\.\[:]+/,r=/^\[[^\]]+\]/,s=/^[^\s\+>~#\.\[:]+/,o=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/,a=/^:[^\s\+>~#\.\[:]+/,l=/^[\s\+>~\*]+/,u=/:not\(([^\)]+)\)/g}(Lt||(Lt={}));class Rt extends P.Panel{constructor(){super(...arguments),this._widgetRemoved=new Dt.Signal(this)}get widgetRemoved(){return this._widgetRemoved}onChildRemoved(e){this._widgetRemoved.emit(e.child)}}class jt extends P.Widget{constructor(e={}){super(),this._currentChanged=new Dt.Signal(this),this.addClass("jupyter-widget-TabPanel"),this.tabBar=new P.TabBar(e),this.tabBar.addClass("jupyter-widget-TabPanel-tabBar"),this.tabContents=new Rt,this.tabContents.addClass("jupyter-widget-TabPanel-tabContents"),this.tabBar.tabMoved.connect(this._onTabMoved,this),this.tabBar.currentChanged.connect(this._onCurrentChanged,this),this.tabBar.tabCloseRequested.connect(this._onTabCloseRequested,this),this.tabBar.tabActivateRequested.connect(this._onTabActivateRequested,this),this.tabContents.widgetRemoved.connect(this._onWidgetRemoved,this);const t=new P.PanelLayout;t.addWidget(this.tabBar),t.addWidget(this.tabContents),this.layout=t}get currentChanged(){return this._currentChanged}get currentIndex(){const e=this.tabBar.currentIndex;return-1===e?null:e}set currentIndex(e){this.tabBar.currentIndex=null===e?-1:e}get currentWidget(){const e=this.tabBar.currentTitle;return e?e.owner:null}set currentWidget(e){this.tabBar.currentTitle=e?e.title:null}get tabsMovable(){return this.tabBar.tabsMovable}set tabsMovable(e){this.tabBar.tabsMovable=e}get widgets(){return this.tabContents.widgets}addWidget(e){this.insertWidget(this.widgets.length,e)}insertWidget(e,t){t!==this.currentWidget&&t.hide(),this.tabContents.insertWidget(e,t),this.tabBar.insertTab(e,t.title)}_onCurrentChanged(e,t){const{previousIndex:n,previousTitle:i,currentIndex:r,currentTitle:s}=t,o=i?i.owner:null,a=s?s.owner:null;o&&o.hide(),a&&a.show(),this._currentChanged.emit({previousIndex:n,previousWidget:o,currentIndex:r,currentWidget:a}),(Pt.IS_EDGE||Pt.IS_IE)&&A.MessageLoop.flush()}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabMoved(e,t){this.tabContents.insertWidget(t.toIndex,t.title.owner)}_onWidgetRemoved(e,t){this.tabBar.removeTab(t.title)}}class Bt{constructor(e,t={}){this._array=null,this._value=null,this._previousValue=null,this._selectionChanged=new Dt.Signal(this),this._array=e,this._insertBehavior=t.insertBehavior||"select-item-if-needed",this._removeBehavior=t.removeBehavior||"select-item-after"}get selectionChanged(){return this._selectionChanged}adjustSelectionForSet(e){const t=this.index,n=this.value;if(e!==t)return;this._updateSelectedValue();const i=this.value;this._previousValue=null,n!==i&&this._selectionChanged.emit({previousIndex:t,previousValue:n,currentIndex:t,currentValue:i})}get value(){return this._value}set value(e){null===e||null===this._array?this.index=null:this.index=I.Rw.firstIndexOf(this._array,e)}get index(){return this._index}set index(e){let t;if(null!==e&&null!==this._array?(t=Math.floor(e),(t<0||t>=this._array.length)&&(t=null)):t=null,this._index===t)return;const n=this._index,i=this._value;this._index=t,this._updateSelectedValue(),this._previousValue=i,this._selectionChanged.emit({previousIndex:n,previousValue:i,currentIndex:t,currentValue:this._value})}get insertBehavior(){return this._insertBehavior}set insertBehavior(e){this._insertBehavior=e}get removeBehavior(){return this._removeBehavior}set removeBehavior(e){this._removeBehavior=e}adjustSelectionForInsert(e,t){const n=this._value,i=this._index,r=this._insertBehavior;if("select-item"===r||"select-item-if-needed"===r&&null===i)return this._index=e,this._value=t,this._previousValue=n,void this._selectionChanged.emit({previousIndex:i,previousValue:n,currentIndex:e,currentValue:t});null!==i&&i>=e&&this._index++}clearSelection(){const e=this._index,t=this._value;this._index=null,this._value=null,this._previousValue=null,null!==e&&this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this._value})}adjustSelectionForRemove(e,t){if(null===this._index)return;const n=this._index,i=this._removeBehavior;if(n===e){if(!this._array||0===this._array.length)return this._index=null,this._value=null,this._previousValue=null,void this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this._value});if("select-item-after"===i)return this._index=Math.min(e,this._array.length-1),this._updateSelectedValue(),this._previousValue=null,void this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this._value});if("select-item-before"===i)return this._index=Math.max(0,e-1),this._updateSelectedValue(),this._previousValue=null,void this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this._value});if("select-previous-item"===i)return this._previousValue?this.value=this._previousValue:(this._index=Math.min(e,this._array.length-1),this._updateSelectedValue()),this._previousValue=null,void this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this.value});this._index=null,this._value=null,this._previousValue=null,this._selectionChanged.emit({previousIndex:e,previousValue:t,currentIndex:this._index,currentValue:this._value})}else n>e&&this._index--}_updateSelectedValue(){const e=this._index;this._value=null!==e&&this._array?this._array[e]:null}}const zt="jupyter-widget-Collapse-open";class Ft extends P.Widget{constructor(e){super(e),this._collapseChanged=new Dt.Signal(this),this.addClass("jupyter-widget-Collapse"),this._header=new P.Widget,this._header.addClass("jupyter-widget-Collapse-header"),this._header.node.addEventListener("click",this);const t=document.createElement("i");t.classList.add("fa","fa-fw","fa-caret-right"),this._header.node.appendChild(t),this._header.node.appendChild(document.createElement("span")),this._content=new P.Panel,this._content.addClass("jupyter-widget-Collapse-contents");const n=new P.PanelLayout;this.layout=n,n.addWidget(this._header),n.addWidget(this._content),e.widget&&(this.widget=e.widget),this.collapsed=!1}dispose(){this.isDisposed||(super.dispose(),this._header=null,this._widget=null,this._content=null)}get widget(){return this._widget}set widget(e){const t=this._widget;t&&(t.disposed.disconnect(this._onChildDisposed,this),t.title.changed.disconnect(this._onTitleChanged,this),t.parent=null),this._widget=e,e.disposed.connect(this._onChildDisposed,this),e.title.changed.connect(this._onTitleChanged,this),this._onTitleChanged(e.title),this._content.addWidget(e)}get collapsed(){return this._collapsed}set collapsed(e){e!==this._collapsed&&(e?this._collapse():this._uncollapse())}toggle(){this.collapsed=!this.collapsed}get collapseChanged(){return this._collapseChanged}_collapse(){this._collapsed=!0,this._content&&this._content.hide(),this.removeClass(zt),this._header.node.children[0].classList.add("fa-caret-right"),this._header.node.children[0].classList.remove("fa-caret-down"),this._collapseChanged.emit(void 0)}_uncollapse(){this._collapsed=!1,this._content&&this._content.show(),this.addClass(zt),this._header.node.children[0].classList.add("fa-caret-down"),this._header.node.children[0].classList.remove("fa-caret-right"),this._collapseChanged.emit(void 0)}handleEvent(e){"click"===e.type&&this._evtClick(e)}_evtClick(e){this.toggle()}_onTitleChanged(e){this._header.node.children[1].textContent=this._widget.title.label}_onChildDisposed(e){this.dispose()}}const $t="jupyter-widget-Accordion-child-active";class Ut extends P.Panel{constructor(e){super(e),this._selection=new Bt(this.widgets),this._selection.selectionChanged.connect(this._onSelectionChanged,this),this.addClass("jupyter-widget-Accordion")}get collapseWidgets(){return this.layout.widgets}get selection(){return this._selection}indexOf(e){return I.Rw.findFirstIndex(this.collapseWidgets,(t=>t.widget===e))}addWidget(e){const t=this._wrapWidget(e);return t.collapsed=!0,super.addWidget(t),this._selection.adjustSelectionForInsert(this.widgets.length-1,t),t}insertWidget(e,t){const n=this._wrapWidget(t);n.collapsed=!0,super.insertWidget(e,n),this._selection.adjustSelectionForInsert(e,n)}removeWidget(e){const t=this.indexOf(e);if(t>=0){const n=this.collapseWidgets[t];e.parent=null,n.dispose(),this._selection.adjustSelectionForRemove(t,null)}}_wrapWidget(e){const t=new Ft({widget:e});return t.addClass("jupyter-widget-Accordion-child"),t.collapseChanged.connect(this._onCollapseChange,this),t}_onCollapseChange(e){e.collapsed?this._selection.value===e&&e.collapsed&&(this._selection.value=null):this._selection.value=e}_onSelectionChanged(e,t){const n=t.previousValue,i=t.currentValue;n&&(n.collapsed=!0,n.removeClass($t)),i&&(i.collapsed=!1,i.addClass($t))}}class qt extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"SelectionContainerModel",selected_index:null,titles:[]})}}class Vt extends qt{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"AccordionModel",_view_name:"AccordionView"})}}class Ht extends Ut{constructor(e){const t=e.view;delete e.view,super(e),this._view=t}processMessage(e){var t;super.processMessage(e),null===(t=this._view)||void 0===t||t.processLuminoMessage(e)}dispose(){this.isDisposed||(super.dispose(),this._view.remove(),this._view=null)}}class Wt extends i.DOMWidgetView{_createElement(e){return this.luminoWidget=new Ht({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=L()(this.luminoWidget.node)}initialize(e){super.initialize(e),this.children_views=new i.ViewList(this.add_child_view,this.remove_child_view,this),this.listenTo(this.model,"change:children",(()=>this.updateChildren())),this.listenTo(this.model,"change:selected_index",(()=>this.update_selected_index())),this.listenTo(this.model,"change:titles",(()=>this.update_titles()))}render(){var e;super.render();const t=this.luminoWidget;t.addClass("jupyter-widgets"),t.addClass("widget-accordion"),t.addClass("widget-container"),t.selection.selectionChanged.connect((e=>{this.updatingChildren||(this.model.set("selected_index",t.selection.index),this.touch())})),null===(e=this.children_views)||void 0===e||e.update(this.model.get("children")),this.update_titles(),this.update_selected_index()}updateChildren(){var e;this.updatingChildren=!0,this.luminoWidget.selection.index=null,null===(e=this.children_views)||void 0===e||e.update(this.model.get("children")),this.update_selected_index(),this.updatingChildren=!1}update_titles(){const e=this.luminoWidget.collapseWidgets,t=this.model.get("titles");for(let n=0;n{const t=e.luminoWidget;return t.title.label=r.title.label,n.collapseWidgets[n.indexOf(r)].widget=t,r.dispose(),e})).catch((0,i.reject)("Could not add child view to box",!0))}remove(){this.children_views=null,super.remove()}}class Kt extends qt{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"TabModel",_view_name:"TabView"})}}class Gt extends jt{constructor(e){const t=e.view;delete e.view,super(e),this._view=t,A.MessageLoop.installMessageHook(this.tabContents,((e,t)=>(this._view.processLuminoMessage(t),!0)))}dispose(){this.isDisposed||(super.dispose(),this._view.remove(),this._view=null)}}class Jt extends i.DOMWidgetView{constructor(){super(...arguments),this.updatingTabs=!1}_createElement(e){return this.luminoWidget=new Gt({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=L()(this.luminoWidget.node)}initialize(e){super.initialize(e),this.childrenViews=new i.ViewList(this.addChildView,(e=>{e.remove()}),this),this.listenTo(this.model,"change:children",(()=>this.updateTabs())),this.listenTo(this.model,"change:titles",(()=>this.updateTitles()))}render(){super.render();const e=this.luminoWidget;e.addClass("jupyter-widgets"),e.addClass("widget-container"),e.addClass("jupyter-widget-tab"),e.addClass("widget-tab"),e.tabsMovable=!0,e.tabBar.insertBehavior="none",e.tabBar.currentChanged.connect(this._onTabChanged,this),e.tabBar.tabMoved.connect(this._onTabMoved,this),e.tabBar.addClass("widget-tab-bar"),e.tabContents.addClass("widget-tab-contents"),e.tabBar.tabsMovable=!1,this.updateTabs(),this.update()}updateTabs(){var e;this.updatingTabs=!0,this.luminoWidget.currentIndex=null,null===(e=this.childrenViews)||void 0===e||e.update(this.model.get("children")),this.luminoWidget.currentIndex=this.model.get("selected_index"),this.updatingTabs=!1}addChildView(e,t){const n=this.model.get("titles")[t]||"",r=this.luminoWidget,s=new P.Widget;return s.title.label=n,r.addWidget(s),this.create_child_view(e).then((e=>{const t=e.luminoWidget;t.title.label=s.title.label,t.title.closable=!1;const n=I.Rw.firstIndexOf(r.widgets,s);return r.insertWidget(n+1,t),s.dispose(),e})).catch((0,i.reject)("Could not add child view to box",!0))}update(){return this.updateSelectedIndex(),super.update()}updateTitles(){const e=this.model.get("titles")||[];(0,I.__)(this.luminoWidget.widgets,((t,n)=>{t.title.label=e[n]||""}))}updateSelectedIndex(){this.luminoWidget.currentIndex=this.model.get("selected_index")}remove(){this.childrenViews=null,super.remove()}_onTabChanged(e,t){if(!this.updatingTabs){const e=t.currentIndex;this.model.set("selected_index",-1===e?null:e),this.touch()}}_onTabMoved(e,t){const n=this.model.get("children").slice();I.Rw.move(n,t.fromIndex,t.toIndex),this.model.set("children",n),this.touch()}}class Xt extends qt{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"StackModel",_view_name:"StackView"})}}class Yt extends B{initialize(e){super.initialize(e),this.listenTo(this.model,"change:selected_index",this.update_children)}update_children(){var e;let t;t=null===this.model.get("selected_index")?[]:[this.model.get("children")[this.model.get("selected_index")]],null===(e=this.children_views)||void 0===e||e.update(t).then((e=>{e.forEach((e=>{A.MessageLoop.postMessage(e.luminoWidget,P.Widget.ResizeMessage.UnknownSize)}))}))}}function Qt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Zt(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function en(){}var tn=.7,nn=1/tn,rn="\\s*([+-]?\\d+)\\s*",sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",on="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",an=/^#([0-9a-f]{3,8})$/,ln=new RegExp(`^rgb\\(${rn},${rn},${rn}\\)$`),un=new RegExp(`^rgb\\(${on},${on},${on}\\)$`),cn=new RegExp(`^rgba\\(${rn},${rn},${rn},${sn}\\)$`),dn=new RegExp(`^rgba\\(${on},${on},${on},${sn}\\)$`),hn=new RegExp(`^hsl\\(${sn},${on},${on}\\)$`),pn=new RegExp(`^hsla\\(${sn},${on},${on},${sn}\\)$`),fn={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function mn(){return this.rgb().formatHex()}function gn(){return this.rgb().formatRgb()}function vn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=an.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?_n(t):3===n?new yn(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?bn(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?bn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=ln.exec(e))?new yn(t[1],t[2],t[3],1):(t=un.exec(e))?new yn(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=cn.exec(e))?bn(t[1],t[2],t[3],t[4]):(t=dn.exec(e))?bn(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=hn.exec(e))?kn(t[1],t[2]/100,t[3]/100,1):(t=pn.exec(e))?kn(t[1],t[2]/100,t[3]/100,t[4]):fn.hasOwnProperty(e)?_n(fn[e]):"transparent"===e?new yn(NaN,NaN,NaN,0):null}function _n(e){return new yn(e>>16&255,e>>8&255,255&e,1)}function bn(e,t,n,i){return i<=0&&(e=t=n=NaN),new yn(e,t,n,i)}function yn(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function wn(){return`#${Cn(this.r)}${Cn(this.g)}${Cn(this.b)}`}function xn(){const e=Sn(this.opacity);return`${1===e?"rgb(":"rgba("}${En(this.r)}, ${En(this.g)}, ${En(this.b)}${1===e?")":`, ${e})`}`}function Sn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function En(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Cn(e){return((e=En(e))<16?"0":"")+e.toString(16)}function kn(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Tn(e,t,n,i)}function Mn(e){if(e instanceof Tn)return new Tn(e.h,e.s,e.l,e.opacity);if(e instanceof en||(e=vn(e)),!e)return new Tn;if(e instanceof Tn)return e;var t=(e=e.rgb()).r/255,n=e.g/255,i=e.b/255,r=Math.min(t,n,i),s=Math.max(t,n,i),o=NaN,a=s-r,l=(s+r)/2;return a?(o=t===s?(n-i)/a+6*(n0&&l<1?0:o,new Tn(o,a,l,e.opacity)}function Tn(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}function On(e){return(e=(e||0)%360)<0?e+360:e}function In(e){return Math.max(0,Math.min(1,e||0))}function An(e,t,n){return 255*(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)}function Pn(e){for(;e.firstChild;)e.removeChild(e.firstChild)}Qt(en,vn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:mn,formatHex:mn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return Mn(this).formatHsl()},formatRgb:gn,toString:gn}),Qt(yn,(function(e,t,n,i){return 1===arguments.length?((r=e)instanceof en||(r=vn(r)),r?new yn((r=r.rgb()).r,r.g,r.b,r.opacity):new yn):new yn(e,t,n,null==i?1:i);var r}),Zt(en,{brighter(e){return e=null==e?nn:Math.pow(nn,e),new yn(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?tn:Math.pow(tn,e),new yn(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yn(En(this.r),En(this.g),En(this.b),Sn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:wn,formatHex:wn,formatHex8:function(){return`#${Cn(this.r)}${Cn(this.g)}${Cn(this.b)}${Cn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:xn,toString:xn})),Qt(Tn,(function(e,t,n,i){return 1===arguments.length?Mn(e):new Tn(e,t,n,null==i?1:i)}),Zt(en,{brighter(e){return e=null==e?nn:Math.pow(nn,e),new Tn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?tn:Math.pow(tn,e),new Tn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+360*(this.h<0),t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,r=2*n-i;return new yn(An(e>=240?e-240:e+120,r,i),An(e,r,i),An(e<120?e+240:e-120,r,i),this.opacity)},clamp(){return new Tn(On(this.h),In(this.s),In(this.l),Sn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Sn(this.opacity);return`${1===e?"hsl(":"hsla("}${On(this.h)}, ${100*In(this.s)}%, ${100*In(this.l)}%${1===e?")":`, ${e})`}`}}));class Nn{constructor(e,t,n){this.start=e,this.dx=t,this.max=n}isSelected(e){let t,n;return this.dx>=0?(t=this.start,n=this.start+this.dx):(t=this.start+this.dx,n=this.start),t<=e&&ethis.max&&(this.dx=this.max-this.start),this.start+this.dx<0&&(this.dx=-this.start)}}class Ln extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:[],placeholder:"​",allowed_tags:null,allow_duplicates:!0})}}class Dn extends i.DOMWidgetView{constructor(){super(...arguments),this.hoveredTag=null,this.hoveredTagIndex=null}render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("jupyter-widget-tagsinput"),this.taginputWrapper=document.createElement("div"),this.model.get("value").length?this.taginputWrapper.style.display="none":this.taginputWrapper.style.display="inline-block",this.datalistID=(0,i.uuid)(),this.taginput=document.createElement("input"),this.taginput.classList.add("jupyter-widget-tag"),this.taginput.classList.add("jupyter-widget-taginput"),this.taginput.setAttribute("list",this.datalistID),this.taginput.setAttribute("type","text"),this.autocompleteList=document.createElement("datalist"),this.autocompleteList.id=this.datalistID,this.updateAutocomplete(),this.model.on("change:allowed_tags",this.updateAutocomplete.bind(this)),this.updatePlaceholder(),this.model.on("change:placeholder",this.updatePlaceholder.bind(this)),this.taginputWrapper.classList.add("widget-text"),this.taginputWrapper.appendChild(this.taginput),this.taginputWrapper.appendChild(this.autocompleteList),this.el.onclick=this.focus.bind(this),this.el.ondrop=e=>{const t=null==this.hoveredTagIndex?this.tags.length:this.hoveredTagIndex;return this.ondrop(e,t)},this.el.ondragover=this.ondragover.bind(this),this.taginput.onchange=this.handleValueAdded.bind(this),this.taginput.oninput=this.resizeInput.bind(this),this.taginput.onkeydown=this.handleKeyEvent.bind(this),this.taginput.onblur=this.loseFocus.bind(this),this.resizeInput(),this.inputIndex=this.model.get("value").length,this.selection=null,this.preventLoosingFocus=!1,this.update()}update(){this.preventLoosingFocus=!0,Pn(this.el),this.tags=[];const e=this.model.get("value");this.inputIndex=e.length;for(const t in e){const n=parseInt(t),i=this.createTag(e[n],n,null!=this.selection&&this.selection.isSelected(n));i.draggable=!0,i.ondragstart=((e,t)=>n=>{this.ondragstart(n,e,t,this.model.model_id)})(n,e[n]),i.ondrop=(e=>t=>{this.ondrop(t,e)})(n),i.ondragover=this.ondragover.bind(this),i.ondragenter=(e=>t=>{this.ondragenter(t,e)})(n),i.ondragend=this.ondragend.bind(this),this.tags.push(i),this.el.appendChild(i)}return this.el.insertBefore(this.taginputWrapper,this.el.children[this.inputIndex]),this.model.get("value").length?this.taginputWrapper.style.display="none":this.taginputWrapper.style.display="inline-block",this.preventLoosingFocus=!1,super.update()}updateAutocomplete(){Pn(this.autocompleteList);const e=this.model.get("allowed_tags");for(const t of e){const e=document.createElement("option");e.value=t,this.autocompleteList.appendChild(e)}}updatePlaceholder(){this.taginput.placeholder=this.model.get("placeholder"),this.resizeInput()}updateTags(){const e=this.model.get("value");for(const t in this.tags){const n=parseInt(t);this.updateTag(this.tags[n],e[n],n,null!=this.selection&&this.selection.isSelected(n))}}handleValueAdded(e){const t=this.taginput.value.replace(/^\s+|\s+$/g,""),n=this.inputIndex;""!=t&&(this.inputIndex++,this.addTag(n,t)&&(this.taginput.value="",this.resizeInput(),this.focus()))}addTag(e,t){const n=this.model.get("value");let i;try{i=this.validateValue(t)}catch(e){return!1}const r=this.model.get("allowed_tags");if(r.length&&!r.includes(i))return!1;if(!this.model.get("allow_duplicates")&&n.includes(i))return!1;this.selection=null;const s=[...n];return s.splice(e,0,i),this.model.set("value",s),this.model.save_changes(),!0}resizeInput(){let e;e=0!=this.taginput.value.length?this.taginput.value:this.model.get("placeholder");const t=e.length+1;this.taginput.setAttribute("size",String(t))}handleKeyEvent(e){const t=this.model.get("value").length;if(this.taginput.value.length)return;const n=this.inputIndex;switch(e.key){case"ArrowLeft":e.ctrlKey&&e.shiftKey&&this.select(n,-n),!e.ctrlKey&&e.shiftKey&&this.select(n,-1),e.ctrlKey?this.inputIndex=0:this.inputIndex--;break;case"ArrowRight":e.ctrlKey&&e.shiftKey&&this.select(n,t-n),!e.ctrlKey&&e.shiftKey&&this.select(n,1),e.ctrlKey?this.inputIndex=t:this.inputIndex++;break;case"Backspace":this.selection?this.removeSelectedTags():this.removeTag(this.inputIndex-1);break;case"Delete":this.selection?this.removeSelectedTags():this.removeTag(this.inputIndex);break;default:return}var i,r;e.shiftKey||(this.selection=null),this.inputIndex=(i=this.inputIndex,r=t,Math.min(Math.max(i,0),r)),this.update(),this.focus()}ondragstart(e,t,n,i){null!=e.dataTransfer&&(e.dataTransfer.setData("index",String(t)),e.dataTransfer.setData("tagValue",String(n)),e.dataTransfer.setData("origin",i))}ondrop(e,t){if(null==e.dataTransfer)return;e.preventDefault(),e.stopPropagation();const n=e.dataTransfer.getData("tagValue"),i=parseInt(e.dataTransfer.getData("index")),r=e.dataTransfer.getData("origin")==this.model.model_id;if(!isNaN(i)){if(r){const e=[...this.model.get("value")];return i=0;t--)null!=this.selection&&this.selection.isSelected(t)&&(e.splice(t,1),t()=>{this.removeTag(e),this.loseFocus()})(t),i}getTagText(e){return e}updateTag(e,t,n,i){i?e.classList.add("mod-active"):e.classList.remove("mod-active")}}jn.class_map={primary:"mod-primary",success:"mod-success",info:"mod-info",warning:"mod-warning",danger:"mod-danger"};class Bn extends Ln{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:[],_view_name:"ColorsInputView",_model_name:"ColorsInputModel"})}}class zn extends Dn{createTag(e,t,n){const i=document.createElement("div"),r=e,s=vn(e).darker().toString();i.classList.add("jupyter-widget-tag"),i.classList.add("jupyter-widget-colortag"),n?(i.classList.add("mod-active"),i.style.backgroundColor=s):i.style.backgroundColor=r;const o=document.createElement("i");return o.classList.add("fa"),o.classList.add("fa-times"),o.classList.add("jupyter-widget-tag-close"),i.appendChild(o),o.onmousedown=(e=>()=>{this.removeTag(e),this.loseFocus()})(t),i}updateTag(e,t,n,i){const r=t,s=vn(t).darker().toString();i?(e.classList.add("mod-active"),e.style.backgroundColor=s):(e.classList.remove("mod-active"),e.style.backgroundColor=r)}validateValue(e){if(null==vn(e))throw e+" is not a valid Color";return e}}class Fn extends Rn{defaults(){return Object.assign(Object.assign({},super.defaults()),{min:null,max:null})}}class $n extends jn{render(){this.model.on("change:format",(()=>{this.formatter=Me(this.model.get("format")),this.update()})),this.formatter=Me(this.model.get("format")),super.render()}getTagText(e){return this.formatter(this.parseNumber(e))}validateValue(e){const t=this.parseNumber(e),n=this.model.get("min"),i=this.model.get("max");if(isNaN(t)||null!=n&&ti)throw e+" is not a valid number, it should be in the range ["+n+", "+i+"]";return t}}class Un extends Fn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"FloatsInputView",_model_name:"FloatsInputModel",format:".1f"})}}class qn extends $n{parseNumber(e){return parseFloat(e)}}class Vn extends Fn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"IntsInputView",_model_name:"IntsInputModel",format:"d"})}}class Hn extends $n{parseNumber(e){const t=parseInt(e);if(t!=parseFloat(e))throw e+" should be an integer";return t}}class Wn extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"StringStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}Wn.styleProperties=Object.assign(Object.assign({},l.styleProperties),{background:{selector:"",attribute:"background",default:null},font_size:{selector:"",attribute:"font-size",default:""},text_color:{selector:"",attribute:"color",default:""}});class Kn extends Wn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"HTMLStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}Kn.styleProperties=Object.assign({},Wn.styleProperties);class Gn extends Wn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"HTMLMathStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}Gn.styleProperties=Object.assign({},Wn.styleProperties);class Jn extends Wn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"LabelStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}Jn.styleProperties=Object.assign(Object.assign({},Wn.styleProperties),{font_family:{selector:"",attribute:"font-family",default:""},font_style:{selector:"",attribute:"font-style",default:""},font_variant:{selector:"",attribute:"font-variant",default:""},font_weight:{selector:"",attribute:"font-weight",default:""},text_decoration:{selector:"",attribute:"text-decoration",default:""}});class Xn extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"TextStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}Xn.styleProperties=Object.assign(Object.assign({},l.styleProperties),{background:{selector:".widget-input",attribute:"background",default:null},font_size:{selector:".widget-input",attribute:"font-size",default:""},text_color:{selector:".widget-input",attribute:"color",default:""}});class Yn extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:"",disabled:!1,placeholder:"​",_model_name:"StringModel"})}}class Qn extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox")}}class Zn extends Yn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"HTMLView",_model_name:"HTMLModel"})}}class ei extends Qn{render(){super.render(),this.el.classList.add("widget-html"),this.content=document.createElement("div"),this.content.classList.add("widget-html-content"),this.el.appendChild(this.content),this.update()}update(){return this.content.innerHTML=this.model.get("value"),super.update()}handle_message(e){"focus"===e.do?this.content.focus():"blur"===e.do&&this.content.blur()}}class ti extends Yn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"HTMLMathView",_model_name:"HTMLMathModel"})}}class ni extends Qn{render(){super.render(),this.el.classList.add("widget-htmlmath"),this.content=document.createElement("div"),this.content.classList.add("widget-htmlmath-content"),this.el.appendChild(this.content),this.update()}update(){return this.content.innerHTML=this.model.get("value"),this.typeset(this.content),super.update()}handle_message(e){"focus"===e.do?this.content.focus():"blur"===e.do&&this.content.blur()}}class ii extends Yn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"LabelView",_model_name:"LabelModel"})}}class ri extends Qn{render(){super.render(),this.el.classList.add("widget-label"),this.update()}update(){return this.typeset(this.el,this.model.get("value")),super.update()}}class si extends Yn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"TextareaView",_model_name:"TextareaModel",rows:null,continuous_update:!0})}}class oi extends Qn{render(){super.render(),this.el.classList.add("widget-textarea"),this.textbox=document.createElement("textarea"),this.textbox.setAttribute("rows","5"),this.textbox.id=this.label.htmlFor=(0,i.uuid)(),this.textbox.classList.add("widget-input"),this.el.appendChild(this.textbox),this.update(),this.listenTo(this.model,"change:placeholder",((e,t,n)=>{this.update_placeholder(t)})),this.update_placeholder(),this.updateTooltip()}update_placeholder(e){const t=e||this.model.get("placeholder");this.textbox.setAttribute("placeholder",t.toString())}update(e){if(void 0===e||e.updated_view!==this){this.textbox.value=this.model.get("value");let e=this.model.get("rows");null===e&&(e=""),this.textbox.setAttribute("rows",e),this.textbox.disabled=this.model.get("disabled")}return this.updateTabindex(),this.updateTooltip(),super.update()}updateTabindex(){if(!this.textbox)return;const e=this.model.get("tabbable");!0===e?this.textbox.setAttribute("tabIndex","0"):!1===e?this.textbox.setAttribute("tabIndex","-1"):null===e&&this.textbox.removeAttribute("tabIndex")}updateTooltip(){if(!this.textbox)return;const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.textbox.setAttribute("title",e):this.textbox.removeAttribute("title")}events(){return{"keydown input":"handleKeyDown","keypress input":"handleKeypress","input textarea":"handleChanging","change textarea":"handleChanged"}}handleKeyDown(e){e.stopPropagation()}handleKeypress(e){e.stopPropagation()}handleChanging(e){this.model.get("continuous_update")&&this.handleChanged(e)}handleChanged(e){const t=e.target;this.model.set("value",t.value,{updated_view:this}),this.touch()}handle_message(e){"focus"===e.do?this.textbox.focus():"blur"===e.do&&this.textbox.blur()}}class ai extends Yn{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"TextView",_model_name:"TextModel",continuous_update:!0})}}class li extends Qn{constructor(){super(...arguments),this.inputType="text"}render(){super.render(),this.el.classList.add("widget-text"),this.textbox=document.createElement("input"),this.textbox.setAttribute("type",this.inputType),this.textbox.id=this.label.htmlFor=(0,i.uuid)(),this.textbox.classList.add("widget-input"),this.el.appendChild(this.textbox),this.update(),this.listenTo(this.model,"change:placeholder",((e,t,n)=>{this.update_placeholder(t)})),this.update_placeholder(),this.updateTabindex(),this.updateTooltip()}update_placeholder(e){this.textbox.setAttribute("placeholder",e||this.model.get("placeholder"))}updateTabindex(){if(!this.textbox)return;const e=this.model.get("tabbable");!0===e?this.textbox.setAttribute("tabIndex","0"):!1===e?this.textbox.setAttribute("tabIndex","-1"):null===e&&this.textbox.removeAttribute("tabIndex")}updateTooltip(){if(!this.textbox)return;const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.textbox.setAttribute("title",e):this.textbox.removeAttribute("title")}update(e){return void 0!==e&&e.updated_view===this||(this.textbox.value!==this.model.get("value")&&(this.textbox.value=this.model.get("value")),this.textbox.disabled=this.model.get("disabled")),super.update()}events(){return{"keydown input":"handleKeyDown","keypress input":"handleKeypress","input input":"handleChanging","change input":"handleChanged"}}handleKeyDown(e){e.stopPropagation()}handleKeypress(e){e.stopPropagation(),13===e.keyCode&&this.send({event:"submit"})}handleChanging(e){this.model.get("continuous_update")&&this.handleChanged(e)}handleChanged(e){const t=e.target;this.model.set("value",t.value,{updated_view:this}),this.touch()}handle_message(e){"focus"===e.do?this.textbox.focus():"blur"===e.do&&this.textbox.blur()}}class ui extends ai{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"PasswordView",_model_name:"PasswordModel"})}}class ci extends li{constructor(){super(...arguments),this.inputType="password"}}class di extends ai{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ComboboxModel",_view_name:"ComboboxView",options:[],ensure_options:!1})}}class hi extends li{constructor(){super(...arguments),this.isInitialRender=!0}render(){this.datalist=document.createElement("datalist"),this.datalist.id=(0,i.uuid)(),super.render(),this.textbox.setAttribute("list",this.datalist.id),this.el.appendChild(this.datalist),this.updateTooltip()}update(e){if(super.update(e),!this.datalist)return;const t=this.isValid(this.model.get("value"));if(this.highlightValidState(t),void 0!==e&&e.updated_view||!this.model.hasChanged("options")&&!this.isInitialRender)return;this.isInitialRender=!1;const n=this.model.get("options"),i=document.createDocumentFragment();for(const e of n){const t=document.createElement("option");t.value=e,i.appendChild(t)}this.datalist.replaceChildren(...i.children)}isValid(e){return!0!==this.model.get("ensure_option")||-1!==this.model.get("options").indexOf(e)}handleChanging(e){const t=e.target,n=this.isValid(t.value);this.highlightValidState(n),n&&super.handleChanging(e)}handleChanged(e){const t=e.target,n=this.isValid(t.value);this.highlightValidState(n),n&&super.handleChanged(e)}handle_message(e){"focus"===e.do?this.textbox.focus():"blur"===e.do&&this.textbox.blur()}highlightValidState(e){this.textbox.classList.toggle("jpwidgets-invalidComboValue",!e)}}class pi extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"FileUploadModel",_view_name:"FileUploadView",accept:"",description:"Upload",disabled:!1,icon:"upload",button_style:"",multiple:!1,value:[],error:"",style:null})}}pi.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>e}});class fi extends i.DOMWidgetView{preinitialize(){this.tagName="button"}render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-upload"),this.el.classList.add("jupyter-button"),this.fileInput=document.createElement("input"),this.fileInput.type="file",this.fileInput.style.display="none",this.el.addEventListener("click",(()=>{this.fileInput.click()})),this.fileInput.addEventListener("click",(()=>{this.fileInput.value=""})),this.fileInput.addEventListener("change",(()=>{var e;const t=[];Array.from(null!==(e=this.fileInput.files)&&void 0!==e?e:[]).forEach((e=>{t.push(new Promise(((t,n)=>{const i=new FileReader;i.onload=()=>{const n=i.result;t({content:n,name:e.name,type:e.type,size:e.size,last_modified:e.lastModified})},i.onerror=()=>{n()},i.onabort=i.onerror,i.readAsArrayBuffer(e)})))})),Promise.all(t).then((e=>{this.model.set({value:e,error:""}),this.touch()})).catch((e=>{console.error("error in file upload: %o",e),this.model.set({error:e}),this.touch()}))})),this.listenTo(this.model,"change:button_style",this.update_button_style),this.set_button_style(),this.update()}update(){this.el.disabled=this.model.get("disabled"),this.el.setAttribute("title",this.model.get("tooltip"));const e=this.model.get("value"),t=`${this.model.get("description")} (${e.length})`,n=this.model.get("icon");if(t.length||n.length){if(this.el.textContent="",n.length){const e=document.createElement("i");e.classList.add("fa"),e.classList.add("fa-"+n),0===t.length&&e.classList.add("center"),this.el.appendChild(e)}this.el.appendChild(document.createTextNode(t))}return this.fileInput.accept=this.model.get("accept"),this.fileInput.multiple=this.model.get("multiple"),super.update()}update_button_style(){this.update_mapped_classes(fi.class_map,"button_style",this.el)}set_button_style(){this.set_mapped_classes(fi.class_map,"button_style",this.el)}}fi.class_map={primary:["mod-primary"],success:["mod-success"],info:["mod-info"],warning:["mod-warning"],danger:["mod-danger"]};const mi=n(7093).rE},19874:(e,t,n)=>{"use strict";n.d(t,{A:()=>i});const i="2.0.0"},84124:(e,t,n)=>{"use strict";n.r(t),n.d(t,{KernelWidgetManager:()=>D,LabWidgetManager:()=>L,WidgetManager:()=>R,WidgetRenderer:()=>g,default:()=>de,output:()=>i,registerWidgetManager:()=>te});var i={};n.r(i),n.d(i,{OUTPUT_WIDGET_VERSION:()=>V,OutputModel:()=>H,OutputView:()=>W});var r=n(75764);const s=new r.Token("@jupyterlab/coreutils:ISettingRegistry",'A service for the JupyterLab settings system.\n Use this if you want to store settings for your application.\n See "schemaDir" for more information.'),o=new r.Token("@jupyterlab/console:IConsoleTracker","A widget tracker for code consoles.\n Use this if you want to be able to iterate over and interact with code consoles\n created by the application."),a=(new r.Token("@jupyterlab/console:IConsoleCellExecutor","The console cell executor"),new r.Token("@jupyterlab/notebook:INotebookWidgetFactory","A service to create the notebook viewer."),new r.Token("@jupyterlab/notebook:INotebookTools",'A service for the "Notebook Tools" panel in the\n right sidebar. Use this to add your own functionality to the panel.'),new r.Token("@jupyterlab/notebook:INotebookTracker","A widget tracker for notebooks.\n Use this if you want to be able to iterate over and interact with notebooks\n created by the application.")),l=(new r.Token("@jupyterlab/notebook:INotebookCellExecutor","The notebook cell executor"),new r.Token("@jupyterlab/mainmenu:IMainMenu","A service for the main menu bar for the application.\n Use this if you want to add your own menu items or provide implementations for standardized menu items for specific activities."));var u=n(95861);const c=new r.Token("@jupyterlab/logconsole:ILoggerRegistry","A service providing a logger infrastructure.");var d,h,p;!function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(d||(d={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(p||(p={}));var f=n(7556),m=n(75735);class g extends m.Panel{constructor(e,t){super(),this._manager=new r.PromiseDelegate,this._rerenderMimeModel=null,this.mimeType=e.mimeType,t&&(this.manager=t)}set manager(e){e.restored.connect(this._rerender,this),this._manager.resolve(e)}async renderModel(e){const t=e.data[this.mimeType];this.node.textContent="Loading widget...";const n=await this._manager.promise;if(""===t.model_id)return this.hide(),Promise.resolve();let i,r;try{i=await n.get_model(t.model_id)}catch(t){return n.restoredStatus?(this.node.textContent="Error displaying widget: model not found",this.addClass("jupyter-widgets"),void console.error(t)):void(this._rerenderMimeModel=e)}this._rerenderMimeModel=null;try{const e=await n.create_view(i);r=e.luminoWidget||e.pWidget}catch(e){return this.node.textContent="Error displaying widget",this.addClass("jupyter-widgets"),void console.error(e)}this.node.textContent="",this.addWidget(r),r.disposed.connect((()=>{this.hide(),t.model_id=""}))}dispose(){this.isDisposed||(this._manager=null,super.dispose())}_rerender(){this._rerenderMimeModel&&(this.node.textContent="",this.removeClass("jupyter-widgets"),this.renderModel(this._rerenderMimeModel))}}var v=n(17998),_=n(7991);function b(e){const t=new Uint8Array(e.length/2);for(let n=0;n/g,">");for(navigator&&"Microsoft Internet Explorer"===navigator.appName&&(s=s.replace(/(%[^\n]*)\n/g,"$1
\n"));t>e;)r[t]="",t--;return r[e]="@@"+i.length+"@@",n&&(s=n(s)),i.push(s),r}var E=n(47521),C=n.n(E);const k=v.PROTOCOL_VERSION.split(".",1)[0];class M{constructor(){this.comm_target_name="jupyter.widget",this._models=Object.create(null)}setViewOptions(e={}){return e}create_view(e,t={}){const n=(0,v.uuid)(),i=e.state_change=e.state_change.then((async()=>{const i=e.get("_view_name"),r=e.get("_view_module");try{const s=new(await this.loadViewClass(i,r,e.get("_view_module_version")))({model:e,options:this.setViewOptions(t)});return s.listenTo(e,"destroy",s.remove),await s.render(),s.once("remove",(()=>{e.views&&delete e.views[n]})),s}catch(n){console.error(`Could not create a view for model id ${e.model_id}`);const s=`Failed to create view for '${i}' from module '${r}' with model '${e.name}' from module '${e.module}'`,o=new(v.createErrorWidgetModel(n,s)),a=new v.ErrorWidgetView({model:o,options:this.setViewOptions(t)});return await a.render(),a}}));return e.views&&(e.views[n]=i),i}callbacks(e){return{}}async get_model(e){const t=this._models[e];if(void 0===t)throw new Error("widget model not found");return t}has_model(e){return void 0!==this._models[e]}handle_comm_open(e,t){const n=(t.metadata||{}).version||"";if(n.split(".",1)[0]!==k){const e=`Wrong widget protocol version: received protocol version '${n}', but was expecting major version '${k}'`;return console.error(e),Promise.reject(e)}const i=t.content.data,r=i.buffer_paths||[],s=t.buffers||[];return(0,v.put_buffers)(i.state,r,s),this.new_model({model_name:i.state._model_name,model_module:i.state._model_module,model_module_version:i.state._model_module_version,comm:e},i.state).catch((0,v.reject)("Could not create a model.",!0))}new_widget(e,t={}){let n;if(void 0===e.view_name||void 0===e.view_module||void 0===e.view_module_version)return Promise.reject("new_widget(...) must be given view information in the options.");n=e.comm?Promise.resolve(e.comm):this._create_comm(this.comm_target_name,e.model_id,{state:{_model_module:e.model_module,_model_module_version:e.model_module_version,_model_name:e.model_name,_view_module:e.view_module,_view_module_version:e.view_module_version,_view_name:e.view_name}},{version:v.PROTOCOL_VERSION});const i=Object.assign({},e);return n.then((e=>(i.comm=e,this.new_model(i,t).then((e=>(e.sync("create",e),e))))),(()=>(i.model_id||(i.model_id=(0,v.uuid)()),this.new_model(i,t))))}register_model(e,t){this._models[e]=t,t.then((t=>{t.once("comm:close",(()=>{delete this._models[e]}))}))}async new_model(e,t={}){var n,i;const r=null!==(n=e.model_id)&&void 0!==n?n:null===(i=e.comm)||void 0===i?void 0:i.comm_id;if(!r)throw new Error("Neither comm nor model_id provided in options object. At least one must exist.");e.model_id=r;const s=this._make_model(e,t);return this.register_model(r,s),await s}async _loadFromKernel(){let e,t;try{const n=await this._create_comm("jupyter.widget.control",(0,v.uuid)(),{},{version:"1.0.0"});await new Promise(((i,r)=>{n.on_msg((n=>{e=n.content.data,"update_states"===e.method?(t=(n.buffers||[]).map((e=>e instanceof DataView?e:new DataView(e instanceof ArrayBuffer?e:e.buffer))),i(null)):console.warn(`\n Unknown ${e.method} message on the Control channel\n `)})),n.on_close((()=>r("Control comm was closed too early"))),n.send({method:"request_states"},{}),setTimeout((()=>r("Control comm did not respond in time")),4e3)})),n.close()}catch(e){return this._loadFromKernelModels()}const n=e.states,i={},r={};for(let n=0;n({widget_id:e,comm:this.has_model(e)?void 0:await this._create_comm("jupyter.widget",e)}))));await Promise.all(s.map((async({widget_id:e,comm:t})=>{const s=n[e];e in i&&(0,v.put_buffers)(s,i[e],r[e]);try{if(t)await this.new_model({model_name:s.model_name,model_module:s.model_module,model_module_version:s.model_module_version,model_id:e,comm:t},s.state);else{const t=await this.get_model(e),n=await t.constructor._deserialize_state(s.state,this);t.set_state(n)}}catch(e){console.error(e)}})))}async _loadFromKernelModels(){const e=await this._get_comm_info(),t=await Promise.all(Object.keys(e).map((async e=>{if(this.has_model(e))return;const t=await this._create_comm(this.comm_target_name,e);let n="";const i=new r.PromiseDelegate;return t.on_msg((e=>{if(e.parent_header.msg_id===n&&"comm_msg"===e.header.msg_type&&"update"===e.content.data.method){const n=e.content.data,r=n.buffer_paths||[],s=e.buffers||[];(0,v.put_buffers)(n.state,r,s),i.resolve({comm:t,msg:e})}})),n=t.send({method:"request_state"},this.callbacks(void 0)),i.promise})));await Promise.all(t.map((async e=>{if(!e)return;const t=e.msg.content;await this.new_model({model_name:t.data.state._model_name,model_module:t.data.state._model_module,model_module_version:t.data.state._model_module_version,comm:e.comm},t.data.state)})))}async _make_model(e,t={}){const n=e.model_id,i=this.loadModelClass(e.model_name,e.model_module,e.model_module_version);let r;const s=(e,t)=>new(v.createErrorWidgetModel(e,t));try{r=await i}catch(e){const t="Could not instantiate widget";return console.error(t),s(e,t)}if(!r){const t="Could not instantiate widget";return console.error(t),s(new Error(`Cannot find model module ${e.model_module}@${e.model_module_version}, ${e.model_name}`),t)}let o;try{const i=await r._deserialize_state(t,this);o=new r(i,{widget_manager:this,model_id:n,comm:e.comm})}catch(t){console.error(t),o=s(t,`Model class '${e.model_name}' from module '${e.model_module}' is loaded but can not be instantiated`)}return o.name=e.model_name,o.module=e.model_module,o}clear_state(){return(0,v.resolvePromisesDict)(this._models).then((e=>{Object.keys(e).forEach((t=>e[t].close())),this._models=Object.create(null)}))}get_state(e={}){const t=Object.keys(this._models).map((e=>this._models[e]));return Promise.all(t).then((t=>T(t,e)))}set_state(e){if(!(e.version_major&&e.version_major<=2))throw"Unsupported widget state format";const t=e.state,n=this._get_comm_info().then((e=>Promise.all(Object.keys(t).map((n=>{const i={base64:w,hex:b},r=t[n],s=r.state;if(r.buffers){const e=r.buffers.map((e=>e.path)),t=r.buffers.map((e=>new DataView(i[e.encoding](e.data))));(0,v.put_buffers)(r.state,e,t)}if(this.has_model(n))return this.get_model(n).then((e=>e.constructor._deserialize_state(s||{},this).then((t=>(e.set_state(t),e)))));const o={model_id:n,model_name:r.model_name,model_module:r.model_module,model_module_version:r.model_module_version};return Object.prototype.hasOwnProperty.call(e,"model_id")?this._create_comm(this.comm_target_name,n).then((e=>(o.comm=e,this.new_model(o)))):this.new_model(o,s)})))));return n}disconnect(){Object.keys(this._models).forEach((e=>{this._models[e].then((e=>{e.comm_live=!1}))}))}resolveUrl(e){return Promise.resolve(e)}inline_sanitize(e){const t=function(e){const t=[];let n,i=null,r=null,s=null,o=0;/`/.test(e)?(e=e.replace(/~/g,"~T").replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm,(e=>e.replace(/\$/g,"~D"))),n=e=>e.replace(/~([TD])/g,((e,t)=>"T"===t?"~":"$"))):n=e=>e;let a=e.replace(/\r\n?/g,"\n").split(x);for(let e=1,l=a.length;e{let n=r[t];return"\\\\("===n.substr(0,3)&&"\\\\)"===n.substr(n.length-3)?n="\\("+n.substring(3,n.length-3)+"\\)":"\\\\["===n.substr(0,3)&&"\\\\]"===n.substr(n.length-3)&&(n="\\["+n.substring(3,n.length-3)+"\\]"),n}))}async loadModelClass(e,t,n){try{const i=this.loadClass(e,t,n);return await i,i}catch(n){console.error(n);const i=`Failed to load model class '${e}' from module '${t}'`;return v.createErrorWidgetModel(n,i)}}async loadViewClass(e,t,n){try{const i=this.loadClass(e,t,n);return await i,i}catch(n){console.error(n);const i=`Failed to load view class '${e}' from module '${t}'`;return v.createErrorWidgetView(n,i)}}filterExistingModelState(e){let t=e.state;return t=Object.keys(t).filter((e=>!this.has_model(e))).reduce(((e,n)=>(e[n]=t[n],e)),{}),Object.assign(Object.assign({},e),{state:t})}}function T(e,t={}){const n={};return e.forEach((e=>{const i=e.model_id,r=(0,v.remove_buffers)(e.serialize(e.get_state(t.drop_defaults))),s=r.buffers.map(((e,t)=>({data:y(e),path:r.buffer_paths[t],encoding:"base64"})));n[i]={model_name:e.name,model_module:e.module,model_module_version:e.get("_model_module_version"),state:r.state},s.length>0&&(n[i].buffers=s)})),{version_major:2,version_minor:0,state:n}}var O=n(38571),I=n(2722);class A{constructor(){this._cache=Object.create(null)}set(e,t,n){if(e in this._cache||(this._cache[e]=Object.create(null)),t in this._cache[e])throw`Version ${t} of key ${e} already registered.`;this._cache[e][t]=n}get(e,t){if(e in this._cache){const n=this._cache[e],i=(0,I.maxSatisfying)(Object.keys(n),t);if(null!==i)return n[i]}}getAllVersions(e){if(e in this._cache)return this._cache[e]}}const P="application/vnd.jupyter.widget-view+json",N="application/vnd.jupyter.widget-state+json";class L extends M{constructor(e){super(),this._handleCommOpen=async(e,t)=>{const n=new v.shims.services.Comm(e);await this.handle_comm_open(n,t)},this._restored=new O.Signal(this),this._restoredStatus=!1,this._kernelRestoreInProgress=!1,this._isDisposed=!1,this._registry=new A,this._modelsSync=new Map,this._onUnhandledIOPubMessage=new O.Signal(this),this._rendermime=e}callbacks(e){return{iopub:{output:e=>{this._onUnhandledIOPubMessage.emit(e)}}}}_handleKernelChanged({oldValue:e,newValue:t}){e&&e.removeCommTarget(this.comm_target_name,this._handleCommOpen),t&&t.registerCommTarget(this.comm_target_name,this._handleCommOpen)}disconnect(){super.disconnect(),this._restoredStatus=!1}async _loadFromKernel(){var e;if(!this.kernel)throw new Error("Kernel not set");if(!1!==(null===(e=this.kernel)||void 0===e?void 0:e.handleComms))return super._loadFromKernel()}async _create_comm(e,t,n,i,r){const s=this.kernel;if(!s)throw new Error("No current kernel");const o=s.createComm(e,t);return(n||i)&&o.open(n,i,r),new v.shims.services.Comm(o)}async _get_comm_info(){const e=this.kernel;if(!e)throw new Error("No current kernel");const t=await e.requestCommInfo({target_name:this.comm_target_name});return"ok"===t.content.status?t.content.comms:{}}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._commRegistration&&this._commRegistration.dispose())}async resolveUrl(e){return e}async loadClass(e,t,n){"@jupyter-widgets/base"!==t&&"@jupyter-widgets/controls"!==t||!(0,I.valid)(n)||(n=`^${n}`);const i=this._registry.getAllVersions(t);if(!i)throw new Error(`No version of module ${t} is registered`);const r=this._registry.get(t,n);if(!r){const e=Object.keys(i);throw new Error(`Module ${t}, version ${n} is not registered, however, ${e.join(",")} ${e.length>1?"are":"is"}`)}let s;s="function"==typeof r?await r():await r;const o=s[e];if(!o)throw new Error(`Class ${e} not found in module ${t}`);return o}get rendermime(){return this._rendermime}get restored(){return this._restored}get restoredStatus(){return this._restoredStatus}get onUnhandledIOPubMessage(){return this._onUnhandledIOPubMessage}register(e){this._registry.set(e.name,e.version,e.exports)}register_model(e,t){super.register_model(e,t),t.then((t=>{this._modelsSync.set(e,t),t.once("comm:close",(()=>{this._modelsSync.delete(e)}))}))}async clear_state(){await super.clear_state(),this._modelsSync=new Map}get_state_sync(e={}){const t=[];for(const e of this._modelsSync.values())e.comm_live&&t.push(e);return T(t,e)}}class D extends L{constructor(e,t){super(t),this._kernel=e,e.statusChanged.connect(((e,t)=>{this._handleKernelStatusChange(t)})),e.connectionStatusChanged.connect(((e,t)=>{this._handleKernelConnectionStatusChange(t)})),this._handleKernelChanged({name:"kernel",oldValue:null,newValue:e}),this.restoreWidgets()}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets())}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(){try{this._kernelRestoreInProgress=!0,await this._loadFromKernel(),this._restoredStatus=!0,this._restored.emit()}catch(e){}this._kernelRestoreInProgress=!1}dispose(){this.isDisposed||(this._kernel=null,super.dispose())}get kernel(){return this._kernel}}class R extends L{constructor(e,t,n){var i,r;super(t),this._context=e,e.sessionContext.kernelChanged.connect(((e,t)=>{this._handleKernelChanged(t)})),e.sessionContext.statusChanged.connect(((e,t)=>{this._handleKernelStatusChange(t)})),e.sessionContext.connectionStatusChanged.connect(((e,t)=>{this._handleKernelConnectionStatusChange(t)})),(null===(i=e.sessionContext.session)||void 0===i?void 0:i.kernel)&&this._handleKernelChanged({name:"kernel",oldValue:null,newValue:null===(r=e.sessionContext.session)||void 0===r?void 0:r.kernel}),this.restoreWidgets(this._context.model),this._settings=n,e.saveState.connect(((e,t)=>{"started"===t&&n.saveState&&this._saveState()}))}_saveState(){const e=this.get_state_sync({drop_defaults:!0});this._context.model.setMetadata?this._context.model.setMetadata("widgets",{"application/vnd.jupyter.widget-state+json":e}):this._context.model.metadata.set("widgets",{"application/vnd.jupyter.widget-state+json":e})}_handleKernelConnectionStatusChange(e){"connected"===e&&(this._kernelRestoreInProgress||this.restoreWidgets(this._context.model,{loadKernel:!0,loadNotebook:!1}))}_handleKernelStatusChange(e){"restarting"===e&&this.disconnect()}async restoreWidgets(e,{loadKernel:t,loadNotebook:n}={loadKernel:!0,loadNotebook:!0}){try{if(await this.context.sessionContext.ready,t)try{this._kernelRestoreInProgress=!0,await this._loadFromKernel()}finally{this._kernelRestoreInProgress=!1}n&&await this._loadFromNotebook(e),this._restoredStatus=!0,this._restored.emit()}catch(e){}}async _loadFromNotebook(e){const t=e.getMetadata?e.getMetadata("widgets"):e.metadata.get("widgets");if(t&&t[N]){let e=t[N];e=this.filterExistingModelState(e),await this.set_state(e)}}dispose(){this.isDisposed||(this._context=null,super.dispose())}async resolveUrl(e){const t=await this.context.urlResolver.resolveUrl(e);return this.context.urlResolver.getDownloadUrl(t)}get context(){return this._context}get kernel(){var e,t,n;return null!==(n=null===(t=null===(e=this._context.sessionContext)||void 0===e?void 0:e.session)||void 0===t?void 0:t.kernel)&&void 0!==n?n:null}register_model(e,t){super.register_model(e,t),this.setDirty()}async clear_state(){await super.clear_state(),this.setDirty()}setDirty(){this._settings.saveState&&(this._context.model.dirty=!0)}}const j="1.0.0";class B extends v.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"OutputModel",_view_name:"OutputView",_model_module:"@jupyter-widgets/output",_view_module:"@jupyter-widgets/output",_model_module_version:j,_view_module_version:j})}}class z extends v.DOMWidgetView{}var F=n(72673),$=n(18044),U=n(34651),q=n.n(U);const V=j;class H extends B{defaults(){return Object.assign(Object.assign({},super.defaults()),{msg_id:"",outputs:[]})}initialize(e,t){super.initialize(e,t),this._outputs=new F.c({trusted:!0}),this._msgHook=e=>(this.add(e),!1),this.widget_manager instanceof R&&this.widget_manager.context.sessionContext.kernelChanged.connect(((e,t)=>{this._handleKernelChanged(t)})),this.listenTo(this,"change:msg_id",this.reset_msg_id),this.listenTo(this,"change:outputs",this.setOutputs),this.setOutputs()}_handleKernelChanged({oldValue:e}){const t=this.get("msg_id");t&&e&&(e.removeMessageHook(t,this._msgHook),this.set("msg_id",null))}reset_msg_id(){const e=this.widget_manager.kernel,t=this.get("msg_id"),n=this.previous("msg_id");n&&e&&e.removeMessageHook(n,this._msgHook),t&&e&&e.registerMessageHook(t,this._msgHook)}add(e){const t=e.header.msg_type;switch(t){case"execute_result":case"display_data":case"stream":case"error":{const n=e.content;n.output_type=t,this._outputs.add(n);break}case"clear_output":this.clear_output(e.content.wait)}this.set("outputs",this._outputs.toJSON(),{newMessage:!0}),this.save_changes()}clear_output(e=!1){this._outputs.clear(e)}get outputs(){return this._outputs}setOutputs(e,t,n){n&&n.newMessage||(this.clear_output(),this._outputs.fromJSON(JSON.parse(JSON.stringify(this.get("outputs")))))}}class W extends z{_createElement(e){return this.luminoWidget=new v.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=q()(this.luminoWidget.node)}render(){super.render(),this._outputView=new $.Bw({rendermime:this.model.widget_manager.rendermime,contentFactory:$.Bw.defaultContentFactory,model:this.model.outputs}),this.luminoWidget.insertWidget(0,this._outputView),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-output"),this.update()}remove(){return this._outputView.dispose(),super.remove()}}var K=n(19874),G=n(17883),J=n(10509);const X=[],Y={saveState:!1};function*Q(...e){for(const t of e)yield*t}async function Z(e){return await e.ready,e.session.kernel.id}async function ee(e,t,n,i,r){const s=await Z(t);let o,a=ce.widgetManagerProperty.get(s);a||(a=r(),X.forEach((e=>a.register(e))),ce.widgetManagerProperty.set(s,a),o=s,e.disposed.connect((e=>{ce.widgetManagerProperty.get(o)&&ce.widgetManagerProperty.delete(o)})),t.kernelChanged.connect(((e,t)=>{const{newValue:n}=t;if(n){const e=n.id,t=ce.widgetManagerProperty.get(o);t&&(ce.widgetManagerProperty.delete(o),ce.widgetManagerProperty.set(e,t)),o=e}})));for(const e of i)e.manager=a;return n.removeMimeType(P),n.addFactory({safe:!1,mimeTypes:[P],createRenderer:e=>new g(e,a)},-10),new f.DisposableDelegate((()=>{n&&n.removeMimeType(P),a.dispose()}))}function te(e,t,n){let i;const r=Z(e.sessionContext).then((r=>{const s=ce.widgetManagerProperty.get(r);s?i=s:(i=new R(e,t,Y),X.forEach((e=>i.register(e))),ce.widgetManagerProperty.set(r,i));for(const e of n)e.manager=i;t.removeMimeType(P),t.addFactory({safe:!1,mimeTypes:[P],createRenderer:e=>new g(e,i)},-10)}));return new f.DisposableDelegate((async()=>{await r,t&&t.removeMimeType(P),i.dispose()}))}async function ne(e,t){const n=e.content,i=e.context,r=i.sessionContext,s=n.rendermime;return ee(n,r,s,t,(()=>new R(i,s,Y)))}async function ie(e,t){const n=e.console,i=n.sessionContext,r=n.rendermime;return ee(n,i,r,t,(()=>new D(i.session.kernel,r)))}const re={id:"@jupyter-widgets/jupyterlab-manager:plugin",requires:[u.N3],optional:[a,o,s,l,c,J.sQ],provides:v.IJupyterWidgetRegistry,activate:function(e,t,n,i,r,s,o,a){const{commands:l}=e,u=(null!=a?a:J.wK).load("jupyterlab_widgets"),c=async e=>{if(!o)return;const t=await Z(e.context.sessionContext),n=ce.widgetManagerProperty.get(t);n&&n.onUnhandledIOPubMessage.connect(((t,n)=>{const i=o.getLogger(e.context.path);let r="warning";(G.KernelMessage.isErrorMsg(n)||G.KernelMessage.isStreamMsg(n)&&"stderr"===n.content.name)&&(r="error");const s=Object.assign(Object.assign({},n.content),{output_type:n.header.msg_type});i.rendermime=e.content.rendermime,i.log({type:"output",data:s,level:r})}))};if(null!==r&&r.load(re.id).then((e=>{e.changed.connect(se),se(e)})).catch((e=>{console.error(e.message)})),t.addFactory({safe:!1,mimeTypes:[P],createRenderer:e=>new g(e)},-10),null!==n){const t=t=>Q(function*(e){for(const t of e.widgets)if("code"===t.model.type)for(const e of t.outputArea.widgets)for(const t of Array.from(e.children()))t instanceof g&&(yield t)}(t.content),function*(e,t){const n=function*(e){for(const i of e)(n=i).id.startsWith("LinkedOutputView-")&&n.path===t&&(yield i);var n}(e.shell.widgets());for(const e of Array.from(n))for(const t of Array.from(e.children()))for(const e of Array.from(t.children()))e instanceof g&&(yield e)}(e,t.context.path));n.forEach((async e=>{await ne(e,t(e)),c(e)})),n.widgetAdded.connect((async(e,n)=>{await ne(n,t(n)),c(n)}))}if(null!==i){const e=e=>Q(function*(e){for(const t of Array.from(e.cells))if("code"===t.model.type)for(const e of t.outputArea.widgets)for(const t of Array.from(e.children()))t instanceof g&&(yield t)}(e.console));i.forEach((async t=>{await ie(t,e(t))})),i.widgetAdded.connect((async(t,n)=>{await ie(n,e(n))}))}return null!==r&&l.addCommand("@jupyter-widgets/jupyterlab-manager:saveWidgetState",{label:u.__("Save Widget State Automatically"),execute:e=>r.set(re.id,"saveState",!Y.saveState).catch((e=>{console.error(`Failed to set ${re.id}: ${e.message}`)})),isToggled:()=>Y.saveState}),s&&s.settingsMenu.addGroup([{command:"@jupyter-widgets/jupyterlab-manager:saveWidgetState"}]),{registerWidget(e){X.push(e)}}},autoStart:!0};function se(e){Y.saveState=e.get("saveState").composite}const oe={id:`@jupyter-widgets/jupyterlab-manager:base-${v.JUPYTER_WIDGETS_VERSION}`,requires:[v.IJupyterWidgetRegistry],autoStart:!0,activate:(e,t)=>{t.registerWidget({name:"@jupyter-widgets/base",version:v.JUPYTER_WIDGETS_VERSION,exports:{WidgetModel:v.WidgetModel,WidgetView:v.WidgetView,DOMWidgetView:v.DOMWidgetView,DOMWidgetModel:v.DOMWidgetModel,LayoutModel:v.LayoutModel,LayoutView:v.LayoutView,StyleModel:v.StyleModel,StyleView:v.StyleView,ErrorWidgetView:v.ErrorWidgetView}})}},ae={id:`@jupyter-widgets/jupyterlab-manager:controls-${K.A}`,requires:[v.IJupyterWidgetRegistry],autoStart:!0,activate:(e,t)=>{t.registerWidget({name:"@jupyter-widgets/controls",version:K.A,exports:()=>new Promise(((e,t)=>{Promise.resolve().then((t=>{e(n(75803))}).bind(null,n)).catch((e=>{t(e)}))}))})}},le={id:`@jupyter-widgets/jupyterlab-manager:output-${V}`,requires:[v.IJupyterWidgetRegistry],autoStart:!0,activate:(e,t)=>{t.registerWidget({name:"@jupyter-widgets/output",version:V,exports:{OutputModel:H,OutputView:W}})}},ue=[re,oe,ae,le];var ce;!function(e){e.widgetManagerProperty=new Map}(ce||(ce={}));const de=ue},71530:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.attributeNames=t.elementNames=void 0,t.elementNames=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((function(e){return[e.toLowerCase(),e]}))),t.attributeNames=new Map(["definitionURL","attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((function(e){return[e.toLowerCase(),e]})))},35552:function(e,t,n){"use strict";var i=this&&this.__assign||function(){return i=Object.assign||function(e){for(var t,n=1,i=arguments.length;n");case a.Comment:return"\x3c!--".concat(e.data,"--\x3e");case a.CDATA:return function(e){return"")}(e);case a.Script:case a.Style:case a.Tag:return function(e,t){var n;"foreign"===t.xmlMode&&(e.name=null!==(n=u.elementNames.get(e.name))&&void 0!==n?n:e.name,e.parent&&m.has(e.parent.name)&&(t=i(i({},t),{xmlMode:!1}))),!t.xmlMode&&g.has(e.name)&&(t=i(i({},t),{xmlMode:"foreign"}));var r="<".concat(e.name),s=function(e,t){var n;if(e){var i=!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)?d:t.xmlMode||"utf8"!==t.encodeEntities?l.encodeXML:l.escapeAttribute;return Object.keys(e).map((function(n){var r,s,o=null!==(r=e[n])&&void 0!==r?r:"";return"foreign"===t.xmlMode&&(n=null!==(s=u.attributeNames.get(n))&&void 0!==s?s:n),t.emptyAttrs||t.xmlMode||""!==o?"".concat(n,'="').concat(i(o),'"'):n})).join(" ")}}(e.attribs,t);return s&&(r+=" ".concat(s)),0===e.children.length&&(t.xmlMode?!1!==t.selfClosingTags:t.selfClosingTags&&h.has(e.name))?(t.xmlMode||(r+=" "),r+="/>"):(r+=">",e.children.length>0&&(r+=p(e.children,t)),!t.xmlMode&&h.has(e.name)||(r+=""))),r}(e,t);case a.Text:return function(e,t){var n,i=e.data||"";return!1===(null!==(n=t.encodeEntities)&&void 0!==n?n:t.decodeEntities)||!t.xmlMode&&e.parent&&c.has(e.parent.name)||(i=t.xmlMode||"utf8"!==t.encodeEntities?(0,l.encodeXML)(i):(0,l.escapeText)(i)),i}(e,t)}}t.render=p,t.default=p;var m=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignObject","desc","title"]),g=new Set(["svg","math"])},52159:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.DomHandler=void 0;var s=n(93338),o=n(84879);r(n(84879),t);var a={withStartIndices:!1,withEndIndices:!1,xmlMode:!1},l=function(){function e(e,t,n){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null,"function"==typeof t&&(n=t,t=a),"object"==typeof e&&(t=e,e=void 0),this.callback=null!=e?e:null,this.options=null!=t?t:a,this.elementCB=null!=n?n:null}return e.prototype.onparserinit=function(e){this.parser=e},e.prototype.onreset=function(){this.dom=[],this.root=new o.Document(this.dom),this.done=!1,this.tagStack=[this.root],this.lastNode=null,this.parser=null},e.prototype.onend=function(){this.done||(this.done=!0,this.parser=null,this.handleCallback(null))},e.prototype.onerror=function(e){this.handleCallback(e)},e.prototype.onclosetag=function(){this.lastNode=null;var e=this.tagStack.pop();this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),this.elementCB&&this.elementCB(e)},e.prototype.onopentag=function(e,t){var n=this.options.xmlMode?s.ElementType.Tag:void 0,i=new o.Element(e,t,void 0,n);this.addNode(i),this.tagStack.push(i)},e.prototype.ontext=function(e){var t=this.lastNode;if(t&&t.type===s.ElementType.Text)t.data+=e,this.options.withEndIndices&&(t.endIndex=this.parser.endIndex);else{var n=new o.Text(e);this.addNode(n),this.lastNode=n}},e.prototype.oncomment=function(e){if(this.lastNode&&this.lastNode.type===s.ElementType.Comment)this.lastNode.data+=e;else{var t=new o.Comment(e);this.addNode(t),this.lastNode=t}},e.prototype.oncommentend=function(){this.lastNode=null},e.prototype.oncdatastart=function(){var e=new o.Text(""),t=new o.CDATA([e]);this.addNode(t),e.parent=t,this.lastNode=e},e.prototype.oncdataend=function(){this.lastNode=null},e.prototype.onprocessinginstruction=function(e,t){var n=new o.ProcessingInstruction(e,t);this.addNode(n)},e.prototype.handleCallback=function(e){if("function"==typeof this.callback)this.callback(e,this.dom);else if(e)throw e},e.prototype.addNode=function(e){var t=this.tagStack[this.tagStack.length-1],n=t.children[t.children.length-1];this.options.withStartIndices&&(e.startIndex=this.parser.startIndex),this.options.withEndIndices&&(e.endIndex=this.parser.endIndex),t.children.push(e),n&&(e.prev=n,n.next=e),e.parent=t,this.lastNode=null},e}();t.DomHandler=l,t.default=l},84879:function(e,t,n){"use strict";var i,r=this&&this.__extends||(i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},i(e,t)},function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}i(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),s=this&&this.__assign||function(){return s=Object.assign||function(e){for(var t,n=1,i=arguments.length;n0?this.children[this.children.length-1]:null},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"childNodes",{get:function(){return this.children},set:function(e){this.children=e},enumerable:!1,configurable:!0}),t}(a);t.NodeWithChildren=h;var p=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.CDATA,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 4},enumerable:!1,configurable:!0}),t}(h);t.CDATA=p;var f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.type=o.ElementType.Root,t}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 9},enumerable:!1,configurable:!0}),t}(h);t.Document=f;var m=function(e){function t(t,n,i,r){void 0===i&&(i=[]),void 0===r&&(r="script"===t?o.ElementType.Script:"style"===t?o.ElementType.Style:o.ElementType.Tag);var s=e.call(this,i)||this;return s.name=t,s.attribs=n,s.type=r,s}return r(t,e),Object.defineProperty(t.prototype,"nodeType",{get:function(){return 1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"tagName",{get:function(){return this.name},set:function(e){this.name=e},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"attributes",{get:function(){var e=this;return Object.keys(this.attribs).map((function(t){var n,i;return{name:t,value:e.attribs[t],namespace:null===(n=e["x-attribsNamespace"])||void 0===n?void 0:n[t],prefix:null===(i=e["x-attribsPrefix"])||void 0===i?void 0:i[t]}}))},enumerable:!1,configurable:!0}),t}(h);function g(e){return(0,o.isTag)(e)}function v(e){return e.type===o.ElementType.CDATA}function _(e){return e.type===o.ElementType.Text}function b(e){return e.type===o.ElementType.Comment}function y(e){return e.type===o.ElementType.Directive}function w(e){return e.type===o.ElementType.Root}function x(e,t){var n;if(void 0===t&&(t=!1),_(e))n=new u(e.data);else if(b(e))n=new c(e.data);else if(g(e)){var i=t?S(e.children):[],r=new m(e.name,s({},e.attribs),i);i.forEach((function(e){return e.parent=r})),null!=e.namespace&&(r.namespace=e.namespace),e["x-attribsNamespace"]&&(r["x-attribsNamespace"]=s({},e["x-attribsNamespace"])),e["x-attribsPrefix"]&&(r["x-attribsPrefix"]=s({},e["x-attribsPrefix"])),n=r}else if(v(e)){i=t?S(e.children):[];var o=new p(i);i.forEach((function(e){return e.parent=o})),n=o}else if(w(e)){i=t?S(e.children):[];var a=new f(i);i.forEach((function(e){return e.parent=a})),e["x-mode"]&&(a["x-mode"]=e["x-mode"]),n=a}else{if(!y(e))throw new Error("Not implemented yet: ".concat(e.type));var l=new d(e.name,e.data);null!=e["x-name"]&&(l["x-name"]=e["x-name"],l["x-publicId"]=e["x-publicId"],l["x-systemId"]=e["x-systemId"]),n=l}return n.startIndex=e.startIndex,n.endIndex=e.endIndex,null!=e.sourceCodeLocation&&(n.sourceCodeLocation=e.sourceCodeLocation),n}function S(e){for(var t=e.map((function(e){return x(e,!0)})),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFeed=void 0;var i=n(51523),r=n(82839);t.getFeed=function(e){var t=l(d,e);return t?"feed"===t.name?function(e){var t,n=e.children,i={type:"atom",items:(0,r.getElementsByTagName)("entry",n).map((function(e){var t,n=e.children,i={media:a(n)};c(i,"id","id",n),c(i,"title","title",n);var r=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;r&&(i.link=r);var s=u("summary",n)||u("content",n);s&&(i.description=s);var o=u("updated",n);return o&&(i.pubDate=new Date(o)),i}))};c(i,"id","id",n),c(i,"title","title",n);var s=null===(t=l("link",n))||void 0===t?void 0:t.attribs.href;s&&(i.link=s),c(i,"description","subtitle",n);var o=u("updated",n);return o&&(i.updated=new Date(o)),c(i,"author","email",n,!0),i}(t):function(e){var t,n,i=null!==(n=null===(t=l("channel",e.children))||void 0===t?void 0:t.children)&&void 0!==n?n:[],s={type:e.name.substr(0,3),id:"",items:(0,r.getElementsByTagName)("item",e.children).map((function(e){var t=e.children,n={media:a(t)};c(n,"id","guid",t),c(n,"title","title",t),c(n,"link","link",t),c(n,"description","description",t);var i=u("pubDate",t)||u("dc:date",t);return i&&(n.pubDate=new Date(i)),n}))};c(s,"title","title",i),c(s,"link","link",i),c(s,"description","description",i);var o=u("lastBuildDate",i);return o&&(s.updated=new Date(o)),c(s,"author","managingEditor",i,!0),s}(t):null};var s=["url","type","lang"],o=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function a(e){return(0,r.getElementsByTagName)("media:content",e).map((function(e){for(var t=e.attribs,n={medium:t.medium,isDefault:!!t.isDefault},i=0,r=s;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uniqueSort=t.compareDocumentPosition=t.DocumentPosition=t.removeSubsets=void 0;var i,r=n(52159);function s(e,t){var n=[],s=[];if(e===t)return 0;for(var o=(0,r.hasChildren)(e)?e:e.parent;o;)n.unshift(o),o=o.parent;for(o=(0,r.hasChildren)(t)?t:t.parent;o;)s.unshift(o),o=o.parent;for(var a=Math.min(n.length,s.length),l=0;lc.indexOf(h)?u===t?i.FOLLOWING|i.CONTAINED_BY:i.FOLLOWING:u===e?i.PRECEDING|i.CONTAINS:i.PRECEDING}t.removeSubsets=function(e){for(var t=e.length;--t>=0;){var n=e[t];if(t>0&&e.lastIndexOf(n,t-1)>=0)e.splice(t,1);else for(var i=n.parent;i;i=i.parent)if(e.includes(i)){e.splice(t,1);break}}return e},function(e){e[e.DISCONNECTED=1]="DISCONNECTED",e[e.PRECEDING=2]="PRECEDING",e[e.FOLLOWING=4]="FOLLOWING",e[e.CONTAINS=8]="CONTAINS",e[e.CONTAINED_BY=16]="CONTAINED_BY"}(i=t.DocumentPosition||(t.DocumentPosition={})),t.compareDocumentPosition=s,t.uniqueSort=function(e){return(e=e.filter((function(e,t,n){return!n.includes(e,t+1)}))).sort((function(e,t){var n=s(e,t);return n&i.PRECEDING?-1:n&i.FOLLOWING?1:0})),e}},69086:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.hasChildren=t.isDocument=t.isComment=t.isText=t.isCDATA=t.isTag=void 0,r(n(51523),t),r(n(54484),t),r(n(17549),t),r(n(31480),t),r(n(82839),t),r(n(62591),t),r(n(52615),t);var s=n(52159);Object.defineProperty(t,"isTag",{enumerable:!0,get:function(){return s.isTag}}),Object.defineProperty(t,"isCDATA",{enumerable:!0,get:function(){return s.isCDATA}}),Object.defineProperty(t,"isText",{enumerable:!0,get:function(){return s.isText}}),Object.defineProperty(t,"isComment",{enumerable:!0,get:function(){return s.isComment}}),Object.defineProperty(t,"isDocument",{enumerable:!0,get:function(){return s.isDocument}}),Object.defineProperty(t,"hasChildren",{enumerable:!0,get:function(){return s.hasChildren}})},82839:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getElementsByTagType=t.getElementsByTagName=t.getElementById=t.getElements=t.testElement=void 0;var i=n(52159),r=n(31480),s={tag_name:function(e){return"function"==typeof e?function(t){return(0,i.isTag)(t)&&e(t.name)}:"*"===e?i.isTag:function(t){return(0,i.isTag)(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return(0,i.isText)(t)&&e(t.data)}:function(t){return(0,i.isText)(t)&&t.data===e}}};function o(e,t){return"function"==typeof t?function(n){return(0,i.isTag)(n)&&t(n.attribs[e])}:function(n){return(0,i.isTag)(n)&&n.attribs[e]===t}}function a(e,t){return function(n){return e(n)||t(n)}}function l(e){var t=Object.keys(e).map((function(t){var n=e[t];return Object.prototype.hasOwnProperty.call(s,t)?s[t](n):o(t,n)}));return 0===t.length?null:t.reduce(a)}t.testElement=function(e,t){var n=l(e);return!n||n(t)},t.getElements=function(e,t,n,i){void 0===i&&(i=1/0);var s=l(e);return s?(0,r.filter)(s,t,n,i):[]},t.getElementById=function(e,t,n){return void 0===n&&(n=!0),Array.isArray(t)||(t=[t]),(0,r.findOne)(o("id",e),t,n)},t.getElementsByTagName=function(e,t,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),(0,r.filter)(s.tag_name(e),t,n,i)},t.getElementsByTagType=function(e,t,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),(0,r.filter)(s.tag_type(e),t,n,i)}},17549:(e,t)=>{"use strict";function n(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children,n=t.lastIndexOf(e);n>=0&&t.splice(n,1)}e.next=null,e.prev=null,e.parent=null}Object.defineProperty(t,"__esModule",{value:!0}),t.prepend=t.prependChild=t.append=t.appendChild=t.replaceElement=t.removeElement=void 0,t.removeElement=n,t.replaceElement=function(e,t){var n=t.prev=e.prev;n&&(n.next=t);var i=t.next=e.next;i&&(i.prev=t);var r=t.parent=e.parent;if(r){var s=r.children;s[s.lastIndexOf(e)]=t,e.parent=null}},t.appendChild=function(e,t){if(n(t),t.next=null,t.parent=e,e.children.push(t)>1){var i=e.children[e.children.length-2];i.next=t,t.prev=i}else t.prev=null},t.append=function(e,t){n(t);var i=e.parent,r=e.next;if(t.next=r,t.prev=e,e.next=t,t.parent=i,r){if(r.prev=t,i){var s=i.children;s.splice(s.lastIndexOf(r),0,t)}}else i&&i.children.push(t)},t.prependChild=function(e,t){if(n(t),t.parent=e,t.prev=null,1!==e.children.unshift(t)){var i=e.children[1];i.prev=t,t.next=i}else t.next=null},t.prepend=function(e,t){n(t);var i=e.parent;if(i){var r=i.children;r.splice(r.indexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=i,t.prev=e.prev,t.next=e,e.prev=t}},31480:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.findAll=t.existsOne=t.findOne=t.findOneChild=t.find=t.filter=void 0;var i=n(52159);function r(e,t,n,r){for(var s=[],o=[t],a=[0];;)if(a[0]>=o[0].length){if(1===a.length)return s;o.shift(),a.shift()}else{var l=o[0][a[0]++];if(e(l)&&(s.push(l),--r<=0))return s;n&&(0,i.hasChildren)(l)&&l.children.length>0&&(a.unshift(0),o.unshift(l.children))}}t.filter=function(e,t,n,i){return void 0===n&&(n=!0),void 0===i&&(i=1/0),r(e,Array.isArray(t)?t:[t],n,i)},t.find=r,t.findOneChild=function(e,t){return t.find(e)},t.findOne=function e(t,n,r){void 0===r&&(r=!0);for(var s=null,o=0;o0&&(s=e(t,a.children,!0)))}return s},t.existsOne=function e(t,n){return n.some((function(n){return(0,i.isTag)(n)&&(t(n)||e(t,n.children))}))},t.findAll=function(e,t){for(var n=[],r=[t],s=[0];;)if(s[0]>=r[0].length){if(1===r.length)return n;r.shift(),s.shift()}else{var o=r[0][s[0]++];(0,i.isTag)(o)&&(e(o)&&n.push(o),o.children.length>0&&(s.unshift(0),r.unshift(o.children)))}}},51523:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.innerText=t.textContent=t.getText=t.getInnerHTML=t.getOuterHTML=void 0;var r=n(52159),s=i(n(35552)),o=n(93338);function a(e,t){return(0,s.default)(e,t)}t.getOuterHTML=a,t.getInnerHTML=function(e,t){return(0,r.hasChildren)(e)?e.children.map((function(e){return a(e,t)})).join(""):""},t.getText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,r.isTag)(t)?"br"===t.name?"\n":e(t.children):(0,r.isCDATA)(t)?e(t.children):(0,r.isText)(t)?t.data:""},t.textContent=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,r.hasChildren)(t)&&!(0,r.isComment)(t)?e(t.children):(0,r.isText)(t)?t.data:""},t.innerText=function e(t){return Array.isArray(t)?t.map(e).join(""):(0,r.hasChildren)(t)&&(t.type===o.ElementType.Tag||(0,r.isCDATA)(t))?e(t.children):(0,r.isText)(t)?t.data:""}},54484:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.prevElementSibling=t.nextElementSibling=t.getName=t.hasAttrib=t.getAttributeValue=t.getSiblings=t.getParent=t.getChildren=void 0;var i=n(52159);function r(e){return(0,i.hasChildren)(e)?e.children:[]}function s(e){return e.parent||null}t.getChildren=r,t.getParent=s,t.getSiblings=function(e){var t=s(e);if(null!=t)return r(t);for(var n=[e],i=e.prev,o=e.next;null!=i;)n.unshift(i),i=i.prev;for(;null!=o;)n.push(o),o=o.next;return n},t.getAttributeValue=function(e,t){var n;return null===(n=e.attribs)||void 0===n?void 0:n[t]},t.hasAttrib=function(e,t){return null!=e.attribs&&Object.prototype.hasOwnProperty.call(e.attribs,t)&&null!=e.attribs[t]},t.getName=function(e){return e.name},t.nextElementSibling=function(e){for(var t=e.next;null!==t&&!(0,i.isTag)(t);)t=t.next;return t},t.prevElementSibling=function(e){for(var t=e.prev;null!==t&&!(0,i.isTag)(t);)t=t.prev;return t}},82978:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Parser=void 0;var o=s(n(28544)),a=n(3379),l=new Set(["input","option","optgroup","select","button","datalist","textarea"]),u=new Set(["p"]),c=new Set(["thead","tbody"]),d=new Set(["dd","dt"]),h=new Set(["rt","rp"]),p=new Map([["tr",new Set(["tr","th","td"])],["th",new Set(["th"])],["td",new Set(["thead","th","td"])],["body",new Set(["head","link","script"])],["li",new Set(["li"])],["p",u],["h1",u],["h2",u],["h3",u],["h4",u],["h5",u],["h6",u],["select",l],["input",l],["output",l],["button",l],["datalist",l],["textarea",l],["option",new Set(["option"])],["optgroup",new Set(["optgroup","option"])],["dd",d],["dt",d],["address",u],["article",u],["aside",u],["blockquote",u],["details",u],["div",u],["dl",u],["fieldset",u],["figcaption",u],["figure",u],["footer",u],["form",u],["header",u],["hr",u],["main",u],["nav",u],["ol",u],["pre",u],["section",u],["table",u],["ul",u],["rt",h],["rp",h],["tbody",c],["tfoot",c]]),f=new Set(["area","base","basefont","br","col","command","embed","frame","hr","img","input","isindex","keygen","link","meta","param","source","track","wbr"]),m=new Set(["math","svg"]),g=new Set(["mi","mo","mn","ms","mtext","annotation-xml","foreignobject","desc","title"]),v=/\s|\//,_=function(){function e(e,t){var n,i,r,s,a;void 0===t&&(t={}),this.options=t,this.startIndex=0,this.endIndex=0,this.openTagStart=0,this.tagname="",this.attribname="",this.attribvalue="",this.attribs=null,this.stack=[],this.foreignContext=[],this.buffers=[],this.bufferOffset=0,this.writeIndex=0,this.ended=!1,this.cbs=null!=e?e:{},this.lowerCaseTagNames=null!==(n=t.lowerCaseTags)&&void 0!==n?n:!t.xmlMode,this.lowerCaseAttributeNames=null!==(i=t.lowerCaseAttributeNames)&&void 0!==i?i:!t.xmlMode,this.tokenizer=new(null!==(r=t.Tokenizer)&&void 0!==r?r:o.default)(this.options,this),null===(a=(s=this.cbs).onparserinit)||void 0===a||a.call(s,this)}return e.prototype.ontext=function(e,t){var n,i,r=this.getSlice(e,t);this.endIndex=t-1,null===(i=(n=this.cbs).ontext)||void 0===i||i.call(n,r),this.startIndex=t},e.prototype.ontextentity=function(e){var t,n,i=this.tokenizer.getSectionStart();this.endIndex=i-1,null===(n=(t=this.cbs).ontext)||void 0===n||n.call(t,(0,a.fromCodePoint)(e)),this.startIndex=i},e.prototype.isVoidElement=function(e){return!this.options.xmlMode&&f.has(e)},e.prototype.onopentagname=function(e,t){this.endIndex=t;var n=this.getSlice(e,t);this.lowerCaseTagNames&&(n=n.toLowerCase()),this.emitOpenTag(n)},e.prototype.emitOpenTag=function(e){var t,n,i,r;this.openTagStart=this.startIndex,this.tagname=e;var s=!this.options.xmlMode&&p.get(e);if(s)for(;this.stack.length>0&&s.has(this.stack[this.stack.length-1]);){var o=this.stack.pop();null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,o,!0)}this.isVoidElement(e)||(this.stack.push(e),m.has(e)?this.foreignContext.push(!0):g.has(e)&&this.foreignContext.push(!1)),null===(r=(i=this.cbs).onopentagname)||void 0===r||r.call(i,e),this.cbs.onopentag&&(this.attribs={})},e.prototype.endOpenTag=function(e){var t,n;this.startIndex=this.openTagStart,this.attribs&&(null===(n=(t=this.cbs).onopentag)||void 0===n||n.call(t,this.tagname,this.attribs,e),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""},e.prototype.onopentagend=function(e){this.endIndex=e,this.endOpenTag(!1),this.startIndex=e+1},e.prototype.onclosetag=function(e,t){var n,i,r,s,o,a;this.endIndex=t;var l=this.getSlice(e,t);if(this.lowerCaseTagNames&&(l=l.toLowerCase()),(m.has(l)||g.has(l))&&this.foreignContext.pop(),this.isVoidElement(l))this.options.xmlMode||"br"!==l||(null===(i=(n=this.cbs).onopentagname)||void 0===i||i.call(n,"br"),null===(s=(r=this.cbs).onopentag)||void 0===s||s.call(r,"br",{},!0),null===(a=(o=this.cbs).onclosetag)||void 0===a||a.call(o,"br",!1));else{var u=this.stack.lastIndexOf(l);if(-1!==u)if(this.cbs.onclosetag)for(var c=this.stack.length-u;c--;)this.cbs.onclosetag(this.stack.pop(),0!==c);else this.stack.length=u;else this.options.xmlMode||"p"!==l||(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=t+1},e.prototype.onselfclosingtag=function(e){this.endIndex=e,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=e+1):this.onopentagend(e)},e.prototype.closeCurrentTag=function(e){var t,n,i=this.tagname;this.endOpenTag(e),this.stack[this.stack.length-1]===i&&(null===(n=(t=this.cbs).onclosetag)||void 0===n||n.call(t,i,!e),this.stack.pop())},e.prototype.onattribname=function(e,t){this.startIndex=e;var n=this.getSlice(e,t);this.attribname=this.lowerCaseAttributeNames?n.toLowerCase():n},e.prototype.onattribdata=function(e,t){this.attribvalue+=this.getSlice(e,t)},e.prototype.onattribentity=function(e){this.attribvalue+=(0,a.fromCodePoint)(e)},e.prototype.onattribend=function(e,t){var n,i;this.endIndex=t,null===(i=(n=this.cbs).onattribute)||void 0===i||i.call(n,this.attribname,this.attribvalue,e===o.QuoteType.Double?'"':e===o.QuoteType.Single?"'":e===o.QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""},e.prototype.getInstructionName=function(e){var t=e.search(v),n=t<0?e:e.substr(0,t);return this.lowerCaseTagNames&&(n=n.toLowerCase()),n},e.prototype.ondeclaration=function(e,t){this.endIndex=t;var n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(n);this.cbs.onprocessinginstruction("!".concat(i),"!".concat(n))}this.startIndex=t+1},e.prototype.onprocessinginstruction=function(e,t){this.endIndex=t;var n=this.getSlice(e,t);if(this.cbs.onprocessinginstruction){var i=this.getInstructionName(n);this.cbs.onprocessinginstruction("?".concat(i),"?".concat(n))}this.startIndex=t+1},e.prototype.oncomment=function(e,t,n){var i,r,s,o;this.endIndex=t,null===(r=(i=this.cbs).oncomment)||void 0===r||r.call(i,this.getSlice(e,t-n)),null===(o=(s=this.cbs).oncommentend)||void 0===o||o.call(s),this.startIndex=t+1},e.prototype.oncdata=function(e,t,n){var i,r,s,o,a,l,u,c,d,h;this.endIndex=t;var p=this.getSlice(e,t-n);this.options.xmlMode||this.options.recognizeCDATA?(null===(r=(i=this.cbs).oncdatastart)||void 0===r||r.call(i),null===(o=(s=this.cbs).ontext)||void 0===o||o.call(s,p),null===(l=(a=this.cbs).oncdataend)||void 0===l||l.call(a)):(null===(c=(u=this.cbs).oncomment)||void 0===c||c.call(u,"[CDATA[".concat(p,"]]")),null===(h=(d=this.cbs).oncommentend)||void 0===h||h.call(d)),this.startIndex=t+1},e.prototype.onend=function(){var e,t;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(var n=this.stack.length;n>0;this.cbs.onclosetag(this.stack[--n],!0));}null===(t=(e=this.cbs).onend)||void 0===t||t.call(e)},e.prototype.reset=function(){var e,t,n,i;null===(t=(e=this.cbs).onreset)||void 0===t||t.call(e),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,null===(i=(n=this.cbs).onparserinit)||void 0===i||i.call(n,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1},e.prototype.parseComplete=function(e){this.reset(),this.end(e)},e.prototype.getSlice=function(e,t){for(;e-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();for(var n=this.buffers[0].slice(e-this.bufferOffset,t-this.bufferOffset);t-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),n+=this.buffers[0].slice(0,t-this.bufferOffset);return n},e.prototype.shiftBuffer=function(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()},e.prototype.write=function(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,new Error(".write() after done!")):(this.buffers.push(e),this.tokenizer.running&&(this.tokenizer.write(e),this.writeIndex++))},e.prototype.end=function(e){var t,n;this.ended?null===(n=(t=this.cbs).onerror)||void 0===n||n.call(t,new Error(".end() after done!")):(e&&this.write(e),this.ended=!0,this.tokenizer.end())},e.prototype.pause=function(){this.tokenizer.pause()},e.prototype.resume=function(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndex{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.QuoteType=void 0;var i,r,s,o=n(3379);function a(e){return e===i.Space||e===i.NewLine||e===i.Tab||e===i.FormFeed||e===i.CarriageReturn}function l(e){return e===i.Slash||e===i.Gt||a(e)}function u(e){return e>=i.Zero&&e<=i.Nine}!function(e){e[e.Tab=9]="Tab",e[e.NewLine=10]="NewLine",e[e.FormFeed=12]="FormFeed",e[e.CarriageReturn=13]="CarriageReturn",e[e.Space=32]="Space",e[e.ExclamationMark=33]="ExclamationMark",e[e.Number=35]="Number",e[e.Amp=38]="Amp",e[e.SingleQuote=39]="SingleQuote",e[e.DoubleQuote=34]="DoubleQuote",e[e.Dash=45]="Dash",e[e.Slash=47]="Slash",e[e.Zero=48]="Zero",e[e.Nine=57]="Nine",e[e.Semi=59]="Semi",e[e.Lt=60]="Lt",e[e.Eq=61]="Eq",e[e.Gt=62]="Gt",e[e.Questionmark=63]="Questionmark",e[e.UpperA=65]="UpperA",e[e.LowerA=97]="LowerA",e[e.UpperF=70]="UpperF",e[e.LowerF=102]="LowerF",e[e.UpperZ=90]="UpperZ",e[e.LowerZ=122]="LowerZ",e[e.LowerX=120]="LowerX",e[e.OpeningSquareBracket=91]="OpeningSquareBracket"}(i||(i={})),function(e){e[e.Text=1]="Text",e[e.BeforeTagName=2]="BeforeTagName",e[e.InTagName=3]="InTagName",e[e.InSelfClosingTag=4]="InSelfClosingTag",e[e.BeforeClosingTagName=5]="BeforeClosingTagName",e[e.InClosingTagName=6]="InClosingTagName",e[e.AfterClosingTagName=7]="AfterClosingTagName",e[e.BeforeAttributeName=8]="BeforeAttributeName",e[e.InAttributeName=9]="InAttributeName",e[e.AfterAttributeName=10]="AfterAttributeName",e[e.BeforeAttributeValue=11]="BeforeAttributeValue",e[e.InAttributeValueDq=12]="InAttributeValueDq",e[e.InAttributeValueSq=13]="InAttributeValueSq",e[e.InAttributeValueNq=14]="InAttributeValueNq",e[e.BeforeDeclaration=15]="BeforeDeclaration",e[e.InDeclaration=16]="InDeclaration",e[e.InProcessingInstruction=17]="InProcessingInstruction",e[e.BeforeComment=18]="BeforeComment",e[e.CDATASequence=19]="CDATASequence",e[e.InSpecialComment=20]="InSpecialComment",e[e.InCommentLike=21]="InCommentLike",e[e.BeforeSpecialS=22]="BeforeSpecialS",e[e.SpecialStartSequence=23]="SpecialStartSequence",e[e.InSpecialTag=24]="InSpecialTag",e[e.BeforeEntity=25]="BeforeEntity",e[e.BeforeNumericEntity=26]="BeforeNumericEntity",e[e.InNamedEntity=27]="InNamedEntity",e[e.InNumericEntity=28]="InNumericEntity",e[e.InHexEntity=29]="InHexEntity"}(r||(r={})),function(e){e[e.NoValue=0]="NoValue",e[e.Unquoted=1]="Unquoted",e[e.Single=2]="Single",e[e.Double=3]="Double"}(s=t.QuoteType||(t.QuoteType={}));var c={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])},d=function(){function e(e,t){var n=e.xmlMode,i=void 0!==n&&n,s=e.decodeEntities,a=void 0===s||s;this.cbs=t,this.state=r.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=r.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=i,this.decodeEntities=a,this.entityTrie=i?o.xmlDecodeTree:o.htmlDecodeTree}return e.prototype.reset=function(){this.state=r.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=r.Text,this.currentSequence=void 0,this.running=!0,this.offset=0},e.prototype.write=function(e){this.offset+=this.buffer.length,this.buffer=e,this.parse()},e.prototype.end=function(){this.running&&this.finish()},e.prototype.pause=function(){this.running=!1},e.prototype.resume=function(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=r.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&e===i.Amp&&(this.state=r.BeforeEntity)},e.prototype.stateSpecialStartSequence=function(e){var t=this.sequenceIndex===this.currentSequence.length;if(t?l(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.isSpecial=!1;this.sequenceIndex=0,this.state=r.InTagName,this.stateInTagName(e)},e.prototype.stateInSpecialTag=function(e){if(this.sequenceIndex===this.currentSequence.length){if(e===i.Gt||a(e)){var t=this.index-this.currentSequence.length;if(this.sectionStart=i.LowerA&&e<=i.LowerZ||e>=i.UpperA&&e<=i.UpperZ}(e)},e.prototype.startSpecial=function(e,t){this.isSpecial=!0,this.currentSequence=e,this.sequenceIndex=t,this.state=r.SpecialStartSequence},e.prototype.stateBeforeTagName=function(e){if(e===i.ExclamationMark)this.state=r.BeforeDeclaration,this.sectionStart=this.index+1;else if(e===i.Questionmark)this.state=r.InProcessingInstruction,this.sectionStart=this.index+1;else if(this.isTagStartChar(e)){var t=32|e;this.sectionStart=this.index,this.xmlMode||t!==c.TitleEnd[2]?this.state=this.xmlMode||t!==c.ScriptEnd[2]?r.InTagName:r.BeforeSpecialS:this.startSpecial(c.TitleEnd,3)}else e===i.Slash?this.state=r.BeforeClosingTagName:(this.state=r.Text,this.stateText(e))},e.prototype.stateInTagName=function(e){l(e)&&(this.cbs.onopentagname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateBeforeClosingTagName=function(e){a(e)||(e===i.Gt?this.state=r.Text:(this.state=this.isTagStartChar(e)?r.InClosingTagName:r.InSpecialComment,this.sectionStart=this.index))},e.prototype.stateInClosingTagName=function(e){(e===i.Gt||a(e))&&(this.cbs.onclosetag(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterClosingTagName,this.stateAfterClosingTagName(e))},e.prototype.stateAfterClosingTagName=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.state=r.Text,this.baseState=r.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeAttributeName=function(e){e===i.Gt?(this.cbs.onopentagend(this.index),this.isSpecial?(this.state=r.InSpecialTag,this.sequenceIndex=0):this.state=r.Text,this.baseState=this.state,this.sectionStart=this.index+1):e===i.Slash?this.state=r.InSelfClosingTag:a(e)||(this.state=r.InAttributeName,this.sectionStart=this.index)},e.prototype.stateInSelfClosingTag=function(e){e===i.Gt?(this.cbs.onselfclosingtag(this.index),this.state=r.Text,this.baseState=r.Text,this.sectionStart=this.index+1,this.isSpecial=!1):a(e)||(this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e))},e.prototype.stateInAttributeName=function(e){(e===i.Eq||l(e))&&(this.cbs.onattribname(this.sectionStart,this.index),this.sectionStart=-1,this.state=r.AfterAttributeName,this.stateAfterAttributeName(e))},e.prototype.stateAfterAttributeName=function(e){e===i.Eq?this.state=r.BeforeAttributeValue:e===i.Slash||e===i.Gt?(this.cbs.onattribend(s.NoValue,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):a(e)||(this.cbs.onattribend(s.NoValue,this.index),this.state=r.InAttributeName,this.sectionStart=this.index)},e.prototype.stateBeforeAttributeValue=function(e){e===i.DoubleQuote?(this.state=r.InAttributeValueDq,this.sectionStart=this.index+1):e===i.SingleQuote?(this.state=r.InAttributeValueSq,this.sectionStart=this.index+1):a(e)||(this.sectionStart=this.index,this.state=r.InAttributeValueNq,this.stateInAttributeValueNoQuotes(e))},e.prototype.handleInAttributeValue=function(e,t){e===t||!this.decodeEntities&&this.fastForwardTo(t)?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(t===i.DoubleQuote?s.Double:s.Single,this.index),this.state=r.BeforeAttributeName):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=r.BeforeEntity)},e.prototype.stateInAttributeValueDoubleQuotes=function(e){this.handleInAttributeValue(e,i.DoubleQuote)},e.prototype.stateInAttributeValueSingleQuotes=function(e){this.handleInAttributeValue(e,i.SingleQuote)},e.prototype.stateInAttributeValueNoQuotes=function(e){a(e)||e===i.Gt?(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=-1,this.cbs.onattribend(s.Unquoted,this.index),this.state=r.BeforeAttributeName,this.stateBeforeAttributeName(e)):this.decodeEntities&&e===i.Amp&&(this.baseState=this.state,this.state=r.BeforeEntity)},e.prototype.stateBeforeDeclaration=function(e){e===i.OpeningSquareBracket?(this.state=r.CDATASequence,this.sequenceIndex=0):this.state=e===i.Dash?r.BeforeComment:r.InDeclaration},e.prototype.stateInDeclaration=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.ondeclaration(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)},e.prototype.stateInProcessingInstruction=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.onprocessinginstruction(this.sectionStart,this.index),this.state=r.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeComment=function(e){e===i.Dash?(this.state=r.InCommentLike,this.currentSequence=c.CommentEnd,this.sequenceIndex=2,this.sectionStart=this.index+1):this.state=r.InDeclaration},e.prototype.stateInSpecialComment=function(e){(e===i.Gt||this.fastForwardTo(i.Gt))&&(this.cbs.oncomment(this.sectionStart,this.index,0),this.state=r.Text,this.sectionStart=this.index+1)},e.prototype.stateBeforeSpecialS=function(e){var t=32|e;t===c.ScriptEnd[3]?this.startSpecial(c.ScriptEnd,4):t===c.StyleEnd[3]?this.startSpecial(c.StyleEnd,4):(this.state=r.InTagName,this.stateInTagName(e))},e.prototype.stateBeforeEntity=function(e){this.entityExcess=1,this.entityResult=0,e===i.Number?this.state=r.BeforeNumericEntity:e===i.Amp||(this.trieIndex=0,this.trieCurrent=this.entityTrie[0],this.state=r.InNamedEntity,this.stateInNamedEntity(e))},e.prototype.stateInNamedEntity=function(e){if(this.entityExcess+=1,this.trieIndex=(0,o.determineBranch)(this.entityTrie,this.trieCurrent,this.trieIndex+1,e),this.trieIndex<0)return this.emitNamedEntity(),void this.index--;this.trieCurrent=this.entityTrie[this.trieIndex];var t=this.trieCurrent&o.BinTrieFlags.VALUE_LENGTH;if(t){var n=(t>>14)-1;if(this.allowLegacyEntity()||e===i.Semi){var r=this.index-this.entityExcess+1;r>this.sectionStart&&this.emitPartial(this.sectionStart,r),this.entityResult=this.trieIndex,this.trieIndex+=n,this.entityExcess=0,this.sectionStart=this.index+1,0===n&&this.emitNamedEntity()}else this.trieIndex+=n}},e.prototype.emitNamedEntity=function(){if(this.state=this.baseState,0!==this.entityResult)switch((this.entityTrie[this.entityResult]&o.BinTrieFlags.VALUE_LENGTH)>>14){case 1:this.emitCodePoint(this.entityTrie[this.entityResult]&~o.BinTrieFlags.VALUE_LENGTH);break;case 2:this.emitCodePoint(this.entityTrie[this.entityResult+1]);break;case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}},e.prototype.stateBeforeNumericEntity=function(e){(32|e)===i.LowerX?(this.entityExcess++,this.state=r.InHexEntity):(this.state=r.InNumericEntity,this.stateInNumericEntity(e))},e.prototype.emitNumericEntity=function(e){var t=this.index-this.entityExcess-1;t+2+Number(this.state===r.InHexEntity)!==this.index&&(t>this.sectionStart&&this.emitPartial(this.sectionStart,t),this.sectionStart=this.index+Number(e),this.emitCodePoint((0,o.replaceCodePoint)(this.entityResult))),this.state=this.baseState},e.prototype.stateInNumericEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):u(e)?(this.entityResult=10*this.entityResult+(e-i.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.stateInHexEntity=function(e){e===i.Semi?this.emitNumericEntity(!0):u(e)?(this.entityResult=16*this.entityResult+(e-i.Zero),this.entityExcess++):function(e){return e>=i.UpperA&&e<=i.UpperF||e>=i.LowerA&&e<=i.LowerF}(e)?(this.entityResult=16*this.entityResult+((32|e)-i.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)},e.prototype.allowLegacyEntity=function(){return!this.xmlMode&&(this.baseState===r.Text||this.baseState===r.InSpecialTag)},e.prototype.cleanup=function(){this.running&&this.sectionStart!==this.index&&(this.state===r.Text||this.state===r.InSpecialTag&&0===this.sequenceIndex?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):this.state!==r.InAttributeValueDq&&this.state!==r.InAttributeValueSq&&this.state!==r.InAttributeValueNq||(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))},e.prototype.shouldContinue=function(){return this.index{"use strict";function n(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,i;return!1!==n(e)&&(void 0===(t=e.constructor)||!1!==n(i=t.prototype)&&!1!==i.hasOwnProperty("isPrototypeOf"))}},11622:(e,t,n)=>{const i=n(44493),r=n(72189),{isPlainObject:s}=n(29244),o=n(52743),a=n(8287),{parse:l}=n(39274),u=["img","audio","video","picture","svg","object","map","iframe","embed"],c=["script","style"];function d(e,t){e&&Object.keys(e).forEach((function(n){t(e[n],n)}))}function h(e,t){return{}.hasOwnProperty.call(e,t)}function p(e,t){const n=[];return d(e,(function(e){t(e)&&n.push(e)})),n}e.exports=m;const f=/^[^\0\t\n\f\r /<=>]+$/;function m(e,t,n){if(null==e)return"";"number"==typeof e&&(e=e.toString());let v="",_="";function b(e,t){const n=this;this.tag=e,this.attribs=t||{},this.tagPosition=v.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){I.length&&(I[I.length-1].text+=n.text)},this.updateParentNodeMediaChildren=function(){I.length&&u.includes(this.tag)&&I[I.length-1].mediaChildren.push(this.tag)}}(t=Object.assign({},m.defaults,t)).parser=Object.assign({},g,t.parser);const y=function(e){return!1===t.allowedTags||(t.allowedTags||[]).indexOf(e)>-1};c.forEach((function(e){y(e)&&!t.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${e}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const w=t.nonTextTags||["script","style","textarea","option"];let x,S;t.allowedAttributes&&(x={},S={},d(t.allowedAttributes,(function(e,t){x[t]=[];const n=[];e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(r(e).replace(/\\\*/g,".*")):x[t].push(e)})),n.length&&(S[t]=new RegExp("^("+n.join("|")+")$"))})));const E={},C={},k={};d(t.allowedClasses,(function(e,t){if(x&&(h(x,t)||(x[t]=[]),x[t].push("class")),E[t]=e,Array.isArray(e)){const n=[];E[t]=[],k[t]=[],e.forEach((function(e){"string"==typeof e&&e.indexOf("*")>=0?n.push(r(e).replace(/\\\*/g,".*")):e instanceof RegExp?k[t].push(e):E[t].push(e)})),n.length&&(C[t]=new RegExp("^("+n.join("|")+")$"))}}));const M={};let T,O,I,A,P,N,L;d(t.transformTags,(function(e,t){let n;"function"==typeof e?n=e:"string"==typeof e&&(n=m.simpleTransform(e)),"*"===t?T=n:M[t]=n}));let D=!1;j();const R=new i.Parser({onopentag:function(e,n){if(t.enforceHtmlBoundary&&"html"===e&&j(),N)return void L++;const i=new b(e,n);I.push(i);let r=!1;const u=!!i.text;let c;if(h(M,e)&&(c=M[e](e,n),i.attribs=n=c.attribs,void 0!==c.text&&(i.innerText=c.text),e!==c.tagName&&(i.name=e=c.tagName,P[O]=c.tagName)),T&&(c=T(e,n),i.attribs=n=c.attribs,e!==c.tagName&&(i.name=e=c.tagName,P[O]=c.tagName)),(!y(e)||"recursiveEscape"===t.disallowedTagsMode&&!function(e){for(const t in e)if(h(e,t))return!1;return!0}(A)||null!=t.nestingLimit&&O>=t.nestingLimit)&&(r=!0,A[O]=!0,"discard"===t.disallowedTagsMode&&-1!==w.indexOf(e)&&(N=!0,L=1),A[O]=!0),O++,r){if("discard"===t.disallowedTagsMode)return;_=v,v=""}v+="<"+e,"script"===e&&(t.allowedScriptHostnames||t.allowedScriptDomains)&&(i.innerText=""),(!x||h(x,e)||x["*"])&&d(n,(function(n,r){if(!f.test(r))return void delete i.attribs[r];if(""===n&&!t.allowedEmptyAttributes.includes(r)&&(t.nonBooleanAttributes.includes(r)||t.nonBooleanAttributes.includes("*")))return void delete i.attribs[r];let u=!1;if(!x||h(x,e)&&-1!==x[e].indexOf(r)||x["*"]&&-1!==x["*"].indexOf(r)||h(S,e)&&S[e].test(r)||S["*"]&&S["*"].test(r))u=!0;else if(x&&x[e])for(const t of x[e])if(s(t)&&t.name&&t.name===r){u=!0;let e="";if(!0===t.multiple){const i=n.split(" ");for(const n of i)-1!==t.values.indexOf(n)&&(""===e?e=n:e+=" "+n)}else t.values.indexOf(n)>=0&&(e=n);n=e}if(u){if(-1!==t.allowedSchemesAppliedToAttributes.indexOf(r)&&z(e,n))return void delete i.attribs[r];if("script"===e&&"src"===r){let e=!0;try{const i=F(n);if(t.allowedScriptHostnames||t.allowedScriptDomains){const n=(t.allowedScriptHostnames||[]).find((function(e){return e===i.url.hostname})),r=(t.allowedScriptDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=n||r}}catch(t){e=!1}if(!e)return void delete i.attribs[r]}if("iframe"===e&&"src"===r){let e=!0;try{const i=F(n);if(i.isRelativeUrl)e=h(t,"allowIframeRelativeUrls")?t.allowIframeRelativeUrls:!t.allowedIframeHostnames&&!t.allowedIframeDomains;else if(t.allowedIframeHostnames||t.allowedIframeDomains){const n=(t.allowedIframeHostnames||[]).find((function(e){return e===i.url.hostname})),r=(t.allowedIframeDomains||[]).find((function(e){return i.url.hostname===e||i.url.hostname.endsWith(`.${e}`)}));e=n||r}}catch(t){e=!1}if(!e)return void delete i.attribs[r]}if("srcset"===r)try{let e=a(n);if(e.forEach((function(e){z("srcset",e.url)&&(e.evil=!0)})),e=p(e,(function(e){return!e.evil})),!e.length)return void delete i.attribs[r];n=p(e,(function(e){return!e.evil})).map((function(e){if(!e.url)throw new Error("URL missing");return e.url+(e.w?` ${e.w}w`:"")+(e.h?` ${e.h}h`:"")+(e.d?` ${e.d}x`:"")})).join(", "),i.attribs[r]=n}catch(e){return void delete i.attribs[r]}if("class"===r){const t=E[e],s=E["*"],a=C[e],l=k[e],u=[a,C["*"]].concat(l).filter((function(e){return e}));if(!(c=n,d=t&&s?o(t,s):t||s,m=u,n=d?(c=c.split(/\s+/)).filter((function(e){return-1!==d.indexOf(e)||m.some((function(t){return t.test(e)}))})).join(" "):c).length)return void delete i.attribs[r]}if("style"===r)if(t.parseStyleAttributes)try{if(n=function(e){return e.nodes[0].nodes.reduce((function(e,t){return e.push(`${t.prop}:${t.value}${t.important?" !important":""}`),e}),[]).join(";")}(function(e,t){if(!t)return e;const n=e.nodes[0];let i;return i=t[n.selector]&&t["*"]?o(t[n.selector],t["*"]):t[n.selector]||t["*"],i&&(e.nodes[0].nodes=n.nodes.reduce(function(e){return function(t,n){return h(e,n.prop)&&e[n.prop].some((function(e){return e.test(n.value)}))&&t.push(n),t}}(i),[])),e}(l(e+" {"+n+"}",{map:!1}),t.allowedStyles)),0===n.length)return void delete i.attribs[r]}catch(t){return"undefined"!=typeof window&&console.warn('Failed to parse "'+e+" {"+n+"}\", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547"),void delete i.attribs[r]}else if(t.allowedStyles)throw new Error("allowedStyles option cannot be used together with parseStyleAttributes: false.");v+=" "+r,n&&n.length?v+='="'+B(n,!0)+'"':t.allowedEmptyAttributes.includes(r)&&(v+='=""')}else delete i.attribs[r];var c,d,m})),-1!==t.selfClosing.indexOf(e)?v+=" />":(v+=">",!i.innerText||u||t.textFilter||(v+=B(i.innerText),D=!0)),r&&(v=_+B(v),_="")},ontext:function(e){if(N)return;const n=I[I.length-1];let i;if(n&&(i=n.tag,e=void 0!==n.innerText?n.innerText:e),"discard"!==t.disallowedTagsMode||"script"!==i&&"style"!==i){const n=B(e,!1);t.textFilter&&!D?v+=t.textFilter(n,i):D||(v+=n)}else v+=e;I.length&&(I[I.length-1].text+=e)},onclosetag:function(e,n){if(N){if(L--,L)return;N=!1}const i=I.pop();if(!i)return;if(i.tag!==e)return void I.push(i);N=!!t.enforceHtmlBoundary&&"html"===e,O--;const r=A[O];if(r){if(delete A[O],"discard"===t.disallowedTagsMode)return void i.updateParentNodeText();_=v,v=""}P[O]&&(e=P[O],delete P[O]),t.exclusiveFilter&&t.exclusiveFilter(i)?v=v.substr(0,i.tagPosition):(i.updateParentNodeMediaChildren(),i.updateParentNodeText(),-1!==t.selfClosing.indexOf(e)||n&&!y(e)&&["escape","recursiveEscape"].indexOf(t.disallowedTagsMode)>=0?r&&(v=_,_=""):(v+="",r&&(v=_+B(v),_=""),D=!1))}},t.parser);return R.write(e),R.end(),v;function j(){v="",O=0,I=[],A={},P={},N=!1,L=0}function B(e,n){return"string"!=typeof e&&(e+=""),t.parser.decodeEntities&&(e=e.replace(/&/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,"""))),e=e.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),n&&(e=e.replace(/"/g,""")),e}function z(e,n){for(n=n.replace(/[\x00-\x20]+/g,"");;){const e=n.indexOf("\x3c!--");if(-1===e)break;const t=n.indexOf("--\x3e",e+4);if(-1===t)break;n=n.substring(0,e)+n.substring(t+3)}const i=n.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!i)return!!n.match(/^[/\\]{2}/)&&!t.allowProtocolRelative;const r=i[1].toLowerCase();return h(t.allowedSchemesByTag,e)?-1===t.allowedSchemesByTag[e].indexOf(r):!t.allowedSchemes||-1===t.allowedSchemes.indexOf(r)}function F(e){if((e=e.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//")).startsWith("relative:"))throw new Error("relative: exploit attempt");let t="relative://relative-site";for(let e=0;e<100;e++)t+=`/${e}`;const n=new URL(e,t);return{isRelativeUrl:n&&"relative-site"===n.hostname&&"relative:"===n.protocol,url:n}}}const g={decodeEntities:!0};m.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],nonBooleanAttributes:["abbr","accept","accept-charset","accesskey","action","allow","alt","as","autocapitalize","autocomplete","blocking","charset","cite","class","color","cols","colspan","content","contenteditable","coords","crossorigin","data","datetime","decoding","dir","dirname","download","draggable","enctype","enterkeyhint","fetchpriority","for","form","formaction","formenctype","formmethod","formtarget","headers","height","hidden","high","href","hreflang","http-equiv","id","imagesizes","imagesrcset","inputmode","integrity","is","itemid","itemprop","itemref","itemtype","kind","label","lang","list","loading","low","max","maxlength","media","method","min","minlength","name","nonce","optimum","pattern","ping","placeholder","popover","popovertarget","popovertargetaction","poster","preload","referrerpolicy","rel","rows","rowspan","sandbox","scope","shape","size","sizes","slot","span","spellcheck","src","srcdoc","srclang","srcset","start","step","style","tabindex","target","title","translate","type","usemap","value","width","wrap","onauxclick","onafterprint","onbeforematch","onbeforeprint","onbeforeunload","onbeforetoggle","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextlost","oncontextmenu","oncontextrestored","oncopy","oncuechange","oncut","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","onformdata","onhashchange","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onlanguagechange","onload","onloadeddata","onloadedmetadata","onloadstart","onmessage","onmessageerror","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onoffline","ononline","onpagehide","onpageshow","onpaste","onpause","onplay","onplaying","onpopstate","onprogress","onratechange","onreset","onresize","onrejectionhandled","onscroll","onscrollend","onsecuritypolicyviolation","onseeked","onseeking","onselect","onslotchange","onstalled","onstorage","onsubmit","onsuspend","ontimeupdate","ontoggle","onunhandledrejection","onunload","onvolumechange","onwaiting","onwheel"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},allowedEmptyAttributes:["alt"],selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1,parseStyleAttributes:!0},m.simpleTransform=function(e,t,n){return n=void 0===n||n,t=t||{},function(i,r){let s;if(n)for(s in t)r[s]=t[s];else r=t;return{tagName:e,attribs:r}}}},49704:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ActivityMonitor=void 0;const i=n(38571);t.ActivityMonitor=class{constructor(e){this._timer=-1,this._timeout=-1,this._isDisposed=!1,this._activityStopped=new i.Signal(this),e.signal.connect(this._onSignalFired,this),this._timeout=e.timeout||1e3}get activityStopped(){return this._activityStopped}get timeout(){return this._timeout}set timeout(e){this._timeout=e}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,i.Signal.clearData(this))}_onSignalFired(e,t){clearTimeout(this._timer),this._sender=e,this._args=t,this._timer=setTimeout((()=>{this._activityStopped.emit({sender:this._sender,args:this._args})}),this._timeout)}}},88925:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(49704),t),r(n(59269),t),r(n(71232),t),r(n(49547),t),r(n(45964),t),r(n(59830),t),r(n(97361),t),r(n(48126),t),r(n(71796),t),r(n(81692),t)},59269:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},71232:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LruCache=void 0,t.LruCache=class{constructor(e={}){this._map=new Map,this._maxSize=(null==e?void 0:e.maxSize)||128}get size(){return this._map.size}clear(){this._map.clear()}get(e){const t=this._map.get(e)||null;return null!=t&&(this._map.delete(e),this._map.set(e,t)),t}set(e,t){this._map.size>=this._maxSize&&this._map.delete(this._map.keys().next().value),this._map.set(e,t)}}},49547:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.MarkdownCodeBlocks=void 0,function(e){e.CODE_BLOCK_MARKER="```";const t=[".markdown",".mdown",".mkdn",".md",".mkd",".mdwn",".mdtxt",".mdtext",".text",".txt",".Rmd"];class n{constructor(e){this.startLine=e,this.code="",this.endLine=-1}}e.MarkdownCodeBlock=n,e.isMarkdown=function(e){return t.indexOf(e)>-1},e.findMarkdownCodeBlocks=function(t){if(!t||""===t)return[];const i=t.split("\n"),r=[];let s=null;for(let t=0;te===t||i&&e===i))},e.isDisabled=function(t){const n=t.indexOf(":");let i="";return-1!==n&&(i=t.slice(0,n)),e.disabled.some((e=>e===t||i&&e===i))}}(Extension=PageConfig.Extension||(PageConfig.Extension={}))})(PageConfig||(exports.PageConfig=PageConfig={}))},59830:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PathExt=void 0;const i=n(99942);var r;!function(e){function t(e){return 0===e.indexOf("/")&&(e=e.slice(1)),e}e.join=function(...e){const n=i.posix.join(...e);return"."===n?"":t(n)},e.joinWithLeadingSlash=function(...e){const t=i.posix.join(...e);return"."===t?"":t},e.basename=function(e,t){return i.posix.basename(e,t)},e.dirname=function(e){const n=t(i.posix.dirname(e));return"."===n?"":n},e.extname=function(e){return i.posix.extname(e)},e.normalize=function(e){return""===e?"":t(i.posix.normalize(e))},e.resolve=function(...e){return t(i.posix.resolve(...e))},e.relative=function(e,n){return t(i.posix.relative(e,n))},e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e},e.removeSlash=t}(r||(t.PathExt=r={}))},97361:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.signalToPromise=void 0;const i=n(75764);t.signalToPromise=function(e,t){const n=new i.PromiseDelegate;function r(){e.disconnect(s)}function s(e,t){r(),n.resolve([e,t])}return e.connect(s),(null!=t?t:0)>0&&setTimeout((()=>{r(),n.reject(`Signal not emitted within ${t} ms.`)}),t),n.promise}},48126:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Text=void 0,function(e){e.jsIndexToCharIndex=function(e,t){return e},e.charIndexToJsIndex=function(e,t){return e},e.camelCase=function(e,t=!1){return e.replace(/^(\w)|[\s-_:]+(\w)/g,(function(e,n,i){return i?i.toUpperCase():t?n.toUpperCase():n.toLowerCase()}))},e.titleCase=function(e){return(e||"").toLowerCase().split(" ").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" ")}}(n||(t.Text=n={}))},71796:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Time=void 0;const n=[{name:"years",milliseconds:31536e6},{name:"months",milliseconds:2592e6},{name:"days",milliseconds:864e5},{name:"hours",milliseconds:36e5},{name:"minutes",milliseconds:6e4},{name:"seconds",milliseconds:1e3}];var i;!function(e){e.formatHuman=function(e,t="long"){const i=document.documentElement.lang||"en",r=new Intl.RelativeTimeFormat(i,{numeric:"auto",style:t}),s=new Date(e).getTime()-Date.now();for(let e of n){const t=Math.ceil(s/e.milliseconds);if(0!==t)return r.format(t,e.name)}return r.format(0,"seconds")},e.format=function(e){const t=document.documentElement.lang||"en";return new Intl.DateTimeFormat(t,{dateStyle:"short",timeStyle:"short"}).format(new Date(e))}}(i||(t.Time=i={}))},81692:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.URLExt=void 0;const r=n(99942),s=i(n(52225));var o;!function(e){function t(e){if("undefined"!=typeof document&&document){const t=document.createElement("a");return t.href=e,t}return(0,s.default)(e)}function n(...e){let t=(0,s.default)(e[0],{});const n=""===t.protocol&&t.slashes;n&&(t=(0,s.default)(e[0],"https:"+e[0]));const i=`${n?"":t.protocol}${t.slashes?"//":""}${t.auth}${t.auth?"@":""}${t.host}`,o=r.posix.join(`${i&&"/"!==t.pathname[0]?"/":""}${t.pathname}`,...e.slice(1));return`${i}${"."===o?"":o}`}e.parse=t,e.getHostName=function(e){return(0,s.default)(e).hostname},e.normalize=function(e){return e&&t(e).toString()},e.join=n,e.encodeParts=function(e){return n(...e.split("/").map(encodeURIComponent))},e.objectToQueryString=function(e){const t=Object.keys(e).filter((e=>e.length>0));return t.length?"?"+t.map((t=>{const n=encodeURIComponent(String(e[t]));return t+(n?"="+n:"")})).join("&"):""},e.queryStringToObject=function(e){return e.replace(/^\?/,"").split("&").reduce(((e,t)=>{const[n,i]=t.split("=");return n.length>0&&(e[n]=decodeURIComponent(i||"")),e}),{})},e.isLocal=function(e,n=!1){const{protocol:i}=t(e);return(!i||0!==e.toLowerCase().indexOf(i))&&(n?0!==e.indexOf("//"):0!==e.indexOf("/"))}}(o||(t.URLExt=o={}))},66008:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{"use strict";__webpack_require__.r(__webpack_exports__),__webpack_require__.d(__webpack_exports__,{APPLICATION_JAVASCRIPT_MIMETYPE:()=>APPLICATION_JAVASCRIPT_MIMETYPE,ExperimentalRenderedJavascript:()=>ExperimentalRenderedJavascript,TEXT_JAVASCRIPT_MIMETYPE:()=>TEXT_JAVASCRIPT_MIMETYPE,default:()=>__WEBPACK_DEFAULT_EXPORT__,rendererFactory:()=>rendererFactory});var _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(18062);const TEXT_JAVASCRIPT_MIMETYPE="text/javascript",APPLICATION_JAVASCRIPT_MIMETYPE="application/javascript";function evalInContext(code,element,document,window){return eval(code)}class ExperimentalRenderedJavascript extends _jupyterlab_rendermime__WEBPACK_IMPORTED_MODULE_0__.TS{render(e){const t=this.translator.load("jupyterlab"),n=()=>{try{const t=e.data[this.mimeType];return t&&evalInContext(t,this.node,document,window),Promise.resolve()}catch(e){return Promise.reject(e)}};if(!e.trusted){const e=document.createElement("pre");e.textContent=t.__("Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");const i=document.createElement("button");return i.textContent=t.__("Run"),this.node.appendChild(e),this.node.appendChild(i),i.onclick=e=>{this.node.textContent="",n()},Promise.resolve()}return n()}}const rendererFactory={safe:!1,mimeTypes:[TEXT_JAVASCRIPT_MIMETYPE,APPLICATION_JAVASCRIPT_MIMETYPE],createRenderer:e=>new ExperimentalRenderedJavascript(e)},extension={id:"@jupyterlab/javascript-extension:factory",description:"Adds renderer for JavaScript content.",rendererFactory,rank:0,dataType:"string"},__WEBPACK_DEFAULT_EXPORT__=extension},91599:(e,t,n)=>{"use strict";n.r(t),n.d(t,{MIME_TYPE:()=>u,MIME_TYPES_JSONL:()=>c,RenderedJSON:()=>d,default:()=>p,rendererFactory:()=>h});var i,r=n(17883);!function(e){function t(t){return!("object"!=typeof t||!t)&&e.symbol in t}async function n(e){const t="string"==typeof e,n=function(){const e=window.document.createElement("iframe");e.setAttribute("sandbox","allow-modals allow-same-origin");return e.setAttribute("style","visibility:hidden;width:0;height:0;position:absolute;z-index:-9999;bottom:0;"),e.setAttribute("width","0"),e.setAttribute("height","0"),e}(),r=window.document.body;r.appendChild(n),t?(n.srcdoc=e,await i(n)):(n.src="about:blank",await i(n),function(e,t){e.contentDocument.body.appendChild(t.cloneNode(!0)),e.contentDocument.close()}(n,e));const s=new Promise((e=>{const t=()=>{document.removeEventListener("mousemove",t,!0),document.removeEventListener("mousedown",t,!0),document.removeEventListener("keydown",t,!0),e()};document.addEventListener("mousemove",t,!0),document.addEventListener("mousedown",t,!0),document.addEventListener("keydown",t,!0)}));var o;(o=n.contentWindow).document.execCommand("print",!1)||o.print(),await s,r.removeChild(n)}function i(e){return new Promise((t=>{e.onload=()=>t()}))}e.symbol=Symbol("printable"),e.isPrintable=t,e.getPrintFunction=function(n){return t(n)?n[e.symbol]():null},e.printWidget=function(e){return n(e.node)},e.printURL=async function(e){const t=r.ServerConnection.makeSettings();return n(await(await r.ServerConnection.makeRequest(e,{},t)).text())}}(i||(i={}));var s=n(10509),o=n(75735),a=n(14041),l=n(25873);const u="application/json",c=["text/jsonl","application/jsonl","application/json-lines"];class d extends o.Widget{constructor(e){super(),this._rootDOM=null,this.addClass("jp-RenderedJSON"),this.addClass("CodeMirror"),this._mimeType=e.mimeType,this.translator=e.translator||s.wK}[i.symbol](){return()=>i.printWidget(this)}async renderModel(e){const{Component:t}=await Promise.all([n.e(2817),n.e(5237)]).then(n.bind(n,22817));let i;if(c.indexOf(this._mimeType)>=0){const t=(e.data[this._mimeType]||"").trim().split(/\n/);i=JSON.parse(`[${t.join(",")}]`)}else i=e.data[this._mimeType]||{};const r=e.metadata[this._mimeType]||{};return null===this._rootDOM&&(this._rootDOM=(0,l.H)(this.node)),new Promise(((e,n)=>{this._rootDOM.render(a.createElement(t,{data:i,metadata:r,translator:this.translator,forwardedRef:()=>e()}))}))}onBeforeDetach(e){this._rootDOM&&(this._rootDOM.unmount(),this._rootDOM=null)}}const h={safe:!0,mimeTypes:[u,...c],createRenderer:e=>new d(e)},p=[{id:"@jupyterlab/json-extension:factory",description:"Adds renderer for JSON content.",rendererFactory:h,rank:0,dataType:"json",documentWidgetFactoryOptions:{name:"JSON",primaryFileType:"json",fileTypes:["json","notebook","geojson"],defaultFor:["json"]}},{id:"@jupyterlab/json-lines-extension:factory",description:"Adds renderer for JSONLines content.",rendererFactory:h,rank:0,dataType:"string",documentWidgetFactoryOptions:{name:"JSONLines",primaryFileType:"jsonl",fileTypes:["jsonl","ndjson"],defaultFor:["jsonl","ndjson"]}}]},28850:(e,t,n)=>{"use strict";n.r(t),n.d(t,{MathJaxTypesetter:()=>r});var i=n(63328);class r{constructor(e){this._initPromise=new i.PromiseDelegate,this._initialized=!1,this._url=e.url,this._config=e.config}typeset(e){this._initialized||this._init(),this._initPromise.promise.then((()=>{MathJax.Hub.Queue(["Typeset",MathJax.Hub,e]);try{MathJax.Hub.Queue(["Require",MathJax.Ajax,"[MathJax]/extensions/TeX/AMSmath.js"],(()=>{MathJax.InputJax.TeX.resetEquationNumbers()}))}catch(e){console.error("Error queueing resetEquationNumbers:",e)}}))}_init(){const e=document.getElementsByTagName("head")[0],t=document.createElement("script");t.type="text/javascript",t.src=`${this._url}?config=${this._config}&delayStartupUntil=configured`,t.charset="utf-8",e.appendChild(t),t.addEventListener("load",(()=>{this._onLoad()})),this._initialized=!0}_onLoad(){MathJax.Hub.Config({tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],displayMath:[["$$","$$"],["\\[","\\]"]],processEscapes:!0,processEnvironments:!0},displayAlign:"center",CommonHTML:{linebreaks:{automatic:!0}},"HTML-CSS":{availableFonts:[],imageFont:null,preferredFont:null,webFont:"STIX-Web",styles:{".MathJax_Display":{margin:0}},linebreaks:{automatic:!0}},skipStartupTypeset:!0,messageStyle:"none"}),MathJax.Hub.Register.StartupHook("End Config",(()=>{var e,t,n,i,r,s;null===(n=null===(t=null===(e=MathJax.Hub)||void 0===e?void 0:e.config)||void 0===t?void 0:t.MathEvents)||void 0===n||delete n.styles[".MathJax_Hover_Arrow:hover span"],null===(s=null===(r=null===(i=MathJax.Hub)||void 0===i?void 0:i.config)||void 0===r?void 0:r.MathMenu)||void 0===s||delete s.styles[".MathJax_MenuClose:hover span"]})),MathJax.Hub.Configured(),this._initPromise.resolve(void 0)}}},63328:function(e,t){!function(e){"use strict";e.JSONExt=void 0,function(e){function t(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e}function n(e){return Array.isArray(e)}function i(e,r){if(e===r)return!0;if(t(e)||t(r))return!1;var s=n(e),o=n(r);return s===o&&(s&&o?function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n>>0),e[n]=255&t,t>>>=8}e.Random=void 0,(e.Random||(e.Random={})).getRandomValues=function(){var e="undefined"!=typeof window&&(window.crypto||window.msCrypto)||null;return e&&"function"==typeof e.getRandomValues?function(t){return e.getRandomValues(t)}:r}(),e.UUID=void 0,(e.UUID||(e.UUID={})).uuid4=function(e){for(var t=new Uint8Array(16),n=new Array(256),i=0;i<16;++i)n[i]="0"+i.toString(16);for(i=16;i<256;++i)n[i]=i.toString(16);return function(){return e(t),t[6]=64|15&t[6],t[8]=128|63&t[8],n[t[0]]+n[t[1]]+n[t[2]]+n[t[3]]+"-"+n[t[4]]+n[t[5]]+"-"+n[t[6]]+n[t[7]]+"-"+n[t[8]]+n[t[9]]+"-"+n[t[10]]+n[t[11]]+n[t[12]]+n[t[13]]+n[t[14]]+n[t[15]]}}(e.Random.getRandomValues),e.MimeData=t,e.PromiseDelegate=n,e.Token=i,Object.defineProperty(e,"__esModule",{value:!0})}(t)},16468:(e,t,n)=>{"use strict";function i(e){return"execute_result"===e.output_type}function r(e){return"display_data"===e.output_type}function s(e){return"update_display_data"===e.output_type}function o(e){return"stream"===e.output_type}function a(e){return"error"===e.output_type}n.d(t,{bJ:()=>a,gj:()=>s,hc:()=>i,jj:()=>r,rL:()=>o}),n(75764)},57261:(e,t,n)=>{"use strict";n.d(t,{U:()=>h});var i,r,s=n(75764),o=n(19634);class a{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return 0===this._size}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(const t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new i.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new i.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof i.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let n=new i.LinkedListNode(this,e),r=t,s=r.prev;return n.next=r,n.prev=s,r.prev=n,s.next=n,this._size++,n}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof i.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let n=new i.LinkedListNode(this,e),r=t,s=r.next;return n.next=s,n.prev=r,r.next=n,s.prev=n,this._size++,n}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof i.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}}!function(e){e.from=function(t){let n=new e;return n.assign(t),n}}(a||(a={})),function(e){e.LinkedListNode=class{constructor(e,t){this.list=null,this.next=null,this.prev=null,this.list=e,this.value=t}}}(i||(i={}));class l{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}}!function(e){let t=null;const n=(i=Promise.resolve(),e=>{let t=!1;return i.then((()=>!t&&e())),()=>{t=!0}});var i;function r(e,t){let n=l.get(e);if(!n||0===n.length)return void h(e,t);let i=(0,o.Si)((0,o.$0)(n),(n=>!n||function(e,t,n){let i=!0;try{i="function"==typeof e?e(t,n):e.messageHook(t,n)}catch(e){c(e)}return i}(n,e,t)));i&&h(e,t)}e.sendMessage=r,e.postMessage=function(e,t){t.isConflatable&&(0,o.zN)(s,(n=>n.handler===e&&!!n.msg&&n.msg.type===t.type&&!!n.msg.isConflatable&&n.msg.conflate(t)))||p(e,t)},e.installMessageHook=function(e,t){let n=l.get(e);n&&-1!==n.indexOf(t)||(n?n.push(t):l.set(e,[t]))},e.removeMessageHook=function(e,t){let n=l.get(e);if(!n)return;let i=n.indexOf(t);-1!==i&&(n[i]=null,m(n))},e.clearData=function(e){let t=l.get(e);t&&t.length>0&&(o.Rw.fill(t,null),m(t));for(const t of s)t.handler===e&&(t.handler=null,t.msg=null)},e.flush=function(){d||null===t||(t(),t=null,d=!0,f(),d=!1)},e.getExceptionHandler=function(){return c},e.setExceptionHandler=function(e){let t=c;return c=e,t};const s=new a,l=new WeakMap,u=new Set;let c=e=>{console.error(e)},d=!1;function h(e,t){try{e.processMessage(t)}catch(e){c(e)}}function p(e,i){s.addLast({handler:e,msg:i}),null===t&&(t=n(f))}function f(){if(t=null,s.isEmpty)return;let e={handler:null,msg:null};for(s.addLast(e);;){let t=s.removeFirst();if(t===e)return;t.handler&&t.msg&&r(t.handler,t.msg)}}function m(e){0===u.size&&n(g),u.add(e)}function g(){u.forEach(v),u.clear()}function v(e){o.Rw.removeAllWhere(e,_)}function _(e){return null===e}}(r||(r={}));var u,c=n(38571);class d{constructor(e={}){if(this._map=new Map,this._changed=new c.Signal(this),this._isDisposed=!1,this._itemCmp=e.itemCmp||u.itemCmp,e.values)for(const t in e.values)this._map.set(t,e.values[t])}get type(){return"Map"}get changed(){return this._changed}get isDisposed(){return this._isDisposed}get size(){return this._map.size}set(e,t){const n=this._map.get(e);if(void 0===t)throw Error("Cannot set an undefined value, use remove");const i=this._itemCmp;return void 0!==n&&i(n,t)||(this._map.set(e,t),this._changed.emit({type:n?"change":"add",key:e,oldValue:n,newValue:t})),n}get(e){return this._map.get(e)}has(e){return this._map.has(e)}keys(){const e=[];return this._map.forEach(((t,n)=>{e.push(n)})),e}values(){const e=[];return this._map.forEach(((t,n)=>{e.push(t)})),e}delete(e){const t=this._map.get(e);return this._map.delete(e)&&this._changed.emit({type:"remove",key:e,oldValue:t,newValue:void 0}),t}clear(){const e=this.keys();for(let t=0;t{"use strict";var i,r,s;function o(e,t){let n=0;for(const i of e)if(!1===t(i,n++))return!1;return!0}function a(e,t){let n=0;for(const i of e)if(t(i,n++))return!0;return!1}function*l(e){if("function"==typeof e.retro)yield*e.retro();else for(let t=e.length-1;t>-1;t--)yield e[t]}n.d(t,{$0:()=>l,Rw:()=>i,Si:()=>o,zN:()=>a}),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(i||(i={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(s||(s={}))},76823:(e,t,n)=>{"use strict";n.r(t),n.d(t,{OutputArea:()=>r.Bw,OutputAreaModel:()=>i.c,OutputPrompt:()=>r.mx,SimplifiedOutputArea:()=>r.Ts,Stdin:()=>r.VS});var i=n(72673),r=n(18044)},72673:(e,t,n)=>{"use strict";n.d(t,{c:()=>f});var i,r=n(16468),s=n(19634),o=n(38571);class a{constructor(e={}){if(this._array=[],this._isDisposed=!1,this._changed=new o.Signal(this),e.values)for(const t of e.values)this._array.push(t);this._itemCmp=e.itemCmp||i.itemCmp}get type(){return"List"}get changed(){return this._changed}get length(){return this._array.length}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,o.Signal.clearData(this),this.clear())}[Symbol.iterator](){return this._array[Symbol.iterator]()}get(e){return this._array[e]}set(e,t){const n=this._array[e];if(void 0===t)throw new Error("Cannot set an undefined item");(0,this._itemCmp)(n,t)||(this._array[e]=t,this._changed.emit({type:"set",oldIndex:e,newIndex:e,oldValues:[n],newValues:[t]}))}push(e){const t=this._array.push(e);return this._changed.emit({type:"add",oldIndex:-1,newIndex:this.length-1,oldValues:[],newValues:[e]}),t}insert(e,t){e===this._array.length?this._array.push(t):s.Rw.insert(this._array,e,t),this._changed.emit({type:"add",oldIndex:-2,newIndex:e,oldValues:[],newValues:[t]})}removeValue(e){const t=this._itemCmp,n=s.Rw.findFirstIndex(this._array,(n=>t(n,e)));return this.remove(n),n}remove(e){const t=s.Rw.removeAt(this._array,e);if(void 0!==t)return this._changed.emit({type:"remove",oldIndex:e,newIndex:-1,newValues:[],oldValues:[t]}),t}clear(){const e=this._array.slice();this._array.length=0,this._changed.emit({type:"remove",oldIndex:0,newIndex:0,newValues:[],oldValues:e})}move(e,t){if(this.length<=1||e===t)return;const n=[this._array[e]];s.Rw.move(this._array,e,t),this._changed.emit({type:"move",oldIndex:e,newIndex:t,oldValues:n,newValues:n})}pushAll(e){const t=this.length;for(const t of e)this._array.push(t);return this._changed.emit({type:"add",oldIndex:-1,newIndex:t,oldValues:[],newValues:Array.from(e)}),this.length}insertAll(e,t){const n=e;for(const n of t)s.Rw.insert(this._array,e++,n);this._changed.emit({type:"add",oldIndex:-2,newIndex:n,oldValues:[],newValues:Array.from(t)})}removeRange(e,t){const n=this._array.slice(e,t);for(let n=e;n=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(l||(l={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(c||(c={}));var h,p=n(75764);class f{constructor(e={}){if(this.clearNext=!1,this._lastStream="",this._trusted=!1,this._isDisposed=!1,this._stateChanged=new o.Signal(this),this._changed=new o.Signal(this),this._trusted=!!e.trusted,this.contentFactory=e.contentFactory||f.defaultContentFactory,this.list=new a,e.values)for(const t of e.values){const e=this._add(t)-1;this.list.get(e).changed.connect(this._onGenericChange,this)}this.list.changed.connect(this._onListChanged,this)}get stateChanged(){return this._stateChanged}get changed(){return this._changed}get length(){return this.list?this.list.length:0}get trusted(){return this._trusted}set trusted(e){if(e===this._trusted)return;const t=this._trusted=e;for(let e=0;e{e.changed.connect(this._onGenericChange,this)}));break;case"remove":t.oldValues.forEach((e=>{e.changed.disconnect(this._onGenericChange,this)}));break;case"set":t.newValues.forEach((e=>{e.changed.connect(this._onGenericChange,this)})),t.oldValues.forEach((e=>{e.changed.disconnect(this._onGenericChange,this)}))}this._changed.emit(t)}_onGenericChange(e){let t,n=null;for(t=0;t-1;){const t=e.match(/^(.*)\r+/m)[1];let n=e.match(/\r+(.*)$/m)[1];n+=t.slice(n.length,t.length),e=e.replace(/\r+.*$/m,"\r").replace(/^.*\r/m,n)}return e}(function(e){let t=e;do{t=(e=t).replace(/[^\n]\x08/gm,"")}while(t.length{"use strict";n.d(t,{Bw:()=>f,mx:()=>g,Ts:()=>m,VS:()=>v});var i=n(41670),r=n(38571),s=n(75735);class o{constructor(e){this._currentChanged=new r.Signal(this),this._deferred=null,this._isDisposed=!1,this._widgetAdded=new r.Signal(this),this._widgetUpdated=new r.Signal(this);const t=this._focusTracker=new s.FocusTracker,n=this._pool=new i.RestorablePool(e);this.namespace=e.namespace,t.currentChanged.connect(((e,t)=>{t.newValue!==this.currentWidget&&(n.current=t.newValue)}),this),n.added.connect(((e,t)=>{this._widgetAdded.emit(t)}),this),n.currentChanged.connect(((e,i)=>{null===i&&t.currentWidget?n.current=t.currentWidget:(this.onCurrentChanged(i),this._currentChanged.emit(i))}),this),n.updated.connect(((e,t)=>{this._widgetUpdated.emit(t)}),this)}get currentChanged(){return this._currentChanged}get currentWidget(){return this._pool.current||null}get restored(){return this._deferred?Promise.resolve():this._pool.restored}get size(){return this._pool.size}get widgetAdded(){return this._widgetAdded}get widgetUpdated(){return this._widgetUpdated}async add(e){this._focusTracker.add(e),await this._pool.add(e),this._focusTracker.activeWidget||(this._pool.current=e)}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,this._pool.dispose(),this._focusTracker.dispose(),r.Signal.clearData(this))}find(e){return this._pool.find(e)}forEach(e){return this._pool.forEach(e)}filter(e){return this._pool.filter(e)}inject(e){return this._pool.inject(e)}has(e){return this._pool.has(e)}async restore(e){const t=this._deferred;return t?(this._deferred=null,this._pool.restore(t)):e?this._pool.restore(e):void console.warn("No options provided to restore the tracker.")}defer(e){this._deferred=e}async save(e){return this._pool.save(e)}onCurrentChanged(e){}}var a=n(17883),l=n(10509),u=n(75764),c=n(26573);const d="jp-OutputArea-child",h="jp-OutputArea-output",p="jp-OutputArea-prompt";class f extends s.Widget{constructor(e){var t,n,i,a;super(),this.outputLengthChanged=new r.Signal(this),this._onIOPub=e=>{const t=this.model,n=e.header.msg_type;let i;const r=(e.content.transient||{}).display_id;let s;switch(n){case"execute_result":case"display_data":case"stream":case"error":i={...e.content,output_type:n},t.add(i);break;case"clear_output":{const n=e.content.wait;t.clear(n);break}case"update_display_data":if(i={...e.content,output_type:"display_data"},s=this._displayIdMap.get(r),s)for(const e of s)t.set(e,i);break;case"status":"idle"===e.content.execution_state&&(this._pendingInput=!1)}r&&"display_data"===n&&(s=this._displayIdMap.get(r)||[],s.push(t.length-1),this._displayIdMap.set(r,s))},this._onExecuteReply=e=>{const t=this.model,n=e.content;if("ok"!==n.status)return;const i=n&&n.payload;if(!i||!i.length)return;const r=i.filter((e=>"page"===e.source));if(!r.length)return;const s={output_type:"display_data",data:JSON.parse(JSON.stringify(r[0])).data,metadata:{}};t.add(s)},this._displayIdMap=new Map,this._minHeightTimeout=null,this._inputRequested=new r.Signal(this),this._toggleScrolling=new r.Signal(this),this._initialize=new r.Signal(this),this._outputTracker=new o({namespace:u.UUID.uuid4()}),this._inputHistoryScope="global",this._pendingInput=!1,super.layout=new s.PanelLayout,this.addClass("jp-OutputArea"),this.contentFactory=null!==(t=e.contentFactory)&&void 0!==t?t:f.defaultContentFactory,this.rendermime=e.rendermime,this._maxNumberOutputs=null!==(n=e.maxNumberOutputs)&&void 0!==n?n:1/0,this._translator=null!==(i=e.translator)&&void 0!==i?i:l.wK,this._inputHistoryScope=null!==(a=e.inputHistoryScope)&&void 0!==a?a:"global";const c=this.model=e.model;for(let e=0;e{this._pendingInput=!1})).catch((()=>{})),this.model.clear(),this.widgets.length&&(this._clear(),this.outputLengthChanged.emit(Math.min(this.model.length,this._maxNumberOutputs))),e.onIOPub=this._onIOPub,e.onReply=this._onExecuteReply,e.onStdin=t=>{a.KernelMessage.isInputRequestMsg(t)&&this.onInputRequest(t,e)})}get inputRequested(){return this._inputRequested}get pendingInput(){return this._pendingInput}get maxNumberOutputs(){return this._maxNumberOutputs}set maxNumberOutputs(e){if(e<=0)return void console.warn("OutputArea.maxNumberOutputs must be strictly positive.");const t=this._maxNumberOutputs;this._maxNumberOutputs=e,t{this._toggleScrolling.emit()})),this.node.appendChild(e),requestAnimationFrame((()=>{this._initialize.emit()}))}_moveDisplayIdIndices(e,t){this._displayIdMap.forEach((n=>{const i=e+t;for(let r=n.length-1;r>=0;--r){const s=n[r];s>=e&&s=i&&(n[r]-=t)}}))}onStateChanged(e,t){const n=Math.min(this.model.length,this._maxNumberOutputs);if(t){if(t>=this._maxNumberOutputs)return;this._setOutput(t,this.model.get(t))}else for(let e=0;e{this.isDisposed||(this.node.style.minHeight="")}),50)}onInputRequest(e,t){const n=this.contentFactory,i=e.content.prompt,r=e.content.password,o=new s.Panel;o.addClass(d),o.addClass("jp-OutputArea-stdin-item");const a=n.createOutputPrompt();a.addClass(p),o.addWidget(a),this._pendingInput=!0;const l=n.createStdin({parent_header:e.header,prompt:i,password:r,future:t,translator:this._translator,inputHistoryScope:this._inputHistoryScope});l.addClass(h),o.addWidget(l),this.model.length>=this.maxNumberOutputs&&(this.maxNumberOutputs=this.model.length),this._inputRequested.emit(l);const u=l.node.getElementsByTagName("input")[0];l.value.then((e=>{this.model.length>=this.maxNumberOutputs&&(this.maxNumberOutputs=this.model.length+1),o.addClass("jp-OutputArea-stdin-hiding"),this.model.add({output_type:"stream",name:"stdin",text:e+"\n"}),u.focus(),this._pendingInput=!1,window.setTimeout((()=>{const e=document.activeElement;o.dispose(),e&&e instanceof HTMLElement&&e.focus()}),500)})),this.layout.addWidget(o)}_setOutput(e,t){if(e>=this._maxNumberOutputs)return;const n=this.layout.widgets[e],i=n.widgets?n.widgets.filter((e=>"renderModel"in e)).pop():n,r=this.rendermime.preferredMimeType(t.data,t.trusted?"any":"ensure");_.currentPreferredMimetype.get(i)===r&&f.isIsolated(r,t.metadata)===i instanceof _.IsolatedRenderer?i.renderModel(t):(this.layout.widgets[e].dispose(),this._insertOutput(e,t))}_insertOutput(e,t){if(e>this._maxNumberOutputs)return;const n=this.layout;if(e===this._maxNumberOutputs){const t=new _.TrimmedOutputs(this._maxNumberOutputs,(()=>{const e=this._maxNumberOutputs;this._maxNumberOutputs=1/0,this._showTrimmedOutputs(e)}));n.insertWidget(e,this._wrappedOutput(t))}else{let i=this.createOutputItem(t);i?i.toggleClass("jp-OutputArea-executeResult",null!==t.executionCount):i=new s.Widget,this._outputTracker.has(i)||this._outputTracker.add(i),n.insertWidget(e,i)}}get outputTracker(){return this._outputTracker}_showTrimmedOutputs(e){this.widgets[e].dispose();for(let t=e;t{const t=document.createElement("pre"),i=this._translator.load("jupyterlab");t.textContent=i.__("Javascript Error: %1",e.message),n.node.appendChild(t),n.node.className="lm-Widget jp-RenderedText",n.node.setAttribute("data-mime-type","application/vnd.jupyter.stderr")})),n}_wrappedOutput(e,t=null){const n=new _.OutputPanel;n.addClass(d);const i=this.contentFactory.createOutputPrompt();return i.executionCount=t,i.addClass(p),n.addWidget(i),e.addClass(h),n.addWidget(e),n}}class m extends f{onInputRequest(e,t){}createOutputItem(e){const t=this.createRenderedMimetype(e);if(!t)return null;const n=new _.OutputPanel;return n.addClass(d),t.addClass(h),n.addWidget(t),n}}!function(e){e.execute=async function(e,t,n,i){var r;let s=!0;i&&Array.isArray(i.tags)&&-1!==i.tags.indexOf("raises-exception")&&(s=!1);const o={code:e,stop_on_error:s},a=null===(r=n.session)||void 0===r?void 0:r.kernel;if(!a)throw new Error("Session has no kernel.");const l=a.requestExecute(o,!1,i);return t.future=l,l.done},e.isIsolated=function(e,t){const n=t[e];return n&&void 0!==n.isolated?!!n.isolated:!!t.isolated};class t{createOutputPrompt(){return new g}createStdin(e){return new v(e)}}e.ContentFactory=t,e.defaultContentFactory=new t}(f||(f={}));class g extends s.Widget{constructor(){super(),this._executionCount=null,this.addClass("jp-OutputPrompt")}get executionCount(){return this._executionCount}set executionCount(e){this._executionCount=e,this.node.textContent=null===e?"":`[${e}]:`}}class v extends s.Widget{static _historyIx(e,t){const n=v._history.get(e);if(!n)return;const i=n.length;return t<=0?i+t:void 0}static _historyAt(e,t){const n=v._history.get(e);if(!n)return;const i=n.length,r=v._historyIx(e,t);return void 0!==r&&r1e3&&n.shift()}static _historySearch(e,t,n,i=!0){const r=v._history.get(e),s=r.length,o=v._historyIx(e,n),a=e=>-1!==e.search(t);if(void 0!==o)if(i){if(0===o)return;const e=r.slice(0,o).findLastIndex(a);if(-1!==e)return e-s}else{if(o>=s-1)return;const e=r.slice(o+1).findIndex(a);if(-1!==e)return e-s+o+1}}constructor(e){var t;super({node:_.createInputWidgetNode(e.prompt,e.password)}),this._promise=new u.PromiseDelegate,this._resolved=!1,this.addClass("jp-Stdin"),this._future=e.future,this._historyIndex=0,this._historyKey="session"===e.inputHistoryScope?e.parent_header.session:"",this._historyPat="",this._parentHeader=e.parent_header,this._password=e.password,this._trans=(null!==(t=e.translator)&&void 0!==t?t:l.wK).load("jupyterlab"),this._value=e.prompt+" ",this._input=this.node.getElementsByTagName("input")[0],this._password?this._input.placeholder="":this._input.placeholder=this._trans.__("↑↓ for history. Search history with c-↑/c-↓"),v._history.has(this._historyKey)||v._history.set(this._historyKey,[])}get value(){return this._promise.promise.then((()=>this._value))}handleEvent(e){if(this._resolved)return void e.preventDefault();const t=this._input;if("keydown"===e.type)if("Enter"===e.key)this.resetSearch(),this._future.sendInputReply({status:"ok",value:t.value},this._parentHeader),this._password?this._value+="········":(this._value+=t.value,v._historyPush(this._historyKey,t.value)),this._resolved=!0,this._promise.resolve(void 0);else if("Escape"===e.key)this.resetSearch(),t.blur();else if(!e.ctrlKey||"ArrowUp"!==e.key&&"ArrowDown"!==e.key){if("ArrowUp"===e.key){this.resetSearch();const n=v._historyAt(this._historyKey,this._historyIndex-1);n&&(0===this._historyIndex&&(this._valueCache=t.value),this._setInputValue(n),--this._historyIndex,e.preventDefault())}else if("ArrowDown"===e.key)if(this.resetSearch(),0===this._historyIndex);else if(-1===this._historyIndex)this._setInputValue(this._valueCache),++this._historyIndex;else{const e=v._historyAt(this._historyKey,this._historyIndex+1);e&&(this._setInputValue(e),++this._historyIndex)}}else{""===this._historyPat&&(this._historyPat=t.value);const n="ArrowUp"===e.key,i=v._historySearch(this._historyKey,this._historyPat,this._historyIndex,n);if(void 0!==i){const n=v._historyAt(this._historyKey,i);void 0!==n&&(0===this._historyIndex&&(this._valueCache=t.value),this._setInputValue(n),this._historyIndex=i,e.preventDefault())}}}resetSearch(){this._historyPat=""}onAfterAttach(e){this._input.addEventListener("keydown",this),this._input.focus()}onBeforeDetach(e){this._input.removeEventListener("keydown",this)}_setInputValue(e){this._input.value=e,this._input.setSelectionRange(e.length,e.length)}}var _;v._history=new Map,function(e){e.createInputWidgetNode=function(e,t){const n=document.createElement("div"),i=document.createElement("pre");i.className="jp-Stdin-prompt",i.textContent=e;const r=document.createElement("input");return r.className="jp-Stdin-input",t&&(r.type="password"),n.appendChild(i),i.appendChild(r),n};class t extends s.Widget{constructor(e){super({node:document.createElement("iframe")}),this.addClass("jp-mod-isolated"),this._wrapped=e;const t=this.node;t.frameBorder="0",t.scrolling="auto",t.addEventListener("load",(()=>{t.contentDocument.open(),t.contentDocument.write(this._wrapped.node.innerHTML),t.contentDocument.close();const e=t.contentDocument.body;t.style.height=`${e.scrollHeight}px`,t.heightChangeObserver=new ResizeObserver((()=>{t.style.height=`${e.scrollHeight}px`})),t.heightChangeObserver.observe(e)}))}renderModel(e){return this._wrapped.renderModel(e)}}e.IsolatedRenderer=t,e.currentPreferredMimetype=new c.AttachedProperty({name:"preferredMimetype",create:e=>""});class n extends s.Panel{constructor(e){super(e)}_onContext(e){this.node.focus()}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("contextmenu",this._onContext.bind(this))}onBeforeDetach(e){super.onAfterDetach(e),this.node.removeEventListener("contextmenu",this._onContext.bind(this))}}e.OutputPanel=n;class i extends s.Widget{constructor(e,t){const n=document.createElement("div"),i=`The first ${e} are displayed`;n.insertAdjacentHTML("afterbegin",`\n
Show more outputs
\n
`),super({node:n}),this._onClick=t,this.addClass("jp-TrimmedOutputs"),this.addClass("jp-RenderedHTMLCommon")}handleEvent(e){"click"===e.type&&this._onClick(e)}onAfterAttach(e){super.onAfterAttach(e),this.node.addEventListener("click",this)}onBeforeDetach(e){super.onBeforeDetach(e),this.node.removeEventListener("click",this)}}e.TrimmedOutputs=i}(_||(_={}))},98512:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AttachmentModel:()=>a,ILatexTypesetter:()=>A.nc,IMarkdownParser:()=>A.co,IRenderMimeRegistry:()=>A.N3,MimeModel:()=>y,OutputModel:()=>w.L,RenderMimeRegistry:()=>O,RenderedCommon:()=>l.nZ,RenderedError:()=>l.A6,RenderedHTML:()=>l.TH,RenderedHTMLCommon:()=>l.C6,RenderedImage:()=>l.vf,RenderedJavaScript:()=>l.TS,RenderedLatex:()=>l.Kc,RenderedMarkdown:()=>l.jL,RenderedSVG:()=>l.Yk,RenderedText:()=>l.Vx,errorRendererFactory:()=>f,htmlRendererFactory:()=>u,imageRendererFactory:()=>c,javaScriptRendererFactory:()=>g,latexRendererFactory:()=>d,markdownRendererFactory:()=>h,removeMath:()=>b.r,renderError:()=>I.vr,renderHTML:()=>I.e2,renderImage:()=>I.mx,renderLatex:()=>I.zG,renderMarkdown:()=>I.Gc,renderSVG:()=>I.d8,renderText:()=>I.S5,replaceMath:()=>b.H,standardRendererFactories:()=>v,svgRendererFactory:()=>p,textRendererFactory:()=>m});var i,r=n(57261),s=n(75764),o=n(38571);class a{constructor(e){this.trusted=!1,this._changed=new o.Signal(this),this._raw={};const t=i.getData(e.value);this._data=new r.U({values:t}),this._rawData=t;const n=e.value;for(const e in n)"data"===e||(this._raw[e]=i.extract(n,e))}get changed(){return this._changed}dispose(){this._data.dispose(),o.Signal.clearData(this)}get data(){return this._rawData}get metadata(){return{}}setData(e){e.data&&(this._updateObservable(this._data,e.data),this._rawData=e.data),this._changed.emit(void 0)}toJSON(){const e={};for(const t in this._raw)e[t]=i.extract(this._raw,t);return e}_updateObservable(e,t){const n=e.keys(),i=Object.keys(t);for(const t of n)-1===i.indexOf(t)&&e.delete(t);for(const n of i){const i=e.get(n),r=t[n];i!==r&&e.set(n,r)}}}!function(e){e.getData=function(e){return i.getData(e)}}(a||(a={})),function(e){function t(e){return function(e){const t=Object.create(null);for(const i in e)t[i]=n(e,i);return t}(e)}function n(e,t){const n=e[t];return void 0===n||s.JSONExt.isPrimitive(n)?n:s.JSONExt.deepCopy(n)}e.getData=t,e.getBundleOptions=function(e){return{data:t(e.value)}},e.extract=n}(i||(i={}));var l=n(18062);const u={safe:!0,mimeTypes:["text/html"],defaultRank:50,createRenderer:e=>new l.TH(e)},c={safe:!0,mimeTypes:["image/bmp","image/png","image/jpeg","image/gif","image/webp"],defaultRank:90,createRenderer:e=>new l.vf(e)},d={safe:!0,mimeTypes:["text/latex"],defaultRank:70,createRenderer:e=>new l.Kc(e)},h={safe:!0,mimeTypes:["text/markdown"],defaultRank:60,createRenderer:e=>new l.jL(e)},p={safe:!1,mimeTypes:["image/svg+xml"],defaultRank:80,createRenderer:e=>new l.Yk(e)},f={safe:!0,mimeTypes:["application/vnd.jupyter.stderr"],defaultRank:110,createRenderer:e=>new l.A6(e)},m={safe:!0,mimeTypes:["text/plain","application/vnd.jupyter.stdout"],defaultRank:120,createRenderer:e=>new l.Vx(e)},g={safe:!1,mimeTypes:["text/javascript","application/javascript"],defaultRank:110,createRenderer:e=>new l.TS(e)},v=[u,h,d,p,c,g,f,m];var _,b=n(20915);class y{constructor(e={}){this.trusted=!!e.trusted,this._data=e.data||{},this._metadata=e.metadata||{},this._callback=e.callback||_.noOp}get data(){return this._data}get metadata(){return this._metadata}setData(e){this._data=e.data||this._data,this._metadata=e.metadata||this._metadata,this._callback(e)}}!function(e){e.noOp=function(){}}(_||(_={}));var w=n(42429),x=n(11622),S=n.n(x);class E{static reg(e){return new RegExp("^"+e+"$","i")}}E.N={integer:"[+-]?[0-9]+",integer_pos:"[+]?[0-9]+",integer_zero_ff:"([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",number:"[+-]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_pos:"[+]?([0-9]*[.])?[0-9]+(e-?[0-9]*)?",number_zero_hundred:"[+]?(([0-9]|[1-9][0-9])([.][0-9]+)?|100)",number_zero_one:"[+]?(1([.][0]+)?|0?([.][0-9]+)?)"},E.B={angle:`(${E.N.number}(deg|rad|grad|turn)|0)`,frequency:`${E.N.number}(Hz|kHz)`,ident:String.raw`-?([_a-z]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\xA0-\xFF]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*`,len_or_perc:`(0|${E.N.number}(px|em|rem|ex|in|cm|mm|pt|pc|%))`,length:`(${E.N.number}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,length_pos:`(${E.N.number_pos}(px|em|rem|ex|in|cm|mm|pt|pc)|0)`,percentage:`${E.N.number}%`,percentage_pos:`${E.N.number_pos}%`,percentage_zero_hundred:`${E.N.number_zero_hundred}%`,string:String.raw`(\"([^\n\r\f\\"]|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\")|(\'([^\n\r\f\\']|\\\n|\r\n|\r|\f|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*\')`,time:`${E.N.number}(s|ms)`,url:"url\\(.*?\\)",z_index:"[+-]?[0-9]{1,7}"},E.A={absolute_size:"xx-small|x-small|small|medium|large|x-large|xx-large",attachment:"scroll|fixed|local",bg_origin:"border-box|padding-box|content-box",border_style:"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset",box:"border-box|padding-box|content-box",display_inside:"auto|block|table|flex|grid",display_outside:"block-level|inline-level|none|table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption",ending_shape:"circle|ellipse",generic_family:"serif|sans-serif|cursive|fantasy|monospace",generic_voice:"male|female|child",relative_size:"smaller|larger",repeat_style:"repeat-x|repeat-y|((?:repeat|space|round|no-repeat)(?:\\s*(?:repeat|space|round|no-repeat))?)",side_or_corner:"(left|right)?\\s*(top|bottom)?",single_animation_direction:"normal|reverse|alternate|alternate-reverse",single_animation_fill_mode:"none|forwards|backwards|both",single_animation_play_state:"running|paused"},E._COLOR={hex:"\\#(0x)?[0-9a-f]+",name:"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|transparent|violet|wheat|white|whitesmoke|yellow|yellowgreen",rgb:String.raw`rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)`,rgba:String.raw`rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(${E.N.integer_zero_ff}|${E.N.number_zero_one}|${E.B.percentage_zero_hundred})\s*\)`},E._C={alpha:`${E.N.integer_zero_ff}|${E.N.number_zero_one}|${E.B.percentage_zero_hundred}`,alphavalue:E.N.number_zero_one,bg_position:`((${E.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,bg_size:`(${E.B.length_pos}|${E.B.percentage}|auto){1,2}|cover|contain`,border_width:`thin|medium|thick|${E.B.length}`,bottom:`${E.B.length}|auto`,color:`${E._COLOR.hex}|${E._COLOR.rgb}|${E._COLOR.rgba}|${E._COLOR.name}`,color_stop_length:`(${E.B.len_or_perc}\\s*){1,2}`,linear_color_hint:`${E.B.len_or_perc}`,family_name:`${E.B.string}|(${E.B.ident}\\s*)+`,image_decl:E.B.url,left:`${E.B.length}|auto`,loose_quotable_words:`(${E.B.ident})+`,margin_width:`${E.B.len_or_perc}|auto`,padding_width:`${E.B.length_pos}|${E.B.percentage_pos}`,page_url:E.B.url,position:`((${E.B.len_or_perc}|left|center|right|top|bottom)\\s*){1,4}`,right:`${E.B.length}|auto`,shadow:"",size:`closest-side|farthest-side|closest-corner|farthest-corner|${E.B.length}|(${E.B.len_or_perc})\\s+(${E.B.len_or_perc})`,top:`${E.B.length}|auto`},E._C1={image_list:`image\\(\\s*(${E.B.url})*\\s*(${E.B.url}|${E._C.color})\\s*\\)`,linear_color_stop:`(${E._C.color})(\\s*${E._C.color_stop_length})?`,shadow:`((${E._C.color})\\s+((${E.B.length})\\s*){2,4}(s+inset)?)|((inset\\s+)?((${E.B.length})\\s*){2,4}\\s*(${E._C.color})?)`},E._C2={color_stop_list:`((${E._C1.linear_color_stop})(\\s*(${E._C.linear_color_hint}))?\\s*,\\s*)+(${E._C1.linear_color_stop})`,shape:`rect\\(\\s*(${E._C.top})\\s*,\\s*(${E._C.right})\\s*,\\s*(${E._C.bottom})\\s*,\\s*(${E._C.left})\\s*\\)`},E._C3={linear_gradient:`linear-gradient\\((((${E.B.angle})|to\\s+(${E.A.side_or_corner}))\\s*,\\s*)?\\s*(${E._C2.color_stop_list})\\s*\\)`,radial_gradient:`radial-gradient\\(((((${E.A.ending_shape})|(${E._C.size}))\\s*)*\\s*(at\\s+${E._C.position})?\\s*,\\s*)?\\s*(${E._C2.color_stop_list})\\s*\\)`},E._C4={image:`${E.B.url}|${E._C3.linear_gradient}|${E._C3.radial_gradient}|${E._C1.image_list}`,bg_image:`(${E.B.url}|${E._C3.linear_gradient}|${E._C3.radial_gradient}|${E._C1.image_list})|none`},E.C={...E._C,...E._C1,...E._C2,...E._C3,...E._C4},E.AP={border_collapse:"collapse|separate",box:"normal|none|contents",box_sizing:"content-box|padding-box|border-box",caption_side:"top|bottom",clear:"none|left|right|both",direction:"ltr|rtl",empty_cells:"show|hide",float:"left|right|none",font_stretch:"normal|wider|narrower|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",font_style:"normal|italic|oblique",font_variant:"normal|small-caps",font_weight:"normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900",list_style_position:"inside|outside",list_style_type:"disc|circle|square|decimal|decimal-leading-zero|lower-roman|upper-roman|lower-greek|lower-latin|upper-latin|armenian|georgian|lower-alpha|upper-alpha|none",overflow:"visible|hidden|scroll|auto",overflow_wrap:"normal|break-word",overflow_x:"visible|hidden|scroll|auto|no-display|no-content",page_break_after:"auto|always|avoid|left|right",page_break_before:"auto|always|avoid|left|right",page_break_inside:"avoid|auto",position:"static|relative|absolute",resize:"none|both|horizontal|vertical",speak:"normal|none|spell-out",speak_header:"once|always",speak_numeral:"digits|continuous",speak_punctuation:"code|none",table_layout:"auto|fixed",text_align:"left|right|center|justify",text_decoration:"none|((underline|overline|line-through|blink)\\s*)+",text_transform:"capitalize|uppercase|lowercase|none",text_wrap:"normal|unrestricted|none|suppress",unicode_bidi:"normal|embed|bidi-override",visibility:"visible|hidden|collapse",white_space:"normal|pre|nowrap|pre-wrap|pre-line",word_break:"normal|keep-all|break-all"},E._CP={background_attachment:`${E.A.attachment}(,\\s*${E.A.attachment})*`,background_color:E.C.color,background_origin:`${E.A.box}(,\\s*${E.A.box})*`,background_repeat:`${E.A.repeat_style}(,\\s*${E.A.repeat_style})*`,border:`((${E.C.border_width}|${E.A.border_style}|${E.C.color})\\s*){1,3}`,border_radius:`((${E.B.len_or_perc})\\s*){1,4}(\\/\\s*((${E.B.len_or_perc})\\s*){1,4})?`,border_spacing:`${E.B.length}\\s*(${E.B.length})?`,border_top_color:E.C.color,border_top_style:E.A.border_style,border_width:`((${E.C.border_width})\\s*){1,4}`,color:E.C.color,cursor:`(${E.B.url}(\\s*,\\s*)?)*(auto|crosshair|default|pointer|move|e-resize|ne-resize|nw-resize|n-resize|se-resize|sw-resize|s-resize|w-resize|text|wait|help|progress|all-scroll|col-resize|hand|no-drop|not-allowed|row-resize|vertical-text)`,display:`inline|block|list-item|run-in|inline-list-item|inline-block|table|inline-table|table-cell|table-caption|flex|inline-flex|grid|inline-grid|${E.A.display_inside}|${E.A.display_outside}|inherit|inline-box|inline-stack`,display_outside:E.A.display_outside,elevation:`${E.B.angle}|below|level|above|higher|lower`,font_family:`(${E.C.family_name}|${E.A.generic_family})(,\\s*(${E.C.family_name}|${E.A.generic_family}))*`,height:`${E.B.length}|${E.B.percentage}|auto`,letter_spacing:`normal|${E.B.length}`,list_style_image:`${E.C.image}|none`,margin_right:E.C.margin_width,max_height:`${E.B.length_pos}|${E.B.percentage_pos}|none|auto`,min_height:`${E.B.length_pos}|${E.B.percentage_pos}|auto`,opacity:E.C.alphavalue,outline_color:`${E.C.color}|invert`,outline_width:E.C.border_width,padding:`((${E.C.padding_width})\\s*){1,4}`,padding_top:E.C.padding_width,pitch_range:E.N.number,right:`${E.B.length}|${E.B.percentage}|auto`,stress:E.N.number,text_indent:`${E.B.length}|${E.B.percentage}`,text_shadow:`none|${E.C.shadow}(,\\s*(${E.C.shadow}))*`,volume:`${E.N.number_pos}|${E.B.percentage_pos}|silent|x-soft|soft|medium|loud|x-loud`,word_wrap:E.AP.overflow_wrap,zoom:`normal|${E.N.number_pos}|${E.B.percentage_pos}`,backface_visibility:E.AP.visibility,background_clip:`${E.A.box}(,\\s*(${E.A.box}))*`,background_position:`${E.C.bg_position}(,\\s*(${E.C.bg_position}))*`,border_bottom_color:E.C.color,border_bottom_style:E.A.border_style,border_color:`((${E.C.color})\\s*){1,4}`,border_left_color:E.C.color,border_right_color:E.C.color,border_style:`((${E.A.border_style})\\s*){1,4}`,border_top_left_radius:`(${E.B.length}|${E.B.percentage})(\\s*(${E.B.length}|${E.B.percentage}))?`,border_top_width:E.C.border_width,box_shadow:`none|${E.C.shadow}(,\\s*(${E.C.shadow}))*`,clip:`${E.C.shape}|auto`,display_inside:E.A.display_inside,font_size:`${E.A.absolute_size}|${E.A.relative_size}|${E.B.length_pos}|${E.B.percentage_pos}`,line_height:`normal|${E.N.number_pos}|${E.B.length_pos}|${E.B.percentage_pos}`,margin_left:E.C.margin_width,max_width:`${E.B.length_pos}|${E.B.percentage_pos}|none|auto`,outline_style:E.A.border_style,padding_bottom:E.C.padding_width,padding_right:E.C.padding_width,perspective:`none|${E.B.length}`,richness:E.N.number,text_overflow:`((clip|ellipsis|${E.B.string})\\s*){1,2}`,top:`${E.B.length}|${E.B.percentage}|auto`,width:`${E.B.length_pos}|${E.B.percentage_pos}|auto`,z_index:`auto|${E.B.z_index}`,background:`(((${E.C.bg_position}\\s*(\\/\\s*${E.C.bg_size})?)|(${E.A.repeat_style})|(${E.A.attachment})|(${E.A.bg_origin})|(${E.C.bg_image})|(${E.C.color}))\\s*)+`,background_size:`${E.C.bg_size}(,\\s*${E.C.bg_size})*`,border_bottom_left_radius:`(${E.B.length}|${E.B.percentage})(\\s*(${E.B.length}|${E.B.percentage}))?`,border_bottom_width:E.C.border_width,border_left_style:E.A.border_style,border_right_style:E.A.border_style,border_top:`((${E.C.border_width}|${E.A.border_style}|${E.C.color})\\s*){1,3}`,bottom:`${E.B.len_or_perc}|auto`,list_style:`((${E.AP.list_style_type}|${E.AP.list_style_position}|${E.C.image}|none})\\s*){1,3}`,margin_top:E.C.margin_width,outline:`((${E.C.color}|invert|${E.A.border_style}|${E.C.border_width})\\s*){1,3}`,overflow_y:E.AP.overflow_x,pitch:`${E.B.frequency}|x-low|low|medium|high|x-high`,vertical_align:`baseline|sub|super|top|text-top|middle|bottom|text-bottom|${E.B.len_or_perc}`,word_spacing:`normal|${E.B.length}`,background_image:`${E.C.bg_image}(,\\s*${E.C.bg_image})*`,border_bottom_right_radius:`(${E.B.length}|${E.B.percentage})(\\s*(${E.B.length}|${E.B.percentage}))?`,border_left_width:E.C.border_width,border_right_width:E.C.border_width,left:`${E.B.len_or_perc}|auto`,margin_bottom:E.C.margin_width,pause_after:`${E.B.time}|${E.B.percentage}`,speech_rate:`${E.N.number}|x-slow|slow|medium|fast|x-fast|faster|slower`,transition_duration:`${E.B.time}(,\\s*${E.B.time})*`,border_bottom:`((${E.C.border_width}|${E.A.border_style}|${E.C.color})\\s*){1,3}`,border_right:`((${E.C.border_width}|${E.A.border_style}|${E.C.color})\\s*){1,3}`,margin:`((${E.C.margin_width})\\s*){1,4}`,padding_left:E.C.padding_width,border_left:`((${E.C.border_width}|${E.A.border_style}|${E.C.color})\\s*){1,3}`,quotes:`(${E.B.string}\\s*${E.B.string})+|none`,border_top_right_radius:`(${E.B.length}|${E.B.percentage})(\\s*(${E.B.length}|${E.B.percentage}))?`,min_width:`${E.B.length_pos}|${E.B.percentage_pos}|auto`},E._CP1={font:`(((((${E.AP.font_style}|${E.AP.font_variant}|${E.AP.font_weight})\\s*){1,3})?\\s*(${E._CP.font_size})\\s*(\\/\\s*(${E._CP.line_height}))?\\s+(${E._CP.font_family}))|caption|icon|menu|message-box|small-caption|status-bar)`},E.CP={...E._CP,...E._CP1},E.BORDER_COLLAPSE=E.reg(E.AP.border_collapse),E.BOX=E.reg(E.AP.box),E.BOX_SIZING=E.reg(E.AP.box_sizing),E.CAPTION_SIDE=E.reg(E.AP.caption_side),E.CLEAR=E.reg(E.AP.clear),E.DIRECTION=E.reg(E.AP.direction),E.EMPTY_CELLS=E.reg(E.AP.empty_cells),E.FLOAT=E.reg(E.AP.float),E.FONT_STRETCH=E.reg(E.AP.font_stretch),E.FONT_STYLE=E.reg(E.AP.font_style),E.FONT_VARIANT=E.reg(E.AP.font_variant),E.FONT_WEIGHT=E.reg(E.AP.font_weight),E.LIST_STYLE_POSITION=E.reg(E.AP.list_style_position),E.LIST_STYLE_TYPE=E.reg(E.AP.list_style_type),E.OVERFLOW=E.reg(E.AP.overflow),E.OVERFLOW_WRAP=E.reg(E.AP.overflow_wrap),E.OVERFLOW_X=E.reg(E.AP.overflow_x),E.PAGE_BREAK_AFTER=E.reg(E.AP.page_break_after),E.PAGE_BREAK_BEFORE=E.reg(E.AP.page_break_before),E.PAGE_BREAK_INSIDE=E.reg(E.AP.page_break_inside),E.POSITION=E.reg(E.AP.position),E.RESIZE=E.reg(E.AP.resize),E.SPEAK=E.reg(E.AP.speak),E.SPEAK_HEADER=E.reg(E.AP.speak_header),E.SPEAK_NUMERAL=E.reg(E.AP.speak_numeral),E.SPEAK_PUNCTUATION=E.reg(E.AP.speak_punctuation),E.TABLE_LAYOUT=E.reg(E.AP.table_layout),E.TEXT_ALIGN=E.reg(E.AP.text_align),E.TEXT_DECORATION=E.reg(E.AP.text_decoration),E.TEXT_TRANSFORM=E.reg(E.AP.text_transform),E.TEXT_WRAP=E.reg(E.AP.text_wrap),E.UNICODE_BIDI=E.reg(E.AP.unicode_bidi),E.VISIBILITY=E.reg(E.AP.visibility),E.WHITE_SPACE=E.reg(E.AP.white_space),E.WORD_BREAK=E.reg(E.AP.word_break),E.BACKGROUND_ATTACHMENT=E.reg(E.CP.background_attachment),E.BACKGROUND_COLOR=E.reg(E.CP.background_color),E.BACKGROUND_ORIGIN=E.reg(E.CP.background_origin),E.BACKGROUND_REPEAT=E.reg(E.CP.background_repeat),E.BORDER=E.reg(E.CP.border),E.BORDER_RADIUS=E.reg(E.CP.border_radius),E.BORDER_SPACING=E.reg(E.CP.border_spacing),E.BORDER_TOP_COLOR=E.reg(E.CP.border_top_color),E.BORDER_TOP_STYLE=E.reg(E.CP.border_top_style),E.BORDER_WIDTH=E.reg(E.CP.border_width),E.COLOR=E.reg(E.CP.color),E.CURSOR=E.reg(E.CP.cursor),E.DISPLAY=E.reg(E.CP.display),E.DISPLAY_OUTSIDE=E.reg(E.CP.display_outside),E.ELEVATION=E.reg(E.CP.elevation),E.FONT_FAMILY=E.reg(E.CP.font_family),E.HEIGHT=E.reg(E.CP.height),E.LETTER_SPACING=E.reg(E.CP.letter_spacing),E.LIST_STYLE_IMAGE=E.reg(E.CP.list_style_image),E.MARGIN_RIGHT=E.reg(E.CP.margin_right),E.MAX_HEIGHT=E.reg(E.CP.max_height),E.MIN_HEIGHT=E.reg(E.CP.min_height),E.OPACITY=E.reg(E.CP.opacity),E.OUTLINE_COLOR=E.reg(E.CP.outline_color),E.OUTLINE_WIDTH=E.reg(E.CP.outline_width),E.PADDING=E.reg(E.CP.padding),E.PADDING_TOP=E.reg(E.CP.padding_top),E.PITCH_RANGE=E.reg(E.CP.pitch_range),E.RIGHT=E.reg(E.CP.right),E.STRESS=E.reg(E.CP.stress),E.TEXT_INDENT=E.reg(E.CP.text_indent),E.TEXT_SHADOW=E.reg(E.CP.text_shadow),E.VOLUME=E.reg(E.CP.volume),E.WORD_WRAP=E.reg(E.CP.word_wrap),E.ZOOM=E.reg(E.CP.zoom),E.BACKFACE_VISIBILITY=E.reg(E.CP.backface_visibility),E.BACKGROUND_CLIP=E.reg(E.CP.background_clip),E.BACKGROUND_POSITION=E.reg(E.CP.background_position),E.BORDER_BOTTOM_COLOR=E.reg(E.CP.border_bottom_color),E.BORDER_BOTTOM_STYLE=E.reg(E.CP.border_bottom_style),E.BORDER_COLOR=E.reg(E.CP.border_color),E.BORDER_LEFT_COLOR=E.reg(E.CP.border_left_color),E.BORDER_RIGHT_COLOR=E.reg(E.CP.border_right_color),E.BORDER_STYLE=E.reg(E.CP.border_style),E.BORDER_TOP_LEFT_RADIUS=E.reg(E.CP.border_top_left_radius),E.BORDER_TOP_WIDTH=E.reg(E.CP.border_top_width),E.BOX_SHADOW=E.reg(E.CP.box_shadow),E.CLIP=E.reg(E.CP.clip),E.DISPLAY_INSIDE=E.reg(E.CP.display_inside),E.FONT_SIZE=E.reg(E.CP.font_size),E.LINE_HEIGHT=E.reg(E.CP.line_height),E.MARGIN_LEFT=E.reg(E.CP.margin_left),E.MAX_WIDTH=E.reg(E.CP.max_width),E.OUTLINE_STYLE=E.reg(E.CP.outline_style),E.PADDING_BOTTOM=E.reg(E.CP.padding_bottom),E.PADDING_RIGHT=E.reg(E.CP.padding_right),E.PERSPECTIVE=E.reg(E.CP.perspective),E.RICHNESS=E.reg(E.CP.richness),E.TEXT_OVERFLOW=E.reg(E.CP.text_overflow),E.TOP=E.reg(E.CP.top),E.WIDTH=E.reg(E.CP.width),E.Z_INDEX=E.reg(E.CP.z_index),E.BACKGROUND=E.reg(E.CP.background),E.BACKGROUND_SIZE=E.reg(E.CP.background_size),E.BORDER_BOTTOM_LEFT_RADIUS=E.reg(E.CP.border_bottom_left_radius),E.BORDER_BOTTOM_WIDTH=E.reg(E.CP.border_bottom_width),E.BORDER_LEFT_STYLE=E.reg(E.CP.border_left_style),E.BORDER_RIGHT_STYLE=E.reg(E.CP.border_right_style),E.BORDER_TOP=E.reg(E.CP.border_top),E.BOTTOM=E.reg(E.CP.bottom),E.LIST_STYLE=E.reg(E.CP.list_style),E.MARGIN_TOP=E.reg(E.CP.margin_top),E.OUTLINE=E.reg(E.CP.outline),E.OVERFLOW_Y=E.reg(E.CP.overflow_y),E.PITCH=E.reg(E.CP.pitch),E.VERTICAL_ALIGN=E.reg(E.CP.vertical_align),E.WORD_SPACING=E.reg(E.CP.word_spacing),E.BACKGROUND_IMAGE=E.reg(E.CP.background_image),E.BORDER_BOTTOM_RIGHT_RADIUS=E.reg(E.CP.border_bottom_right_radius),E.BORDER_LEFT_WIDTH=E.reg(E.CP.border_left_width),E.BORDER_RIGHT_WIDTH=E.reg(E.CP.border_right_width),E.LEFT=E.reg(E.CP.left),E.MARGIN_BOTTOM=E.reg(E.CP.margin_bottom),E.PAUSE_AFTER=E.reg(E.CP.pause_after),E.SPEECH_RATE=E.reg(E.CP.speech_rate),E.TRANSITION_DURATION=E.reg(E.CP.transition_duration),E.BORDER_BOTTOM=E.reg(E.CP.border_bottom),E.BORDER_RIGHT=E.reg(E.CP.border_right),E.MARGIN=E.reg(E.CP.margin),E.PADDING_LEFT=E.reg(E.CP.padding_left),E.BORDER_LEFT=E.reg(E.CP.border_left),E.FONT=E.reg(E.CP.font),E.QUOTES=E.reg(E.CP.quotes),E.BORDER_TOP_RIGHT_RADIUS=E.reg(E.CP.border_top_right_radius),E.MIN_WIDTH=E.reg(E.CP.min_width);class C{constructor(){this._autolink=!0,this._allowNamedProperties=!1,this._generateOptions=()=>({allowedTags:["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blockquote","br","button","canvas","caption","center","cite","code","col","colgroup","colspan","command","data","datalist","dd","del","details","dfn","dir","div","dl","dt","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","i","img","input","ins","kbd","label","legend","li","map","mark","menu","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rowspan","s","samp","section","select","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],allowedAttributes:{"*":["class","dir","draggable","hidden",...this._allowNamedProperties?["id"]:[],"inert","itemprop","itemref","itemscope","lang","spellcheck","style","title","translate"],a:["accesskey","coords","href","hreflang",...this._allowNamedProperties?["name"]:[],"rel","shape","tabindex","target","type"],area:["accesskey","alt","coords","href","nohref","shape","tabindex"],audio:["autoplay","controls","loop","mediagroup","muted","preload","src"],bdo:["dir"],blockquote:["cite"],br:["clear"],button:["accesskey","data-commandlinker-args","data-commandlinker-command","disabled",...this._allowNamedProperties?["name"]:[],"tabindex","type","value"],canvas:["height","width"],caption:["align"],col:["align","char","charoff","span","valign","width"],colgroup:["align","char","charoff","span","valign","width"],command:["checked","command","disabled","icon","label","radiogroup","type"],data:["value"],del:["cite","datetime"],details:["open"],dir:["compact"],div:["align"],dl:["compact"],fieldset:["disabled"],font:["color","face","size"],form:["accept","autocomplete","enctype","method",...this._allowNamedProperties?["name"]:[],"novalidate"],h1:["align"],h2:["align"],h3:["align"],h4:["align"],h5:["align"],h6:["align"],hr:["align","noshade","size","width"],iframe:["align","frameborder","height","marginheight","marginwidth","width"],img:["align","alt","border","height","hspace","ismap",...this._allowNamedProperties?["name"]:[],"src","usemap","vspace","width"],input:["accept","accesskey","align","alt","autocomplete","checked","disabled","inputmode","ismap","list","max","maxlength","min","multiple",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","size","src","step","tabindex","type","usemap","value"],ins:["cite","datetime"],label:["accesskey","for"],legend:["accesskey","align"],li:["type","value"],map:this._allowNamedProperties?["name"]:[],menu:["compact","label","type"],meter:["high","low","max","min","value"],ol:["compact","reversed","start","type"],optgroup:["disabled","label"],option:["disabled","label","selected","value"],output:["for",...this._allowNamedProperties?["name"]:[]],p:["align"],pre:["width"],progress:["max","min","value"],q:["cite"],select:["autocomplete","disabled","multiple",...this._allowNamedProperties?["name"]:[],"required","size","tabindex"],source:["type"],table:["align","bgcolor","border","cellpadding","cellspacing","frame","rules","summary","width"],tbody:["align","char","charoff","valign"],td:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],textarea:["accesskey","autocomplete","cols","disabled","inputmode",...this._allowNamedProperties?["name"]:[],"placeholder","readonly","required","rows","tabindex","wrap"],tfoot:["align","char","charoff","valign"],th:["abbr","align","axis","bgcolor","char","charoff","colspan","headers","height","nowrap","rowspan","scope","valign","width"],thead:["align","char","charoff","valign"],tr:["align","bgcolor","char","charoff","valign"],track:["default","kind","label","srclang"],ul:["compact","type"],video:["autoplay","controls","height","loop","mediagroup","muted","poster","preload","src","width"]},allowedStyles:{"*":{"backface-visibility":[E.BACKFACE_VISIBILITY],background:[E.BACKGROUND],"background-attachment":[E.BACKGROUND_ATTACHMENT],"background-clip":[E.BACKGROUND_CLIP],"background-color":[E.BACKGROUND_COLOR],"background-image":[E.BACKGROUND_IMAGE],"background-origin":[E.BACKGROUND_ORIGIN],"background-position":[E.BACKGROUND_POSITION],"background-repeat":[E.BACKGROUND_REPEAT],"background-size":[E.BACKGROUND_SIZE],border:[E.BORDER],"border-bottom":[E.BORDER_BOTTOM],"border-bottom-color":[E.BORDER_BOTTOM_COLOR],"border-bottom-left-radius":[E.BORDER_BOTTOM_LEFT_RADIUS],"border-bottom-right-radius":[E.BORDER_BOTTOM_RIGHT_RADIUS],"border-bottom-style":[E.BORDER_BOTTOM_STYLE],"border-bottom-width":[E.BORDER_BOTTOM_WIDTH],"border-collapse":[E.BORDER_COLLAPSE],"border-color":[E.BORDER_COLOR],"border-left":[E.BORDER_LEFT],"border-left-color":[E.BORDER_LEFT_COLOR],"border-left-style":[E.BORDER_LEFT_STYLE],"border-left-width":[E.BORDER_LEFT_WIDTH],"border-radius":[E.BORDER_RADIUS],"border-right":[E.BORDER_RIGHT],"border-right-color":[E.BORDER_RIGHT_COLOR],"border-right-style":[E.BORDER_RIGHT_STYLE],"border-right-width":[E.BORDER_RIGHT_WIDTH],"border-spacing":[E.BORDER_SPACING],"border-style":[E.BORDER_STYLE],"border-top":[E.BORDER_TOP],"border-top-color":[E.BORDER_TOP_COLOR],"border-top-left-radius":[E.BORDER_TOP_LEFT_RADIUS],"border-top-right-radius":[E.BORDER_TOP_RIGHT_RADIUS],"border-top-style":[E.BORDER_TOP_STYLE],"border-top-width":[E.BORDER_TOP_WIDTH],"border-width":[E.BORDER_WIDTH],bottom:[E.BOTTOM],box:[E.BOX],"box-shadow":[E.BOX_SHADOW],"box-sizing":[E.BOX_SIZING],"caption-side":[E.CAPTION_SIDE],clear:[E.CLEAR],clip:[E.CLIP],color:[E.COLOR],cursor:[E.CURSOR],direction:[E.DIRECTION],display:[E.DISPLAY],"display-inside":[E.DISPLAY_INSIDE],"display-outside":[E.DISPLAY_OUTSIDE],elevation:[E.ELEVATION],"empty-cells":[E.EMPTY_CELLS],float:[E.FLOAT],font:[E.FONT],"font-family":[E.FONT_FAMILY],"font-size":[E.FONT_SIZE],"font-stretch":[E.FONT_STRETCH],"font-style":[E.FONT_STYLE],"font-variant":[E.FONT_VARIANT],"font-weight":[E.FONT_WEIGHT],height:[E.HEIGHT],left:[E.LEFT],"letter-spacing":[E.LETTER_SPACING],"line-height":[E.LINE_HEIGHT],"list-style":[E.LIST_STYLE],"list-style-image":[E.LIST_STYLE_IMAGE],"list-style-position":[E.LIST_STYLE_POSITION],"list-style-type":[E.LIST_STYLE_TYPE],margin:[E.MARGIN],"margin-bottom":[E.MARGIN_BOTTOM],"margin-left":[E.MARGIN_LEFT],"margin-right":[E.MARGIN_RIGHT],"margin-top":[E.MARGIN_TOP],"max-height":[E.MAX_HEIGHT],"max-width":[E.MAX_WIDTH],"min-height":[E.MIN_HEIGHT],"min-width":[E.MIN_WIDTH],opacity:[E.OPACITY],outline:[E.OUTLINE],"outline-color":[E.OUTLINE_COLOR],"outline-style":[E.OUTLINE_STYLE],"outline-width":[E.OUTLINE_WIDTH],overflow:[E.OVERFLOW],"overflow-wrap":[E.OVERFLOW_WRAP],"overflow-x":[E.OVERFLOW_X],"overflow-y":[E.OVERFLOW_Y],padding:[E.PADDING],"padding-bottom":[E.PADDING_BOTTOM],"padding-left":[E.PADDING_LEFT],"padding-right":[E.PADDING_RIGHT],"padding-top":[E.PADDING_TOP],"page-break-after":[E.PAGE_BREAK_AFTER],"page-break-before":[E.PAGE_BREAK_BEFORE],"page-break-inside":[E.PAGE_BREAK_INSIDE],"pause-after":[E.PAUSE_AFTER],perspective:[E.PERSPECTIVE],pitch:[E.PITCH],"pitch-range":[E.PITCH_RANGE],position:[E.POSITION],quotes:[E.QUOTES],resize:[E.RESIZE],richness:[E.RICHNESS],right:[E.RIGHT],speak:[E.SPEAK],"speak-header":[E.SPEAK_HEADER],"speak-numeral":[E.SPEAK_NUMERAL],"speak-punctuation":[E.SPEAK_PUNCTUATION],"speech-rate":[E.SPEECH_RATE],stress:[E.STRESS],"table-layout":[E.TABLE_LAYOUT],"text-align":[E.TEXT_ALIGN],"text-decoration":[E.TEXT_DECORATION],"text-indent":[E.TEXT_INDENT],"text-overflow":[E.TEXT_OVERFLOW],"text-shadow":[E.TEXT_SHADOW],"text-transform":[E.TEXT_TRANSFORM],"text-wrap":[E.TEXT_WRAP],top:[E.TOP],"unicode-bidi":[E.UNICODE_BIDI],"vertical-align":[E.VERTICAL_ALIGN],visibility:[E.VISIBILITY],volume:[E.VOLUME],"white-space":[E.WHITE_SPACE],width:[E.WIDTH],"word-break":[E.WORD_BREAK],"word-spacing":[E.WORD_SPACING],"word-wrap":[E.WORD_WRAP],"z-index":[E.Z_INDEX],zoom:[E.ZOOM]}},transformTags:{a:S().simpleTransform("a",{rel:"nofollow"}),input:S().simpleTransform("input",{disabled:"disabled"})},allowedSchemes:[...S().defaults.allowedSchemes],allowedSchemesByTag:{img:S().defaults.allowedSchemes.concat(["attachment"])},allowedSchemesAppliedToAttributes:["href","cite"]}),this._options=this._generateOptions()}sanitize(e,t){return S()(e,{...this._options,...t||{}})}getAutolink(){return this._autolink}setAllowedSchemes(e){this._options.allowedSchemes=[...e]}setAutolink(e){this._autolink=e}setAllowNamedProperties(e){this._allowNamedProperties=e,this._options=this._generateOptions()}}var k,M=n(88925),T=n(10509);class O{constructor(e={}){var t,n,i,r,s,o;if(this._id=0,this._ranks={},this._types=null,this._factories={},this.translator=null!==(t=e.translator)&&void 0!==t?t:T.wK,this.resolver=null!==(n=e.resolver)&&void 0!==n?n:null,this.linkHandler=null!==(i=e.linkHandler)&&void 0!==i?i:null,this.latexTypesetter=null!==(r=e.latexTypesetter)&&void 0!==r?r:null,this.markdownParser=null!==(s=e.markdownParser)&&void 0!==s?s:null,this.sanitizer=null!==(o=e.sanitizer)&&void 0!==o?o:new C,e.initialFactories)for(const t of e.initialFactories)this.addFactory(t)}get mimeTypes(){return this._types||(this._types=k.sortedTypes(this._ranks))}preferredMimeType(e,t="ensure"){if("ensure"===t||"prefer"===t)for(const t of this.mimeTypes)if(t in e&&this._factories[t].safe)return t;if("ensure"!==t)for(const t of this.mimeTypes)if(t in e)return t}createRenderer(e){if(!(e in this._factories))throw new Error(`No factory for mime type: '${e}'`);return this._factories[e].createRenderer({mimeType:e,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}createModel(e={}){return new y(e)}clone(e={}){var t,n,i,r,s,o,a,l,u,c;const d=new O({resolver:null!==(n=null!==(t=e.resolver)&&void 0!==t?t:this.resolver)&&void 0!==n?n:void 0,sanitizer:null!==(r=null!==(i=e.sanitizer)&&void 0!==i?i:this.sanitizer)&&void 0!==r?r:void 0,linkHandler:null!==(o=null!==(s=e.linkHandler)&&void 0!==s?s:this.linkHandler)&&void 0!==o?o:void 0,latexTypesetter:null!==(l=null!==(a=e.latexTypesetter)&&void 0!==a?a:this.latexTypesetter)&&void 0!==l?l:void 0,markdownParser:null!==(c=null!==(u=e.markdownParser)&&void 0!==u?u:this.markdownParser)&&void 0!==c?c:void 0,translator:this.translator});return d._factories={...this._factories},d._ranks={...this._ranks},d._id=this._id,d}getFactory(e){return this._factories[e]}addFactory(e,t){void 0===t&&void 0===(t=e.defaultRank)&&(t=100);for(const n of e.mimeTypes)this._factories[n]=e,this._ranks[n]={rank:t,id:this._id++};this._types=null}removeMimeType(e){delete this._factories[e],delete this._ranks[e],this._types=null}getRank(e){const t=this._ranks[e];return t&&t.rank}setRank(e,t){if(!this._ranks[e])return;const n=this._id++;this._ranks[e]={rank:t,id:n},this._types=null}}!function(e){e.UrlResolver=class{constructor(e){this._path=e.path,this._contents=e.contents}get path(){return this._path}set path(e){this._path=e}async resolveUrl(e){if(this.isLocal(e)){const t=encodeURI(M.PathExt.dirname(this.path));e=M.PathExt.resolve(t,e)}return e}async getDownloadUrl(e){return this.isLocal(e)?this._contents.getDownloadUrl(decodeURIComponent(e)):e}isLocal(e,t=!1){return!this.isMalformed(e)&&(M.URLExt.isLocal(e,t)||!!this._contents.driveName(decodeURI(e)))}async resolvePath(e){const t=M.PageConfig.getOption("rootUri").replace("file://","");if(e.startsWith("~/")&&t.startsWith("/home/")&&(e=t.split("/").slice(0,3).join("/")+e.substring(1)),e.startsWith(t)||e.startsWith("./"))try{const n=e.replace(t,"");return{path:(await this._contents.get(n,{content:!1})).path,scope:"server"}}catch(t){return console.warn(`Could not resolve location of ${e} on server`),null}return{path:e,scope:"kernel"}}isMalformed(e){try{return decodeURI(e),!1}catch(e){if(e instanceof URIError)return!0;throw e}}}}(O||(O={})),function(e){e.sortedTypes=function(e){return Object.keys(e).sort(((t,n)=>{const i=e[t],r=e[n];return i.rank!==r.rank?i.rank-r.rank:i.id-r.id}))}}(k||(k={}));var I=n(64243),A=n(95861)},20915:(e,t,n)=>{"use strict";n.d(t,{H:()=>o,r:()=>s});const i="$",r=/(\$\$?|\\(?:begin|end)\{[a-z]*\*?\}|\\[{}$]|[{}]|(?:\n\s*)+|@@\d+@@|\\\\(?:\(|\)|\[|\]))/i;function s(e){const t=[];let n,s=null,o=null,l=null,u=0;e.includes("`")||e.includes("~~~")?(e=e.replace(/~/g,"~T").replace(/^(?`{3,}|(~T){3,})[^`\n]*\n([\s\S]*?)^\k`*$/gm,(e=>e.replace(/\$/g,"~D"))).replace(/(^|[^\\])(`+)([^\n]*?[^`\n])\2(?!`)/gm,(e=>e.replace(/\$/g,"~D"))),n=e=>e.replace(/~([TD])/g,((e,t)=>"T"===t?"~":i))):n=e=>e;let c=e.replace(/\r\n?/g,"\n").split(r);for(let e=1,r=c.length;e{let i=t[n];return"\\\\("===i.substr(0,3)&&"\\\\)"===i.substr(i.length-3)?i="\\("+i.substring(3,i.length-3)+"\\)":"\\\\["===i.substr(0,3)&&"\\\\]"===i.substr(i.length-3)&&(i="\\["+i.substring(3,i.length-3)+"\\]"),i}))}function a(e,t,n,i,r){let s=r.slice(e,t+1).join("").replace(/&/g,"&").replace(//g,">");for(navigator&&"Microsoft Internet Explorer"===navigator.appName&&(s=s.replace(/(%[^\n]*)\n/g,"$1
\n"));t>e;)r[t]="",t--;return r[e]="@@"+i.length+"@@",n&&(s=n(s)),i.push(s),r}},42429:(e,t,n)=>{"use strict";n.d(t,{L:()=>l});var i,r=n(16468),s=n(57261),o=n(75764),a=n(38571);class l{constructor(e){this._changed=new a.Signal(this),this._raw={};const{data:t,metadata:n,trusted:o}=i.getBundleOptions(e);this._data=new s.U({values:t}),this._rawData=t,this._metadata=new s.U({values:n}),this._rawMetadata=n,this.trusted=o;const l=e.value;for(const e in l)switch(e){case"data":case"metadata":break;default:this._raw[e]=i.extract(l,e)}this.type=l.output_type,r.hc(l)?this.executionCount=l.execution_count:this.executionCount=null}get changed(){return this._changed}dispose(){this._data.dispose(),this._metadata.dispose(),a.Signal.clearData(this)}get data(){return this._rawData}get metadata(){return this._rawMetadata}setData(e){e.data&&(this._updateObservable(this._data,e.data),this._rawData=e.data),e.metadata&&(this._updateObservable(this._metadata,e.metadata),this._rawMetadata=e.metadata),this._changed.emit()}toJSON(){const e={};for(const t in this._raw)e[t]=i.extract(this._raw,t);switch(this.type){case"display_data":case"execute_result":case"update_display_data":e.data=this.data,e.metadata=this.metadata}return delete e.transient,e}_updateObservable(e,t){const n=e.keys(),i=Object.keys(t);for(const t of n)-1===i.indexOf(t)&&e.delete(t);for(const n of i){const i=e.get(n),r=t[n];i!==r&&e.set(n,r)}}}!function(e){e.getData=function(e){return i.getData(e)},e.getMetadata=function(e){return i.getMetadata(e)}}(l||(l={})),function(e){function t(e){let t={};if(r.hc(e)||r.jj(e)||r.gj(e))t=e.data;else if(r.rL(e))"stderr"===e.name?t["application/vnd.jupyter.stderr"]=e.text:t["application/vnd.jupyter.stdout"]=e.text;else if(r.bJ(e)){t["application/vnd.jupyter.error"]=e;const n=e.traceback.join("\n");t["application/vnd.jupyter.stderr"]=n||`${e.ename}: ${e.evalue}`}return function(e){const t=Object.create(null);for(const n in e)t[n]=i(e,n);return t}(t)}function n(e){const t=Object.create(null);if(r.hc(e)||r.jj(e))for(const n in e.metadata)t[n]=i(e.metadata,n);return t}function i(e,t){const n=e[t];return void 0===n||o.JSONExt.isPrimitive(n)?n:JSON.parse(JSON.stringify(n))}e.getData=t,e.getMetadata=n,e.getBundleOptions=function(e){return{data:t(e.value),metadata:n(e.value),trusted:!!e.trusted}},e.extract=i}(i||(i={}))},64243:(e,t,n)=>{"use strict";n.d(t,{Gc:()=>p,S5:()=>y,d8:()=>f,e2:()=>c,mx:()=>d,vr:()=>w,zG:()=>h});var i,r,s=n(88925),o=n(10509),a=n(29452),l=n.n(a),u=n(20915);function c(e){let{host:t,source:n,trusted:i,sanitizer:s,resolver:a,linkHandler:l,shouldTypeset:u,latexTypesetter:c,translator:d}=e;d=d||o.wK;const h=null==d?void 0:d.load("jupyterlab");let p,f=n;if(!n)return t.textContent="",Promise.resolve(void 0);if(i||(f=`${n}`,n=s.sanitize(n)),t.innerHTML=n,t.getElementsByTagName("script").length>0)if(i)r.evalInnerHTMLScriptTags(t);else{const e=document.createElement("div"),n=document.createElement("pre");n.textContent=h.__("This HTML output contains inline scripts. Are you sure that you want to run arbitrary Javascript within your JupyterLab session?");const i=document.createElement("button");i.textContent=h.__("Run"),i.onclick=e=>{t.innerHTML=f,r.evalInnerHTMLScriptTags(t),t.firstChild&&t.removeChild(t.firstChild)},e.appendChild(n),e.appendChild(i),t.insertBefore(e,t.firstChild)}return r.handleDefaults(t,a),p=a?r.handleUrls(t,a,l):Promise.resolve(void 0),p.then((()=>{u&&c&&c.typeset(t)}))}function d(e){const{host:t,mimeType:n,source:i,width:r,height:s,needsBackground:o,unconfined:a}=e;t.textContent="";const l=document.createElement("img");return l.src=`data:${n};base64,${i}`,"number"==typeof s&&(l.height=s),"number"==typeof r&&(l.width=r),"light"===o?l.classList.add("jp-needs-light-background"):"dark"===o&&l.classList.add("jp-needs-dark-background"),!0===a&&l.classList.add("jp-mod-unconfined"),t.appendChild(l),Promise.resolve(void 0)}function h(e){const{host:t,source:n,shouldTypeset:i,latexTypesetter:r}=e;return t.textContent=n,i&&r&&r.typeset(t),Promise.resolve(void 0)}async function p(e){const{host:t,source:n,markdownParser:i,...s}=e;if(!n)return void(t.textContent="");let o="";if(i){const e=(0,u.r)(n);o=await i.render(e.text),o=(0,u.H)(o,e.math)}else o=`
${n}
`;await c({host:t,source:o,...s}),r.headerAnchors(t)}function f(e){let{host:t,source:n,trusted:i,unconfined:r}=e;if(!n)return t.textContent="",Promise.resolve(void 0);if(!i)return t.textContent="Cannot display an untrusted SVG. Maybe you need to run the cell?",Promise.resolve(void 0);n.search("]+xmlns=[^>]+svg")<0&&(n=n.replace("(?:[a-zA-Z][a-zA-Z0-9+.-]{2,}:\\/\\/|data:|www\\.)[^\\s"+t+'"]{2,}[^\\s'+t+"\"'(){}\\[\\],:;.!?])","ug");const n=new RegExp(`(${/(?:[a-zA-Z]:(?:(?:\\|\/)[\w\.-]*)+)/.source}|${/(?:(?:\~|\.)(?:(?:\\|\/)[\w\.-]*)+)/.source})`),i=navigator.userAgent.indexOf("Windows")>=0;e.pathLinkRegex=new RegExp(`(?${i?n.source:/((?:\~|\.)?(?:\/[\w\.-]*)+)/.source})${/(?:(?:\:|", line )(?[\d]+))?(?:\:(?[\d]+))?/.source}`,"g")}(i||(i={}));class m{constructor(){this.regex=i.webLinkRegex}createAnchor(e,t){const n=document.createElement("a");return n.href=e.startsWith("www.")?"https://"+e:e,n.rel="noopener",n.target="_blank",n.appendChild(document.createTextNode(t)),n}processPath(e){const t=e.slice(-1),n=-1!==[">","<"].indexOf(t)?e.length-1:e.length;return e.slice(0,n)}processLabel(e){return this.processPath(e)}}class g{constructor(){this.regex=i.pathLinkRegex}createAnchor(e,t,n){const i=document.createElement("a");i.dataset.path=e;const r=parseInt(n.line,10);let s=isNaN(r)?"":"line="+(r-1);return i.dataset.locator=s,i.appendChild(document.createTextNode(t)),i}}function v(e,t){const n=[];t.checkWeb&&n.push(new m),t.checkPaths&&n.push(new g);const i=[],r=(e,t)=>{if(t>=n.length)return void i.push(document.createTextNode(e));const s=n[t];let o,a=0;const l=s.regex;for(l.lastIndex=0;null!=(o=l.exec(e));){const n=e.substring(a,o.index);n&&r(n,t+1);const{path:l,...u}=o.groups,c=s.processPath?s.processPath(l):l,d=s.processLabel?s.processLabel(o[0]):o[0];i.push(s.createAnchor(c,d,u)),a=o.index+d.length}const u=e.substring(a);u&&r(u,t+1)};return r(e,0),i}function _(e,t){var n,i;const r=e.cloneNode();r.textContent=null===(n=e.textContent)||void 0===n?void 0:n.slice(0,t);const s=e.cloneNode();return s.textContent=null===(i=e.textContent)||void 0===i?void 0:i.slice(t),{pre:r,post:s}}function*b(e){var t;let n,i=0;for(let r of e)n=i+((null===(t=r.textContent)||void 0===t?void 0:t.length)||0),yield{node:r,start:i,end:n,isText:r.nodeType===Node.TEXT_NODE},i=n}function y(e){var t,n;const{host:i,sanitizer:s,source:o}=e,a=s.sanitize(r.ansiSpan(o),{allowedTags:["span"]}),l=document.createElement("pre");l.innerHTML=a;const u=l.textContent;let c;if(u){const e=null===(n=null===(t=s.getAutolink)||void 0===t?void 0:t.call(s))||void 0===n||n?v(u,{checkWeb:!0,checkPaths:!1}):[document.createTextNode(a)];c=x(Array.from(l.childNodes),e)}else c=document.createElement("pre");return i.appendChild(c),Promise.resolve(void 0)}function w(e){var t,n;const{host:i,linkHandler:s,sanitizer:o,resolver:a,source:l}=e,u=o.sanitize(r.ansiSpan(l),{allowedTags:["span"]}),c=document.createElement("pre");c.innerHTML=u;const d=c.textContent;let h,p;if(d){const e=null===(n=null===(t=o.getAutolink)||void 0===t?void 0:t.call(o))||void 0===n||n?v(d,{checkWeb:!0,checkPaths:!0}):[document.createTextNode(u)];h=x(Array.from(c.childNodes),e)}else h=document.createElement("pre");return i.appendChild(h),p=a?r.handlePaths(i,a,s):Promise.resolve(void 0),p}function x(e,t){const n=document.createElement("pre");let i=!1;const r=[];for(let n of function*(e,t){var n,i;let r=b(e),s=b(t),o=r.next(),a=s.next();for(;!o.done&&!a.done;){let e=o.value,t=a.value;if(e.isText&&e.start<=t.start&&e.end>=t.end)yield[null,t.node],a=s.next();else if(t.isText&&t.start<=e.start&&t.end>=e.end)yield[e.node,null],o=r.next();else if(e.end===t.end&&e.start===t.start)yield[e.node,t.node],o=r.next(),a=s.next();else if(e.end>t.end){let{pre:i,post:r}=_(e.node,t.end-e.start);t.starte.end))throw new Error(`Unexpected intersection: ${JSON.stringify(e)} ${JSON.stringify(t)}`);{let{pre:n,post:s}=_(t.node,e.end-t.start);e.start{const r=decodeURIComponent(i);return n&&n.handleLink(e,r,o),t.getDownloadUrl(i)})).then((t=>{e.href=t+o})).catch((t=>{e.href=""}))}async function i(e,t,n){let i=e.dataset.path||"",r=e.dataset.locator?"#"+e.dataset.locator:"";delete e.dataset.path,delete e.dataset.locator;const o=!0,a=t.isLocal?t.isLocal(i,o):s.URLExt.isLocal(i,o);if(!(i&&a&&t.resolvePath&&n&&n.handlePath))return e.replaceWith(...e.childNodes),Promise.resolve(void 0);try{const s=await t.resolvePath(i);if(!s)return console.log("Path resolution bailing: does not exist"),Promise.resolve(void 0);n.handlePath(e,s.path,s.scope,r),e.href=s.path+r}catch(t){console.warn("Path anchor error:",t),e.href="#linking-failed-see-console"}}e.evalInnerHTMLScriptTags=function(e){const t=Array.from(e.getElementsByTagName("script"));for(const e of t){if(!e.parentNode)continue;const t=document.createElement("script"),n=e.attributes;for(let e=0,i=n.length;e{}))},e.handlePaths=async function(e,t,n){const r=e.getElementsByTagName("a");for(let e=0;e"),a.push(e),a.push("")):a.push(e)}}function a(e){let t,n,i;const r=e.shift();if(2===r&&e.length>=3){if(t=e.shift(),n=e.shift(),i=e.shift(),[t,n,i].some((e=>e<0||255=1))throw new RangeError("Invalid extended color specification");{const r=e.shift();if(r<0)throw new RangeError("Color index must be >= 0");if(r<16)return r;if(r<232)t=Math.floor((r-16)/36),t=t>0?55+40*t:0,n=Math.floor((r-16)%36/6),n=n>0?55+40*n:0,i=(r-16)%6,i=i>0?55+40*i:0;else{if(!(r<256))throw new RangeError("Color index must be < 256");t=n=i=10*(r-232)+8}}}return[t,n,i]}e.ansiSpan=function(e){const t=/\x1b\[(.*?)([@-~])/g;let n,i=[],r=[],s=!1,u=!1,c=!1;const d=[],h=[];let p=0;for(e=l()(e),e+="";n=t.exec(e);){if("m"===n[2]){const e=n[1].split(";");for(let t=0;t{"use strict";n.d(t,{N3:()=>r,co:()=>o,nc:()=>s});var i=n(75764);const r=new i.Token("@jupyterlab/rendermime:IRenderMimeRegistry",'A service for the rendermime registry for the application. Use this to create renderers for various mime-types in your extension. Many times it will be easier to create a "mime renderer extension" rather than using this service directly.'),s=new i.Token("@jupyterlab/rendermime:ILatexTypesetter","A service for the LaTeX typesetter for the application. Use this if you want to typeset math in your extension."),o=new i.Token("@jupyterlab/rendermime:IMarkdownParser","A service for rendering markdown syntax as HTML content.")},18062:(e,t,n)=>{"use strict";n.d(t,{A6:()=>f,C6:()=>a,Kc:()=>u,TH:()=>l,TS:()=>m,Vx:()=>p,Yk:()=>h,jL:()=>d,nZ:()=>o,vf:()=>c});var i=n(10509),r=n(75735),s=n(64243);class o extends r.Widget{constructor(e){var t,n;super(),this.mimeType=e.mimeType,this.sanitizer=e.sanitizer,this.resolver=e.resolver,this.linkHandler=e.linkHandler,this.translator=null!==(t=e.translator)&&void 0!==t?t:i.wK,this.latexTypesetter=e.latexTypesetter,this.markdownParser=null!==(n=e.markdownParser)&&void 0!==n?n:null,this.node.dataset.mimeType=this.mimeType}async renderModel(e,t){if(!t)for(;this.node.firstChild;)this.node.removeChild(this.node.firstChild);this.toggleClass("jp-mod-trusted",e.trusted),await this.render(e);const{fragment:n}=e.metadata;n&&this.setFragment(n)}setFragment(e){}}class a extends o{constructor(e){super(e),this.addClass("jp-RenderedHTMLCommon")}setFragment(e){let t;try{t=this.node.querySelector(e.startsWith("#")?`#${CSS.escape(e.slice(1))}`:e)}catch(e){console.warn("Unable to set URI fragment identifier.",e)}t&&t.scrollIntoView()}}class l extends a{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedHTML")}render(e){return this._rendered=s.e2({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,translator:this.translator})}onAfterAttach(e){this._rendered.then((()=>{this.latexTypesetter&&this.latexTypesetter.typeset(this.node)})).catch(console.warn)}}class u extends o{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedLatex")}render(e){return this._rendered=s.zG({host:this.node,source:String(e.data[this.mimeType]),shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter})}onAfterAttach(e){this._rendered.then((()=>{this.latexTypesetter&&this.latexTypesetter.typeset(this.node)})).catch(console.warn)}}class c extends o{constructor(e){super(e),this.addClass("jp-RenderedImage")}render(e){const t=e.metadata[this.mimeType];return s.mx({host:this.node,mimeType:this.mimeType,source:String(e.data[this.mimeType]),width:t&&t.width,height:t&&t.height,needsBackground:e.metadata.needs_background,unconfined:t&&t.unconfined})}}class d extends a{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedMarkdown")}render(e){return this._rendered=s.Gc({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,resolver:this.resolver,sanitizer:this.sanitizer,linkHandler:this.linkHandler,shouldTypeset:this.isAttached,latexTypesetter:this.latexTypesetter,markdownParser:this.markdownParser,translator:this.translator})}async renderModel(e){await super.renderModel(e,!0)}onAfterAttach(e){this._rendered.then((()=>{this.latexTypesetter&&this.latexTypesetter.typeset(this.node)})).catch(console.warn)}}class h extends o{constructor(e){super(e),this._rendered=Promise.resolve(),this.addClass("jp-RenderedSVG")}render(e){const t=e.metadata[this.mimeType];return this._rendered=s.d8({host:this.node,source:String(e.data[this.mimeType]),trusted:e.trusted,unconfined:t&&t.unconfined,translator:this.translator})}onAfterAttach(e){this._rendered.then((()=>{this.latexTypesetter&&this.latexTypesetter.typeset(this.node)})).catch(console.warn)}}class p extends o{constructor(e){super(e),this.addClass("jp-RenderedText")}render(e){return s.S5({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),translator:this.translator})}}class f extends o{constructor(e){super(e),this.addClass("jp-RenderedText")}render(e){return s.vr({host:this.node,sanitizer:this.sanitizer,source:String(e.data[this.mimeType]),linkHandler:this.linkHandler,resolver:this.resolver,translator:this.translator})}}class m extends o{constructor(e){super(e),this.addClass("jp-RenderedJavaScript")}render(e){const t=this.translator.load("jupyterlab");return s.S5({host:this.node,sanitizer:this.sanitizer,source:t.__("JavaScript output is disabled in JupyterLab"),translator:this.translator})}}},43867:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BaseManager=void 0;const i=n(38571),r=n(22920);t.BaseManager=class{constructor(e){var t;this._isDisposed=!1,this._disposed=new i.Signal(this),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}get disposed(){return this._disposed}get isDisposed(){return this._isDisposed}get isActive(){return!0}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(void 0),i.Signal.clearData(this))}}},4219:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BuildManager=void 0;const i=n(88925),r=n(22920);t.BuildManager=class{constructor(e={}){var t;this._url="",this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings();const{baseUrl:n,appUrl:s}=this.serverSettings;this._url=i.URLExt.join(n,s,"api/build")}get isAvailable(){return"true"===i.PageConfig.getOption("buildAvailable").toLowerCase()}get shouldCheck(){return"true"===i.PageConfig.getOption("buildCheck").toLowerCase()}getStatus(){const{_url:e,serverSettings:t}=this;return r.ServerConnection.makeRequest(e,{},t).then((e=>{if(200!==e.status)throw new r.ServerConnection.ResponseError(e);return e.json()})).then((e=>{if("string"!=typeof e.status)throw new Error("Invalid data");if("string"!=typeof e.message)throw new Error("Invalid data");return e}))}build(){const{_url:e,serverSettings:t}=this;return r.ServerConnection.makeRequest(e,{method:"POST"},t).then((e=>{if(400===e.status)throw new r.ServerConnection.ResponseError(e,"Build aborted");if(200!==e.status){const t=`Build failed with ${e.status}.\n\n If you are experiencing the build failure after installing an extension (or trying to include previously installed extension after updating JupyterLab) please check the extension repository for new installation instructions as many extensions migrated to the prebuilt extensions system which no longer requires rebuilding JupyterLab (but uses a different installation procedure, typically involving a package manager such as 'pip' or 'conda').\n\n If you specifically intended to install a source extension, please run 'jupyter lab build' on the server for full output.`;throw new r.ServerConnection.ResponseError(e,t)}}))}cancel(){const{_url:e,serverSettings:t}=this;return r.ServerConnection.makeRequest(e,{method:"DELETE"},t).then((e=>{if(204!==e.status)throw new r.ServerConnection.ResponseError(e)}))}}},72170:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConfigWithDefaults=t.ConfigSection=void 0;const i=n(88925),r=n(17883);var s;!function(e){e.create=function(e){const t=new o(e);return t.load().then((()=>t))}}(s||(t.ConfigSection=s={}));class o{constructor(e){var t;this._url="unknown";const n=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings();this._url=i.URLExt.join(n.baseUrl,"api/config",encodeURIComponent(e.name))}get data(){return this._data}async load(){const e=await r.ServerConnection.makeRequest(this._url,{},this.serverSettings);if(200!==e.status)throw await r.ServerConnection.ResponseError.create(e);this._data=await e.json()}async update(e){this._data={...this._data,...e};const t={method:"PATCH",body:JSON.stringify(e)},n=await r.ServerConnection.makeRequest(this._url,t,this.serverSettings);if(200!==n.status)throw await r.ServerConnection.ResponseError.create(n);return this._data=await n.json(),this._data}}t.ConfigWithDefaults=class{constructor(e){var t,n;this._className="",this._section=e.section,this._defaults=null!==(t=e.defaults)&&void 0!==t?t:{},this._className=null!==(n=e.className)&&void 0!==n?n:""}get(e){const t=this._classData();return e in t?t[e]:this._defaults[e]}set(e,t){const n={};if(n[e]=t,this._className){const e={};return e[this._className]=n,this._section.update(e)}return this._section.update(n)}_classData(){const e=this._section.data;return this._className&&this._className in e?e[this._className]:e}}},98790:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Drive=t.ContentsManager=t.Contents=void 0;const o=n(88925),a=n(38571),l=n(17883),u=s(n(62706));var c,d;!function(e){e.validateContentsModel=function(e){u.validateContentsModel(e)},e.validateCheckpointModel=function(e){u.validateCheckpointModel(e)}}(c||(t.Contents=c={})),t.ContentsManager=class{constructor(e={}){var t,n;this._isDisposed=!1,this._additionalDrives=new Map,this._fileChanged=new a.Signal(this);const i=this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:l.ServerConnection.makeSettings();this._defaultDrive=null!==(n=e.defaultDrive)&&void 0!==n?n:new h({serverSettings:i}),this._defaultDrive.fileChanged.connect(this._onFileChanged,this)}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))}addDrive(e){this._additionalDrives.set(e.name,e),e.fileChanged.connect(this._onFileChanged,this)}getSharedModelFactory(e){var t;const[n]=this._driveForPath(e);return null!==(t=null==n?void 0:n.sharedModelFactory)&&void 0!==t?t:null}localPath(e){const t=e.split("/"),n=t[0].split(":");return 1!==n.length&&this._additionalDrives.has(n[0])?o.PathExt.join(n.slice(1).join(":"),...t.slice(1)):o.PathExt.removeSlash(e)}normalize(e){const t=e.split(":");return 1===t.length?o.PathExt.normalize(e):`${t[0]}:${o.PathExt.normalize(t.slice(1).join(":"))}`}resolvePath(e,t){const n=this.driveName(e),i=this.localPath(e),r=o.PathExt.resolve("/",i,t);return n?`${n}:${r}`:r}driveName(e){const t=e.split("/")[0].split(":");return 1===t.length?"":this._additionalDrives.has(t[0])?t[0]:""}get(e,t){const[n,i]=this._driveForPath(e);return n.get(i,t).then((e=>{const t=[];if("directory"===e.type&&e.content){for(const i of e.content)t.push({...i,path:this._toGlobalPath(n,i.path)});return{...e,path:this._toGlobalPath(n,i),content:t,serverPath:e.path}}return{...e,path:this._toGlobalPath(n,i),serverPath:e.path}}))}getDownloadUrl(e){const[t,n]=this._driveForPath(e);return t.getDownloadUrl(n)}newUntitled(e={}){if(e.path){const t=this.normalize(e.path),[n,i]=this._driveForPath(t);return n.newUntitled({...e,path:i}).then((e=>({...e,path:o.PathExt.join(t,e.name),serverPath:e.path})))}return this._defaultDrive.newUntitled(e)}delete(e){const[t,n]=this._driveForPath(e);return t.delete(n)}rename(e,t){const[n,i]=this._driveForPath(e),[r,s]=this._driveForPath(t);if(n!==r)throw Error("ContentsManager: renaming files must occur within a Drive");return n.rename(i,s).then((e=>({...e,path:this._toGlobalPath(n,s),serverPath:e.path})))}save(e,t={}){const n=this.normalize(e),[i,r]=this._driveForPath(e);return i.save(r,{...t,path:r}).then((e=>({...e,path:n,serverPath:e.path})))}copy(e,t){const[n,i]=this._driveForPath(e),[r,s]=this._driveForPath(t);if(n===r)return n.copy(i,s).then((e=>({...e,path:this._toGlobalPath(n,e.path),serverPath:e.path})));throw Error("Copying files between drives is not currently implemented")}createCheckpoint(e){const[t,n]=this._driveForPath(e);return t.createCheckpoint(n)}listCheckpoints(e){const[t,n]=this._driveForPath(e);return t.listCheckpoints(n)}restoreCheckpoint(e,t){const[n,i]=this._driveForPath(e);return n.restoreCheckpoint(i,t)}deleteCheckpoint(e,t){const[n,i]=this._driveForPath(e);return n.deleteCheckpoint(i,t)}_toGlobalPath(e,t){return e===this._defaultDrive?o.PathExt.removeSlash(t):`${e.name}:${o.PathExt.removeSlash(t)}`}_driveForPath(e){const t=this.driveName(e),n=this.localPath(e);return t?[this._additionalDrives.get(t),n]:[this._defaultDrive,n]}_onFileChanged(e,t){var n,i;if(e===this._defaultDrive)this._fileChanged.emit(t);else{let r=null,s=null;(null===(n=t.newValue)||void 0===n?void 0:n.path)&&(r={...t.newValue,path:this._toGlobalPath(e,t.newValue.path)}),(null===(i=t.oldValue)||void 0===i?void 0:i.path)&&(s={...t.oldValue,path:this._toGlobalPath(e,t.oldValue.path)}),this._fileChanged.emit({type:t.type,newValue:r,oldValue:s})}}};class h{constructor(e={}){var t,n,i;this._isDisposed=!1,this._fileChanged=new a.Signal(this),this.name=null!==(t=e.name)&&void 0!==t?t:"Default",this._apiEndpoint=null!==(n=e.apiEndpoint)&&void 0!==n?n:"api/contents",this.serverSettings=null!==(i=e.serverSettings)&&void 0!==i?i:l.ServerConnection.makeSettings()}get fileChanged(){return this._fileChanged}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,a.Signal.clearData(this))}async get(e,t){let n=this._getUrl(e);if(t){"notebook"===t.type&&delete t.format;const e=t.content?"1":"0",i=t.hash?"1":"0",r={...t,content:e,hash:i};n+=o.URLExt.objectToQueryString(r)}const i=this.serverSettings,r=await l.ServerConnection.makeRequest(n,{},i);if(200!==r.status)throw await l.ServerConnection.ResponseError.create(r);const s=await r.json();return u.validateContentsModel(s),s}getDownloadUrl(e){const t=this.serverSettings.baseUrl;let n=o.URLExt.join(t,"files",o.URLExt.encodeParts(e)),i="";try{i=document.cookie}catch(e){}const r=i.match("\\b_xsrf=([^;]*)\\b");if(r){const e=new URL(n);e.searchParams.append("_xsrf",r[1]),n=e.toString()}return Promise.resolve(n)}async newUntitled(e={}){var t;let n="{}";e&&(e.ext&&(e.ext=d.normalizeExtension(e.ext)),n=JSON.stringify(e));const i=this.serverSettings,r=this._getUrl(null!==(t=e.path)&&void 0!==t?t:""),s={method:"POST",body:n},o=await l.ServerConnection.makeRequest(r,s,i);if(201!==o.status)throw await l.ServerConnection.ResponseError.create(o);const a=await o.json();return u.validateContentsModel(a),this._fileChanged.emit({type:"new",oldValue:null,newValue:a}),a}async delete(e){const t=this._getUrl(e),n=this.serverSettings,i=await l.ServerConnection.makeRequest(t,{method:"DELETE"},n);if(204!==i.status)throw await l.ServerConnection.ResponseError.create(i);this._fileChanged.emit({type:"delete",oldValue:{path:e},newValue:null})}async rename(e,t){const n=this.serverSettings,i=this._getUrl(e),r={method:"PATCH",body:JSON.stringify({path:t})},s=await l.ServerConnection.makeRequest(i,r,n);if(200!==s.status)throw await l.ServerConnection.ResponseError.create(s);const o=await s.json();return u.validateContentsModel(o),this._fileChanged.emit({type:"rename",oldValue:{path:e},newValue:o}),o}async save(e,t={}){const n=this.serverSettings,i=this._getUrl(e),r={method:"PUT",body:JSON.stringify(t)},s=await l.ServerConnection.makeRequest(i,r,n);if(200!==s.status&&201!==s.status)throw await l.ServerConnection.ResponseError.create(s);const o=await s.json();return u.validateContentsModel(o),this._fileChanged.emit({type:"save",oldValue:null,newValue:o}),o}async copy(e,t){const n=this.serverSettings,i=this._getUrl(t),r={method:"POST",body:JSON.stringify({copy_from:e})},s=await l.ServerConnection.makeRequest(i,r,n);if(201!==s.status)throw await l.ServerConnection.ResponseError.create(s);const o=await s.json();return u.validateContentsModel(o),this._fileChanged.emit({type:"new",oldValue:null,newValue:o}),o}async createCheckpoint(e){const t=this._getUrl(e,"checkpoints"),n=await l.ServerConnection.makeRequest(t,{method:"POST"},this.serverSettings);if(201!==n.status)throw await l.ServerConnection.ResponseError.create(n);const i=await n.json();return u.validateCheckpointModel(i),i}async listCheckpoints(e){const t=this._getUrl(e,"checkpoints"),n=await l.ServerConnection.makeRequest(t,{},this.serverSettings);if(200!==n.status)throw await l.ServerConnection.ResponseError.create(n);const i=await n.json();if(!Array.isArray(i))throw new Error("Invalid Checkpoint list");for(let e=0;eo.URLExt.encodeParts(e))),n=this.serverSettings.baseUrl;return o.URLExt.join(n,this._apiEndpoint,...t)}}t.Drive=h,function(e){e.normalizeExtension=function(e){return e.length>0&&0!==e.indexOf(".")&&(e=`.${e}`),e}}(d||(d={}))},62706:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateCheckpointModel=t.validateContentsModel=void 0;const i=n(87441);t.validateContentsModel=function(e){(0,i.validateProperty)(e,"name","string"),(0,i.validateProperty)(e,"path","string"),(0,i.validateProperty)(e,"type","string"),(0,i.validateProperty)(e,"created","string"),(0,i.validateProperty)(e,"last_modified","string"),(0,i.validateProperty)(e,"mimetype","object"),(0,i.validateProperty)(e,"content","object"),(0,i.validateProperty)(e,"format","object")},t.validateCheckpointModel=function(e){(0,i.validateProperty)(e,"id","string"),(0,i.validateProperty)(e,"last_modified","string")}},69480:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EventManager=void 0;const i=n(88925),r=n(86049),s=n(38571),o=n(22920),a="api/events";t.EventManager=class{constructor(e={}){var t;this._socket=null,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:o.ServerConnection.makeSettings(),this._poll=new r.Poll({factory:()=>this._subscribe()}),this._stream=new s.Stream(this),this._poll.start()}get isDisposed(){return this._poll.isDisposed}get stream(){return this._stream}dispose(){if(this.isDisposed)return;this._poll.dispose();const e=this._socket;e&&(this._socket=null,e.onopen=()=>{},e.onerror=()=>{},e.onmessage=()=>{},e.onclose=()=>{},e.close()),s.Signal.clearData(this),this._stream.stop()}async emit(e){const{serverSettings:t}=this,{baseUrl:n}=t,{makeRequest:r,ResponseError:s}=o.ServerConnection,l=i.URLExt.join(n,a),u={body:JSON.stringify(e),method:"POST"},c=await r(l,u,t);if(204!==c.status)throw new s(c)}_subscribe(){return new Promise(((e,t)=>{if(this.isDisposed)return;const{appendToken:n,token:r,WebSocket:s,wsUrl:o}=this.serverSettings;let l=i.URLExt.join(o,a,"subscribe");n&&""!==r&&(l+=`?token=${encodeURIComponent(r)}`);const u=this._socket=new s(l),c=this._stream;u.onclose=()=>t(new Error("EventManager socket closed")),u.onmessage=e=>e.data&&c.emit(JSON.parse(e.data))}))}}},17883:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(43867),t),r(n(72170),t),r(n(98790),t),r(n(69480),t),r(n(10973),t),r(n(92946),t),r(n(99740),t),r(n(22920),t),r(n(37668),t),r(n(67780),t),r(n(89040),t),r(n(49191),t),r(n(38053),t),r(n(68683),t)},67489:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.CommHandler=void 0;const o=n(7556),a=s(n(89909));class l extends o.DisposableDelegate{constructor(e,t,n,i){super(i),this._target="",this._id="",this._id=t,this._target=e,this._kernel=n}get commId(){return this._id}get targetName(){return this._target}get onClose(){return this._onClose}set onClose(e){this._onClose=e}get onMsg(){return this._onMsg}set onMsg(e){this._onMsg=e}open(e,t,n=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot open");const i=a.createMessage({msgType:"comm_open",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,target_name:this._target,data:null!=e?e:{}},metadata:t,buffers:n});return this._kernel.sendShellMessage(i,!1,!0)}send(e,t,n=[],i=!0){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot send");const r=a.createMessage({msgType:"comm_msg",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:e},metadata:t,buffers:n});return this._kernel.sendShellMessage(r,!1,i)}close(e,t,n=[]){if(this.isDisposed||this._kernel.isDisposed)throw new Error("Cannot close");const i=a.createMessage({msgType:"comm_close",channel:"shell",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:n}),r=this._kernel.sendShellMessage(i,!1,!0),s=this._onClose;return s&&s(a.createMessage({msgType:"comm_close",channel:"iopub",username:this._kernel.username,session:this._kernel.clientId,content:{comm_id:this._id,data:null!=e?e:{}},metadata:t,buffers:n})),this.dispose(),r}}t.CommHandler=l},12456:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelConnection=void 0;const o=n(88925),a=n(75764),l=n(38571),u=n(17883),c=n(67489),d=s(n(89909)),h=n(10134),p=s(n(25855)),f=n(92946),m=s(n(98235)),g="_RESTARTING_";class v{constructor(e){var t,n,i,r;this._createSocket=(e=!0)=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const t=this.serverSettings,n=o.URLExt.join(t.wsUrl,m.KERNEL_SERVICE_URL,encodeURIComponent(this._id)),i=n.replace(/^((?:\w+:)?\/\/)(?:[^@\/]+@)/,"$1");console.debug(`Starting WebSocket: ${i}`);let r=o.URLExt.join(n,"channels?session_id="+encodeURIComponent(this._clientId));const s=t.token;t.appendToken&&""!==s&&(r+=`&token=${encodeURIComponent(s)}`);const a=e?this._supportedProtocols:[];this._ws=new t.WebSocket(r,a),this._ws.binaryType="arraybuffer";let l=!1;const c=async e=>{var n,i;if(!this._isDisposed){this._reason="",this._model=void 0;try{const n=await m.getKernelModel(this._id,t);this._model=n,"dead"===(null==n?void 0:n.execution_state)?this._updateStatus("dead"):this._onWSClose(e)}catch(t){if(t instanceof u.ServerConnection.NetworkError||503===(null===(n=t.response)||void 0===n?void 0:n.status)||424===(null===(i=t.response)||void 0===i?void 0:i.status)){const t=1e3*_.getRandomIntInclusive(10,30);setTimeout(c,t,e)}else this._reason="Kernel died unexpectedly",this._updateStatus("dead")}}},d=async e=>{l||(l=!0,await c(e))};this._ws.onmessage=this._onWSMessage,this._ws.onopen=this._onWSOpen,this._ws.onclose=d,this._ws.onerror=d},this._onWSOpen=e=>{if(""!==this._ws.protocol&&!this._supportedProtocols.includes(this._ws.protocol))throw console.log("Server selected unknown kernel wire protocol:",this._ws.protocol),this._updateStatus("dead"),new Error(`Unknown kernel wire protocol: ${this._ws.protocol}`);this._selectedProtocol=this._ws.protocol,this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose,this._updateConnectionStatus("connected")},this._onWSMessage=e=>{let t;try{t=this.serverSettings.serializer.deserialize(e.data,this._ws.protocol),p.validateMessage(t)}catch(e){throw e.message=`Kernel message validation error: ${e.message}`,e}this._kernelSession=t.header.session,this._msgChain=this._msgChain.then((()=>this._handleMessage(t))).catch((e=>{e.message.startsWith("Canceled future for ")&&console.error(e)})),this._anyMessage.emit({msg:t,direction:"recv"})},this._onWSClose=e=>{this.isDisposed||this._reconnect()},this._id="",this._name="",this._status="unknown",this._connectionStatus="connecting",this._kernelSession="",this._isDisposed=!1,this._ws=null,this._username="",this._reconnectLimit=7,this._reconnectAttempt=0,this._reconnectTimeout=null,this._supportedProtocols=Object.values(d.supportedKernelWebSocketProtocols),this._selectedProtocol="",this._futures=new Map,this._comms=new Map,this._targetRegistry=Object.create(null),this._info=new a.PromiseDelegate,this._pendingMessages=[],this._statusChanged=new l.Signal(this),this._connectionStatusChanged=new l.Signal(this),this._disposed=new l.Signal(this),this._iopubMessage=new l.Signal(this),this._anyMessage=new l.Signal(this),this._pendingInput=new l.Signal(this),this._unhandledMessage=new l.Signal(this),this._displayIdToParentIds=new Map,this._msgIdToDisplayIds=new Map,this._msgChain=Promise.resolve(),this._hasPendingInput=!1,this._reason="",this._noOp=()=>{},this._name=e.model.name,this._id=e.model.id,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:u.ServerConnection.makeSettings(),this._clientId=null!==(n=e.clientId)&&void 0!==n?n:a.UUID.uuid4(),this._username=null!==(i=e.username)&&void 0!==i?i:"",this.handleComms=null===(r=e.handleComms)||void 0===r||r,this._createSocket()}get disposed(){return this._disposed}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get model(){return this._model||{id:this.id,name:this.name,reason:this._reason}}get anyMessage(){return this._anyMessage}get pendingInput(){return this._pendingInput}get id(){return this._id}get name(){return this._name}get username(){return this._username}get clientId(){return this._clientId}get status(){return this._status}get connectionStatus(){return this._connectionStatus}get isDisposed(){return this._isDisposed}get info(){return this._info.promise}get spec(){return this._specPromise||(this._specPromise=f.KernelSpecAPI.getSpecs(this.serverSettings).then((e=>e.kernelspecs[this._name]))),this._specPromise}clone(e={}){return new v({model:this.model,username:this.username,serverSettings:this.serverSettings,handleComms:!1,...e})}dispose(){this.isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearKernelState(),this._pendingMessages=[],this._clearSocket(),l.Signal.clearData(this))}sendShellMessage(e,t=!1,n=!0){return this._sendKernelShellControl(h.KernelShellFutureHandler,e,t,n)}sendControlMessage(e,t=!1,n=!0){return this._sendKernelShellControl(h.KernelControlFutureHandler,e,t,n)}_sendKernelShellControl(e,t,n=!1,i=!0){this._sendMessage(t),this._anyMessage.emit({msg:t,direction:"send"});const r=new e((()=>{const e=t.header.msg_id;this._futures.delete(e);const n=this._msgIdToDisplayIds.get(e);n&&(n.forEach((t=>{const n=this._displayIdToParentIds.get(t);if(n){const i=n.indexOf(e);if(-1===i)return;1===n.length?this._displayIdToParentIds.delete(t):(n.splice(i,1),this._displayIdToParentIds.set(t,n))}})),this._msgIdToDisplayIds.delete(e))}),t,n,i,this);return this._futures.set(t.header.msg_id,r),r}_sendMessage(e,t=!0){if("dead"===this.status)throw new Error("Kernel is dead");if((""===this._kernelSession||this._kernelSession===g)&&d.isInfoRequestMsg(e)){if("connected"===this.connectionStatus)return void this._ws.send(this.serverSettings.serializer.serialize(e,this._ws.protocol));throw new Error("Could not send message: status is not connected")}if(t&&this._pendingMessages.length>0)this._pendingMessages.push(e);else if("connected"===this.connectionStatus&&this._kernelSession!==g)this._ws.send(this.serverSettings.serializer.serialize(e,this._ws.protocol));else{if(!t)throw new Error("Could not send message");this._pendingMessages.push(e)}}async interrupt(){if(this.hasPendingInput=!1,"dead"===this.status)throw new Error("Kernel is dead");return m.interruptKernel(this.id,this.serverSettings)}async restart(){if("dead"===this.status)throw new Error("Kernel is dead");this._updateStatus("restarting"),this._clearKernelState(),this._kernelSession=g,await m.restartKernel(this.id,this.serverSettings),await this.reconnect(),this.hasPendingInput=!1}reconnect(){this._errorIfDisposed();const e=new a.PromiseDelegate,t=(n,i)=>{"connected"===i?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===i&&(e.reject(new Error("Kernel connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}async shutdown(){"dead"!==this.status&&await m.shutdownKernel(this.id,this.serverSettings),this.handleShutdown()}handleShutdown(){this._updateStatus("dead"),this.dispose()}async requestKernelInfo(){const e=d.createMessage({msgType:"kernel_info_request",channel:"shell",username:this._username,session:this._clientId,content:{}});let t;try{t=await _.handleShellMessage(this,e)}catch(e){if(this.isDisposed)return;throw e}if(this._errorIfDisposed(),t)return void 0===t.content.status&&(t.content.status="ok"),"ok"!==t.content.status?(this._info.reject("Kernel info reply errored"),t):(this._info.resolve(t.content),this._kernelSession=t.header.session,t)}requestComplete(e){const t=d.createMessage({msgType:"complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return _.handleShellMessage(this,t)}requestInspect(e){const t=d.createMessage({msgType:"inspect_request",channel:"shell",username:this._username,session:this._clientId,content:e});return _.handleShellMessage(this,t)}requestHistory(e){const t=d.createMessage({msgType:"history_request",channel:"shell",username:this._username,session:this._clientId,content:e});return _.handleShellMessage(this,t)}requestExecute(e,t=!0,n){const i=d.createMessage({msgType:"execute_request",channel:"shell",username:this._username,session:this._clientId,content:{silent:!1,store_history:!0,user_expressions:{},allow_stdin:!0,stop_on_error:!1,...e},metadata:n});return this.sendShellMessage(i,!0,t)}requestDebug(e,t=!0){const n=d.createMessage({msgType:"debug_request",channel:"control",username:this._username,session:this._clientId,content:e});return this.sendControlMessage(n,!0,t)}requestIsComplete(e){const t=d.createMessage({msgType:"is_complete_request",channel:"shell",username:this._username,session:this._clientId,content:e});return _.handleShellMessage(this,t)}requestCommInfo(e){const t=d.createMessage({msgType:"comm_info_request",channel:"shell",username:this._username,session:this._clientId,content:e});return _.handleShellMessage(this,t)}sendInputReply(e,t){const n=d.createMessage({msgType:"input_reply",channel:"stdin",username:this._username,session:this._clientId,content:e});n.parent_header=t,this._sendMessage(n),this._anyMessage.emit({msg:n,direction:"send"}),this.hasPendingInput=!1}createComm(e,t=a.UUID.uuid4()){if(!this.handleComms)throw new Error("Comms are disabled on this kernel connection");if(this._comms.has(t))throw new Error("Comm is already created");const n=new c.CommHandler(e,t,this,(()=>{this._unregisterComm(t)}));return this._comms.set(t,n),n}hasComm(e){return this._comms.has(e)}registerCommTarget(e,t){this.handleComms&&(this._targetRegistry[e]=t)}removeCommTarget(e,t){this.handleComms&&(this.isDisposed||this._targetRegistry[e]!==t||delete this._targetRegistry[e])}registerMessageHook(e,t){var n;const i=null===(n=this._futures)||void 0===n?void 0:n.get(e);i&&i.registerMessageHook(t)}removeMessageHook(e,t){var n;const i=null===(n=this._futures)||void 0===n?void 0:n.get(e);i&&i.removeMessageHook(t)}removeInputGuard(){this.hasPendingInput=!1}async _handleDisplayId(e,t){var n,i;const r=t.parent_header.msg_id;let s=this._displayIdToParentIds.get(e);if(s){const e={header:a.JSONExt.deepCopy(t.header),parent_header:a.JSONExt.deepCopy(t.parent_header),metadata:a.JSONExt.deepCopy(t.metadata),content:a.JSONExt.deepCopy(t.content),channel:t.channel,buffers:t.buffers?t.buffers.slice():[]};e.header.msg_type="update_display_data",await Promise.all(s.map((async t=>{const n=this._futures&&this._futures.get(t);n&&await n.handleMsg(e)})))}if("update_display_data"===t.header.msg_type)return!0;s=null!==(n=this._displayIdToParentIds.get(e))&&void 0!==n?n:[],-1===s.indexOf(r)&&s.push(r),this._displayIdToParentIds.set(e,s);const o=null!==(i=this._msgIdToDisplayIds.get(r))&&void 0!==i?i:[];return-1===o.indexOf(r)&&o.push(r),this._msgIdToDisplayIds.set(r,o),!1}_clearSocket(){null!==this._ws&&(this._ws.onopen=this._noOp,this._ws.onclose=this._noOp,this._ws.onerror=this._noOp,this._ws.onmessage=this._noOp,this._ws.close(),this._ws=null)}_updateStatus(e){this._status!==e&&"dead"!==this._status&&(this._status=e,_.logKernelStatus(this),this._statusChanged.emit(e),"dead"===e&&this.dispose())}_sendPending(){for(;"connected"===this.connectionStatus&&this._kernelSession!==g&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}_clearKernelState(){this._kernelSession="",this._pendingMessages=[],this._futures.forEach((e=>{e.dispose()})),this._comms.forEach((e=>{e.dispose()})),this._msgChain=Promise.resolve(),this._futures=new Map,this._comms=new Map,this._displayIdToParentIds.clear(),this._msgIdToDisplayIds.clear()}_assertCurrentMessage(e){if(this._errorIfDisposed(),e.header.session!==this._kernelSession)throw new Error(`Canceling handling of old message: ${e.header.msg_type}`)}async _handleCommOpen(e){this._assertCurrentMessage(e);const t=e.content,n=new c.CommHandler(t.target_name,t.comm_id,this,(()=>{this._unregisterComm(t.comm_id)}));this._comms.set(t.comm_id,n);try{const i=await _.loadObject(t.target_name,t.target_module,this._targetRegistry);await i(n,e)}catch(e){throw n.close(),console.error("Exception opening new comm"),e}}async _handleCommClose(e){this._assertCurrentMessage(e);const t=e.content,n=this._comms.get(t.comm_id);if(!n)return void console.error("Comm not found for comm id "+t.comm_id);this._unregisterComm(n.commId);const i=n.onClose;i&&await i(e),n.dispose()}async _handleCommMsg(e){this._assertCurrentMessage(e);const t=e.content,n=this._comms.get(t.comm_id);if(!n)return;const i=n.onMsg;i&&await i(e)}_unregisterComm(e){this._comms.delete(e)}_updateConnectionStatus(e){if(this._connectionStatus!==e){if(this._connectionStatus=e,"connecting"!==e&&(this._reconnectAttempt=0,clearTimeout(this._reconnectTimeout)),"dead"!==this.status)if("connected"===e){let e=this._kernelSession===g,t=this.requestKernelInfo(),n=!1,i=()=>{n||(n=!0,e&&this._kernelSession===g&&(this._kernelSession=""),clearTimeout(r),this._pendingMessages.length>0&&this._sendPending())};t.then(i);let r=setTimeout(i,3e3)}else this._updateStatus("unknown");this._connectionStatusChanged.emit(e)}}async _handleMessage(e){var t,n;let i=!1;if(e.parent_header&&"iopub"===e.channel&&(d.isDisplayDataMsg(e)||d.isUpdateDisplayDataMsg(e)||d.isExecuteResultMsg(e))){const n=(null!==(t=e.content.transient)&&void 0!==t?t:{}).display_id;n&&(i=await this._handleDisplayId(n,e),this._assertCurrentMessage(e))}if(!i&&e.parent_header){const t=e.parent_header,i=null===(n=this._futures)||void 0===n?void 0:n.get(t.msg_id);if(i)await i.handleMsg(e),this._assertCurrentMessage(e);else{const n=t.session===this.clientId;"iopub"!==e.channel&&n&&this._unhandledMessage.emit(e)}}if("iopub"===e.channel){switch(e.header.msg_type){case"status":{const t=e.content.execution_state;"restarting"===t&&Promise.resolve().then((async()=>{this._updateStatus("autorestarting"),this._clearKernelState(),await this.reconnect()})),this._updateStatus(t);break}case"comm_open":this.handleComms&&await this._handleCommOpen(e);break;case"comm_msg":this.handleComms&&await this._handleCommMsg(e);break;case"comm_close":this.handleComms&&await this._handleCommClose(e)}this.isDisposed||(this._assertCurrentMessage(e),this._iopubMessage.emit(e))}}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{if(t){if("undefined"==typeof requirejs)throw new Error("requirejs not found");requirejs([t],(n=>{void 0===n[e]?r(new Error(`Object '${e}' not found in module '${t}'`)):i(n[e])}),r)}else(null==n?void 0:n[e])?i(n[e]):r(new Error(`Object '${e}' not found in registry`))}))},e.getRandomIntInclusive=function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}}(_||(_={}))},10134:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelShellFutureHandler=t.KernelControlFutureHandler=t.KernelFutureHandler=void 0;const o=n(75764),a=n(7556),l=s(n(89909));class u extends a.DisposableDelegate{constructor(e,t,n,i,r){super(e),this._status=0,this._stdin=c.noOp,this._iopub=c.noOp,this._reply=c.noOp,this._done=new o.PromiseDelegate,this._hooks=new c.HookList,this._disposeOnDone=!0,this._msg=t,n||this._setFlag(c.KernelFutureFlag.GotReply),this._disposeOnDone=i,this._kernel=r}get msg(){return this._msg}get done(){return this._done.promise}get onReply(){return this._reply}set onReply(e){this._reply=e}get onIOPub(){return this._iopub}set onIOPub(e){this._iopub=e}get onStdin(){return this._stdin}set onStdin(e){this._stdin=e}registerMessageHook(e){if(this.isDisposed)throw new Error("Kernel future is disposed");this._hooks.add(e)}removeMessageHook(e){this.isDisposed||this._hooks.remove(e)}sendInputReply(e,t){this._kernel.sendInputReply(e,t)}dispose(){this._stdin=c.noOp,this._iopub=c.noOp,this._reply=c.noOp,this._hooks=null,this._testFlag(c.KernelFutureFlag.IsDone)||(this._done.promise.catch((()=>{})),this._done.reject(new Error(`Canceled future for ${this.msg.header.msg_type} message before replies were done`))),super.dispose()}async handleMsg(e){switch(e.channel){case"control":case"shell":e.channel===this.msg.channel&&e.parent_header.msg_id===this.msg.header.msg_id&&await this._handleReply(e);break;case"stdin":await this._handleStdin(e);break;case"iopub":await this._handleIOPub(e)}}async _handleReply(e){const t=this._reply;t&&await t(e),this._replyMsg=e,this._setFlag(c.KernelFutureFlag.GotReply),this._testFlag(c.KernelFutureFlag.GotIdle)&&this._handleDone()}async _handleStdin(e){this._kernel.hasPendingInput=!0;const t=this._stdin;t&&await t(e)}async _handleIOPub(e){const t=await this._hooks.process(e),n=this._iopub;t&&n&&await n(e),l.isStatusMsg(e)&&"idle"===e.content.execution_state&&(this._setFlag(c.KernelFutureFlag.GotIdle),this._testFlag(c.KernelFutureFlag.GotReply)&&this._handleDone())}_handleDone(){this._testFlag(c.KernelFutureFlag.IsDone)||(this._setFlag(c.KernelFutureFlag.IsDone),this._done.resolve(this._replyMsg),this._disposeOnDone&&this.dispose())}_testFlag(e){return!!(this._status&e)}_setFlag(e){this._status|=e}}var c;t.KernelFutureHandler=u,t.KernelControlFutureHandler=class extends u{},t.KernelShellFutureHandler=class extends u{},function(e){e.noOp=()=>{};const t="function"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;let n;e.HookList=class{constructor(){this._hooks=[]}add(e){this.remove(e),this._hooks.push(e)}remove(e){const t=this._hooks.indexOf(e);t>=0&&(this._hooks[t]=null,this._scheduleCompact())}async process(e){await this._processing;const t=new o.PromiseDelegate;let n;this._processing=t.promise;for(let i=this._hooks.length-1;i>=0;i--){const r=this._hooks[i];if(null!==r){try{n=await r(e)}catch(e){n=!0,console.error(e)}if(!1===n)return t.resolve(void 0),!1}}return t.resolve(void 0),!0}_scheduleCompact(){this._compactScheduled||(this._compactScheduled=!0,t((()=>{this._processing=this._processing.then((()=>{this._compactScheduled=!1,this._compact()}))})))}_compact(){let e=0;for(let t=0,n=this._hooks.length;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},65198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.KernelManager=void 0;const i=n(86049),r=n(38571),s=n(17883),o=n(43867),a=n(98235),l=n(12456);class u extends o.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._kernelConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._kernelConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){var t;const{id:n}=e.model;let i=null===(t=e.handleComms)||void 0===t||t;if(void 0===e.handleComms)for(const e of this._kernelConnections)if(e.id===n&&e.handleComms){i=!1;break}const r=new l.KernelConnection({handleComms:i,...e,serverSettings:this.serverSettings});return this._onStarted(r),this._models.has(n)||this.refreshRunning().catch((()=>{})),r}running(){return this._models.values()}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e={},t={}){const n=await(0,a.startNew)(e,this.serverSettings);return this.connectTo({...t,model:n})}async shutdown(e){await(0,a.shutdownKernel)(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>(0,a.shutdownKernel)(e,this.serverSettings)))),await this.refreshRunning()}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async requestRunning(){var e,t;let n;try{n=await(0,a.listRunning)(this.serverSettings)}catch(n){throw(n instanceof s.ServerConnection.NetworkError||503===(null===(e=n.response)||void 0===e?void 0:e.status)||424===(null===(t=n.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(n),n}this.isDisposed||this._models.size===n.length&&n.every((e=>{const t=this._models.get(e.id);return!!t&&t.connections===e.connections&&t.execution_state===e.execution_state&&t.last_activity===e.last_activity&&t.name===e.name&&t.reason===e.reason&&t.traceback===e.traceback}))||(this._models=new Map(n.map((e=>[e.id,e]))),this._kernelConnections.forEach((e=>{this._models.has(e.id)||e.handleShutdown()})),this._runningChanged.emit(n))}_onStarted(e){this._kernelConnections.add(e),e.statusChanged.connect(this._onStatusChanged,this),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._kernelConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onStatusChanged(e,t){"dead"===t&&this.refreshRunning().catch((()=>{}))}}t.KernelManager=u,function(e){e.NoopManager=class extends e{constructor(){super(...arguments),this._readyPromise=new Promise((()=>{}))}get isActive(){return!1}get parentReady(){return super.ready}async startNew(e={},t={}){return Promise.reject(new Error("Not implemented in no-op Kernel Manager"))}connectTo(e){throw new Error("Not implemented in no-op Kernel Manager")}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Kernel Manager"))}get ready(){return this.parentReady.then((()=>this._readyPromise))}async requestRunning(){return Promise.resolve()}}}(u||(t.KernelManager=u={}))},89909:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.supportedKernelWebSocketProtocols=t.isInputReplyMsg=t.isInputRequestMsg=t.isDebugReplyMsg=t.isDebugRequestMsg=t.isExecuteReplyMsg=t.isInfoRequestMsg=t.isCommMsgMsg=t.isCommCloseMsg=t.isCommOpenMsg=t.isDebugEventMsg=t.isClearOutputMsg=t.isStatusMsg=t.isErrorMsg=t.isExecuteResultMsg=t.isExecuteInputMsg=t.isUpdateDisplayDataMsg=t.isDisplayDataMsg=t.isStreamMsg=t.createMessage=void 0;const i=n(75764);var r;t.createMessage=function(e){var t,n,r,s,o;return{buffers:null!==(t=e.buffers)&&void 0!==t?t:[],channel:e.channel,content:e.content,header:{date:(new Date).toISOString(),msg_id:null!==(n=e.msgId)&&void 0!==n?n:i.UUID.uuid4(),msg_type:e.msgType,session:e.session,username:null!==(r=e.username)&&void 0!==r?r:"",version:"5.2"},metadata:null!==(s=e.metadata)&&void 0!==s?s:{},parent_header:null!==(o=e.parentHeader)&&void 0!==o?o:{}}},t.isStreamMsg=function(e){return"stream"===e.header.msg_type},t.isDisplayDataMsg=function(e){return"display_data"===e.header.msg_type},t.isUpdateDisplayDataMsg=function(e){return"update_display_data"===e.header.msg_type},t.isExecuteInputMsg=function(e){return"execute_input"===e.header.msg_type},t.isExecuteResultMsg=function(e){return"execute_result"===e.header.msg_type},t.isErrorMsg=function(e){return"error"===e.header.msg_type},t.isStatusMsg=function(e){return"status"===e.header.msg_type},t.isClearOutputMsg=function(e){return"clear_output"===e.header.msg_type},t.isDebugEventMsg=function(e){return"debug_event"===e.header.msg_type},t.isCommOpenMsg=function(e){return"comm_open"===e.header.msg_type},t.isCommCloseMsg=function(e){return"comm_close"===e.header.msg_type},t.isCommMsgMsg=function(e){return"comm_msg"===e.header.msg_type},t.isInfoRequestMsg=function(e){return"kernel_info_request"===e.header.msg_type},t.isExecuteReplyMsg=function(e){return"execute_reply"===e.header.msg_type},t.isDebugRequestMsg=function(e){return"debug_request"===e.header.msg_type},t.isDebugReplyMsg=function(e){return"debug_reply"===e.header.msg_type},t.isInputRequestMsg=function(e){return"input_request"===e.header.msg_type},t.isInputReplyMsg=function(e){return"input_reply"===e.header.msg_type},function(e){e.v1KernelWebsocketJupyterOrg="v1.kernel.websocket.jupyter.org"}(r||(t.supportedKernelWebSocketProtocols=r={}))},98235:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getKernelModel=t.shutdownKernel=t.interruptKernel=t.restartKernel=t.startNew=t.listRunning=t.KERNEL_SERVICE_URL=void 0;const i=n(22920),r=n(88925),s=n(25855);t.KERNEL_SERVICE_URL="api/kernels",t.listRunning=async function(e=i.ServerConnection.makeSettings()){const n=r.URLExt.join(e.baseUrl,t.KERNEL_SERVICE_URL),o=await i.ServerConnection.makeRequest(n,{},e);if(200!==o.status)throw await i.ServerConnection.ResponseError.create(o);const a=await o.json();return(0,s.validateModels)(a),a},t.startNew=async function(e={},n=i.ServerConnection.makeSettings()){const o=r.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},l=await i.ServerConnection.makeRequest(o,a,n);if(201!==l.status)throw await i.ServerConnection.ResponseError.create(l);const u=await l.json();return(0,s.validateModel)(u),u},t.restartKernel=async function(e,n=i.ServerConnection.makeSettings()){const o=r.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"restart"),a=await i.ServerConnection.makeRequest(o,{method:"POST"},n);if(200!==a.status)throw await i.ServerConnection.ResponseError.create(a);const l=await a.json();(0,s.validateModel)(l)},t.interruptKernel=async function(e,n=i.ServerConnection.makeSettings()){const s=r.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e),"interrupt"),o=await i.ServerConnection.makeRequest(s,{method:"POST"},n);if(204!==o.status)throw await i.ServerConnection.ResponseError.create(o)},t.shutdownKernel=async function(e,n=i.ServerConnection.makeSettings()){const s=r.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),o=await i.ServerConnection.makeRequest(s,{method:"DELETE"},n);if(404===o.status){const t=`The kernel "${e}" does not exist on the server`;console.warn(t)}else if(204!==o.status)throw await i.ServerConnection.ResponseError.create(o)},t.getKernelModel=async function(e,n=i.ServerConnection.makeSettings()){const o=r.URLExt.join(n.baseUrl,t.KERNEL_SERVICE_URL,encodeURIComponent(e)),a=await i.ServerConnection.makeRequest(o,{},n);if(404===a.status)return;if(200!==a.status)throw await i.ServerConnection.ResponseError.create(a);const l=await a.json();return(0,s.validateModel)(l),l}},57179:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.deserialize=t.serialize=void 0;const o=s(n(89909));var a;t.serialize=function(e,t=""){return t===o.supportedKernelWebSocketProtocols.v1KernelWebsocketJupyterOrg?a.serializeV1KernelWebsocketJupyterOrg(e):a.serializeDefault(e)},t.deserialize=function(e,t=""){return t===o.supportedKernelWebSocketProtocols.v1KernelWebsocketJupyterOrg?a.deserializeV1KernelWebsocketJupyterOrg(e):a.deserializeDefault(e)},function(e){e.deserializeV1KernelWebsocketJupyterOrg=function(e){let t;const n=new DataView(e),i=Number(n.getBigUint64(0,!0));let r=[];for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.validateModel=t.validateMessage=void 0;const i=n(87441),r=["username","version","session","msg_id","msg_type"],s={stream:{name:"string",text:"string"},display_data:{data:"object",metadata:"object"},execute_input:{code:"string",execution_count:"number"},execute_result:{execution_count:"number",data:"object",metadata:"object"},error:{ename:"string",evalue:"string",traceback:"object"},status:{execution_state:["string",["starting","idle","busy","restarting","dead"]]},clear_output:{wait:"boolean"},comm_open:{comm_id:"string",target_name:"string",data:"object"},comm_msg:{comm_id:"string",data:"object"},comm_close:{comm_id:"string"},shutdown_reply:{restart:"boolean"}};function o(e){(0,i.validateProperty)(e,"name","string"),(0,i.validateProperty)(e,"id","string")}t.validateMessage=function(e){(0,i.validateProperty)(e,"metadata","object"),(0,i.validateProperty)(e,"content","object"),(0,i.validateProperty)(e,"channel","string"),function(e){for(let t=0;to(e)))}},92946:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t},o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecAPI=t.KernelSpec=void 0;const a=s(n(84806));t.KernelSpec=a;const l=s(n(36492));t.KernelSpecAPI=l,o(n(70733),t)},84806:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},70733:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.KernelSpecManager=void 0;const o=n(75764),a=n(86049),l=n(38571),u=s(n(36492)),c=n(43867);class d extends c.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._connectionFailure=new l.Signal(this),this._specs=null,this._specsChanged=new l.Signal(this),this._ready=Promise.all([this.requestSpecs()]).then((e=>{})).catch((e=>{})).then((()=>{this.isDisposed||(this._isReady=!0)})),this._pollSpecs=new a.Poll({auto:!1,factory:()=>this.requestSpecs(),frequency:{interval:61e3,backoff:!0,max:3e5},name:"@jupyterlab/services:KernelSpecManager#specs",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this.ready.then((()=>{this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get specs(){return this._specs}get specsChanged(){return this._specsChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose(),super.dispose()}async refreshSpecs(){await this._pollSpecs.refresh(),await this._pollSpecs.tick}async requestSpecs(){const e=await u.getSpecs(this.serverSettings);this.isDisposed||o.JSONExt.deepEqual(e,this._specs)||(this._specs=e,this._specsChanged.emit(e))}}t.KernelSpecManager=d},36492:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSpecs=void 0;const i=n(22920),r=n(2598),s=n(88925);t.getSpecs=async function(e=i.ServerConnection.makeSettings()){const t=s.URLExt.join(e.baseUrl,"api/kernelspecs"),n=await i.ServerConnection.makeRequest(t,{},e);if(200!==n.status)throw await i.ServerConnection.ResponseError.create(n);const o=await n.json();return(0,r.validateSpecModels)(o)}},2598:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateSpecModels=t.validateSpecModel=void 0;const i=n(87441);function r(e){const t=e.spec;if(!t)throw new Error("Invalid kernel spec");(0,i.validateProperty)(e,"name","string"),(0,i.validateProperty)(e,"resources","object"),(0,i.validateProperty)(t,"language","string"),(0,i.validateProperty)(t,"display_name","string"),(0,i.validateProperty)(t,"argv","array");let n=null;t.hasOwnProperty("metadata")&&((0,i.validateProperty)(t,"metadata","object"),n=t.metadata);let r=null;return t.hasOwnProperty("env")&&((0,i.validateProperty)(t,"env","object"),r=t.env),{name:e.name,resources:e.resources,language:t.language,display_name:t.display_name,argv:t.argv,metadata:n,env:r}}t.validateSpecModel=r,t.validateSpecModels=function(e){if(!e.hasOwnProperty("kernelspecs"))throw new Error("No kernelspecs found");let t=Object.keys(e.kernelspecs);const n=Object.create(null);let i=e.default;for(let i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceManager=void 0;const i=n(38571),r=n(4219),s=n(98790),o=n(69480),a=n(10973),l=n(92946),u=n(68683),c=n(22920),d=n(37668),h=n(67780),p=n(89040),f=n(49191),m=n(38053);t.ServiceManager=class{constructor(e={}){var t,n;this._isDisposed=!1,this._connectionFailure=new i.Signal(this),this._isReady=!1;const g=e.defaultDrive,v=null!==(t=e.serverSettings)&&void 0!==t?t:c.ServerConnection.makeSettings(),_={defaultDrive:g,serverSettings:v,standby:null!==(n=e.standby)&&void 0!==n?n:"when-hidden"};this.serverSettings=v,this.contents=e.contents||new s.ContentsManager(_),this.events=e.events||new o.EventManager(_),this.kernels=e.kernels||new a.KernelManager(_),this.sessions=e.sessions||new d.SessionManager({..._,kernelManager:this.kernels}),this.settings=e.settings||new h.SettingManager(_),this.terminals=e.terminals||new p.TerminalManager(_),this.builder=e.builder||new r.BuildManager(_),this.workspaces=e.workspaces||new m.WorkspaceManager(_),this.nbconvert=e.nbconvert||new u.NbConvertManager(_),this.kernelspecs=e.kernelspecs||new l.KernelSpecManager(_),this.user=e.user||new f.UserManager(_),this.kernelspecs.connectionFailure.connect(this._onConnectionFailure,this),this.sessions.connectionFailure.connect(this._onConnectionFailure,this),this.terminals.connectionFailure.connect(this._onConnectionFailure,this);const b=[this.sessions.ready,this.kernelspecs.ready];this.terminals.isAvailable()&&b.push(this.terminals.ready),this._readyPromise=Promise.all(b).then((()=>{this._isReady=!0}))}get connectionFailure(){return this._connectionFailure}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,i.Signal.clearData(this),this.contents.dispose(),this.events.dispose(),this.sessions.dispose(),this.terminals.dispose())}get isReady(){return this._isReady}get ready(){return this._readyPromise}_onConnectionFailure(e,t){this._connectionFailure.emit(t)}}},68683:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NbConvertManager=void 0;const i=n(88925),r=n(22920),s=n(75764);t.NbConvertManager=class{constructor(e={}){var t;this._exportFormats=null,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:r.ServerConnection.makeSettings()}async fetchExportFormats(){this._requestingFormats=new s.PromiseDelegate,this._exportFormats=null;const e=this.serverSettings.baseUrl,t=i.URLExt.join(e,"api/nbconvert"),{serverSettings:n}=this,o=await r.ServerConnection.makeRequest(t,{},n);if(200!==o.status)throw await r.ServerConnection.ResponseError.create(o);const a=await o.json(),l={};return Object.keys(a).forEach((function(e){const t=a[e].output_mimetype;l[e]={output_mimetype:t}})),this._exportFormats=l,this._requestingFormats.resolve(l),l}async getExportFormats(e=!0){return this._requestingFormats?this._requestingFormats.promise:e||!this._exportFormats?await this.fetchExportFormats():this._exportFormats}}},22920:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ServerConnection=void 0;const i=n(88925),r=n(57179);let s;var o,a;s="undefined"==typeof window?n(97251):WebSocket,function(e){e.makeSettings=function(e){return a.makeSettings(e)},e.makeRequest=function(e,t,n){return a.handleRequest(e,t,n)};class t extends Error{static async create(e){try{const n=await e.json(),{message:i,traceback:r}=n;return r&&console.error(r),new t(e,null!=i?i:t._defaultMessage(e),null!=r?r:"")}catch(n){return console.debug(n),new t(e)}}constructor(e,n=t._defaultMessage(e),i=""){super(n),this.response=e,this.traceback=i}static _defaultMessage(e){return`Invalid response: ${e.status} ${e.statusText}`}}e.ResponseError=t;class n extends TypeError{constructor(e){super(e.message),this.stack=e.stack}}e.NetworkError=n}(o||(t.ServerConnection=o={})),function(e){e.makeSettings=function(e={}){var t;const n=i.PageConfig.getBaseUrl(),o=i.PageConfig.getWsUrl(),a=i.URLExt.normalize(e.baseUrl)||n;let l=e.wsUrl;l||a!==n||(l=o),l||0!==a.indexOf("http")||(l="ws"+a.slice(4)),l=null!=l?l:o;const u=i.PageConfig.getOption("appendToken").toLowerCase();let c;return c=""===u?"undefined"==typeof window||"undefined"!=typeof process&&void 0!==(null===(t=null===process||void 0===process?void 0:{})||void 0===t?void 0:t.JEST_WORKER_ID)||i.URLExt.getHostName(n)!==i.URLExt.getHostName(l):"true"===u,{init:{cache:"no-store",credentials:"same-origin"},fetch,Headers,Request,WebSocket:s,token:i.PageConfig.getToken(),appUrl:i.PageConfig.getOption("appUrl"),appendToken:c,serializer:{serialize:r.serialize,deserialize:r.deserialize},...e,baseUrl:a,wsUrl:l}},e.handleRequest=function(e,t,n){var i;if(0!==e.indexOf(n.baseUrl))throw new Error("Can only be used for notebook server requests");"no-store"===(null!==(i=t.cache)&&void 0!==i?i:n.init.cache)&&(e+=(/\?/.test(e)?"&":"?")+(new Date).getTime());const r=new n.Request(e,{...n.init,...t});let s=!1;if(n.token&&(s=!0,r.headers.append("Authorization",`token ${n.token}`)),"undefined"!=typeof document){const e=function(){let e="";try{e=document.cookie}catch(e){return}const t=e.match("\\b_xsrf=([^;]*)\\b");return null==t?void 0:t[1]}();void 0!==e&&(s=!0,r.headers.append("X-XSRFToken",e))}return!r.headers.has("Content-Type")&&s&&r.headers.set("Content-Type","application/json"),n.fetch.call(null,r).catch((e=>{throw new o.NetworkError(e)}))}}(a||(a={}))},35341:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionConnection=void 0;const i=n(38571),r=n(17883),s=n(27570),o=n(75764);t.SessionConnection=class{constructor(e){var t,n,s,a;this._id="",this._path="",this._name="",this._type="",this._kernel=null,this._isDisposed=!1,this._disposed=new i.Signal(this),this._kernelChanged=new i.Signal(this),this._statusChanged=new i.Signal(this),this._connectionStatusChanged=new i.Signal(this),this._pendingInput=new i.Signal(this),this._iopubMessage=new i.Signal(this),this._unhandledMessage=new i.Signal(this),this._anyMessage=new i.Signal(this),this._propertyChanged=new i.Signal(this),this._id=e.model.id,this._name=e.model.name,this._path=e.model.path,this._type=e.model.type,this._username=null!==(t=e.username)&&void 0!==t?t:"",this._clientId=null!==(n=e.clientId)&&void 0!==n?n:o.UUID.uuid4(),this._connectToKernel=e.connectToKernel,this._kernelConnectionOptions=null!==(s=e.kernelConnectionOptions)&&void 0!==s?s:{},this.serverSettings=null!==(a=e.serverSettings)&&void 0!==a?a:r.ServerConnection.makeSettings(),this.setupKernel(e.model.kernel)}get disposed(){return this._disposed}get kernelChanged(){return this._kernelChanged}get statusChanged(){return this._statusChanged}get connectionStatusChanged(){return this._connectionStatusChanged}get pendingInput(){return this._pendingInput}get iopubMessage(){return this._iopubMessage}get unhandledMessage(){return this._unhandledMessage}get anyMessage(){return this._anyMessage}get propertyChanged(){return this._propertyChanged}get id(){return this._id}get kernel(){return this._kernel}get path(){return this._path}get type(){return this._type}get name(){return this._name}get model(){return{id:this.id,kernel:this.kernel&&{id:this.kernel.id,name:this.kernel.name},path:this._path,type:this._type,name:this._name}}get isDisposed(){return this._isDisposed}update(e){const t=this.model;if(this._path=e.path,this._name=e.name,this._type=e.type,null===this._kernel&&null!==e.kernel||null!==this._kernel&&null===e.kernel||null!==this._kernel&&null!==e.kernel&&this._kernel.id!==e.kernel.id){null!==this._kernel&&this._kernel.dispose();const t=this._kernel||null;this.setupKernel(e.kernel);const n=this._kernel||null;this._kernelChanged.emit({name:"kernel",oldValue:t,newValue:n})}this._handleModelChange(t)}dispose(){if(!this.isDisposed){if(this._isDisposed=!0,this._disposed.emit(),this._kernel){this._kernel.dispose();const e=this._kernel;this._kernel=null;const t=this._kernel;this._kernelChanged.emit({name:"kernel",oldValue:e,newValue:t})}i.Signal.clearData(this)}}async setPath(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({path:e})}async setName(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({name:e})}async setType(e){if(this.isDisposed)throw new Error("Session is disposed");await this._patch({type:e})}async changeKernel(e){if(this.isDisposed)throw new Error("Session is disposed");return await this._patch({kernel:e}),this.kernel}async shutdown(){if(this.isDisposed)throw new Error("Session is disposed");await(0,s.shutdownSession)(this.id,this.serverSettings),this.dispose()}setupKernel(e){if(null===e)return void(this._kernel=null);const t=this._connectToKernel({...this._kernelConnectionOptions,model:e,username:this._username,clientId:this._clientId,serverSettings:this.serverSettings});this._kernel=t,t.statusChanged.connect(this.onKernelStatus,this),t.connectionStatusChanged.connect(this.onKernelConnectionStatus,this),t.pendingInput.connect(this.onPendingInput,this),t.unhandledMessage.connect(this.onUnhandledMessage,this),t.iopubMessage.connect(this.onIOPubMessage,this),t.anyMessage.connect(this.onAnyMessage,this)}onKernelStatus(e,t){this._statusChanged.emit(t)}onKernelConnectionStatus(e,t){this._connectionStatusChanged.emit(t)}onPendingInput(e,t){this._pendingInput.emit(t)}onIOPubMessage(e,t){this._iopubMessage.emit(t)}onUnhandledMessage(e,t){this._unhandledMessage.emit(t)}onAnyMessage(e,t){this._anyMessage.emit(t)}async _patch(e){const t=await(0,s.updateSession)({...e,id:this._id},this.serverSettings);return this.update(t),t}_handleModelChange(e){e.name!==this._name&&this._propertyChanged.emit("name"),e.type!==this._type&&this._propertyChanged.emit("type"),e.path!==this._path&&this._propertyChanged.emit("path")}}},37668:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t},o=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.SessionAPI=t.Session=void 0;const a=s(n(37240));t.Session=a;const l=s(n(27570));t.SessionAPI=l,o(n(66919),t)},66919:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SessionManager=void 0;const i=n(86049),r=n(38571),s=n(22920),o=n(43867),a=n(35341),l=n(27570);class u extends o.BaseManager{constructor(e){var t;super(e),this._isReady=!1,this._sessionConnections=new Set,this._models=new Map,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),this._connectToKernel=e=>this._kernelManager.connectTo(e),this._kernelManager=e.kernelManager,this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:SessionManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._kernelManager.isActive&&await this._kernelManager.ready,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._models.clear(),this._sessionConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}connectTo(e){const t=new a.SessionConnection({...e,connectToKernel:this._connectToKernel,serverSettings:this.serverSettings});return this._onStarted(t),this._models.has(e.model.id)||this.refreshRunning().catch((()=>{})),t}running(){return this._models.values()}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e,t={}){const n=await(0,l.startSession)(e,this.serverSettings);return await this.refreshRunning(),this.connectTo({...t,model:n})}async shutdown(e){await(0,l.shutdownSession)(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all([...this._models.keys()].map((e=>(0,l.shutdownSession)(e,this.serverSettings)))),await this.refreshRunning()}async stopIfNeeded(e){try{const t=(await(0,l.listRunning)(this.serverSettings)).filter((t=>t.path===e));if(1===t.length){const e=t[0].id;await this.shutdown(e)}}catch(e){}}async findById(e){return this._models.has(e)||await this.refreshRunning(),this._models.get(e)}async findByPath(e){for(const t of this._models.values())if(t.path===e)return t;await this.refreshRunning();for(const t of this._models.values())if(t.path===e)return t}async requestRunning(){var e,t;let n;try{n=await(0,l.listRunning)(this.serverSettings)}catch(n){throw(n instanceof s.ServerConnection.NetworkError||503===(null===(e=n.response)||void 0===e?void 0:e.status)||424===(null===(t=n.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(n),n}this.isDisposed||this._models.size===n.length&&n.every((e=>{var t,n,i,r;const s=this._models.get(e.id);return!!s&&(null===(t=s.kernel)||void 0===t?void 0:t.id)===(null===(n=e.kernel)||void 0===n?void 0:n.id)&&(null===(i=s.kernel)||void 0===i?void 0:i.name)===(null===(r=e.kernel)||void 0===r?void 0:r.name)&&s.name===e.name&&s.path===e.path&&s.type===e.type}))||(this._models=new Map(n.map((e=>[e.id,e]))),this._sessionConnections.forEach((e=>{this._models.has(e.id)?e.update(this._models.get(e.id)):e.dispose()})),this._runningChanged.emit(n))}_onStarted(e){this._sessionConnections.add(e),e.disposed.connect(this._onDisposed,this),e.propertyChanged.connect(this._onChanged,this),e.kernelChanged.connect(this._onChanged,this)}_onDisposed(e){this._sessionConnections.delete(e),this.refreshRunning().catch((()=>{}))}_onChanged(){this.refreshRunning().catch((()=>{}))}}t.SessionManager=u,function(e){e.NoopManager=class extends e{constructor(){super(...arguments),this._readyPromise=new Promise((()=>{}))}get isActive(){return!1}get parentReady(){return super.ready}async startNew(e,t={}){return Promise.reject(new Error("Not implemented in no-op Session Manager"))}connectTo(e){throw Error("Not implemented in no-op Session Manager")}get ready(){return this.parentReady.then((()=>this._readyPromise))}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Session Manager"))}async requestRunning(){return Promise.resolve()}}}(u||(t.SessionManager=u={}))},27570:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateSession=t.startSession=t.getSessionModel=t.shutdownSession=t.getSessionUrl=t.listRunning=t.SESSION_SERVICE_URL=void 0;const i=n(22920),r=n(88925),s=n(35684);function o(e,n){const i=r.URLExt.join(e,t.SESSION_SERVICE_URL),s=r.URLExt.join(i,n);if(!s.startsWith(i))throw new Error("Can only be used for services requests");return s}t.SESSION_SERVICE_URL="api/sessions",t.listRunning=async function(e=i.ServerConnection.makeSettings()){const n=r.URLExt.join(e.baseUrl,t.SESSION_SERVICE_URL),o=await i.ServerConnection.makeRequest(n,{},e);if(200!==o.status)throw await i.ServerConnection.ResponseError.create(o);const a=await o.json();if(!Array.isArray(a))throw new Error("Invalid Session list");return a.forEach((e=>{(0,s.updateLegacySessionModel)(e),(0,s.validateModel)(e)})),a},t.getSessionUrl=o,t.shutdownSession=async function(e,t=i.ServerConnection.makeSettings()){var n;const r=o(t.baseUrl,e),s=await i.ServerConnection.makeRequest(r,{method:"DELETE"},t);if(404===s.status){const t=null!==(n=(await s.json()).message)&&void 0!==n?n:`The session "${e}"" does not exist on the server`;console.warn(t)}else{if(410===s.status)throw new i.ServerConnection.ResponseError(s,"The kernel was deleted but the session was not");if(204!==s.status)throw await i.ServerConnection.ResponseError.create(s)}},t.getSessionModel=async function(e,t=i.ServerConnection.makeSettings()){const n=o(t.baseUrl,e),r=await i.ServerConnection.makeRequest(n,{},t);if(200!==r.status)throw await i.ServerConnection.ResponseError.create(r);const a=await r.json();return(0,s.updateLegacySessionModel)(a),(0,s.validateModel)(a),a},t.startSession=async function(e,n=i.ServerConnection.makeSettings()){const o=r.URLExt.join(n.baseUrl,t.SESSION_SERVICE_URL),a={method:"POST",body:JSON.stringify(e)},l=await i.ServerConnection.makeRequest(o,a,n);if(201!==l.status)throw await i.ServerConnection.ResponseError.create(l);const u=await l.json();return(0,s.updateLegacySessionModel)(u),(0,s.validateModel)(u),u},t.updateSession=async function(e,t=i.ServerConnection.makeSettings()){const n=o(t.baseUrl,e.id),r={method:"PATCH",body:JSON.stringify(e)},a=await i.ServerConnection.makeRequest(n,r,t);if(200!==a.status)throw await i.ServerConnection.ResponseError.create(a);const l=await a.json();return(0,s.updateLegacySessionModel)(l),(0,s.validateModel)(l),l}},37240:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},35684:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateModels=t.updateLegacySessionModel=t.validateModel=void 0;const i=n(25855),r=n(87441);function s(e){(0,r.validateProperty)(e,"id","string"),(0,r.validateProperty)(e,"type","string"),(0,r.validateProperty)(e,"name","string"),(0,r.validateProperty)(e,"path","string"),(0,r.validateProperty)(e,"kernel","object"),(0,i.validateModel)(e.kernel)}t.validateModel=s,t.updateLegacySessionModel=function(e){void 0===e.path&&void 0!==e.notebook&&(e.path=e.notebook.path,e.type="notebook",e.name="")},t.validateModels=function(e){if(!Array.isArray(e))throw new Error("Invalid session list");e.forEach((e=>s(e)))}},67780:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SettingManager=void 0;const i=n(88925),r=n(41670),s=n(22920);class o extends r.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:s.ServerConnection.makeSettings()}async fetch(e){if(!e)throw new Error("Plugin `id` parameter is required for settings fetch.");const{serverSettings:t}=this,{baseUrl:n,appUrl:i}=t,{makeRequest:r,ResponseError:o}=s.ServerConnection,l=n+i,u=a.url(l,e),c=await r(u,{},t);if(200!==c.status)throw await o.create(c);return c.json()}async list(e){var t,n,i,r;const{serverSettings:o}=this,{baseUrl:l,appUrl:u}=o,{makeRequest:c,ResponseError:d}=s.ServerConnection,h=l+u,p=a.url(h,"","ids"===e),f=await c(p,{},o);if(200!==f.status)throw new d(f);const m=await f.json(),g=null!==(n=null===(t=null==m?void 0:m.settings)||void 0===t?void 0:t.map((e=>e.id)))&&void 0!==n?n:[];let v=[];return e||(v=null!==(r=null===(i=null==m?void 0:m.settings)||void 0===i?void 0:i.map((e=>(e.data={composite:{},user:{}},e))))&&void 0!==r?r:[]),{ids:g,values:v}}async save(e,t){const{serverSettings:n}=this,{baseUrl:i,appUrl:r}=n,{makeRequest:o,ResponseError:l}=s.ServerConnection,u=i+r,c=a.url(u,e),d={body:JSON.stringify({raw:t}),method:"PUT"},h=await o(c,d,n);if(204!==h.status)throw new l(h)}}var a;t.SettingManager=o,function(e){e.url=function(e,t,n){const r=n?i.URLExt.objectToQueryString({ids_only:!0}):"",s=i.URLExt.join(e,"api/settings"),o=i.URLExt.join(s,t);if(!o.startsWith(s))throw new Error("Can only be used for workspaces requests");return`${o}${r}`}}(a||(a={}))},97251:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=WebSocket},27441:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalConnection=void 0;const i=n(88925),r=n(75764),s=n(38571),o=n(17883),a=n(26134);class l{constructor(e){var t;this._createSocket=()=>{this._errorIfDisposed(),this._clearSocket(),this._updateConnectionStatus("connecting");const e=this._name,t=this.serverSettings;let n=i.URLExt.join(t.wsUrl,"terminals","websocket",encodeURIComponent(e));const r=t.token;t.appendToken&&""!==r&&(n+=`?token=${encodeURIComponent(r)}`),this._ws=new t.WebSocket(n),this._ws.onmessage=this._onWSMessage,this._ws.onclose=this._onWSClose,this._ws.onerror=this._onWSClose},this._onWSMessage=e=>{if(this._isDisposed)return;const t=JSON.parse(e.data);"disconnect"===t[0]&&this.dispose(),"connecting"!==this._connectionStatus?this._messageReceived.emit({type:t[0],content:t.slice(1)}):"setup"===t[0]&&this._updateConnectionStatus("connected")},this._onWSClose=e=>{console.warn(`Terminal websocket closed: ${e.code}`),this.isDisposed||this._reconnect()},this._connectionStatus="connecting",this._connectionStatusChanged=new s.Signal(this),this._isDisposed=!1,this._disposed=new s.Signal(this),this._messageReceived=new s.Signal(this),this._reconnectTimeout=null,this._ws=null,this._noOp=()=>{},this._reconnectLimit=7,this._reconnectAttempt=0,this._pendingMessages=[],this._name=e.model.name,this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:o.ServerConnection.makeSettings(),this._createSocket()}get disposed(){return this._disposed}get messageReceived(){return this._messageReceived}get name(){return this._name}get model(){return{name:this._name}}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposed.emit(),this._updateConnectionStatus("disconnected"),this._clearSocket(),s.Signal.clearData(this))}send(e){this._sendMessage(e)}_sendMessage(e,t=!0){if(!this._isDisposed&&e.content)if("connected"===this.connectionStatus&&this._ws){const t=[e.type,...e.content];this._ws.send(JSON.stringify(t))}else{if(!t)throw new Error(`Could not send message: ${JSON.stringify(e)}`);this._pendingMessages.push(e)}}_sendPending(){for(;"connected"===this.connectionStatus&&this._pendingMessages.length>0;)this._sendMessage(this._pendingMessages[0],!1),this._pendingMessages.shift()}reconnect(){this._errorIfDisposed();const e=new r.PromiseDelegate,t=(n,i)=>{"connected"===i?(e.resolve(),this.connectionStatusChanged.disconnect(t,this)):"disconnected"===i&&(e.reject(new Error("Terminal connection disconnected")),this.connectionStatusChanged.disconnect(t,this))};return this.connectionStatusChanged.connect(t,this),this._reconnectAttempt=0,this._reconnect(),e.promise}_reconnect(){if(this._errorIfDisposed(),clearTimeout(this._reconnectTimeout),this._reconnectAttempt{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TerminalManager=void 0;const i=n(86049),r=n(38571),s=n(17883),o=n(43867),a=n(26134),l=n(27441);class u extends o.BaseManager{constructor(e={}){var t;if(super(e),this._isReady=!1,this._names=[],this._terminalConnections=new Set,this._runningChanged=new r.Signal(this),this._connectionFailure=new r.Signal(this),!this.isAvailable())return this._ready=Promise.reject("Terminals unavailable"),void this._ready.catch((e=>{}));this._pollModels=new i.Poll({auto:!1,factory:()=>this.requestRunning(),frequency:{interval:1e4,backoff:!0,max:3e5},name:"@jupyterlab/services:TerminalManager#models",standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this._ready=(async()=>{await this._pollModels.start(),await this._pollModels.tick,this._isReady=!0})()}get isReady(){return this._isReady}get ready(){return this._ready}get runningChanged(){return this._runningChanged}get connectionFailure(){return this._connectionFailure}dispose(){this.isDisposed||(this._names.length=0,this._terminalConnections.forEach((e=>e.dispose())),this._pollModels.dispose(),super.dispose())}isAvailable(){return(0,a.isAvailable)()}connectTo(e){const t=new l.TerminalConnection({...e,serverSettings:this.serverSettings});return this._onStarted(t),this._names.includes(e.model.name)||this.refreshRunning().catch((()=>{})),t}running(){return this._models[Symbol.iterator]()}async refreshRunning(){await this._pollModels.refresh(),await this._pollModels.tick}async startNew(e){const t=await(0,a.startNew)(this.serverSettings,null==e?void 0:e.name,null==e?void 0:e.cwd);return await this.refreshRunning(),this.connectTo({model:t})}async shutdown(e){await(0,a.shutdownTerminal)(e,this.serverSettings),await this.refreshRunning()}async shutdownAll(){await this.refreshRunning(),await Promise.all(this._names.map((e=>(0,a.shutdownTerminal)(e,this.serverSettings)))),await this.refreshRunning()}async requestRunning(){var e,t;let n;try{n=await(0,a.listRunning)(this.serverSettings)}catch(n){throw(n instanceof s.ServerConnection.NetworkError||503===(null===(e=n.response)||void 0===e?void 0:e.status)||424===(null===(t=n.response)||void 0===t?void 0:t.status))&&this._connectionFailure.emit(n),n}if(this.isDisposed)return;const i=n.map((({name:e})=>e)).sort();i!==this._names&&(this._names=i,this._terminalConnections.forEach((e=>{i.includes(e.name)||e.dispose()})),this._runningChanged.emit(this._models))}_onStarted(e){this._terminalConnections.add(e),e.disposed.connect(this._onDisposed,this)}_onDisposed(e){this._terminalConnections.delete(e),this.refreshRunning().catch((()=>{}))}get _models(){return this._names.map((e=>({name:e})))}}t.TerminalManager=u,function(e){e.NoopManager=class extends e{constructor(){super(...arguments),this._readyPromise=new Promise((()=>{}))}get isActive(){return!1}get parentReady(){return super.ready}get ready(){return this.parentReady.then((()=>this._readyPromise))}async startNew(e){return Promise.reject(new Error("Not implemented in no-op Terminal Manager"))}connectTo(e){throw Error("Not implemented in no-op Terminal Manager")}async shutdown(e){return Promise.reject(new Error("Not implemented in no-op Terminal Manager"))}async requestRunning(){return Promise.resolve()}}}(u||(t.TerminalManager=u={}))},26134:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.shutdownTerminal=t.listRunning=t.startNew=t.isAvailable=t.TERMINAL_SERVICE_URL=void 0;const i=n(88925),r=n(22920);function s(){return"true"===String(i.PageConfig.getOption("terminalsAvailable")).toLowerCase()}var o;t.TERMINAL_SERVICE_URL="api/terminals",t.isAvailable=s,t.startNew=async function(e=r.ServerConnection.makeSettings(),n,s){o.errorIfNotAvailable();const a=i.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),l={method:"POST",body:JSON.stringify({name:n,cwd:s})},u=await r.ServerConnection.makeRequest(a,l,e);if(200!==u.status)throw await r.ServerConnection.ResponseError.create(u);return await u.json()},t.listRunning=async function(e=r.ServerConnection.makeSettings()){o.errorIfNotAvailable();const n=i.URLExt.join(e.baseUrl,t.TERMINAL_SERVICE_URL),s=await r.ServerConnection.makeRequest(n,{},e);if(200!==s.status)throw await r.ServerConnection.ResponseError.create(s);const a=await s.json();if(!Array.isArray(a))throw new Error("Invalid terminal list");return a},t.shutdownTerminal=async function(e,n=r.ServerConnection.makeSettings()){var s;o.errorIfNotAvailable();const a=i.URLExt.join(n.baseUrl,t.TERMINAL_SERVICE_URL),l=i.URLExt.join(a,e);if(!l.startsWith(a))throw new Error("Can only be used for terminal requests");const u=await r.ServerConnection.makeRequest(l,{method:"DELETE"},n);if(404===u.status){const t=null!==(s=(await u.json()).message)&&void 0!==s?s:`The terminal session "${e}"" does not exist on the server`;console.warn(t)}else if(204!==u.status)throw await r.ServerConnection.ResponseError.create(u)},function(e){e.errorIfNotAvailable=function(){if(!s())throw new Error("Terminals Unavailable")}}(o||(o={}))},26994:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isAvailable=void 0;const i=n(26134);Object.defineProperty(t,"isAvailable",{enumerable:!0,get:function(){return i.isAvailable}})},49191:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserManager=void 0;const i=n(88925),r=n(75764),s=n(86049),o=n(38571),a=n(22920),l=n(43867),u="@jupyterlab/services:UserManager#user";class c extends l.BaseManager{constructor(e={}){var t;super(e),this._isReady=!1,this._userChanged=new o.Signal(this),this._connectionFailure=new o.Signal(this),this._ready=this.requestUser().then((()=>{this.isDisposed||(this._isReady=!0)})).catch((e=>new Promise((()=>{})))),this._pollSpecs=new s.Poll({auto:!1,factory:()=>this.requestUser(),frequency:{interval:61e3,backoff:!0,max:3e5},name:u,standby:null!==(t=e.standby)&&void 0!==t?t:"when-hidden"}),this.ready.then((()=>{this._pollSpecs.start()}))}get isReady(){return this._isReady}get ready(){return this._ready}get identity(){return this._identity}get permissions(){return this._permissions}get userChanged(){return this._userChanged}get connectionFailure(){return this._connectionFailure}dispose(){this._pollSpecs.dispose(),super.dispose()}async refreshUser(){await this._pollSpecs.refresh(),await this._pollSpecs.tick}async requestUser(){if(this.isDisposed)return;const{baseUrl:e}=this.serverSettings,{makeRequest:t,ResponseError:n}=a.ServerConnection,s=i.URLExt.join(e,"api/me"),o=await t(s,{},this.serverSettings);if(200!==o.status)throw await n.create(o);const l={identity:this._identity,permissions:this._permissions},c=await o.json(),h=c.identity,{localStorage:p}=window,f=p.getItem(u);if(f&&(!h.initials||!h.color)){const e=JSON.parse(f);h.initials=h.initials||e.initials||h.name.substring(0,1),h.color=h.color||e.color||d.getRandomColor()}r.JSONExt.deepEqual(c,l)||(this._identity=h,this._permissions=c.permissions,p.setItem(u,JSON.stringify(h)),this._userChanged.emit(c))}}var d;t.UserManager=c,function(e){const t=["var(--jp-collaborator-color1)","var(--jp-collaborator-color2)","var(--jp-collaborator-color3)","var(--jp-collaborator-color4)","var(--jp-collaborator-color5)","var(--jp-collaborator-color6)","var(--jp-collaborator-color7)"];e.getRandomColor=()=>t[Math.floor(Math.random()*t.length)]}(d||(d={}))},87441:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.validateProperty=void 0,t.validateProperty=function(e,t,n,i=[]){if(!e.hasOwnProperty(t))throw Error(`Missing property '${t}'`);const r=e[t];if(void 0!==n){let e=!0;switch(n){case"array":e=Array.isArray(r);break;case"object":e=void 0!==r;break;default:e=typeof r===n}if(!e)throw new Error(`Property '${t}' is not of type '${n}'`);if(i.length>0){let e=!0;switch(n){case"string":case"number":case"boolean":e=i.includes(r);break;default:e=i.findIndex((e=>e===r))>=0}if(!e)throw new Error(`Property '${t}' is not one of the valid values ${JSON.stringify(i)}`)}}}},38053:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WorkspaceManager=void 0;const i=n(88925),r=n(41670),s=n(22920);class o extends r.DataConnector{constructor(e={}){var t;super(),this.serverSettings=null!==(t=e.serverSettings)&&void 0!==t?t:s.ServerConnection.makeSettings()}async fetch(e){const{serverSettings:t}=this,{baseUrl:n,appUrl:i}=t,{makeRequest:r,ResponseError:o}=s.ServerConnection,l=n+i,u=a.url(l,e),c=await r(u,{},t);if(200!==c.status)throw await o.create(c);return c.json()}async list(){const{serverSettings:e}=this,{baseUrl:t,appUrl:n}=e,{makeRequest:i,ResponseError:r}=s.ServerConnection,o=t+n,l=a.url(o,""),u=await i(l,{},e);if(200!==u.status)throw await r.create(u);return(await u.json()).workspaces}async remove(e){const{serverSettings:t}=this,{baseUrl:n,appUrl:i}=t,{makeRequest:r,ResponseError:o}=s.ServerConnection,l=n+i,u=a.url(l,e),c=await r(u,{method:"DELETE"},t);if(204!==c.status)throw await o.create(c)}async save(e,t){const{serverSettings:n}=this,{baseUrl:i,appUrl:r}=n,{makeRequest:o,ResponseError:l}=s.ServerConnection,u=i+r,c=a.url(u,e),d={body:JSON.stringify(t),method:"PUT"},h=await o(c,d,n);if(204!==h.status)throw await l.create(h)}}var a;t.WorkspaceManager=o,function(e){e.url=function(e,t){const n=i.URLExt.join(e,"api/workspaces"),r=i.URLExt.join(n,t);if(!r.startsWith(n))throw new Error("Can only be used for workspaces requests");return r}}(a||(a={}))},64949:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DataConnector=void 0,t.DataConnector=class{async list(e){throw new Error("DataConnector#list method has not been implemented.")}async remove(e){throw new Error("DataConnector#remove method has not been implemented.")}async save(e,t){throw new Error("DataConnector#save method has not been implemented.")}}},41670:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||i(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(64949),t),r(n(19708),t),r(n(74025),t),r(n(92133),t),r(n(38022),t)},19708:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},74025:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RestorablePool=void 0;const i=n(75764),r=n(26573),s=n(38571);var o;t.RestorablePool=class{constructor(e){this._added=new s.Signal(this),this._current=null,this._currentChanged=new s.Signal(this),this._hasRestored=!1,this._isDisposed=!1,this._objects=new Set,this._restore=null,this._restored=new i.PromiseDelegate,this._updated=new s.Signal(this),this.namespace=e.namespace}get added(){return this._added}get current(){return this._current}set current(e){this._current!==e&&null!==e&&this._objects.has(e)&&(this._current=e,this._currentChanged.emit(this._current))}get currentChanged(){return this._currentChanged}get isDisposed(){return this._isDisposed}get restored(){return this._restored.promise}get size(){return this._objects.size}get updated(){return this._updated}async add(e){var t,n;if(e.isDisposed){const t="A disposed object cannot be added.";throw console.warn(t,e),new Error(t)}if(this._objects.has(e)){const t="This object already exists in the pool.";throw console.warn(t,e),new Error(t)}if(this._objects.add(e),e.disposed.connect(this._onInstanceDisposed,this),!o.injectedProperty.get(e)){if(this._restore){const{connector:i}=this._restore,r=this._restore.name(e);if(r){const s=`${this.namespace}:${r}`,a=null===(n=(t=this._restore).args)||void 0===n?void 0:n.call(t,e);o.nameProperty.set(e,s),await i.save(s,{data:a})}}this._added.emit(e)}}dispose(){this.isDisposed||(this._current=null,this._isDisposed=!0,this._objects.clear(),s.Signal.clearData(this))}find(e){const t=this._objects.values();for(const n of t)if(e(n))return n}forEach(e){this._objects.forEach(e)}filter(e){const t=[];return this.forEach((n=>{e(n)&&t.push(n)})),t}inject(e){return o.injectedProperty.set(e,!0),this.add(e)}has(e){return this._objects.has(e)}async restore(e){if(this._hasRestored)throw new Error("This pool has already been restored.");this._hasRestored=!0;const{command:t,connector:n,registry:i,when:r}=e,s=this.namespace,o=r?[n.list(s)].concat(r):[n.list(s)];this._restore=e;const[a]=await Promise.all(o),l=await Promise.all(a.ids.map((async(e,r)=>{const s=a.values[r],o=s&&s.data;return void 0===o?n.remove(e):i.execute(t,o).catch((()=>n.remove(e)))})));return this._restored.resolve(),l}async save(e){var t,n;const i=o.injectedProperty.get(e);if(!this._restore||!this.has(e)||i)return;const{connector:r}=this._restore,s=this._restore.name(e),a=o.nameProperty.get(e),l=s?`${this.namespace}:${s}`:"";if(a&&a!==l&&await r.remove(a),o.nameProperty.set(e,l),l){const i=null===(n=(t=this._restore).args)||void 0===n?void 0:n.call(t,e);await r.save(l,{data:i})}a!==l&&this._updated.emit(e)}_onInstanceDisposed(e){if(this._objects.delete(e),e===this._current&&(this._current=null,this._currentChanged.emit(this._current)),o.injectedProperty.get(e))return;if(!this._restore)return;const{connector:t}=this._restore,n=o.nameProperty.get(e);n&&t.remove(n)}},function(e){e.injectedProperty=new r.AttachedProperty({name:"injected",create:()=>!1}),e.nameProperty=new r.AttachedProperty({name:"name",create:()=>""})}(o||(o={}))},92133:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StateDB=void 0;const i=n(38571);class r{constructor(e={}){this._changed=new i.Signal(this);const{connector:t,transform:n}=e;this._connector=t||new r.Connector,this._ready=n?n.then((e=>{const{contents:t,type:n}=e;switch(n){case"cancel":default:return;case"clear":return this._clear();case"merge":return this._merge(t||{});case"overwrite":return this._overwrite(t||{})}})):Promise.resolve(void 0)}get changed(){return this._changed}async clear(){await this._ready,await this._clear()}async fetch(e){return await this._ready,this._fetch(e)}async list(e){return await this._ready,this._list(e)}async remove(e){await this._ready,await this._remove(e),this._changed.emit({id:e,type:"remove"})}async save(e,t){await this._ready,await this._save(e,t),this._changed.emit({id:e,type:"save"})}async toJSON(){await this._ready;const{ids:e,values:t}=await this._list();return t.reduce(((t,n,i)=>(t[e[i]]=n,t)),{})}async _clear(){await Promise.all((await this._list()).ids.map((e=>this._remove(e))))}async _fetch(e){const t=await this._connector.fetch(e);if(t)return JSON.parse(t).v}async _list(e=""){const{ids:t,values:n}=await this._connector.list(e);return{ids:t,values:n.map((e=>JSON.parse(e).v))}}async _merge(e){await Promise.all(Object.keys(e).map((t=>e[t]&&this._save(t,e[t]))))}async _overwrite(e){await this._clear(),await this._merge(e)}async _remove(e){return this._connector.remove(e)}async _save(e,t){return this._connector.save(e,JSON.stringify({v:t}))}}t.StateDB=r,function(e){e.Connector=class{constructor(){this._storage={}}async fetch(e){return this._storage[e]}async list(e=""){return Object.keys(this._storage).reduce(((t,n)=>(""!==e&&e!==n.split(":")[0]||(t.ids.push(n),t.values.push(this._storage[n])),t)),{ids:[],values:[]})}async remove(e){delete this._storage[e]}async save(e,t){this._storage[e]=t}}}(r||(t.StateDB=r={}))},38022:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IStateDB=void 0;const i=n(75764);t.IStateDB=new i.Token("@jupyterlab/coreutils:IStateDB",'A service for the JupyterLab state database.\n Use this if you want to store data that will persist across page loads.\n See "state database" for more information.')},10509:(e,t,n)=>{"use strict";function i(e){return e.replace("-","_")}n.d(t,{sQ:()=>l,wK:()=>s});class r{constructor(e){e=e||{},this._defaults={domain:"messages",locale:document.documentElement.getAttribute("lang")||"en",pluralFunc:function(e){return{nplurals:2,plural:1!=e?1:0}},contextDelimiter:String.fromCharCode(4),stringsPrefix:""},this._locale=(e.locale||this._defaults.locale).replace("_","-"),this._domain=i(e.domain||this._defaults.domain),this._contextDelimiter=e.contextDelimiter||this._defaults.contextDelimiter,this._stringsPrefix=e.stringsPrefix||this._defaults.stringsPrefix,this._pluralFuncs={},this._dictionary={},this._pluralForms={},e.messages&&(this._dictionary[this._domain]={},this._dictionary[this._domain][this._locale]=e.messages),e.pluralForms&&(this._pluralForms[this._locale]=e.pluralForms)}setContextDelimiter(e){this._contextDelimiter=e}getContextDelimiter(){return this._contextDelimiter}setLocale(e){this._locale=e.replace("_","-")}getLocale(){return this._locale}setDomain(e){this._domain=i(e)}getDomain(){return this._domain}setStringsPrefix(e){this._stringsPrefix=e}getStringsPrefix(){return this._stringsPrefix}static strfmt(e,...t){return e.replace(/%%/g,"%% ").replace(/%(\d+)/g,(function(e,n){return t[n-1]})).replace(/%% /g,"%")}loadJSON(e,t){if(!e[""]||!e[""].language||!e[""].pluralForms)throw new Error(`Wrong jsonData, it must have an empty key ("") with "language" and "pluralForms" information: ${e}`);t=i(t);let n=e[""],r=JSON.parse(JSON.stringify(e));delete r[""],this.setMessages(t||this._defaults.domain,n.language,r,n.pluralForms)}__(e,...t){return this.gettext(e,...t)}_n(e,t,n,...i){return this.ngettext(e,t,n,...i)}_p(e,t,...n){return this.pgettext(e,t,...n)}_np(e,t,n,i,...r){return this.npgettext(e,t,n,i,...r)}gettext(e,...t){return this.dcnpgettext("","",e,"",0,...t)}ngettext(e,t,n,...i){return this.dcnpgettext("","",e,t,n,...i)}pgettext(e,t,...n){return this.dcnpgettext("",e,t,"",0,...n)}npgettext(e,t,n,i,...r){return this.dcnpgettext("",e,t,n,i,...r)}dcnpgettext(e,t,n,r,s,...o){let a;e=i(e)||this._domain;let l=t?t+this._contextDelimiter+n:n,u={pluralForm:!1},c=!1,d=this._locale,h=this.expandLocale(this._locale);for(let t in h)if(d=h[t],c=this._dictionary[e]&&this._dictionary[e][d]&&this._dictionary[e][d][l],c=r?c&&this._dictionary[e][d][l].length>1:c&&1==this._dictionary[e][d][l].length,c){u.locale=d;break}if(c?a=this._dictionary[e][d][l]:(a=[n],u.pluralFunc=this._defaults.pluralFunc),!r)return this.t(a,s,u,...o);u.pluralForm=!0;let p=c?a:[n,r];return this.t(p,s,u,...o)}expandLocale(e){let t=[e],n=e.lastIndexOf("-");for(;n>0;)e=e.slice(0,n),t.push(e),n=e.lastIndexOf("-");return t}getPluralFunc(e){if(!new RegExp("^\\s*nplurals\\s*=\\s*[0-9]+\\s*;\\s*plural\\s*=\\s*(?:\\s|[-\\?\\|&=!<>+*/%:;n0-9_()])+").test(e))throw new Error(r.strfmt('The plural form "%1" is not valid',e));return new Function("n","let plural, nplurals; "+e+" return { nplurals: nplurals, plural: (plural === true ? 1 : (plural ? plural : 0)) };")}removeContext(e){return-1!==e.indexOf(this._contextDelimiter)?e.split(this._contextDelimiter)[1]:e}t(e,t,n,...i){if(!n.pluralForm)return this._stringsPrefix+r.strfmt(this.removeContext(e[0]),...i);let s;return n.pluralFunc?s=n.pluralFunc(t):(this._pluralFuncs[n.locale||""]||(this._pluralFuncs[n.locale||""]=this.getPluralFunc(this._pluralForms[n.locale||""])),s=this._pluralFuncs[n.locale||""](t)),(void 0===!s.plural||s.plural>s.nplurals||e.length<=s.plural)&&(s.plural=0),this._stringsPrefix+r.strfmt(this.removeContext(e[s.plural]),...[t].concat(i))}setMessages(e,t,n,r){e=i(e),r&&(this._pluralForms[t]=r),this._dictionary[e]||(this._dictionary[e]={}),this._dictionary[e][t]=n}}const s=new class{constructor(e){this.languageCode="en",this._languageBundle=e}load(e){return this._languageBundle}}(new class{__(e,...t){return this.gettext(e,...t)}_n(e,t,n,...i){return this.ngettext(e,t,n,...i)}_p(e,t,...n){return this.pgettext(e,t,...n)}_np(e,t,n,i,...r){return this.npgettext(e,t,n,i,...r)}gettext(e,...t){return r.strfmt(e,...t)}ngettext(e,t,n,...i){return r.strfmt(1==n?e:t,...[n].concat(i))}pgettext(e,t,...n){return r.strfmt(t,...n)}npgettext(e,t,n,i,...r){return this.ngettext(t,n,i,...r)}dcnpgettext(e,t,n,i,r,...s){return this.ngettext(n,i,r,...s)}});var o=n(41670),a=n(75764);n(88925),n(17883),new a.Token("@jupyterlab/translation:ITranslatorConnector","A service to connect to the server translation endpoint."),o.DataConnector;const l=new a.Token("@jupyterlab/translation:ITranslator","A service to translate strings.")},38135:(e,t,n)=>{"use strict";var i;function r(e){return"function"==typeof e.iter?e.iter():new l(e)}function s(e,t){for(var n,i=0,s=r(e);void 0!==(n=s.next());)if(!1===t(n,i++))return}function o(e,t){for(var n,i=0,s=r(e);void 0!==(n=s.next());)if(!t(n,i++))return!1;return!0}function a(e,t){for(var n,i=0,s=r(e);void 0!==(n=s.next());)if(t(n,i++))return!0;return!1}n.d(t,{$0:()=>h,Ie:()=>u,Rw:()=>i,Si:()=>o,__:()=>s,zN:()=>a}),function(e){function t(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=-1);var r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)){for(var i=e[t],r=t+1;r0;){var l=a>>1,u=o+l;n(e[u],t)<0?(o=u+1,a-=l+1):a=l}return o},e.upperBound=function(e,t,n,i,r){void 0===i&&(i=0),void 0===r&&(r=-1);var s=e.length;if(0===s)return 0;for(var o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;a>0;){var l=a>>1,u=o+l;n(e[u],t)>0?a=l:(o=u+1,a-=l+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(var i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);for(var a=[],l=0;l=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))){var o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0!==t){var a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)}}},e.fill=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=-1);var r=e.length;if(0!==r){var s;n=n<0?Math.max(0,n+r):Math.min(n,r-1),s=(i=i<0?Math.max(0,i+r):Math.min(i,r-1))t;--r)e[r]=e[r-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i,r){void 0===i&&(i=0),void 0===r&&(r=-1);var s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i,r){void 0===i&&(i=-1),void 0===r&&(r=0);var s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=-1);var r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);for(var s=0,o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n,r){var s;void 0===n&&(n=0),void 0===r&&(r=-1);var a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n,i){var s;void 0===n&&(n=-1),void 0===i&&(i=0);var a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=-1);var r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);for(var s=0,o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(i||(i={}));var l=function(){function e(e){this._index=0,this._source=e}return e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source);return t._index=this._index,t},e.prototype.next=function(){if(!(this._index>=this._source.length))return this._source[this._index++]},e}();function u(){return new d}(function(){function e(e,t){void 0===t&&(t=Object.keys(e)),this._index=0,this._source=e,this._keys=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source,this._keys);return t._index=this._index,t},e.prototype.next=function(){if(!(this._index>=this._keys.length)){var e=this._keys[this._index++];return e in this._source?e:this.next()}}})(),function(){function e(e,t){void 0===t&&(t=Object.keys(e)),this._index=0,this._source=e,this._keys=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source,this._keys);return t._index=this._index,t},e.prototype.next=function(){if(!(this._index>=this._keys.length)){var e=this._keys[this._index++];return e in this._source?this._source[e]:this.next()}}}(),function(){function e(e,t){void 0===t&&(t=Object.keys(e)),this._index=0,this._source=e,this._keys=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source,this._keys);return t._index=this._index,t},e.prototype.next=function(){if(!(this._index>=this._keys.length)){var e=this._keys[this._index++];return e in this._source?[e,this._source[e]]:this.next()}}}(),function(){function e(e){this._fn=e}e.prototype.iter=function(){return this},e.prototype.clone=function(){throw new Error("An `FnIterator` cannot be cloned.")},e.prototype.next=function(){return this._fn.call(void 0)}}(),function(){function e(e){this._cloned=!1,this._source=e,this._active=void 0}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source.clone());return t._active=this._active&&this._active.clone(),t._cloned=!0,this._cloned=!0,t},e.prototype.next=function(){if(void 0===this._active){var e=this._source.next();if(void 0===e)return;this._active=this._cloned?e.clone():e}var t=this._active.next();return void 0!==t?t:(this._active=void 0,this.next())}}();var c,d=function(){function e(){}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e},e.prototype.next=function(){},e}();function h(e){return"function"==typeof e.retro?e.retro():new f(e)}!function(){function e(e,t){this._source=e,this._index=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._source.clone(),this._index)},e.prototype.next=function(){var e=this._source.next();if(void 0!==e)return[this._index++,e]}}(),function(){function e(e,t){this._index=0,this._source=e,this._fn=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source.clone(),this._fn);return t._index=this._index,t},e.prototype.next=function(){for(var e,t=this._fn,n=this._source;void 0!==(e=n.next());)if(t(e,this._index++))return e}}(),function(){function e(e,t){this._index=0,this._source=e,this._fn=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._source.clone(),this._fn);return t._index=this._index,t},e.prototype.next=function(){var e=this._source.next();if(void 0!==e)return this._fn.call(void 0,e,this._index++)}}(),function(){function e(e,t,n){this._index=0,this._start=e,this._stop=t,this._step=n,this._length=c.rangeLength(e,t,n)}e.prototype.iter=function(){return this},e.prototype.clone=function(){var t=new e(this._start,this._stop,this._step);return t._index=this._index,t},e.prototype.next=function(){if(!(this._index>=this._length))return this._start+this._step*this._index++}}(),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||e=this._source.length))return this._source[this._index--]},e}();!function(){function e(e,t){this._source=e,this._step=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._source.clone(),this._step)},e.prototype.next=function(){for(var e=this._source.next(),t=this._step-1;t>0;--t)this._source.next();return e}}(),function(e){function t(e,t,n){void 0===n&&(n=0);for(var i=new Array(t.length),r=0,s=n,o=t.length;rt?1:0}}(p||(p={})),function(){function e(e,t){this._source=e,this._count=t}e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._source.clone(),this._count)},e.prototype.next=function(){if(!(this._count<=0)){var e=this._source.next();if(void 0!==e)return this._count--,e}}}(),function(){function e(e){this._source=e}e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._source.map((function(e){return e.clone()})))},e.prototype.next=function(){for(var e=new Array(this._source.length),t=0,n=this._source.length;t{if(i===e.provides)return!0;const o=n.get(i);if(!o)return!1;const a=t.get(o),l=[...a.requires,...a.optional];return 0!==l.length&&(s.push(o),!!l.some(r)||(s.pop(),!1))};if(!e.provides||0===i.length)return;const s=[e.id];if(i.some(r))throw new ReferenceError(`Cycle detected: ${s.join(" -> ")}.`)},e.findDependents=function(e,n,i){const r=new Array,s=e=>{const t=n.get(e),s=[...t.requires,...t.optional];r.push(...s.reduce(((t,n)=>{const r=i.get(n);return r&&t.push([e,r]),t}),[]))};for(const e of n.keys())s(e);const o=r.filter((t=>t[1]===e));let a=0;for(;o.length>a;){const e=o.length,t=new Set(o.map((e=>e[0])));for(const e of t)r.filter((t=>t[1]===e)).forEach((e=>{o.includes(e)||o.push(e)}));a=e}const l=t.topologicSort(o),u=l.findIndex((t=>t===e));return-1===u?[e]:l.slice(0,u+1)},e.collectStartupPlugins=function(e,t){const n=new Set;for(const t of e.keys())!0===e.get(t).autoStart&&n.add(t);if(t.startPlugins)for(const e of t.startPlugins)n.add(e);if(t.ignorePlugins)for(const e of t.ignorePlugins)n.delete(e);return Array.from(n)}}(n||(n={}));function i(e){let t=0;for(let n=0,i=e.length;n>>0),e[n]=255&t,t>>>=8}e.Random=void 0,(e.Random||(e.Random={})).getRandomValues=(()=>{const e="undefined"!=typeof window&&(window.crypto||window.msCrypto)||null;return e&&"function"==typeof e.getRandomValues?function(t){return e.getRandomValues(t)}:i})(),e.UUID=void 0,(e.UUID||(e.UUID={})).uuid4=function(e){const t=new Uint8Array(16),n=new Array(256);for(let e=0;e<16;++e)n[e]="0"+e.toString(16);for(let e=16;e<256;++e)n[e]=e.toString(16);return function(){return e(t),t[6]=64|15&t[6],t[8]=128|63&t[8],n[t[0]]+n[t[1]]+n[t[2]]+n[t[3]]+"-"+n[t[4]]+n[t[5]]+"-"+n[t[6]]+n[t[7]]+"-"+n[t[8]]+n[t[9]]+"-"+n[t[10]]+n[t[11]]+n[t[12]]+n[t[13]]+n[t[14]]+n[t[15]]}}(e.Random.getRandomValues),e.MimeData=class{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(e){return-1!==this._types.indexOf(e)}getData(e){let t=this._types.indexOf(e);return-1!==t?this._values[t]:void 0}setData(e,t){this.clearData(e),this._types.push(e),this._values.push(t)}clearData(e){let t=this._types.indexOf(e);-1!==t&&(this._types.splice(t,1),this._values.splice(t,1))}clear(){this._types.length=0,this._values.length=0}},e.PluginRegistry=class{constructor(e={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,e.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=e.validatePlugin)}get application(){return this._application}set application(e){if(null!==this._application)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=e}get deferredPlugins(){return Array.from(this._plugins).filter((([e,t])=>"defer"===t.autoStart)).map((([e,t])=>e))}getPluginDescription(e){var t,n;return null!==(n=null===(t=this._plugins.get(e))||void 0===t?void 0:t.description)&&void 0!==n?n:""}hasPlugin(e){return this._plugins.has(e)}isPluginActivated(e){var t,n;return null!==(n=null===(t=this._plugins.get(e))||void 0===t?void 0:t.activated)&&void 0!==n&&n}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(e){if(this._plugins.has(e.id))throw new TypeError(`Plugin '${e.id}' is already registered.`);if(!this._validatePlugin(e))throw new Error(`Plugin '${e.id}' is not valid.`);const t=n.createPluginData(e);n.ensureNoCycle(t,this._plugins,this._services),t.provides&&this._services.set(t.provides,t.id),this._plugins.set(t.id,t)}registerPlugins(e){for(const t of e)this.registerPlugin(t)}deregisterPlugin(e,t){const n=this._plugins.get(e);if(n){if(n.activated&&!t)throw new Error(`Plugin '${e}' is still active.`);this._plugins.delete(e)}}async activatePlugin(e){const t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(t.activated)return;if(t.promise)return t.promise;const n=t.requires.map((e=>this.resolveRequiredService(e))),i=t.optional.map((e=>this.resolveOptionalService(e)));return t.promise=Promise.all([...n,...i]).then((e=>t.activate.apply(void 0,[this.application,...e]))).then((e=>{t.service=e,t.activated=!0,t.promise=null})).catch((e=>{throw t.promise=null,e})),t.promise}async activatePlugins(e,t={}){switch(e){case"defer":{const e=this.deferredPlugins.filter((e=>this._plugins.get(e).autoStart)).map((e=>this.activatePlugin(e)));await Promise.all(e);break}case"startUp":{const e=n.collectStartupPlugins(this._plugins,t).map((async e=>{try{return await this.activatePlugin(e)}catch(t){console.error(`Plugin '${e}' failed to activate.`,t)}}));await Promise.all(e);break}}}async deactivatePlugin(e){const t=this._plugins.get(e);if(!t)throw new ReferenceError(`Plugin '${e}' is not registered.`);if(!t.activated)return[];if(!t.deactivate)throw new TypeError(`Plugin '${e}'#deactivate() method missing`);const i=n.findDependents(e,this._plugins,this._services),r=i.map((e=>this._plugins.get(e)));for(const t of r)if(!t.deactivate)throw new TypeError(`Plugin ${t.id}#deactivate() method missing (depends on ${e})`);for(const e of r){const t=[...e.requires,...e.optional].map((e=>{const t=this._services.get(e);return t?this._plugins.get(t).service:null}));await e.deactivate(this.application,...t),e.service=null,e.activated=!1}return i.pop(),i}async resolveRequiredService(e){const t=this._services.get(e);if(!t)throw new TypeError(`No provider for: ${e.name}.`);const n=this._plugins.get(t);return n.activated||await this.activatePlugin(t),n.service}async resolveOptionalService(e){const t=this._services.get(e);if(!t)return null;const n=this._plugins.get(t);if(!n.activated)try{await this.activatePlugin(t)}catch(e){return console.error(e),null}return n.service}},e.PromiseDelegate=class{constructor(){this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){(0,this._resolve)(e)}reject(e){(0,this._reject)(e)}},e.Token=class{constructor(e,t){this.name=e,this.description=null!=t?t:"",this._tokenStructuralPropertyT=null}}}(t,n(95102))},95102:(e,t,n)=>{"use strict";var i,r,s;function*o(...e){for(const t of e)yield*t}function*a(){}function*l(e,t=0){for(const n of e)yield[t++,n]}function*u(e,t){let n=0;for(const i of e)t(i,n++)&&(yield i)}function c(e,t){let n=0;for(const i of e)if(t(i,n++))return i}function d(e,t){let n=0;for(const i of e)if(t(i,n++))return n-1;return-1}function h(e,t){let n;for(const i of e)void 0!==n?t(i,n)<0&&(n=i):n=i;return n}function p(e,t){let n;for(const i of e)void 0!==n?t(i,n)>0&&(n=i):n=i;return n}function f(e,t){let n,i,r=!0;for(const s of e)r?(n=s,i=s,r=!1):t(s,n)<0?n=s:t(s,i)>0&&(i=s);return r?void 0:[n,i]}function m(e){return Array.from(e)}function g(e){const t={};for(const[n,i]of e)t[n]=i;return t}function v(e,t){let n=0;for(const i of e)if(!1===t(i,n++))return}function _(e,t){let n=0;for(const i of e)if(!1===t(i,n++))return!1;return!0}function b(e,t){let n=0;for(const i of e)if(t(i,n++))return!0;return!1}function*y(e,t){let n=0;for(const i of e)yield t(i,n++)}function*w(e,t,n){void 0===t?(t=e,e=0,n=1):void 0===n&&(n=1);const i=r.rangeLength(e,t,n);for(let t=0;t-1;t--)yield e[t]}function k(e){let t=[],n=new Set,i=new Map;for(const t of e)r(t);for(const[e]of i)s(e);return t;function r(e){let[t,n]=e,r=i.get(n);r?r.push(t):i.set(n,[t])}function s(e){if(n.has(e))return;n.add(e);let r=i.get(e);if(r)for(const e of r)s(e);t.push(e)}}function*M(e,t){let n=0;for(const i of e)0==n++%t&&(yield i)}function*T(e,t){if(t<1)return;const n=e[Symbol.iterator]();let i;for(;0e[Symbol.iterator]()));let n=t.map((e=>e.next()));for(;_(n,(e=>!e.done));n=t.map((e=>e.next())))yield n.map((e=>e.value))}n.r(t),n.d(t,{ArrayExt:()=>i,StringExt:()=>s,chain:()=>o,each:()=>v,empty:()=>a,enumerate:()=>l,every:()=>_,filter:()=>u,find:()=>c,findIndex:()=>d,map:()=>y,max:()=>p,min:()=>h,minmax:()=>f,once:()=>E,range:()=>w,reduce:()=>x,repeat:()=>S,retro:()=>C,some:()=>b,stride:()=>M,take:()=>T,toArray:()=>m,toObject:()=>g,topologicSort:()=>k,zip:()=>O}),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(i||(i={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(s||(s={}))},7556:(e,t,n)=>{"use strict";n.r(t),n.d(t,{DisposableDelegate:()=>r,DisposableSet:()=>o,ObservableDisposableDelegate:()=>s,ObservableDisposableSet:()=>a});var i=n(38571);class r{constructor(e){this._fn=e}get isDisposed(){return!this._fn}dispose(){if(!this._fn)return;let e=this._fn;this._fn=null,e()}}class s extends r{constructor(){super(...arguments),this._disposed=new i.Signal(this)}get disposed(){return this._disposed}dispose(){this.isDisposed||(super.dispose(),this._disposed.emit(void 0),i.Signal.clearData(this))}}class o{constructor(){this._isDisposed=!1,this._items=new Set}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._items.forEach((e=>{e.dispose()})),this._items.clear())}contains(e){return this._items.has(e)}add(e){this._items.add(e)}remove(e){this._items.delete(e)}clear(){this._items.clear()}}!function(e){e.from=function(t){let n=new e;for(const e of t)n.add(e);return n}}(o||(o={}));class a extends o{constructor(){super(...arguments),this._disposed=new i.Signal(this)}get disposed(){return this._disposed}dispose(){this.isDisposed||(super.dispose(),this._disposed.emit(void 0),i.Signal.clearData(this))}}!function(e){e.from=function(t){let n=new e;for(const e of t)n.add(e);return n}}(a||(a={}))},33326:(e,t,n)=>{"use strict";n.r(t),n.d(t,{ConflatableMessage:()=>d,Message:()=>c,MessageLoop:()=>l});var i,r=n(38135),s=function(){function e(e){this._root=new i.LeafNode,this.cmp=e}return Object.defineProperty(e.prototype,"isEmpty",{get:function(){return 0===this._root.size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._root.size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){var e=i.firstLeaf(this._root);return e.size>0?e.items[0]:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){var e=i.lastLeaf(this._root);return e.size>0?e.items[e.size-1]:void 0},enumerable:!0,configurable:!0}),e.prototype.iter=function(){return i.iterItems(this._root)},e.prototype.retro=function(){return i.retroItems(this._root)},e.prototype.slice=function(e,t){return i.sliceItems(this._root,e,t)},e.prototype.retroSlice=function(e,t){return i.retroSliceItems(this._root,e,t)},e.prototype.at=function(e){return i.itemAt(this._root,e)},e.prototype.has=function(e,t){return i.hasItem(this._root,e,t)},e.prototype.indexOf=function(e,t){return i.indexOf(this._root,e,t)},e.prototype.get=function(e,t){return i.getItem(this._root,e,t)},e.prototype.assign=function(e){this.clear(),this.update(e)},e.prototype.insert=function(e){var t=i.insertItem(this._root,e,this.cmp);return this._root=i.maybeSplitRoot(this._root),t},e.prototype.update=function(e){var t=this;(0,r.__)(e,(function(e){t.insert(e)}))},e.prototype.delete=function(e,t){var n=i.deleteItem(this._root,e,t);return this._root=i.maybeExtractRoot(this._root),n},e.prototype.remove=function(e){var t=i.removeItem(this._root,e);return this._root=i.maybeExtractRoot(this._root),t},e.prototype.clear=function(){i.clear(this._root),this._root=new i.LeafNode},e}();!function(e){e.from=function(t,n){var i=new e(n);return i.assign(t),i}}(s||(s={})),function(e){var t=function(){function e(){this.items=[],this.sizes=[],this.children=[]}return Object.defineProperty(e.prototype,"type",{get:function(){return 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this.sizes[this.sizes.length-1]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.children.length},enumerable:!0,configurable:!0}),e}();e.BranchNode=t;var n=function(){function e(){this.next=null,this.prev=null,this.items=[]}return Object.defineProperty(e.prototype,"type",{get:function(){return 1},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this.items.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"width",{get:function(){return this.items.length},enumerable:!0,configurable:!0}),e}();function i(e){for(;0===e.type;)e=e.children[0];return e}function s(e){for(;0===e.type;)e=e.children[e.children.length-1];return e}function o(e){0===e.type?((0,r.__)(e.children,o),e.children.length=0,e.sizes.length=0,e.items.length=0):(e.items.length=0,e.next=null,e.prev=null)}e.LeafNode=n,e.firstLeaf=i,e.lastLeaf=s,e.iterItems=function(e){var t=i(e);return new u(t,0,-1)},e.retroItems=function(e){var t=s(e);return new c(t,t.size-1,-1)},e.sliceItems=function(e,t,n){t=void 0===t?0:t<0?Math.max(0,t+e.size):Math.min(t,e.size),n=void 0===n?e.size:n<0?Math.max(0,n+e.size):Math.min(n,e.size);var i=Math.max(0,n-t);if(0===i)return(0,r.Ie)();for(;0===e.type;){var s=d(e.sizes,t);s>0&&(t-=e.sizes[s-1]),e=e.children[s]}return new u(e,t,i)},e.retroSliceItems=function(e,t,n){t=void 0===t?e.size-1:t<0?Math.max(-1,t+e.size):Math.min(t,e.size-1),n=void 0===n?-1:n<0?Math.max(-1,n+e.size):Math.min(n,e.size-1);var i=Math.max(0,t-n);if(0===i)return(0,r.Ie)();for(;0===e.type;){var s=d(e.sizes,t);s>0&&(t-=e.sizes[s-1]),e=e.children[s]}return new c(e,t,i)},e.itemAt=function(e,t){if(t<0&&(t+=e.size),!(t<0||t>=e.size)){for(;0===e.type;){var n=d(e.sizes,t);n>0&&(t-=e.sizes[n-1]),e=e.children[n]}return e.items[t]}},e.hasItem=function(e,t,n){for(;0===e.type;){var i=h(e.items,t,n);e=e.children[i]}return p(e.items,t,n)>=0},e.indexOf=function(e,t,n){for(var i=0;0===e.type;){var r=h(e.items,t,n);r>0&&(i+=e.sizes[r-1]),e=e.children[r]}var s=p(e.items,t,n);return s>=0?i+s:-i+s},e.getItem=function(e,t,n){for(;0===e.type;){var i=h(e.items,t,n);e=e.children[i]}var r=p(e.items,t,n);return r>=0?e.items[r]:void 0},e.insertItem=function e(t,n,i){if(1===t.type){var s,o=p(t.items,n,i);return o>=0?(s=t.items[o],t.items[o]=n):(s=void 0,r.Rw.insert(t.items,-o-1,n)),s}var l=h(t.items,n,i),u=t.children[l],c=u.size,d=e(u,n,i),g=u.size;if(t.items[l]=u.items[0],c===g)return d;if(u.width>a){var v=m(u);r.Rw.insert(t.children,l+1,v),r.Rw.insert(t.items,l+1,v.items[0])}return f(t,l),d},e.deleteItem=function e(t,n,i){if(1===t.type){var s=p(t.items,n,i);if(s<0)return;return r.Rw.removeAt(t.items,s)}var o=h(t.items,n,i),a=t.children[o],u=a.size,c=e(a,n,i);return u===a.size||(t.items[o]=a.items[0],a.width=t.size)){if(1===t.type)return r.Rw.removeAt(t.items,n);var i=d(t.sizes,n);i>0&&(n-=t.sizes[i]);var s=t.children[i],o=e(s,n);return t.items[i]=s.items[0],s.width1)return e;var t=e.children.pop();return o(e),t};var a=32,l=a>>1,u=function(){function e(e,t,n){this._node=e,this._index=t,this._count=n}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node,this._index,this._count)},e.prototype.next=function(){if(null!==this._node&&0!==this._count)return this._index>=this._node.size?(this._node=this._node.next,this._index=0,this.next()):(this._count>0&&this._count--,this._node.items[this._index++])},e}(),c=function(){function e(e,t,n){this._node=e,this._index=t,this._count=n}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node,this._index,this._count)},e.prototype.next=function(){if(null!==this._node&&0!==this._count)return this._index>=this._node.size&&(this._index=this._node.size-1),this._index<0?(this._node=this._node.prev,this._index=this._node?this._node.size-1:-1,this.next()):(this._count>0&&this._count--,this._node.items[this._index--])},e}();function d(e,t){for(var n=e.length,i=0;it)return i;return n-1}function h(e,t,n){for(var i=e.length,r=1;r0)return r-1;return i-1}function p(e,t,n){for(var i=e.length,r=0;r0)return-r-1}return-i-1}function f(e,t){for(var n=e.sizes,i=e.children,r=t>0?n[t-1]:0,s=i.length;tl;if(m&&g&&p){var v=h;return(_=d).items.push(v.items.shift()),e.items[t+1]=v.items[0],t}if(m&&g&&!p)return v=h,(_=d).items.unshift(v.items.pop()),e.items[t]=_.items[0],t-1;if(m&&!g&&p){var _=d;return(n=(v=h).items).unshift.apply(n,_.items),r.Rw.removeAt(e.children,t),r.Rw.removeAt(e.items,t+1),_.prev&&(_.prev.next=v),v.prev=_.prev,o(_),t}if(m&&!g&&!p)return _=d,(i=(v=h).items).push.apply(i,_.items),r.Rw.removeAt(e.children,t),r.Rw.removeAt(e.items,t),_.next&&(_.next.prev=v),v.next=_.next,o(_),t-1;if(!m&&g&&p)return v=h,(_=d).children.push(v.children.shift()),_.items.push(v.items.shift()),e.items[t+1]=v.items[0],f(_,_.width-1),f(v,0),t;if(!m&&g&&!p)return v=h,(_=d).children.unshift(v.children.pop()),_.items.unshift(v.items.pop()),e.items[t]=_.items[0],f(_,0),f(v,v.width-1),t-1;if(!m&&!g&&p)return _=d,(s=(v=h).children).unshift.apply(s,_.children),(a=v.items).unshift.apply(a,_.items),r.Rw.removeAt(e.children,t),r.Rw.removeAt(e.items,t+1),f(v,0),_.children.length=0,o(_),t;if(!m&&!g&&!p)return _=d,(u=(v=h).children).push.apply(u,_.children),(c=v.items).push.apply(c,_.items),r.Rw.removeAt(e.children,t),r.Rw.removeAt(e.items,t),f(v,0),_.children.length=0,o(_),t-1;throw"unreachable"}}(i||(i={}));var o,a=function(){function e(){this._first=null,this._last=null,this._size=0}return Object.defineProperty(e.prototype,"isEmpty",{get:function(){return 0===this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"length",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"first",{get:function(){return this._first?this._first.value:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"last",{get:function(){return this._last?this._last.value:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"firstNode",{get:function(){return this._first},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"lastNode",{get:function(){return this._last},enumerable:!0,configurable:!0}),e.prototype.iter=function(){return new e.ForwardValueIterator(this._first)},e.prototype.retro=function(){return new e.RetroValueIterator(this._last)},e.prototype.nodes=function(){return new e.ForwardNodeIterator(this._first)},e.prototype.retroNodes=function(){return new e.RetroNodeIterator(this._last)},e.prototype.assign=function(e){var t=this;this.clear(),(0,r.__)(e,(function(e){t.addLast(e)}))},e.prototype.push=function(e){this.addLast(e)},e.prototype.pop=function(){return this.removeLast()},e.prototype.shift=function(e){this.addFirst(e)},e.prototype.unshift=function(){return this.removeFirst()},e.prototype.addFirst=function(e){var t=new o.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t},e.prototype.addLast=function(e){var t=new o.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t},e.prototype.insertBefore=function(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof o.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");var n=new o.LinkedListNode(this,e),i=t,r=i.prev;return n.next=i,n.prev=r,i.prev=n,r.next=n,this._size++,n},e.prototype.insertAfter=function(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof o.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");var n=new o.LinkedListNode(this,e),i=t,r=i.next;return n.next=r,n.prev=i,i.next=n,r.prev=n,this._size++,n},e.prototype.removeFirst=function(){var e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value},e.prototype.removeLast=function(){var e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value},e.prototype.removeNode=function(e){if(!(e instanceof o.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");var t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--},e.prototype.clear=function(){for(var e=this._first;e;){var t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0},e}();!function(e){e.from=function(t){var n=new e;return n.assign(t),n};var t=function(){function e(e){this._node=e}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node)},e.prototype.next=function(){if(this._node){var e=this._node;return this._node=e.next,e.value}},e}();e.ForwardValueIterator=t;var n=function(){function e(e){this._node=e}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node)},e.prototype.next=function(){if(this._node){var e=this._node;return this._node=e.prev,e.value}},e}();e.RetroValueIterator=n;var i=function(){function e(e){this._node=e}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node)},e.prototype.next=function(){if(this._node){var e=this._node;return this._node=e.next,e}},e}();e.ForwardNodeIterator=i;var r=function(){function e(e){this._node=e}return e.prototype.iter=function(){return this},e.prototype.clone=function(){return new e(this._node)},e.prototype.next=function(){if(this._node){var e=this._node;return this._node=e.prev,e}},e}();e.RetroNodeIterator=r}(a||(a={})),function(e){e.LinkedListNode=function(e,t){this.list=null,this.next=null,this.prev=null,this.list=e,this.value=t}}(o||(o={}));var l,u=function(e,t){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},u(e,t)},c=function(){function e(e){this.type=e}return Object.defineProperty(e.prototype,"isConflatable",{get:function(){return!1},enumerable:!0,configurable:!0}),e.prototype.conflate=function(e){return!1},e}(),d=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),Object.defineProperty(t.prototype,"isConflatable",{get:function(){return!0},enumerable:!0,configurable:!0}),t.prototype.conflate=function(e){return!0},t}(c);!function(e){function t(e,t){var n=i.get(e);if(n&&0!==n.length){var s=(0,r.Si)((0,r.$0)(n),(function(n){return!n||function(e,t,n){var i=!0;try{i="function"==typeof e?e(t,n):e.messageHook(t,n)}catch(e){o(e)}return i}(n,e,t)}));s&&h(e,t)}else h(e,t)}e.sendMessage=t,e.postMessage=function(e,t){t.isConflatable&&(0,r.zN)(n,(function(n){return n.handler===e&&!!n.msg&&n.msg.type===t.type&&!!n.msg.isConflatable&&n.msg.conflate(t)}))||function(e,t){n.addLast({handler:e,msg:t}),0===l&&(l=c(p))}(e,t)},e.installMessageHook=function(e,t){var n=i.get(e);n&&-1!==n.indexOf(t)||(n?n.push(t):i.set(e,[t]))},e.removeMessageHook=function(e,t){var n=i.get(e);if(n){var r=n.indexOf(t);-1!==r&&(n[r]=null,f(n))}},e.clearData=function(e){var t=i.get(e);t&&t.length>0&&(r.Rw.fill(t,null),f(t)),(0,r.__)(n,(function(t){t.handler===e&&(t.handler=null,t.msg=null)}))},e.flush=function(){u||0===l||(d(l),u=!0,p(),u=!1)},e.getExceptionHandler=function(){return o},e.setExceptionHandler=function(e){var t=o;return o=e,t};var n=new a,i=new WeakMap,s=new Set,o=function(e){console.error(e)},l=0,u=!1,c="function"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate,d="function"==typeof cancelAnimationFrame?cancelAnimationFrame:clearImmediate;function h(e,t){try{e.processMessage(t)}catch(e){o(e)}}function p(){if(l=0,!n.isEmpty){var e={handler:null,msg:null};for(n.addLast(e);;){var i=n.removeFirst();if(i===e)return;i.handler&&i.msg&&t(i.handler,i.msg)}}}function f(e){0===s.size&&c(m),s.add(e)}function m(){s.forEach(g),s.clear()}function g(e){r.Rw.removeAllWhere(e,v)}function v(e){return null===e}}(l||(l={}))},86049:(e,t,n)=>{"use strict";n.r(t),n.d(t,{Debouncer:()=>l,Poll:()=>o,RateLimiter:()=>a,Throttler:()=>u});var i,r=n(75764),s=n(38571);class o{constructor(e){var t;this._disposed=new s.Signal(this),this._lingered=0,this._tick=new r.PromiseDelegate,this._ticked=new s.Signal(this),this._factory=e.factory,this._linger=null!==(t=e.linger)&&void 0!==t?t:i.DEFAULT_LINGER,this._standby=e.standby||i.DEFAULT_STANDBY,this._state={...i.DEFAULT_STATE,timestamp:(new Date).getTime()};const n=e.frequency||{},o=Math.max(n.interval||0,n.max||0,i.DEFAULT_FREQUENCY.max);this.frequency={...i.DEFAULT_FREQUENCY,...n,max:o},this.name=e.name||i.DEFAULT_NAME,"auto"in e&&!e.auto||setTimeout((()=>this.start()))}get disposed(){return this._disposed}get frequency(){return this._frequency}set frequency(e){if(this.isDisposed||r.JSONExt.deepEqual(e,this.frequency||{}))return;let{backoff:t,interval:n,max:i}=e;if(n=Math.round(n),i=Math.round(i),"number"==typeof t&&t<1)throw new Error("Poll backoff growth factor must be at least 1");if((n<0||n>i)&&n!==o.NEVER)throw new Error("Poll interval must be between 0 and max");if(i>o.MAX_INTERVAL&&i!==o.NEVER)throw new Error(`Max interval must be less than ${o.MAX_INTERVAL}`);this._frequency={backoff:t,interval:n,max:i}}get isDisposed(){return"disposed"===this.state.phase}get standby(){return this._standby}set standby(e){this.isDisposed||this.standby===e||(this._standby=e)}get state(){return this._state}get tick(){return this._tick.promise}get ticked(){return this._ticked}async*[Symbol.asyncIterator](){for(;!this.isDisposed;)yield this.state,await this.tick.catch((()=>{}))}dispose(){this.isDisposed||(this._state={...i.DISPOSED_STATE,timestamp:(new Date).getTime()},this._tick.promise.catch((e=>{})),this._tick.reject(new Error(`Poll (${this.name}) is disposed.`)),this._disposed.emit(void 0),s.Signal.clearData(this))}refresh(){return this.schedule({cancel:({phase:e})=>"refreshed"===e,interval:o.IMMEDIATE,phase:"refreshed"})}async schedule(e={}){if(this.isDisposed)return;if(e.cancel&&e.cancel(this.state))return;const t=this._tick,n=new r.PromiseDelegate,i={interval:this.frequency.interval,payload:null,phase:"standby",timestamp:(new Date).getTime(),...e};this._state=i,this._tick=n,clearTimeout(this._timeout),this._ticked.emit(this.state),t.resolve(this),await t.promise,i.interval!==o.NEVER?this._timeout=setTimeout((()=>{this.isDisposed||this.tick!==n.promise||this._execute()}),i.interval):this._timeout=void 0}start(){return this.schedule({cancel:({phase:e})=>"constructed"!==e&&"standby"!==e&&"stopped"!==e,interval:o.IMMEDIATE,phase:"started"})}stop(){return this.schedule({cancel:({phase:e})=>"stopped"===e,interval:o.NEVER,phase:"stopped"})}get hidden(){return i.hidden}_execute(){let e="function"==typeof this.standby?this.standby():this.standby;if("never"===e?e=!1:"when-hidden"===e&&(this.hidden?e=++this._lingered>this._linger:(this._lingered=0,e=!1)),e)return void this.schedule();const t=this.tick;this._factory(this.state).then((e=>{this.isDisposed||this.tick!==t||this.schedule({payload:e,phase:"rejected"===this.state.phase?"reconnected":"resolved"})})).catch((e=>{this.isDisposed||this.tick!==t||this.schedule({interval:i.sleep(this.frequency,this.state),payload:e,phase:"rejected"})}))}}!function(e){e.IMMEDIATE=0,e.MAX_INTERVAL=2147483647,e.NEVER=1/0}(o||(o={})),function(e){e.DEFAULT_BACKOFF=3,e.DEFAULT_FREQUENCY={backoff:!0,interval:1e3,max:3e4},e.DEFAULT_LINGER=1,e.DEFAULT_NAME="unknown",e.DEFAULT_STANDBY="when-hidden",e.DEFAULT_STATE={interval:o.NEVER,payload:null,phase:"constructed",timestamp:new Date(0).getTime()},e.DISPOSED_STATE={interval:o.NEVER,payload:null,phase:"disposed",timestamp:new Date(0).getTime()},e.sleep=function(t,n){const{backoff:i,interval:r,max:s}=t;if(r===o.NEVER)return r;const a=!0===i?e.DEFAULT_BACKOFF:!1===i?1:i,l=function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e}(r,n.interval*a);return Math.min(s,l)},e.hidden="undefined"!=typeof document&&(document.addEventListener("visibilitychange",(()=>{e.hidden="hidden"===document.visibilityState})),document.addEventListener("pagehide",(()=>{e.hidden="hidden"===document.visibilityState})),"hidden"===document.visibilityState)}(i||(i={}));class a{constructor(e,t=500){this.args=void 0,this.payload=null,this.limit=t,this.poll=new o({auto:!1,factory:async()=>{const{args:t}=this;return this.args=void 0,e(...t)},frequency:{backoff:!1,interval:o.NEVER,max:o.NEVER},standby:"never"}),this.payload=new r.PromiseDelegate,this.poll.ticked.connect(((e,t)=>{const{payload:n}=this;return"resolved"===t.phase?(this.payload=new r.PromiseDelegate,void n.resolve(t.payload)):"rejected"===t.phase||"stopped"===t.phase?(this.payload=new r.PromiseDelegate,n.promise.catch((e=>{})),void n.reject(t.payload)):void 0}),this)}get isDisposed(){return null===this.payload}dispose(){this.isDisposed||(this.args=void 0,this.payload=null,this.poll.dispose())}async stop(){return this.poll.stop()}}class l extends a{invoke(...e){return this.args=e,this.poll.schedule({interval:this.limit,phase:"invoked"}),this.payload.promise}}class u extends a{constructor(e,t){super(e,"number"==typeof t?t:t&&t.limit),this._trailing=!1,"number"!=typeof t&&t&&"trailing"===t.edge&&(this._trailing=!0),this._interval=this._trailing?this.limit:o.IMMEDIATE}invoke(...e){const t="invoked"!==this.poll.state.phase;return(t||this._trailing)&&(this.args=e),t&&this.poll.schedule({interval:this._interval,phase:"invoked"}),this.payload.promise}}},26573:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AttachedProperty:()=>i});class i{constructor(e){this._pid=r.nextPID(),this.name=e.name,this._create=e.create,this._coerce=e.coerce||null,this._compare=e.compare||null,this._changed=e.changed||null}get(e){let t,n=r.ensureMap(e);return t=this._pid in n?n[this._pid]:n[this._pid]=this._createValue(e),t}set(e,t){let n,i=r.ensureMap(e);n=this._pid in i?i[this._pid]:i[this._pid]=this._createValue(e);let s=this._coerceValue(e,t);this._maybeNotify(e,n,i[this._pid]=s)}coerce(e){let t,n=r.ensureMap(e);t=this._pid in n?n[this._pid]:n[this._pid]=this._createValue(e);let i=this._coerceValue(e,t);this._maybeNotify(e,t,n[this._pid]=i)}_createValue(e){return(0,this._create)(e)}_coerceValue(e,t){let n=this._coerce;return n?n(e,t):t}_compareValue(e,t){let n=this._compare;return n?n(e,t):e===t}_maybeNotify(e,t,n){let i=this._changed;i&&!this._compareValue(t,n)&&i(e,t,n)}}var r;!function(e){e.clearData=function(e){r.ownerData.delete(e)}}(i||(i={})),function(e){e.ownerData=new WeakMap,e.nextPID=(()=>{let e=0;return()=>`pid-${`${Math.random()}`.slice(2)}-${e++}`})(),e.ensureMap=function(t){let n=e.ownerData.get(t);return n||(n=Object.create(null),e.ownerData.set(t,n),n)}}(r||(r={}))},38571:(e,t,n)=>{"use strict";var i,r,s;n.r(t),n.d(t,{Signal:()=>l,Stream:()=>u}),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(i||(i={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(s||(s={}));var o,a=n(75764);class l{constructor(e){this.sender=e}connect(e,t){return o.connect(this,e,t)}disconnect(e,t){return o.disconnect(this,e,t)}emit(e){o.emit(this,e)}}!function(e){e.disconnectBetween=function(e,t){o.disconnectBetween(e,t)},e.disconnectSender=function(e){o.disconnectSender(e)},e.disconnectReceiver=function(e){o.disconnectReceiver(e)},e.disconnectAll=function(e){o.disconnectAll(e)},e.clearData=function(e){o.disconnectAll(e)},e.getExceptionHandler=function(){return o.exceptionHandler},e.setExceptionHandler=function(e){let t=o.exceptionHandler;return o.exceptionHandler=e,t}}(l||(l={}));class u extends l{constructor(){super(...arguments),this._pending=new a.PromiseDelegate}async*[Symbol.asyncIterator](){let e=this._pending;for(;;)try{const{args:t,next:n}=await e.promise;e=n,yield t}catch(e){return}}emit(e){const t=this._pending,n=this._pending=new a.PromiseDelegate;t.resolve({args:e,next:n}),super.emit(e)}stop(){this._pending.promise.catch((()=>{})),this._pending.reject("stop"),this._pending=new a.PromiseDelegate}}!function(e){function t(e){let t=r.get(e);if(t&&0!==t.length){for(const e of t){if(!e.signal)continue;let t=e.thisArg||e.slot;e.signal=null,c(s.get(t))}c(t)}}function n(e){let t=s.get(e);if(t&&0!==t.length){for(const e of t){if(!e.signal)continue;let t=e.signal.sender;e.signal=null,c(r.get(t))}c(t)}}e.exceptionHandler=e=>{console.error(e)},e.connect=function(e,t,n){n=n||void 0;let i=r.get(e.sender);if(i||(i=[],r.set(e.sender,i)),l(i,e,t,n))return!1;let o=n||t,a=s.get(o);a||(a=[],s.set(o,a));let u={signal:e,slot:t,thisArg:n};return i.push(u),a.push(u),!0},e.disconnect=function(e,t,n){n=n||void 0;let i=r.get(e.sender);if(!i||0===i.length)return!1;let o=l(i,e,t,n);if(!o)return!1;let a=n||t,u=s.get(a);return o.signal=null,c(i),c(u),!0},e.disconnectBetween=function(e,t){let n=r.get(e);if(!n||0===n.length)return;let i=s.get(t);if(i&&0!==i.length){for(const t of i)t.signal&&t.signal.sender===e&&(t.signal=null);c(n),c(i)}},e.disconnectSender=t,e.disconnectReceiver=n,e.disconnectAll=function(e){t(e),n(e)},e.emit=function(e,t){let n=r.get(e.sender);if(n&&0!==n.length)for(let i=0,r=n.length;i{"use strict";var i,r,s;function*o(){}function a(e,t){let n=0;for(const i of e)if(t(i,n++))return i}n.r(t),n.d(t,{AccordionLayout:()=>fe,AccordionPanel:()=>ve,BoxEngine:()=>U,BoxLayout:()=>_e,BoxPanel:()=>be,BoxSizer:()=>X,CommandPalette:()=>ye,ContextMenu:()=>xe,DockLayout:()=>Ne,DockPanel:()=>Le,FocusTracker:()=>De,GridLayout:()=>Re,Layout:()=>Z,LayoutItem:()=>ee,Menu:()=>we,MenuBar:()=>je,Panel:()=>me,PanelLayout:()=>te,ScrollBar:()=>Be,SingletonLayout:()=>ze,SplitLayout:()=>pe,SplitPanel:()=>ge,StackedLayout:()=>Fe,StackedPanel:()=>$e,TabBar:()=>Ee,TabPanel:()=>Ue,Title:()=>Y,Widget:()=>Q}),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(i||(i={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(s||(s={}));var l,u,c,d,h,p,f,m=n(75764);!function(e){e.copyText=function(e){const t=document.body,n=i=>{i.preventDefault(),i.stopPropagation(),i.clipboardData.setData("text",e),t.removeEventListener("copy",n,!0)};t.addEventListener("copy",n,!0),document.execCommand("copy")}}(l||(l={})),function(e){e.boxSizing=function(e){let t=window.getComputedStyle(e),n=parseFloat(t.borderTopWidth)||0,i=parseFloat(t.borderLeftWidth)||0,r=parseFloat(t.borderRightWidth)||0,s=parseFloat(t.borderBottomWidth)||0,o=parseFloat(t.paddingTop)||0,a=parseFloat(t.paddingLeft)||0,l=parseFloat(t.paddingRight)||0,u=parseFloat(t.paddingBottom)||0;return{borderTop:n,borderLeft:i,borderRight:r,borderBottom:s,paddingTop:o,paddingLeft:a,paddingRight:l,paddingBottom:u,horizontalSum:i+a+l+r,verticalSum:n+o+u+s}},e.sizeLimits=function(e){let t=window.getComputedStyle(e),n=parseFloat(t.minWidth)||0,i=parseFloat(t.minHeight)||0,r=parseFloat(t.maxWidth)||1/0,s=parseFloat(t.maxHeight)||1/0;return r=Math.max(n,r),s=Math.max(i,s),{minWidth:n,minHeight:i,maxWidth:r,maxHeight:s}},e.hitTest=function(e,t,n){let i=e.getBoundingClientRect();return t>=i.left&&t=i.top&&n=n.bottom||(i.topn.bottom&&i.height>=n.height?e.scrollTop-=n.top-i.top:(i.topn.height||i.bottom>n.bottom&&i.height{let e=Element.prototype;return e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector||function(e){let t=this,n=t.ownerDocument?t.ownerDocument.querySelectorAll(e):[];return-1!==Array.prototype.indexOf.call(n,t)}})(),e.calculateSingle=function(e){let u=0,c=0,d=0;function h(t){let n=e.match(t);return null!==n&&(e=e.slice(n[0].length),!0)}for(e=(e=e.split(",",1)[0]).replace(l," $1 ");e.length>0;)if(h(t))u++;else if(h(n))c++;else if(h(i))c++;else if(h(s))d++;else if(h(o))c++;else if(h(r))d++;else if(!h(a))return 0;return u=Math.min(u,255),c=Math.min(c,255),d=Math.min(d,255),u<<16|c<<8|d};const t=/^#[^\s\+>~#\.\[:]+/,n=/^\.[^\s\+>~#\.\[:]+/,i=/^\[[^\]]+\]/,r=/^[^\s\+>~#\.\[:]+/,s=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/,o=/^:[^\s\+>~#\.\[:]+/,a=/^[\s\+>~\*]+/,l=/:not\(([^\)]+)\)/g}(h||(h={}));class g{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return 0===this._size}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(const t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new p.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new p.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof p.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let n=new p.LinkedListNode(this,e),i=t,r=i.prev;return n.next=i,n.prev=r,i.prev=n,r.next=n,this._size++,n}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof p.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let n=new p.LinkedListNode(this,e),i=t,r=i.next;return n.next=r,n.prev=i,i.next=n,r.prev=n,this._size++,n}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof p.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}}!function(e){e.from=function(t){let n=new e;return n.assign(t),n}}(g||(g={})),function(e){e.LinkedListNode=class{constructor(e,t){this.list=null,this.next=null,this.prev=null,this.list=e,this.value=t}}}(p||(p={}));class v{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}}class _ extends v{get isConflatable(){return!0}conflate(e){return!0}}!function(e){let t=null;const n=(r=Promise.resolve(),e=>{let t=!1;return r.then((()=>!t&&e())),()=>{t=!0}});var r;function s(e,t){let n=a.get(e);if(!n||0===n.length)return void d(e,t);let i=function(e,t){let n=0;for(const i of e)if(!1===t(i,n++))return!1;return!0}(function*(e){if("function"==typeof e.retro)yield*e.retro();else for(let t=e.length-1;t>-1;t--)yield e[t]}(n),(n=>!n||function(e,t,n){let i=!0;try{i="function"==typeof e?e(t,n):e.messageHook(t,n)}catch(e){u(e)}return i}(n,e,t)));i&&d(e,t)}e.sendMessage=s,e.postMessage=function(e,t){t.isConflatable&&function(n){for(const r of n)if((i=r).handler===e&&i.msg&&i.msg.type===t.type&&i.msg.isConflatable&&i.msg.conflate(t))return!0;var i;return!1}(o)||h(e,t)},e.installMessageHook=function(e,t){let n=a.get(e);n&&-1!==n.indexOf(t)||(n?n.push(t):a.set(e,[t]))},e.removeMessageHook=function(e,t){let n=a.get(e);if(!n)return;let i=n.indexOf(t);-1!==i&&(n[i]=null,f(n))},e.clearData=function(e){let t=a.get(e);t&&t.length>0&&(i.fill(t,null),f(t));for(const t of o)t.handler===e&&(t.handler=null,t.msg=null)},e.flush=function(){c||null===t||(t(),t=null,c=!0,p(),c=!1)},e.getExceptionHandler=function(){return u},e.setExceptionHandler=function(e){let t=u;return u=e,t};const o=new g,a=new WeakMap,l=new Set;let u=e=>{console.error(e)},c=!1;function d(e,t){try{e.processMessage(t)}catch(e){u(e)}}function h(e,i){o.addLast({handler:e,msg:i}),null===t&&(t=n(p))}function p(){if(t=null,o.isEmpty)return;let e={handler:null,msg:null};for(o.addLast(e);;){let t=o.removeFirst();if(t===e)return;t.handler&&t.msg&&s(t.handler,t.msg)}}function f(e){0===l.size&&n(m),l.add(e)}function m(){l.forEach(v),l.clear()}function v(e){i.removeAllWhere(e,_)}function _(e){return null===e}}(f||(f={}));var b,y,w,x,S,E,C,k,M,T=n(26573),O=n(38571),I=n(7556);class A{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:e,edge:t,distance:n}=this._scrollTarget,i=b.SCROLL_EDGE_SIZE-n,r=Math.pow(i/b.SCROLL_EDGE_SIZE,2),s=Math.max(1,Math.round(r*b.SCROLL_EDGE_SIZE));switch(t){case"top":e.scrollTop-=s;break;case"left":e.scrollLeft-=s;break;case"right":e.scrollLeft+=s;break;case"bottom":e.scrollTop+=s}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});b.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise((e=>{this._resolve=e}));let n=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(n),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation()}}moveDragImage(e,t){this.dragImage&&(this.dragImage.style.transform=`translate(${e}px, ${t}px)`)}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),0!==e.button)return;if(this._updateCurrentTarget(e),!this._currentTarget)return void this._finalize("none");if("none"===this._dropAction)return b.dispatchDragLeave(this,this._currentTarget,null,e),void this._finalize("none");let t=b.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=b.findScrollTarget(e);(this._scrollTarget||t)&&(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,n=this._currentTarget,i=this._currentElement,r=b.findElementBehindBackdrop(e,this.document);this._currentElement=r,r!==i&&r!==n&&b.dispatchDragExit(this,n,r,e),r!==i&&r!==n&&(n=b.dispatchDragEnter(this,r,n,e)),n!==t&&(this._currentTarget=n,b.dispatchDragLeave(this,t,n,e));let s=b.dispatchDragOver(this,n,e);this._setDropAction(s)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let n=this.dragImage.style;n.pointerEvents="none",n.position="fixed",n.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=b.validateAction(e,this.supportedActions),!this._override||this._dropAction!==e)switch(e){case"none":this._dropAction=e,this._override=A.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=A.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=A.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=A.overrideCursor("move",this.document)}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}}function P(){return D.keyboardLayout}!function(e){class t extends DragEvent{constructor(e,t){super(t.type,{bubbles:!0,cancelable:!0,altKey:e.altKey,button:e.button,clientX:e.clientX,clientY:e.clientY,ctrlKey:e.ctrlKey,detail:0,metaKey:e.metaKey,relatedTarget:t.related,screenX:e.screenX,screenY:e.screenY,shiftKey:e.shiftKey,view:window});const{drag:n}=t;this.dropAction="none",this.mimeData=n.mimeData,this.proposedAction=n.proposedAction,this.supportedActions=n.supportedActions,this.source=n.source}}e.Event=t,e.overrideCursor=function(e,t=document){return b.overrideCursor(e,t)}}(A||(A={})),function(e){function t(t,r=document){if(t){if(n&&t==n.event)return n.element;e.cursorBackdrop.style.zIndex="-1000";const i=r.elementFromPoint(t.clientX,t.clientY);return e.cursorBackdrop.style.zIndex="",n={event:t,element:i},i}{const t=e.cursorBackdrop.style.transform;if(i&&t===i.transform)return i.element;const n=e.cursorBackdrop.getBoundingClientRect();e.cursorBackdrop.style.zIndex="-1000";const s=r.elementFromPoint(n.left+n.width/2,n.top+n.height/2);return e.cursorBackdrop.style.zIndex="",i={transform:t,element:s},s}}e.SCROLL_EDGE_SIZE=20,e.validateAction=function(e,t){return r[e]&s[t]?e:"none"},e.findElementBehindBackdrop=t;let n=null,i=null;e.findScrollTarget=function(n){let i=n.clientX,r=n.clientY,s=t(n);for(;s;s=s.parentElement){if(!s.hasAttribute("data-lm-dragscroll"))continue;let t=0,n=0;s===document.body&&(t=window.pageXOffset,n=window.pageYOffset);let o=s.getBoundingClientRect(),a=o.top+n,l=o.left+t,u=l+o.width,c=a+o.height;if(i=u||r=c)continue;let d,h=i-l+1,p=r-a+1,f=u-i,m=c-r,g=Math.min(h,p,f,m);if(g>e.SCROLL_EDGE_SIZE)continue;switch(g){case m:d="bottom";break;case p:d="top";break;case f:d="right";break;case h:d="left";break;default:throw"unreachable"}let v,_=s.scrollWidth-s.clientWidth,b=s.scrollHeight-s.clientHeight;switch(d){case"top":v=b>0&&s.scrollTop>0;break;case"left":v=_>0&&s.scrollLeft>0;break;case"right":v=_>0&&s.scrollLeft<_;break;case"bottom":v=b>0&&s.scrollTop{i===c&&e.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",o,!0),e.cursorBackdrop.removeEventListener("scroll",a,!0),r.removeChild(e.cursorBackdrop))}))};const u=500;let c=0;e.cursorBackdrop=function(){const e=document.createElement("div");return e.classList.add("lm-cursor-backdrop"),e}()}(b||(b={})),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(y||(y={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(x||(x={})),function(e){e.copyText=function(e){const t=document.body,n=i=>{i.preventDefault(),i.stopPropagation(),i.clipboardData.setData("text",e),t.removeEventListener("copy",n,!0)};t.addEventListener("copy",n,!0),document.execCommand("copy")}}(S||(S={})),function(e){e.boxSizing=function(e){let t=window.getComputedStyle(e),n=parseFloat(t.borderTopWidth)||0,i=parseFloat(t.borderLeftWidth)||0,r=parseFloat(t.borderRightWidth)||0,s=parseFloat(t.borderBottomWidth)||0,o=parseFloat(t.paddingTop)||0,a=parseFloat(t.paddingLeft)||0,l=parseFloat(t.paddingRight)||0,u=parseFloat(t.paddingBottom)||0;return{borderTop:n,borderLeft:i,borderRight:r,borderBottom:s,paddingTop:o,paddingLeft:a,paddingRight:l,paddingBottom:u,horizontalSum:i+a+l+r,verticalSum:n+o+u+s}},e.sizeLimits=function(e){let t=window.getComputedStyle(e),n=parseFloat(t.minWidth)||0,i=parseFloat(t.minHeight)||0,r=parseFloat(t.maxWidth)||1/0,s=parseFloat(t.maxHeight)||1/0;return r=Math.max(n,r),s=Math.max(i,s),{minWidth:n,minHeight:i,maxWidth:r,maxHeight:s}},e.hitTest=function(e,t,n){let i=e.getBoundingClientRect();return t>=i.left&&t=i.top&&n=n.bottom||(i.topn.bottom&&i.height>=n.height?e.scrollTop-=n.top-i.top:(i.topn.height||i.bottom>n.bottom&&i.height{let e=Element.prototype;return e.matches||e.matchesSelector||e.mozMatchesSelector||e.msMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector||function(e){let t=this,n=t.ownerDocument?t.ownerDocument.querySelectorAll(e):[];return-1!==Array.prototype.indexOf.call(n,t)}})(),e.calculateSingle=function(e){let u=0,c=0,d=0;function h(t){let n=e.match(t);return null!==n&&(e=e.slice(n[0].length),!0)}for(e=(e=e.split(",",1)[0]).replace(l," $1 ");e.length>0;)if(h(t))u++;else if(h(n))c++;else if(h(i))c++;else if(h(s))d++;else if(h(o))c++;else if(h(r))d++;else if(!h(a))return 0;return u=Math.min(u,255),c=Math.min(c,255),d=Math.min(d,255),u<<16|c<<8|d};const t=/^#[^\s\+>~#\.\[:]+/,n=/^\.[^\s\+>~#\.\[:]+/,i=/^\[[^\]]+\]/,r=/^[^\s\+>~#\.\[:]+/,s=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/,o=/^:[^\s\+>~#\.\[:]+/,a=/^[\s\+>~\*]+/,l=/:not\(([^\)]+)\)/g}(M||(M={}));class N{constructor(e,t,n=[]){this.name=e,this._codes=t,this._keys=N.extractKeys(t),this._modifierKeys=N.convertToKeySet(n)}keys(){return Object.keys(this._keys)}isValidKey(e){return e in this._keys}isModifierKey(e){return e in this._modifierKeys}keyForKeydownEvent(e){return this._codes[e.keyCode]||""}}!function(e){e.extractKeys=function(e){let t=Object.create(null);for(let n in e)t[e[n]]=!0;return t},e.convertToKeySet=function(e){let t=Object(null);for(let n=0,i=e.length;n{this._commands.delete(e),this._commandChanged.emit({id:e,type:"removed"})}))}notifyCommandChanged(e){if(void 0!==e&&!this._commands.has(e))throw new Error(`Command '${e}' is not registered.`);this._commandChanged.emit({id:e,type:e?"changed":"many-changed"})}describedBy(e,t=m.JSONExt.emptyObject){var n;let i=this._commands.get(e);return Promise.resolve(null!==(n=null==i?void 0:i.describedBy.call(void 0,t))&&void 0!==n?n:{args:null})}label(e,t=m.JSONExt.emptyObject){var n;let i=this._commands.get(e);return null!==(n=null==i?void 0:i.label.call(void 0,t))&&void 0!==n?n:""}mnemonic(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.mnemonic.call(void 0,t):-1}icon(e,t=m.JSONExt.emptyObject){var n;return null===(n=this._commands.get(e))||void 0===n?void 0:n.icon.call(void 0,t)}iconClass(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.iconClass.call(void 0,t):""}iconLabel(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.iconLabel.call(void 0,t):""}caption(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.caption.call(void 0,t):""}usage(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.usage.call(void 0,t):""}className(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.className.call(void 0,t):""}dataset(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return n?n.dataset.call(void 0,t):{}}isEnabled(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return!!n&&n.isEnabled.call(void 0,t)}isToggled(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return!!n&&n.isToggled.call(void 0,t)}isToggleable(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return!!n&&n.isToggleable}isVisible(e,t=m.JSONExt.emptyObject){let n=this._commands.get(e);return!!n&&n.isVisible.call(void 0,t)}execute(e,t=m.JSONExt.emptyObject){let n,i=this._commands.get(e);if(!i)return Promise.reject(new Error(`Command '${e}' not registered.`));try{n=i.execute.call(void 0,t)}catch(e){n=Promise.reject(e)}let r=Promise.resolve(n);return this._commandExecuted.emit({id:e,args:t,result:r}),r}addKeyBinding(e){let t=R.createKeyBinding(e);return this._keyBindings.push(t),this._keyBindingChanged.emit({binding:t,type:"added"}),new I.DisposableDelegate((()=>{y.removeFirstOf(this._keyBindings,t),this._keyBindingChanged.emit({binding:t,type:"removed"})}))}processKeydownEvent(e){if(e.defaultPrevented||this._replaying)return;const t=W.keystrokeForKeydownEvent(e);if(!t)return this._replayKeydownEvents(),void this._clearPendingState();if(W.isModifierKeyPressed(e)){let{exact:n}=R.matchKeyBinding(this._keyBindings,[t],e);return void(n?(e.preventDefault(),e.stopPropagation(),this._startModifierTimer(n)):this._clearModifierTimer())}this._keystrokes.push(t);const{exact:n,partial:i}=R.matchKeyBinding(this._keyBindings,this._keystrokes,e),r=0!==i.length;return n||r?(((null==n?void 0:n.preventDefault)||i.some((e=>e.preventDefault)))&&(e.preventDefault(),e.stopPropagation()),this._keydownEvents.push(e),n&&!r?(this._executeKeyBinding(n),void this._clearPendingState()):(n&&(this._exactKeyMatch=n),void this._startTimer())):(this._replayKeydownEvents(),void this._clearPendingState())}holdKeyBindingExecution(e,t){this._holdKeyBindingPromises.set(e,t)}processKeyupEvent(e){this._clearModifierTimer()}_startModifierTimer(e){this._clearModifierTimer(),this._timerModifierID=window.setTimeout((()=>{this._executeKeyBinding(e)}),R.modifierkeyTimeOut)}_clearModifierTimer(){0!==this._timerModifierID&&(clearTimeout(this._timerModifierID),this._timerModifierID=0)}_startTimer(){this._clearTimer(),this._timerID=window.setTimeout((()=>{this._onPendingTimeout()}),R.CHORD_TIMEOUT)}_clearTimer(){0!==this._timerID&&(clearTimeout(this._timerID),this._timerID=0)}_replayKeydownEvents(){0!==this._keydownEvents.length&&(this._replaying=!0,this._keydownEvents.forEach(R.replayKeyEvent),this._replaying=!1)}async _executeKeyBinding(e){if(0!==this._holdKeyBindingPromises.size){const e=[...this._keydownEvents],t=(await Promise.race([Promise.all(e.map((async e=>{var t;return null!==(t=this._holdKeyBindingPromises.get(e))&&void 0!==t?t:Promise.resolve(!0)}))),new Promise((e=>{setTimeout((()=>e([!1])),R.KEYBINDING_HOLD_TIMEOUT)}))])).every(Boolean);if(this._holdKeyBindingPromises.clear(),!t)return}let{command:t,args:n}=e,i={_luminoEvent:{type:"keybinding",keys:e.keys},...n};if(this.hasCommand(t)&&this.isEnabled(t,i))await this.execute(t,i);else{let n=this.hasCommand(t)?"enabled":"registered",i=`Cannot execute key binding '${e.keys.join(", ")}':`,r=`command '${t}' is not ${n}.`;console.warn(`${i} ${r}`)}}_clearPendingState(){this._clearTimer(),this._clearModifierTimer(),this._exactKeyMatch=null,this._keystrokes.length=0,this._keydownEvents.length=0}_onPendingTimeout(){this._timerID=0,this._exactKeyMatch?this._executeKeyBinding(this._exactKeyMatch):this._replayKeydownEvents(),this._clearPendingState()}}!function(e){function t(e){let t="",n=!1,i=!1,r=!1,s=!1;for(let o of e.split(/\s+/))"Accel"===o?C.IS_MAC?i=!0:r=!0:"Alt"===o?n=!0:"Cmd"===o?i=!0:"Ctrl"===o?r=!0:"Shift"===o?s=!0:o.length>0&&(t=o);return{cmd:i,ctrl:r,alt:n,shift:s,key:t}}function n(e){let n="",i=t(e);return i.ctrl&&(n+="Ctrl "),i.alt&&(n+="Alt "),i.shift&&(n+="Shift "),i.cmd&&C.IS_MAC&&(n+="Cmd "),i.key?n+i.key:n.trim()}e.parseKeystroke=t,e.normalizeKeystroke=n,e.normalizeKeys=function(e){let t;return t=C.IS_WIN?e.winKeys||e.keys:C.IS_MAC?e.macKeys||e.keys:e.linuxKeys||e.keys,t.map(n)},e.formatKeystroke=function(e){return"string"==typeof e?n(e):e.map(n).join(", ");function n(e){let n=[],i=C.IS_MAC?" ":"+",r=t(e);return r.ctrl&&n.push("Ctrl"),r.alt&&n.push("Alt"),r.shift&&n.push("Shift"),C.IS_MAC&&r.cmd&&n.push("Cmd"),n.push(r.key),n.map(R.formatKey).join(i)}},e.isModifierKeyPressed=function(e){let t=P(),n=t.keyForKeydownEvent(e);return t.isModifierKey(n)},e.keystrokeForKeydownEvent=function(e){let t=P(),n=t.keyForKeydownEvent(e),i=[];return e.ctrlKey&&i.push("Ctrl"),e.altKey&&i.push("Alt"),e.shiftKey&&i.push("Shift"),e.metaKey&&C.IS_MAC&&i.push("Cmd"),t.isModifierKey(n)||i.push(n),i.join(" ")}}(W||(W={})),function(e){e.CHORD_TIMEOUT=1e3,e.KEYBINDING_HOLD_TIMEOUT=1e3,e.modifierkeyTimeOut=500,e.createCommand=function(e){return{execute:e.execute,describedBy:u("function"==typeof e.describedBy?e.describedBy:{args:null,...e.describedBy},(()=>({args:null}))),label:u(e.label,i),mnemonic:u(e.mnemonic,r),icon:u(e.icon,l),iconClass:u(e.iconClass,i),iconLabel:u(e.iconLabel,i),caption:u(e.caption,i),usage:u(e.usage,i),className:u(e.className,i),dataset:u(e.dataset,a),isEnabled:e.isEnabled||s,isToggled:e.isToggled||o,isToggleable:e.isToggleable||!!e.isToggled,isVisible:e.isVisible||s}},e.createKeyBinding=function(e){var t;return{keys:W.normalizeKeys(e),selector:c(e),command:e.command,args:e.args||m.JSONExt.emptyObject,preventDefault:null===(t=e.preventDefault)||void 0===t||t}},e.matchKeyBinding=function(e,t,n){let i=null,r=[],s=1/0,o=0;for(let a=0,l=e.length;as)continue;let p=k.calculateSpecificity(l.selector);(!i||c=o)&&(i=l,s=c,o=p)}return{exact:i,partial:r}},e.replayKeyEvent=function(e){e.target.dispatchEvent(function(e){let t=document.createEvent("Event"),n=e.bubbles||!0,i=e.cancelable||!0;return t.initEvent(e.type||"keydown",n,i),t.key=e.key||"",t.keyCode=e.keyCode||0,t.which=e.keyCode||0,t.ctrlKey=e.ctrlKey||!1,t.altKey=e.altKey||!1,t.shiftKey=e.shiftKey||!1,t.metaKey=e.metaKey||!1,t.view=e.view||window,t}(e))},e.formatKey=function(e){return C.IS_MAC?t.hasOwnProperty(e)?t[e]:e:n.hasOwnProperty(e)?n[e]:e};const t={Backspace:"⌫",Tab:"⇥",Enter:"⏎",Shift:"⇧",Ctrl:"⌃",Alt:"⌥",Escape:"⎋",PageUp:"⇞",PageDown:"⇟",End:"↘",Home:"↖",ArrowLeft:"←",ArrowUp:"↑",ArrowRight:"→",ArrowDown:"↓",Delete:"⌦",Cmd:"⌘"},n={Escape:"Esc",PageUp:"Page Up",PageDown:"Page Down",ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",Delete:"Del"},i=()=>"",r=()=>-1,s=()=>!0,o=()=>!1,a=()=>({}),l=()=>{};function u(e,t){return void 0===e?t:"function"==typeof e?e:()=>e}function c(e){if(-1!==e.selector.indexOf(","))throw new Error(`Selector cannot contain commas: ${e.selector}`);if(!k.isValid(e.selector))throw new Error(`Invalid selector: ${e.selector}`);return e.selector}function d(e,t){if(e.lengtht.length?2:1}function h(e,t){let n=t.target,i=t.currentTarget;for(let t=0;null!==n;n=n.parentElement,++t){if(n.hasAttribute("data-lm-suppress-shortcuts"))return-1;if(k.matches(n,e))return t;if(n===i)return-1}return-1}}(R||(R={})),function(e){function t(e,t,n=0,i=-1){let r,s=e.length;if(0===s)return-1;n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))=n)return;let i=e[t];for(let i=t+1;i0;){let i=a>>1,r=o+i;n(e[r],t)<0?(o=r+1,a-=i+1):a=i}return o},e.upperBound=function(e,t,n,i=0,r=-1){let s=e.length;if(0===s)return 0;let o=i=i<0?Math.max(0,i+s):Math.min(i,s-1),a=(r=r<0?Math.max(0,r+s):Math.min(r,s-1))-i+1;for(;a>0;){let i=a>>1,r=o+i;n(e[r],t)>0?a=i:(o=r+1,a-=i+1)}return o},e.shallowEqual=function(e,t,n){if(e===t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i=o&&(n=r<0?o-1:o),void 0===i?i=r<0?-1:o:i<0?i=Math.max(i+o,r<0?-1:0):i>=o&&(i=r<0?o-1:o),s=r<0&&i>=n||r>0&&n>=i?0:r<0?Math.floor((i-n+1)/r+1):Math.floor((i-n-1)/r+1);let a=[];for(let t=0;t=(i=i<0?Math.max(0,i+r):Math.min(i,r-1)))return;let o=i-n+1;if(t>0?t%=o:t<0&&(t=(t%o+o)%o),0===t)return;let a=n+t;s(e,n,a-1),s(e,a,i),s(e,n,i)},e.fill=function(e,t,n=0,i=-1){let r,s=e.length;if(0!==s){n=n<0?Math.max(0,n+s):Math.min(n,s-1),r=(i=i<0?Math.max(0,i+s):Math.min(i,s-1))t;--n)e[n]=e[n-1];e[t]=n},e.removeAt=o,e.removeFirstOf=function(e,n,i=0,r=-1){let s=t(e,n,i,r);return-1!==s&&o(e,s),s},e.removeLastOf=function(e,t,i=-1,r=0){let s=n(e,t,i,r);return-1!==s&&o(e,s),s},e.removeAllOf=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&e[o]===t||i=n)&&e[o]===t?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s},e.removeFirstWhere=function(e,t,n=0,r=-1){let s,a=i(e,t,n,r);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeLastWhere=function(e,t,n=-1,i=0){let s,a=r(e,t,n,i);return-1!==a&&(s=o(e,a)),{index:a,value:s}},e.removeAllWhere=function(e,t,n=0,i=-1){let r=e.length;if(0===r)return 0;n=n<0?Math.max(0,n+r):Math.min(n,r-1),i=i<0?Math.max(0,i+r):Math.min(i,r-1);let s=0;for(let o=0;o=n&&o<=i&&t(e[o],o)||i=n)&&t(e[o],o)?s++:s>0&&(e[o-s]=e[o]);return s>0&&(e.length=r-s),s}}(j||(j={})),function(e){e.rangeLength=function(e,t,n){return 0===n?1/0:e>t&&n>0||et?1:0}}(z||(z={}));class K{constructor(e){this.type="text",this.content=e}}class G{constructor(e,t,n,i){this.type="element",this.tag=e,this.attrs=t,this.children=n,this.renderer=i}}function J(e){let t,n={},i=[];for(let e=1,s=arguments.length;e=i;--s){const i=t[s],o=r?e.lastChild:e.childNodes[s];"text"===i.type||(i.renderer&&i.renderer.unrender?i.renderer.unrender(o,{attrs:i.attrs,children:i.children}):n(o,i.children,0,!1)),r&&e.removeChild(o)}}e.hostMap=new WeakMap,e.asContentArray=function(e){return e?e instanceof Array?e:[e]:[]},e.createDOMNode=t,e.updateContent=function e(i,s,o){if(s===o)return;let a=function(e,t){let n=e.firstChild,i=Object.create(null);for(let e of t)"element"===e.type&&e.attrs.key&&(i[e.attrs.key]={vNode:e,element:n}),n=n.nextSibling;return i}(i,s),l=s.slice(),u=i.firstChild,c=o.length;for(let n=0;n=l.length){t(o[n],i);continue}let s=l[n],c=o[n];if(s===c){u=u.nextSibling;continue}if("text"===s.type&&"text"===c.type){u.textContent!==c.content&&(u.textContent=c.content),u=u.nextSibling;continue}if("text"===s.type||"text"===c.type){j.insert(l,n,c),t(c,i,u);continue}if(!s.renderer!=!c.renderer){j.insert(l,n,c),t(c,i,u);continue}let d=c.attrs.key;if(d&&d in a){let e=a[d];e.vNode!==s&&(j.move(l,l.indexOf(e.vNode,n+1),n),i.insertBefore(e.element,u),s=e.vNode,u=e.element)}if(s===c){u=u.nextSibling;continue}let h=s.attrs.key;h&&h!==d?(j.insert(l,n,c),t(c,i,u)):s.tag===c.tag?(r(u,s.attrs,c.attrs),c.renderer?c.renderer.render(u,{attrs:c.attrs,children:c.children}):e(u,s.children,c.children),u=u.nextSibling):(j.insert(l,n,c),t(c,i,u))}n(i,l,c,!0)};const i={key:!0,className:!0,htmlFor:!0,dataset:!0,style:!0};function r(e,t,n){if(t===n)return;let r;for(r in t)r in i||r in n||("on"===r.substr(0,2)?e[r]=null:e.removeAttribute(r));for(r in n)r in i||t[r]===n[r]||("on"===r.substr(0,2)?e[r]=n[r]:e.setAttribute(r,n[r]));t.className!==n.className&&(void 0!==n.className?e.setAttribute("class",n.className):e.removeAttribute("class")),t.htmlFor!==n.htmlFor&&(void 0!==n.htmlFor?e.setAttribute("for",n.htmlFor):e.removeAttribute("for")),t.dataset!==n.dataset&&function(e,t,n){for(let i in t)i in n||e.removeAttribute(`data-${i}`);for(let i in n)t[i]!==n[i]&&e.setAttribute(`data-${i}`,n[i])}(e,t.dataset||{},n.dataset||{}),t.style!==n.style&&function(e,t,n){let i,r=e.style;for(i in t)i in n||(r[i]="");for(i in n)t[i]!==n[i]&&(r[i]=n[i])}(e,t.style||{},n.style||{})}}($||($={}));class X{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}}!function(e){e.calc=function(e,t){let n=e.length;if(0===n)return t;let i=0,r=0,s=0,o=0,a=0;for(let t=0;t0&&(o+=n.stretch,a++)}if(t===s)return 0;if(t<=i){for(let t=0;t=r){for(let t=0;t0&&i>l;){let t=i,r=o;for(let s=0;s0&&i>l;){let t=i/u;for(let r=0;r0&&i>l;){let t=i,r=o;for(let s=0;s=n.maxSize?(i-=n.maxSize-n.size,o-=n.stretch,n.size=n.maxSize,n.done=!0,u--,a--):(i-=l,n.size+=l)}}for(;u>0&&i>l;){let t=i/u;for(let r=0;r=n.maxSize?(i-=n.maxSize-n.size,n.size=n.maxSize,n.done=!0,u--):(i-=t,n.size+=t))}}}return 0},e.adjust=function(e,t,n){0!==e.length&&0!==n&&(n>0?function(e,t,n){let i=0;for(let n=0;n<=t;++n){let t=e[n];i+=t.maxSize-t.size}let r=0;for(let n=t+1,i=e.length;n=0&&s>0;--n){let t=e[n],i=t.maxSize-t.size;i>=s?(t.sizeHint=t.size+s,s=0):(t.sizeHint=t.size+i,s-=i)}let o=n;for(let n=t+1,i=e.length;n0;++n){let t=e[n],i=t.size-t.minSize;i>=o?(t.sizeHint=t.size-o,o=0):(t.sizeHint=t.size-i,o-=i)}}(e,t,n):function(e,t,n){let i=0;for(let n=t+1,r=e.length;n0;++n){let t=e[n],i=t.maxSize-t.size;i>=s?(t.sizeHint=t.size+s,s=0):(t.sizeHint=t.size+i,s-=i)}let o=n;for(let n=t;n>=0&&o>0;--n){let t=e[n],i=t.size-t.minSize;i>=o?(t.sizeHint=t.size-o,o=0):(t.sizeHint=t.size-i,o-=i)}}(e,t,-n))}}(U||(U={}));class Y{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new O.Signal(this),this._isDisposed=!1,this.owner=e.owner,void 0!==e.label&&(this._label=e.label),void 0!==e.mnemonic&&(this._mnemonic=e.mnemonic),void 0!==e.icon&&(this._icon=e.icon),void 0!==e.iconClass&&(this._iconClass=e.iconClass),void 0!==e.iconLabel&&(this._iconLabel=e.iconLabel),void 0!==e.caption&&(this._caption=e.caption),void 0!==e.className&&(this._className=e.className),void 0!==e.closable&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,O.Signal.clearData(this))}}class Q{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new O.Signal(this),this._hiddenMode=Q.HiddenMode.Display,this.node=q.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(Q.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&Q.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),O.Signal.clearData(this),f.clearData(this),T.AttachedProperty.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(Q.Flag.IsDisposed)}get isAttached(){return this.testFlag(Q.Flag.IsAttached)}get isHidden(){return this.testFlag(Q.Flag.IsHidden)}get isVisible(){return this.testFlag(Q.Flag.IsVisible)}get title(){return q.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==Q.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let e=new Q.ChildMessage("child-removed",this);f.sendMessage(this._parent,e)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let e=new Q.ChildMessage("child-added",this);f.sendMessage(this._parent,e)}this.isDisposed||f.sendMessage(this,Q.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(Q.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return!0===t?(this.node.classList.add(e),!0):!1===t?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){f.postMessage(this,Q.Msg.UpdateRequest)}fit(){f.postMessage(this,Q.Msg.FitRequest)}activate(){f.postMessage(this,Q.Msg.ActivateRequest)}close(){f.sendMessage(this,Q.Msg.CloseRequest)}show(){if(this.testFlag(Q.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||f.sendMessage(this,Q.Msg.BeforeShow),this.clearFlag(Q.Flag.IsHidden),this._toggleHidden(!1),!this.isAttached||this.parent&&!this.parent.isVisible||f.sendMessage(this,Q.Msg.AfterShow),this.parent)){let e=new Q.ChildMessage("child-shown",this);f.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(Q.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||f.sendMessage(this,Q.Msg.BeforeHide),this.setFlag(Q.Flag.IsHidden),this._toggleHidden(!0),!this.isAttached||this.parent&&!this.parent.isVisible||f.sendMessage(this,Q.Msg.AfterHide),this.parent)){let e=new Q.ChildMessage("child-hidden",this);f.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return!!(this._flags&e)}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(Q.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(Q.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":this.isHidden||this.parent&&!this.parent.isVisible||this.setFlag(Q.Flag.IsVisible),this.setFlag(Q.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(Q.Flag.IsVisible),this.clearFlag(Q.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e)}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&Q.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case Q.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case Q.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case Q.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1"}else switch(this._hiddenMode){case Q.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case Q.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case Q.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex=""}}}!function(e){var t,n,i;(t=e.HiddenMode||(e.HiddenMode={}))[t.Display=0]="Display",t[t.Scale=1]="Scale",t[t.ContentVisibility=2]="ContentVisibility",(n=e.Flag||(e.Flag={}))[n.IsDisposed=1]="IsDisposed",n[n.IsAttached=2]="IsAttached",n[n.IsHidden=4]="IsHidden",n[n.IsVisible=8]="IsVisible",n[n.DisallowLayout=16]="DisallowLayout",(i=e.Msg||(e.Msg={})).BeforeShow=new v("before-show"),i.AfterShow=new v("after-show"),i.BeforeHide=new v("before-hide"),i.AfterHide=new v("after-hide"),i.BeforeAttach=new v("before-attach"),i.AfterAttach=new v("after-attach"),i.BeforeDetach=new v("before-detach"),i.AfterDetach=new v("after-detach"),i.ParentChanged=new v("parent-changed"),i.UpdateRequest=new _("update-request"),i.FitRequest=new _("fit-request"),i.ActivateRequest=new _("activate-request"),i.CloseRequest=new _("close-request"),e.ChildMessage=class extends v{constructor(e,t){super(e),this.child=t}};class r extends v{constructor(e,t){super("resize"),this.width=e,this.height=t}}e.ResizeMessage=r,function(e){e.UnknownSize=new e(-1,-1)}(r=e.ResizeMessage||(e.ResizeMessage={})),e.attach=function(t,n,i=null){if(t.parent)throw new Error("Cannot attach a child widget.");if(t.isAttached||t.node.isConnected)throw new Error("Widget is already attached.");if(!n.isConnected)throw new Error("Host is not attached.");f.sendMessage(t,e.Msg.BeforeAttach),n.insertBefore(t.node,i),f.sendMessage(t,e.Msg.AfterAttach)},e.detach=function(t){if(t.parent)throw new Error("Cannot detach a child widget.");if(!t.isAttached||!t.node.isConnected)throw new Error("Widget is not attached.");f.sendMessage(t,e.Msg.BeforeDetach),t.node.parentNode.removeChild(t.node),f.sendMessage(t,e.Msg.AfterDetach)}}(Q||(Q={})),function(e){e.titleProperty=new T.AttachedProperty({name:"title",create:e=>new Y({owner:e})}),e.createNode=function(e){return e.node||document.createElement(e.tag||"div")}}(q||(q={}));class Z{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,O.Signal.clearData(this),T.AttachedProperty.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let e=this._parent.node.style;e.minWidth="",e.minHeight="",e.maxWidth="",e.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e)}}init(){for(const e of this)e.parent=this.parent}onResize(e){for(const e of this)f.sendMessage(e,Q.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(const e of this)f.sendMessage(e,Q.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(const t of this)f.sendMessage(t,e)}onAfterAttach(e){for(const t of this)f.sendMessage(t,e)}onBeforeDetach(e){for(const t of this)f.sendMessage(t,e)}onAfterDetach(e){for(const t of this)f.sendMessage(t,e)}onBeforeShow(e){for(const t of this)t.isHidden||f.sendMessage(t,e)}onAfterShow(e){for(const t of this)t.isHidden||f.sendMessage(t,e)}onBeforeHide(e){for(const t of this)t.isHidden||f.sendMessage(t,e)}onAfterHide(e){for(const t of this)t.isHidden||f.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}}!function(e){e.getHorizontalAlignment=function(e){return V.horizontalAlignmentProperty.get(e)},e.setHorizontalAlignment=function(e,t){V.horizontalAlignmentProperty.set(e,t)},e.getVerticalAlignment=function(e){return V.verticalAlignmentProperty.get(e)},e.setVerticalAlignment=function(e,t){V.verticalAlignmentProperty.set(e,t)}}(Z||(Z={}));class ee{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=u.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,n,i){let r=Math.max(this._minWidth,Math.min(n,this._maxWidth)),s=Math.max(this._minHeight,Math.min(i,this._maxHeight));if(r"center",changed:t}),e.verticalAlignmentProperty=new T.AttachedProperty({name:"verticalAlignment",create:()=>"top",changed:t})}(V||(V={}));class te extends Z{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let n=this._widgets.indexOf(t),r=Math.max(0,Math.min(e,this._widgets.length));if(-1===n)return i.insert(this._widgets,r,t),void(this.parent&&this.attachWidget(r,t));r===this._widgets.length&&r--,n!==r&&(i.move(this._widgets,n,r),this.parent&&this.moveWidget(n,r,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=i.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(const t of this)this.attachWidget(e++,t)}attachWidget(e,t){let n=this.parent.node.children[e];this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,n),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterAttach)}moveWidget(e,t,n){this.parent.isAttached&&f.sendMessage(n,Q.Msg.BeforeDetach),this.parent.node.removeChild(n.node),this.parent.isAttached&&f.sendMessage(n,Q.Msg.AfterDetach);let i=this.parent.node.children[t];this.parent.isAttached&&f.sendMessage(n,Q.Msg.BeforeAttach),this.parent.node.insertBefore(n.node,i),this.parent.isAttached&&f.sendMessage(n,Q.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterDetach)}}!function(e){e.clampDimension=function(e){return Math.max(0,Math.floor(e))}}(H||(H={}));var ne,ie,re,se,oe,ae,le,ue,ce,de,he=H;class pe extends te{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,void 0!==e.orientation&&(this._orientation=e.orientation),void 0!==e.alignment&&(this._alignment=e.alignment),void 0!==e.spacing&&(this._spacing=H.clampDimension(e.spacing))}dispose(){for(const e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=H.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map((e=>e.size))}relativeSizes(){return ne.normalize(this._sizers.map((e=>e.size)))}setRelativeSizes(e,t=!0){let n=this._sizers.length,i=e.slice(0,n);for(;i.length0&&(e.sizeHint=e.size);U.adjust(this._sizers,e,n),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let n=new ee(t),r=ne.createHandle(this.renderer),s=ne.averageSize(this._sizers),o=ne.createSizer(s);i.insert(this._items,e,n),i.insert(this._sizers,e,o),i.insert(this._handles,e,r),this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(r),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,n){i.move(this._items,e,t),i.move(this._sizers,e,t),i.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let n=i.removeAt(this._items,e),r=i.removeAt(this._handles,e);i.removeAt(this._sizers,e),this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(r),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterDetach),n.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,n,i,r,s,o){const a=this._items[e];if(a.isHidden)return;let l=this._handles[e].style;t?(n+=this.widgetOffset,a.update(n,i,o,r),n+=o,l.top=`${i}px`,l.left=`${n}px`,l.width=`${this._spacing}px`,l.height=`${r}px`):(i+=this.widgetOffset,a.update(n,i,s,o),i+=o,l.top=`${i}px`,l.left=`${n}px`,l.width=`${s}px`,l.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let n=0,i=this._items.length;n0&&(s.sizeHint=s.size),t.isHidden?(s.minSize=0,s.maxSize=0):(t.fit(),s.stretch=pe.getStretch(t.widget),n?(s.minSize=t.minWidth,s.maxSize=t.maxWidth,i+=t.minWidth,r=Math.max(r,t.minHeight)):(s.minSize=t.minHeight,s.maxSize=t.maxHeight,r+=t.minHeight,i=Math.max(i,t.minWidth)))}let s=this._box=u.boxSizing(this.parent.node);i+=s.horizontalSum,r+=s.verticalSum;let o=this.parent.node.style;o.minWidth=`${i}px`,o.minHeight=`${r}px`,this._dirty=!0,this.parent.parent&&f.sendMessage(this.parent.parent,Q.Msg.FitRequest),this._dirty&&f.sendMessage(this.parent,Q.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let n=0;for(let e=0,t=this._items.length;e0){let e;if(e=c?Math.max(0,s-this._fixed):Math.max(0,o-this._fixed),this._hasNormedSizes){for(let t of this._sizers)t.sizeHint*=e;this._hasNormedSizes=!1}let t=U.calc(this._sizers,e);if(t>0)switch(this._alignment){case"start":break;case"center":a=0,l=t/2;break;case"end":a=0,l=t;break;case"justify":a=t/n,l=0;break;default:throw"unreachable"}}for(let e=0,t=this._items.length;e0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:function(e){e.parent&&e.parent.layout instanceof pe&&e.parent.fit()}}),e.createSizer=function(e){let t=new X;return t.sizeHint=Math.floor(e),t},e.createHandle=function(e){let t=e.createHandle();return t.style.position="absolute",t.style.contain="style",t},e.averageSize=function(e){return e.reduce(((e,t)=>e+t.size),0)/e.length||0},e.normalize=function(e){let t=e.length;if(0===t)return[];let n=e.reduce(((e,t)=>e+Math.abs(t)),0);return 0===n?e.map((e=>1/t)):e.map((e=>e/n))}}(ne||(ne={}));class fe extends pe{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=he.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){const n=this._titles[e],i=n.classList.contains("lm-mod-expanded"),r=ie.createTitle(this.renderer,t.title,i);this._titles[e]=r,this.parent.node.replaceChild(r,n)}insertWidget(e,t){t.id||(t.id=`id-${m.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){const n=ie.createTitle(this.renderer,t.title);i.insert(this._titles,e,n),this.parent.node.appendChild(n),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",n.id),super.attachWidget(e,t)}moveWidget(e,t,n){i.move(this._titles,e,t),super.moveWidget(e,t,n)}detachWidget(e,t){const n=i.removeAt(this._titles,e);this.parent.node.removeChild(n),super.detachWidget(e,t)}updateItemPosition(e,t,n,i,r,s,o){const a=this._titles[e].style;a.top=`${i}px`,a.left=`${n}px`,a.height=`${this.widgetOffset}px`,a.width=t?`${r}px`:`${s}px`,super.updateItemPosition(e,t,n,i,r,s,o)}}!function(e){e.createTitle=function(e,t,n=!0){const i=e.createSectionTitle(t);return i.style.position="absolute",i.style.contain="strict",i.setAttribute("aria-label",`${t.label} Section`),i.setAttribute("aria-expanded",n?"true":"false"),i.setAttribute("aria-controls",t.owner.id),n&&i.classList.add("lm-mod-expanded"),i}}(ie||(ie={}));class me extends Q{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=re.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}}!function(e){e.createLayout=function(e){return e.layout||new te}}(re||(re={}));class ge extends me{constructor(e={}){super({layout:se.createLayout(e)}),this._handleMoved=new O.Signal(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),27===e.keyCode&&this._releaseMouse()}_evtPointerDown(e){if(0!==e.button)return;let t,n=this.layout,r=i.findFirstIndex(n.handles,(t=>t.contains(e.target)));if(-1===r)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let s=n.handles[r],o=s.getBoundingClientRect();t="horizontal"===n.orientation?e.clientX-o.left:e.clientY-o.top;let a=window.getComputedStyle(s),l=A.overrideCursor(a.cursor);this._pressData={index:r,delta:t,override:l}}_evtPointerMove(e){let t;e.preventDefault(),e.stopPropagation();let n=this.layout,i=this.node.getBoundingClientRect();t="horizontal"===n.orientation?e.clientX-i.left-this._pressData.delta:e.clientY-i.top-this._pressData.delta,n.moveHandle(this._pressData.index,t)}_evtPointerUp(e){0===e.button&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}}!function(e){class t{createHandle(){let e=document.createElement("div");return e.className="lm-SplitPanel-handle",e}}e.Renderer=t,e.defaultRenderer=new t,e.getStretch=function(e){return pe.getStretch(e)},e.setStretch=function(e,t){pe.setStretch(e,t)}}(ge||(ge={})),function(e){e.createLayout=function(e){return e.layout||new pe({renderer:e.renderer||ge.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing})}}(se||(se={}));class ve extends ge{constructor(e={}){super({...e,layout:oe.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new O.Signal(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){const t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){const t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e)}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){const t=i.findFirstIndex(this.widgets,(t=>t.contains(e.owner)));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){const t=this.layout,n=t.widgets[e];if(!n)return;const i=n.isHidden,r=t.absoluteSizes(),s=(i?-1:1)*this.spacing,o=r.reduce(((e,t)=>e+t));let a=[...r];if(i){const t=this._widgetSizesCache.get(n);if(!t)return;a[e]+=t;const i=a.map((e=>e-t>0)).lastIndexOf(!0);-1===i?a.forEach(((n,i)=>{i!==e&&(a[i]-=r[i]/o*(t-s))})):a[i]-=t-s}else{const t=r[e];this._widgetSizesCache.set(n,t),a[e]=0;const i=a.map((e=>e>0)).lastIndexOf(!0);if(-1===i)return;a[i]=r[i]+t+s}return a.map((e=>e/(o+s)))}_evtClick(e){const t=e.target;if(t){const n=i.findFirstIndex(this.titles,(e=>e.contains(t)));n>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(n))}}_eventKeyDown(e){if(e.defaultPrevented)return;const t=e.target;let n=!1;if(t){const r=i.findFirstIndex(this.titles,(e=>e.contains(t)));if(r>=0){const i=e.keyCode.toString();if(e.key.match(/Space|Enter/)||i.match(/13|32/))t.click(),n=!0;else if("horizontal"===this.orientation?e.key.match(/ArrowLeft|ArrowRight/)||i.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||i.match(/38|40/)){const t=e.key.match(/ArrowLeft|ArrowUp/)||i.match(/37|38/)?-1:1,s=this.titles.length,o=(r+s+t)%s;this.titles[o].focus(),n=!0}else"End"===e.key||"35"===i?(this.titles[this.titles.length-1].focus(),n=!0):"Home"!==e.key&&"36"!==i||(this.titles[0].focus(),n=!0)}n&&e.preventDefault()}}_toggleExpansion(e){const t=this.titles[e],n=this.layout.widgets[e],i=this._computeWidgetSize(e);i&&this.setRelativeSizes(i,!1),n.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),n.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),n.hide()),this._expansionToggled.emit(e)}}!function(e){class t extends ge.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++t._nInstance}createCollapseIcon(e){return document.createElement("span")}createSectionTitle(e){const t=document.createElement("h3");t.setAttribute("tabindex","0"),t.id=this.createTitleKey(e),t.className=this.titleClassName;for(const n in e.dataset)t.dataset[n]=e.dataset[n];t.appendChild(this.createCollapseIcon(e)).className="lm-AccordionPanel-titleCollapser";const n=t.appendChild(document.createElement("span"));return n.className="lm-AccordionPanel-titleLabel",n.textContent=e.label,n.title=e.caption||e.label,t}createTitleKey(e){let t=this._titleKeys.get(e);return void 0===t&&(t=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(e,t)),t}}t._nInstance=0,e.Renderer=t,e.defaultRenderer=new t}(ve||(ve={})),function(e){e.createLayout=function(e){return e.layout||new fe({renderer:e.renderer||ve.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}}(oe||(oe={}));class _e extends te{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",void 0!==e.direction&&(this._direction=e.direction),void 0!==e.alignment&&(this._alignment=e.alignment),void 0!==e.spacing&&(this._spacing=he.clampDimension(e.spacing))}dispose(){for(const e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=he.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){i.insert(this._items,e,new ee(t)),i.insert(this._sizers,e,new X),this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,n){i.move(this._items,e,t),i.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let n=i.removeAt(this._items,e);i.removeAt(this._sizers,e),this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterDetach),n.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let t=0,n=this._items.length;t0)switch(this._alignment){case"start":break;case"center":l=0,c=i/2;break;case"end":l=0,c=i;break;case"justify":l=i/n,c=0;break;default:throw"unreachable"}for(let e=0,t=this._items.length;e0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:t}),e.sizeBasisProperty=new T.AttachedProperty({name:"sizeBasis",create:()=>0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:t}),e.isHorizontal=function(e){return"left-to-right"===e||"right-to-left"===e},e.clampSpacing=function(e){return Math.max(0,Math.floor(e))}}(ae||(ae={}));class be extends me{constructor(e={}){super({layout:le.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}}!function(e){e.getStretch=function(e){return _e.getStretch(e)},e.setStretch=function(e,t){_e.setStretch(e,t)},e.getSizeBasis=function(e){return _e.getSizeBasis(e)},e.setSizeBasis=function(e,t){_e.setSizeBasis(e,t)}}(be||(be={})),function(e){e.createLayout=function(e){return e.layout||new _e(e)}}(le||(le={}));class ye extends Q{constructor(e){super({node:ue.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(Q.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||ye.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=ue.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){const t=e.map((e=>ue.createItem(this.commands,e)));return t.forEach((e=>this._items.push(e))),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){i.removeAt(this._items,e)&&this.refresh()}clearItems(){0!==this._items.length&&(this._items.length=0,this.refresh())}refresh(){this._results=null,""!==this.inputNode.value?this.node.getElementsByClassName("lm-close-icon")[0].style.display="inherit":this.node.getElementsByClassName("lm-close-icon")[0].style.display="none",this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused()}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let e=this.inputNode;e.focus(),e.select()}}onUpdateRequest(e){if(this.isHidden)return;let t=this.inputNode.value,n=this.contentNode,r=this._results;if(r||(r=this._results=ue.search(this._items,t),this._activeIndex=t?i.findFirstIndex(r,ue.canActivate):-1),!t&&0===r.length)return void F.render(null,n);if(t&&0===r.length){let e=this.renderer.renderEmptyMessage({query:t});return void F.render(e,n)}let s=this.renderer,o=this._activeIndex,a=new Array(r.length);for(let e=0,t=r.length;e=r.length)n.scrollTop=0;else{let e=n.children[o];u.scrollIntoViewIfNeeded(n,e)}}_evtClick(e){if(0!==e.button)return;if(e.target.classList.contains("lm-close-icon"))return this.inputNode.value="",void this.refresh();let t=i.findFirstIndex(this.contentNode.children,(t=>t.contains(e.target)));-1!==t&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem()}}_activateNextItem(){if(!this._results||0===this._results.length)return;let e=this._activeIndex,t=this._results.length,n=ee-t)),d=a.slice(0,c),h=a.slice(c);for(let e=0,t=h.length;en.command===e&&m.JSONExt.deepEqual(n.args,t)))||null}}}(ue||(ue={}));class we extends Q{constructor(e){super({node:ce.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new O.Signal(this),this._menuRequested=new O.Signal(this),this.addClass("lm-Menu"),this.setFlag(Q.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||we.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),-1===e||ce.canActivate(this._items[e])||(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,n=t{this.activeIndex=e}})}F.render(s,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let n=this._parentMenu;n&&(this._parentMenu=null,n._childIndex=-1,n._childMenu=null,n.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(13===t)return void this.triggerActiveItem();if(27===t)return void this.close();if(37===t)return void(this._parentMenu?this.close():this._menuRequested.emit("previous"));if(38===t)return void this.activatePreviousItem();if(39===t){let e=this.activeItem;return void(e&&"submenu"===e.type?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next"))}if(40===t)return void this.activateNextItem();let n=P().keyForKeydownEvent(e);if(!n)return;let i=this._activeIndex+1,r=ce.findMnemonic(this._items,n,i);-1===r.index||r.multiple?-1!==r.index?this.activeIndex=r.index:-1!==r.auto&&(this.activeIndex=r.auto):(this.activeIndex=r.index,this.triggerActiveItem())}_evtMouseUp(e){0===e.button&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=i.findFirstIndex(this.contentNode.children,(t=>u.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex)return this._cancelOpenTimer(),void this._cancelCloseTimer();-1!==this._childIndex&&this._startCloseTimer(),this._cancelOpenTimer();let n=this.activeItem;n&&"submenu"===n.type&&n.submenu&&this._startOpenTimer()}_evtMouseEnter(e){for(let e=this._parentMenu;e;e=e._parentMenu)e._cancelOpenTimer(),e._cancelCloseTimer(),e.activeIndex=e._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu)return void(this.activeIndex=-1);let{clientX:t,clientY:n}=e;u.hitTest(this._childMenu.node,t,n)?this._cancelCloseTimer():(this.activeIndex=-1,this._startCloseTimer())}_evtMouseDown(e){this._parentMenu||(ce.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||"submenu"!==t.type||!t.submenu)return void this._closeChildMenu();let n=t.submenu;if(n===this._childMenu)return;we.saveWindowData(),this._closeChildMenu(),this._childMenu=n,this._childIndex=this._activeIndex,n._parentMenu=this,f.sendMessage(this,Q.Msg.UpdateRequest);let i=this.contentNode.children[this._activeIndex];ce.openSubmenu(n,i),e&&(n.activeIndex=-1,n.activateNextItem()),n.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){0===this._openTimerID&&(this._openTimerID=window.setTimeout((()=>{this._openTimerID=0,this._openChildMenu()}),ce.TIMER_DELAY))}_startCloseTimer(){0===this._closeTimerID&&(this._closeTimerID=window.setTimeout((()=>{this._closeTimerID=0,this._closeChildMenu()}),ce.TIMER_DELAY))}_cancelOpenTimer(){0!==this._openTimerID&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){0!==this._closeTimerID&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){ce.saveWindowData()}}!function(e){class t{renderItem(e){let t=this.createItemClass(e),n=this.createItemDataset(e),i=this.createItemARIA(e);return J.li({className:t,dataset:n,tabindex:"0",onfocus:e.onfocus,...i},this.renderIcon(e),this.renderLabel(e),this.renderShortcut(e),this.renderSubmenu(e))}renderIcon(e){let t=this.createIconClass(e);return J.div({className:t},e.item.icon,e.item.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return J.div({className:"lm-Menu-itemLabel"},t)}renderShortcut(e){let t=this.formatShortcut(e);return J.div({className:"lm-Menu-itemShortcut"},t)}renderSubmenu(e){return J.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(e){let t="lm-Menu-item";e.item.isEnabled||(t+=" lm-mod-disabled"),e.item.isToggled&&(t+=" lm-mod-toggled"),e.item.isVisible||(t+=" lm-mod-hidden"),e.active&&(t+=" lm-mod-active"),e.collapsed&&(t+=" lm-mod-collapsed");let n=e.item.className;return n&&(t+=` ${n}`),t}createItemDataset(e){let t,{type:n,command:i,dataset:r}=e.item;return t="command"===n?{...r,type:n,command:i}:{...r,type:n},t}createIconClass(e){let t="lm-Menu-itemIcon",n=e.item.iconClass;return n?`${t} ${n}`:t}createItemARIA(e){let t={};switch(e.item.type){case"separator":t.role="presentation";break;case"submenu":t["aria-haspopup"]="true",e.item.isEnabled||(t["aria-disabled"]="true");break;default:e.item.isEnabled||(t["aria-disabled"]="true"),t.role="menuitem"}return t}formatLabel(e){let{label:t,mnemonic:n}=e.item;if(n<0||n>=t.length)return t;let i=t.slice(0,n),r=t.slice(n+1),s=t[n];return[i,J.span({className:"lm-Menu-itemMnemonic"},s),r]}formatShortcut(e){let t=e.item.keyBinding;return t?W.formatKeystroke(t.keys):null}}e.Renderer=t,e.defaultRenderer=new t}(we||(we={})),function(e){e.TIMER_DELAY=300,e.SUBMENU_OVERLAP=3;let t=null,n=0;function r(){return n>0?(n--,t):o()}function s(e){return"separator"!==e.type&&e.isEnabled&&e.isVisible}function o(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}e.saveWindowData=function(){t=o(),n++},e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-Menu-content",e.appendChild(t),t.setAttribute("role","menu"),e.tabIndex=0,e},e.canActivate=s,e.createItem=function(e,t){return new a(e.commands,t)},e.hitTestMenus=function(e,t,n){for(let i=e;i;i=i.childMenu)if(u.hitTest(i.node,t,n))return!0;return!1},e.computeCollapsed=function(e){let t=new Array(e.length);i.fill(t,!1);let n=0,r=e.length;for(;n=0;--s){let n=e[s];if(n.isVisible){if("separator"!==n.type)break;t[s]=!0}}let o=!1;for(;++nu+d&&(t=u+d-v),!s&&n+_>c+h&&(n>c+h?n=c+h-_:n-=_),g.transform=`translate(${Math.max(0,t)}px, ${Math.max(0,n)}px`,g.opacity="1"},e.openSubmenu=function(t,n){const i=r();let s=i.pageXOffset,o=i.pageYOffset,a=i.clientWidth,l=i.clientHeight;f.sendMessage(t,Q.Msg.UpdateRequest);let c=l,d=t.node,h=d.style;h.opacity="0",h.maxHeight=`${c}px`,Q.attach(t,document.body);let{width:p,height:m}=d.getBoundingClientRect(),g=u.boxSizing(t.node),v=n.getBoundingClientRect(),_=v.right-e.SUBMENU_OVERLAP;_+p>s+a&&(_=v.left+e.SUBMENU_OVERLAP-p);let b=v.top-g.borderTop-g.paddingTop;b+m>o+l&&(b=v.bottom+g.borderBottom+g.paddingBottom-m),h.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,b)}px`,h.opacity="1"},e.findMnemonic=function(e,t,n){let i=-1,r=-1,o=!1,a=t.toUpperCase();for(let t=0,l=e.length;t=0&&hn.command===e&&m.JSONExt.deepEqual(n.args,t)))||null}return null}}}(ce||(ce={}));class xe{constructor(e){this._groupByTarget=!0,this._idTick=0,this._items=[],this._sortBySelector=!0;const{groupByTarget:t,sortBySelector:n,...i}=e;this.menu=new we(i),this._groupByTarget=!1!==t,this._sortBySelector=!1!==n}addItem(e){let t=de.createItem(e,this._idTick++);return this._items.push(t),new I.DisposableDelegate((()=>{i.removeFirstOf(this._items,t)}))}open(e){if(we.saveWindowData(),this.menu.clearItems(),0===this._items.length)return!1;let t=de.matchItems(this._items,e,this._groupByTarget,this._sortBySelector);if(!t||0===t.length)return!1;for(const e of t)this.menu.addItem(e);return this.menu.open(e.clientX,e.clientY),!0}}!function(e){function t(e,t){let n=e.rank,i=t.rank;return n!==i?n=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,n=this._titles[t]||null,i=e,r=this._titles[i]||null;this._currentIndex=i,this._previousTitle=n,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:n,currentIndex:i,currentTitle:r})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let n=Ce.asTitle(t),r=this._titles.indexOf(n),s=Math.max(0,Math.min(e,this._titles.length));return-1===r?(i.insert(this._titles,s,n),n.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(s,n),n):(s===this._titles.length&&s--,r===s||(i.move(this._titles,r,s),this.update(),this._adjustCurrentForMove(r,s)),n)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=i.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(0===this._titles.length)return;this._releaseMouse();for(let e of this._titles)e.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),-1!==e&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let n=this._titles,i=this.renderer,r=this.currentTitle,s=new Array(n.length);const o=null!==(t=this._getCurrentTabindex())&&void 0!==t?t:this._currentIndex>-1?this._currentIndex:0;for(let e=0,t=n.length;eu.hitTest(t,e.clientX,e.clientY)));if(-1===n)return;let r=this.titles[n],s=t[n].querySelector(".lm-TabBar-tabLabel");if(s&&s.contains(e.target)){let e=r.label||"",t=s.innerHTML;s.innerHTML="";let n=document.createElement("input");n.classList.add("lm-TabBar-tabInput"),n.value=e,s.appendChild(n);let i=()=>{n.removeEventListener("blur",i),s.innerHTML=t,this.node.addEventListener("keydown",this)};n.addEventListener("dblclick",(e=>e.stopPropagation())),n.addEventListener("blur",i),n.addEventListener("keydown",(e=>{"Enter"===e.key?(""!==n.value&&(r.label=r.caption=n.value),i()):"Escape"===e.key&&i()})),this.node.removeEventListener("keydown",this),n.select(),n.focus(),s.children.length>0&&s.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),"Escape"===e.key&&this._releaseMouse())}_evtKeyDown(e){var t,n,r;if("Tab"!==e.key&&e.eventPhase!==Event.CAPTURING_PHASE)if("Enter"===e.key||"Spacebar"===e.key||" "===e.key){const t=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(t))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{const n=i.findFirstIndex(this.contentNode.children,(e=>e.contains(t)));n>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=n)}}else if(Se.includes(e.key)){const i=[...this.contentNode.children];if(this.addButtonEnabled&&i.push(this.addButtonNode),i.length<=1)return;e.preventDefault(),e.stopPropagation();let s,o=i.indexOf(document.activeElement);-1===o&&(o=this._currentIndex),"ArrowRight"===e.key&&"horizontal"===this._orientation||"ArrowDown"===e.key&&"vertical"===this._orientation?s=null!==(t=i[o+1])&&void 0!==t?t:i[0]:"ArrowLeft"===e.key&&"horizontal"===this._orientation||"ArrowUp"===e.key&&"vertical"===this._orientation?s=null!==(n=i[o-1])&&void 0!==n?n:i[i.length-1]:"Home"===e.key?s=i[0]:"End"===e.key&&(s=i[i.length-1]),s&&(null===(r=i[o])||void 0===r||r.setAttribute("tabindex","-1"),null==s||s.setAttribute("tabindex","0"),s.focus())}}_evtPointerDown(e){if(0!==e.button&&1!==e.button)return;if(this._dragData)return;if(e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),n=this.contentNode.children,r=i.findFirstIndex(n,(t=>u.hitTest(t,e.clientX,e.clientY)));if(-1===r&&!t)return;if(e.preventDefault(),e.stopPropagation(),this._dragData={tab:n[r],index:r,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),1===e.button||t)return;let s=n[r].querySelector(this.renderer.closeIconSelector);s&&s.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===r?this.currentIndex=-1:this.currentIndex=r,-1!==this.currentIndex&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let n=this.contentNode.children;if(t.dragActive||Ce.dragExceeded(t,e)){if(!t.dragActive){let e=t.tab.getBoundingClientRect();"horizontal"===this._orientation?(t.tabPos=t.tab.offsetLeft,t.tabSize=e.width,t.tabPressPos=t.pressX-e.left):(t.tabPos=t.tab.offsetTop,t.tabSize=e.height,t.tabPressPos=t.pressY-e.top),t.tabPressOffset={x:t.pressX-e.left,y:t.pressY-e.top},t.tabLayout=Ce.snapTabLayout(n,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=A.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&Ce.detachExceeded(t,e)){t.detachRequested=!0;let i=t.index,r=e.clientX,s=e.clientY,o=n[i],a=this._titles[i];if(this._tabDetachRequested.emit({index:i,title:a,tab:o,clientX:r,clientY:s,offset:t.tabPressOffset}),t.dragAborted)return}Ce.layoutTabs(n,t,e,this._orientation)}}_evtPointerUp(e){if(0!==e.button&&1!==e.button)return;const t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target))return void this._addRequested.emit(void 0);let n=this.contentNode.children,r=i.findFirstIndex(n,(t=>u.hitTest(t,e.clientX,e.clientY)));if(r!==t.index)return;let s=this._titles[r];if(!s.closable)return;if(1===e.button)return void this._tabCloseRequested.emit({index:r,title:s});let o=n[r].querySelector(this.renderer.closeIconSelector);return o&&o.contains(e.target)?void this._tabCloseRequested.emit({index:r,title:s}):void 0}if(0!==e.button)return;Ce.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let n=Ce.parseTransitionDuration(t.tab);setTimeout((()=>{if(t.dragAborted)return;this._dragData=null,Ce.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let e=t.index,n=t.targetIndex;-1!==n&&e!==n&&(i.move(this._titles,e,n),this._adjustCurrentForMove(e,n),this._tabMoved.emit({fromIndex:e,toIndex:n,title:this._titles[n]}),f.sendMessage(this,Q.Msg.UpdateRequest))}),n)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(Ce.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let n=this.currentTitle,i=this._currentIndex,r=this.insertBehavior;if("select-tab"===r||"select-tab-if-needed"===r&&-1===i)return this._currentIndex=e,this._previousTitle=n,void this._currentChanged.emit({previousIndex:i,previousTitle:n,currentIndex:e,currentTitle:t});i>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let n=this._currentIndex,i=this.removeBehavior;if(n===e){if(0===this._titles.length)return this._currentIndex=-1,void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});if("select-tab-after"===i)return this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-tab-before"===i)return this._currentIndex=Math.max(0,e-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-previous-tab"===i)return this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}else n>e&&this._currentIndex--}_onTitleChanged(e){this.update()}}var Ce,ke,Me,Te,Oe,Ie,Ae,Pe;!function(e){class t{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++t._nInstance}renderTab(e){let t=e.title.caption,n=this.createTabKey(e),i=n,r=this.createTabStyle(e),s=this.createTabClass(e),o=this.createTabDataset(e),a=this.createTabARIA(e);return e.title.closable?J.li({id:i,key:n,className:s,title:t,style:r,dataset:o,...a},this.renderIcon(e),this.renderLabel(e),this.renderCloseIcon(e)):J.li({id:i,key:n,className:s,title:t,style:r,dataset:o,...a},this.renderIcon(e),this.renderLabel(e))}renderIcon(e){const{title:t}=e;let n=this.createIconClass(e);return J.div({className:n},t.icon,t.iconLabel)}renderLabel(e){return J.div({className:"lm-TabBar-tabLabel"},e.title.label)}renderCloseIcon(e){return J.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(e){let t=this._tabKeys.get(e.title);return void 0===t&&(t=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(e.title,t)),t}createTabStyle(e){return{zIndex:`${e.zIndex}`}}createTabClass(e){let t="lm-TabBar-tab";return e.title.className&&(t+=` ${e.title.className}`),e.title.closable&&(t+=" lm-mod-closable"),e.current&&(t+=" lm-mod-current"),t}createTabDataset(e){return e.title.dataset}createTabARIA(e){var t;return{role:"tab","aria-selected":e.current.toString(),tabindex:`${null!==(t=e.tabIndex)&&void 0!==t?t:"-1"}`}}createIconClass(e){let t="lm-TabBar-tabIcon",n=e.title.iconClass;return n?`${t} ${n}`:t}}t._nInstance=0,e.Renderer=t,e.defaultRenderer=new t,e.addButtonSelector=".lm-TabBar-addButton"}(Ee||(Ee={})),function(e){e.DRAG_THRESHOLD=5,e.DETACH_THRESHOLD=20,e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");t.setAttribute("role","tablist"),t.className="lm-TabBar-content",e.appendChild(t);let n=document.createElement("div");return n.className="lm-TabBar-addButton lm-mod-hidden",n.setAttribute("tabindex","-1"),n.setAttribute("role","button"),e.appendChild(n),e},e.asTitle=function(e){return e instanceof Y?e:new Y(e)},e.parseTransitionDuration=function(e){let t=window.getComputedStyle(e);return 1e3*(parseFloat(t.transitionDuration)||0)},e.snapTabLayout=function(e,t){let n=new Array(e.length);for(let i=0,r=e.length;i=e.DRAG_THRESHOLD||r>=e.DRAG_THRESHOLD},e.detachExceeded=function(t,n){let i=t.contentRect;return n.clientX=i.right+e.DETACH_THRESHOLD||n.clientY=i.bottom+e.DETACH_THRESHOLD},e.layoutTabs=function(e,t,n,i){let r,s,o,a;"horizontal"===i?(r=t.pressX,s=n.clientX-t.contentRect.left,o=n.clientX,a=t.contentRect.width):(r=t.pressY,s=n.clientY-t.contentRect.top,o=n.clientY,a=t.contentRect.height);let l=t.index,u=s-t.tabPressPos,c=u+t.tabSize;for(let n=0,s=e.length;n>1);if(nt.index&&c>h)s=-t.tabSize-d.margin+"px",l=Math.max(l,n);else if(n===t.index){let e=o-r,n=a-(t.tabPos+t.tabSize);s=`${Math.max(-t.tabPos,Math.min(e,n))}px`}else s="";"horizontal"===i?e[n].style.left=s:e[n].style.top=s}t.targetIndex=l},e.finalizeTabPosition=function(e,t){let n,i;if(n="horizontal"===t?e.contentRect.width:e.contentRect.height,e.targetIndex===e.index)i=0;else if(e.targetIndex>e.index){let t=e.tabLayout[e.targetIndex];i=t.pos+t.size-e.tabSize-e.tabPos}else i=e.tabLayout[e.targetIndex].pos-e.tabPos;let r=n-(e.tabPos+e.tabSize),s=Math.max(-e.tabPos,Math.min(i,r));"horizontal"===t?e.tab.style.left=`${s}px`:e.tab.style.top=`${s}px`},e.resetTabPositions=function(e,t){for(const n of e)"horizontal"===t?n.style.left="":n.style.top=""}}(Ce||(Ce={}));class Ne extends Z{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,void 0!==e.spacing&&(this._spacing=he.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=void 0!==e.hiddenMode?e.hiddenMode:Q.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach((e=>{e.dispose()})),this._box=null,this._root=null,this._items.clear();for(const t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(const e of this.tabBars())if(e.titles.length>1)for(const t of e.titles)t.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=he.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return null===this._root}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():o()}widgets(){return this._root?this._root.iterUserWidgets():o()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():o()}tabBars(){return this._root?this._root.iterTabBars():o()}handles(){return this._root?this._root.iterHandles():o()}moveHandle(e,t,n){let i=e.classList.contains("lm-mod-hidden");if(!this._root||i)return;let r,s=this._root.findSplitNode(e);s&&(r="horizontal"===s.node.orientation?t-e.offsetLeft:n-e.offsetTop,0!==r&&(s.node.holdSizes(),U.adjust(s.node.sizers,s.index,r),this.parent&&this.parent.update()))}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t,n=new Set;t=e.main?ke.normalizeAreaConfig(e.main,n):null;let i=this.widgets(),r=this.tabBars(),s=this.handles();this._root=null;for(const e of i)n.has(e)||(e.parent=null);for(const e of r)e.dispose();for(const e of s)e.parentNode&&e.parentNode.removeChild(e);for(const e of n)e.parent=this.parent;this._root=t?ke.realizeAreaConfig(t,{createTabBar:e=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):null,this.parent&&(n.forEach((e=>{this.attachWidget(e)})),this.parent.fit())}addWidget(e,t={}){let n=t.ref||null,i=t.mode||"tab-after",r=null;if(this._root&&n&&(r=this._root.findTabNode(n)),n&&!r)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,i){case"tab-after":this._insertTab(e,n,r,!0);break;case"tab-before":this._insertTab(e,n,r,!1);break;case"split-top":this._insertSplit(e,n,r,"vertical",!1);break;case"split-left":this._insertSplit(e,n,r,"horizontal",!1);break;case"split-right":this._insertSplit(e,n,r,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,n,r,"vertical",!0);break;case"merge-top":this._insertSplit(e,n,r,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,n,r,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,n,r,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,n,r,"vertical",!0,!0)}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=u.boxSizing(this.parent.node));let n=this.parent.node.getBoundingClientRect(),i=e-n.left-this._box.borderLeft,r=t-n.top-this._box.borderTop,s=this._root.hitTestTabNodes(i,r);if(!s)return null;let{tabBar:o,top:a,left:l,width:c,height:d}=s,h=this._box.borderLeft+this._box.borderRight,p=this._box.borderTop+this._box.borderBottom;return{tabBar:o,x:i,y:r,top:a,left:l,right:n.width-h-(l+c),bottom:n.height-p-(a+d),width:c,height:d}}init(){super.init();for(const e of this)this.attachWidget(e);for(const e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new ee(e)),this.parent.isAttached&&f.sendMessage(e,Q.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&f.sendMessage(e,Q.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&f.sendMessage(e,Q.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&f.sendMessage(e,Q.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(ke.removeAria(e),t.tabBar.titles.length>1)return t.tabBar.removeTab(e.title),void(this._hiddenMode===Q.HiddenMode.Scale&&1==t.tabBar.titles.length&&(t.tabBar.titles[0].owner.hiddenMode=Q.HiddenMode.Display));if(t.tabBar.dispose(),this._root===t)return void(this._root=null);this._root.holdAllSizes();let n=t.parent;t.parent=null;let r=i.removeFirstOf(n.children,t),s=i.removeAt(n.handles,r);if(i.removeAt(n.sizers,r),s.parentNode&&s.parentNode.removeChild(s),n.children.length>1)return void n.syncHandles();let o=n.parent;n.parent=null;let a=n.children[0],l=n.handles[0];if(n.children.length=0,n.handles.length=0,n.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===n)return a.parent=null,void(this._root=a);let u=o,c=u.children.indexOf(n);if(a instanceof ke.TabLayoutNode)return a.parent=u,void(u.children[c]=a);let d=i.removeAt(u.handles,c);i.removeAt(u.children,c),i.removeAt(u.sizers,c),d.parentNode&&d.parentNode.removeChild(d);for(let e=0,t=a.children.length;e=n.length)&&(i=0),{type:"tab-area",widgets:n,currentIndex:i}}(t,n):function(t,n){let i=t.orientation,r=[],s=[];for(let o=0,a=t.children.length;o{let l=r(i,n,s),u=t(e.sizes[a]),c=n.createHandle();o.children.push(l),o.handles.push(c),o.sizers.push(u),l.parent=o})),o.syncHandles(),o.normalizeSizes(),o}(s,o,a),l};class n{constructor(e){this.parent=null,this._top=0,this._left=0,this._width=0,this._height=0;let t=new X,n=new X;t.stretch=0,n.stretch=1,this.tabBar=e,this.sizers=[t,n]}get top(){return this._top}get left(){return this._left}get width(){return this._width}get height(){return this._height}*iterAllWidgets(){yield this.tabBar,yield*this.iterUserWidgets()}*iterUserWidgets(){for(const e of this.tabBar.titles)yield e.owner}*iterSelectedWidgets(){let e=this.tabBar.currentTitle;e&&(yield e.owner)}*iterTabBars(){yield this.tabBar}*iterHandles(){}findTabNode(e){return-1!==this.tabBar.titles.indexOf(e.title)?this:null}findSplitNode(e){return null}findFirstTabNode(){return this}hitTestTabNodes(e,t){return e=this._left+this._width||t=this._top+this._height?null:this}createConfig(){return{type:"tab-area",widgets:this.tabBar.titles.map((e=>e.owner)),currentIndex:this.tabBar.currentIndex}}holdAllSizes(){}fit(e,t){let n=0,i=0,r=t.get(this.tabBar),s=this.tabBar.currentTitle,o=s?t.get(s.owner):void 0,[a,l]=this.sizers;return r&&r.fit(),o&&o.fit(),r&&!r.isHidden?(n=Math.max(n,r.minWidth),i+=r.minHeight,a.minSize=r.minHeight,a.maxSize=r.maxHeight):(a.minSize=0,a.maxSize=0),o&&!o.isHidden?(n=Math.max(n,o.minWidth),i+=o.minHeight,l.minSize=o.minHeight,l.maxSize=1/0):(l.minSize=0,l.maxSize=1/0),{minWidth:n,minHeight:i,maxWidth:1/0,maxHeight:1/0}}update(e,t,n,i,r,s){this._top=t,this._left=e,this._width=n,this._height=i;let o=s.get(this.tabBar),a=this.tabBar.currentTitle,l=a?s.get(a.owner):void 0;if(U.calc(this.sizers,i),o&&!o.isHidden){let i=this.sizers[0].size;o.update(e,t,n,i),t+=i}if(l&&!l.isHidden){let i=this.sizers[1].size;l.update(e,t,n,i)}}}e.TabLayoutNode=n;class i{constructor(e){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=e}*iterAllWidgets(){for(const e of this.children)yield*e.iterAllWidgets()}*iterUserWidgets(){for(const e of this.children)yield*e.iterUserWidgets()}*iterSelectedWidgets(){for(const e of this.children)yield*e.iterSelectedWidgets()}*iterTabBars(){for(const e of this.children)yield*e.iterTabBars()}*iterHandles(){yield*this.handles;for(const e of this.children)yield*e.iterHandles()}findTabNode(e){for(let t=0,n=this.children.length;te.createConfig())),sizes:t}}syncHandles(){this.handles.forEach(((e,t)=>{e.setAttribute("data-orientation",this.orientation),t===this.handles.length-1?e.classList.add("lm-mod-hidden"):e.classList.remove("lm-mod-hidden")}))}holdSizes(){for(const e of this.sizers)e.sizeHint=e.size}holdAllSizes(){for(const e of this.children)e.holdAllSizes();this.holdSizes()}normalizeSizes(){let e=this.sizers.length;if(0===e)return;this.holdSizes();let t=this.sizers.reduce(((e,t)=>e+t.sizeHint),0);if(0===t)for(const t of this.sizers)t.size=t.sizeHint=1/e;else for(const e of this.sizers)e.size=e.sizeHint/=t;this.normalized=!0}createNormalizedSizes(){let e=this.sizers.length;if(0===e)return[];let t=this.sizers.map((e=>e.size)),n=t.reduce(((e,t)=>e+t),0);if(0===n)for(let n=t.length-1;n>-1;n--)t[n]=1/e;else for(let e=t.length-1;e>-1;e--)t[e]/=n;return t}fit(e,t){let n="horizontal"===this.orientation,i=Math.max(0,this.children.length-1)*e,r=n?i:0,s=n?0:i;for(let i=0,o=this.children.length;ithis._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new Ne({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new Le.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(const e of t.tabBars())e.show();break;case"single-document":t.restoreLayout(Me.createSingleDocumentConfig(this));break;default:throw"unreachable"}f.postMessage(this,Me.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(const t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(const t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=a(this.tabBars(),(t=>-1!==t.titles.indexOf(e.title)));if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(c.IS_EDGE||c.IS_IE)&&f.flush(),f.postMessage(this,Me.LayoutModified)}addWidget(e,t={}){"single-document"===this._mode?this.layout.addWidget(e):this.layout.addWidget(e,t),f.postMessage(this,Me.LayoutModified)}processMessage(e){"layout-modified"===e.type?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){Me.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){Me.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),f.postMessage(this,Me.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||"invalid"===this._showOverlay(e.clientX,e.clientY)?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),"none"===e.proposedAction)return void(e.dropAction="none");let{clientX:t,clientY:n}=e,{zone:i,target:r}=Me.findDropTarget(this,t,n,this._edges);if(this._tabsConstrained&&e.source!==this||"invalid"===i)return void(e.dropAction="none");let s=e.mimeData.getData("application/vnd.lumino.widget-factory");if("function"!=typeof s)return void(e.dropAction="none");let o=s();if(!(o instanceof Q))return void(e.dropAction="none");if(o.contains(this))return void(e.dropAction="none");let a=r?Me.getDropRef(r.tabBar):null;switch(i){case"root-all":this.addWidget(o);break;case"root-top":this.addWidget(o,{mode:"split-top"});break;case"root-left":this.addWidget(o,{mode:"split-left"});break;case"root-right":this.addWidget(o,{mode:"split-right"});break;case"root-bottom":this.addWidget(o,{mode:"split-bottom"});break;case"widget-all":case"widget-tab":this.addWidget(o,{mode:"tab-after",ref:a});break;case"widget-top":this.addWidget(o,{mode:"split-top",ref:a});break;case"widget-left":this.addWidget(o,{mode:"split-left",ref:a});break;case"widget-right":this.addWidget(o,{mode:"split-right",ref:a});break;case"widget-bottom":this.addWidget(o,{mode:"split-bottom",ref:a});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(o)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&(this._releaseMouse(),f.postMessage(this,Me.LayoutModified))}_evtPointerDown(e){if(0!==e.button)return;let t=this.layout,n=e.target,i=a(t.handles(),(e=>e.contains(n)));if(!i)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let r=i.getBoundingClientRect(),s=e.clientX-r.left,o=e.clientY-r.top,l=window.getComputedStyle(i),u=A.overrideCursor(l.cursor,this._document);this._pressData={handle:i,deltaX:s,deltaY:o,override:u}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),n=e.clientX-t.left-this._pressData.deltaX,i=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,n,i)}_evtPointerUp(e){0===e.button&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),f.postMessage(this,Me.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let n,i,r,s,{zone:o,target:a}=Me.findDropTarget(this,e,t,this._edges);if("invalid"===o)return this.overlay.hide(100),o;let l=u.boxSizing(this.node),c=this.node.getBoundingClientRect();switch(o){case"root-all":n=l.paddingTop,i=l.paddingLeft,r=l.paddingRight,s=l.paddingBottom;break;case"root-top":n=l.paddingTop,i=l.paddingLeft,r=l.paddingRight,s=c.height*Me.GOLDEN_RATIO;break;case"root-left":n=l.paddingTop,i=l.paddingLeft,r=c.width*Me.GOLDEN_RATIO,s=l.paddingBottom;break;case"root-right":n=l.paddingTop,i=c.width*Me.GOLDEN_RATIO,r=l.paddingRight,s=l.paddingBottom;break;case"root-bottom":n=c.height*Me.GOLDEN_RATIO,i=l.paddingLeft,r=l.paddingRight,s=l.paddingBottom;break;case"widget-all":n=a.top,i=a.left,r=a.right,s=a.bottom;break;case"widget-top":n=a.top,i=a.left,r=a.right,s=a.bottom+a.height/2;break;case"widget-left":n=a.top,i=a.left,r=a.right+a.width/2,s=a.bottom;break;case"widget-right":n=a.top,i=a.left+a.width/2,r=a.right,s=a.bottom;break;case"widget-bottom":n=a.top+a.height/2,i=a.left,r=a.right,s=a.bottom;break;case"widget-tab":{const e=a.tabBar.node.getBoundingClientRect().height;n=a.top,i=a.left,r=a.right,s=a.bottom+a.height-e;break}default:throw"unreachable"}return this.overlay.show({top:n,left:i,right:r,bottom:s}),o}_createTabBar(){let e=this._renderer.createTabBar(this._document);return Me.isGeneratedTabBarProperty.set(e,!0),"single-document"===this._mode&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){f.postMessage(this,Me.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:n,currentTitle:i}=t;n&&n.owner.hide(),i&&i.owner.show(),(c.IS_EDGE||c.IS_IE)&&f.flush(),f.postMessage(this,Me.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:n,tab:i,clientX:r,clientY:s,offset:o}=t,a=new m.MimeData;a.setData("application/vnd.lumino.widget-factory",(()=>n.owner));let l=i.cloneNode(!0);o&&(l.style.top=`-${o.y}px`,l.style.left=`-${o.x}px`),this._drag=new A({document:this._document,mimeData:a,dragImage:l,proposedAction:"move",supportedActions:"move",source:this}),i.classList.add("lm-mod-hidden"),this._drag.start(r,s).then((()=>{this._drag=null,i.classList.remove("lm-mod-hidden")}))}}!function(e){e.Overlay=class{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(e){let t=this.node.style;t.top=`${e.top}px`,t.left=`${e.left}px`,t.right=`${e.right}px`,t.bottom=`${e.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(e){if(!this._hidden)return e<=0?(clearTimeout(this._timer),this._timer=-1,this._hidden=!0,void this.node.classList.add("lm-mod-hidden")):void(-1===this._timer&&(this._timer=window.setTimeout((()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")}),e)))}};class t{createTabBar(e){let t=new Ee({document:e});return t.addClass("lm-DockPanel-tabBar"),t}createHandle(){let e=document.createElement("div");return e.className="lm-DockPanel-handle",e}}e.Renderer=t,e.defaultRenderer=new t}(Le||(Le={})),function(e){e.GOLDEN_RATIO=.618,e.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},e.LayoutModified=new _("layout-modified"),e.isGeneratedTabBarProperty=new T.AttachedProperty({name:"isGeneratedTabBar",create:()=>!1}),e.createSingleDocumentConfig=function(e){if(e.isEmpty)return{main:null};let t=Array.from(e.widgets()),n=e.selectedWidgets().next().value,i=n?t.indexOf(n):-1;return{main:{type:"tab-area",widgets:t,currentIndex:i}}},e.findDropTarget=function(e,t,n,i){if(!u.hitTest(e.node,t,n))return{zone:"invalid",target:null};let r=e.layout;if(r.isEmpty)return{zone:"root-all",target:null};if("multiple-document"===e.mode){let r=e.node.getBoundingClientRect(),s=t-r.left+1,o=n-r.top+1,a=r.right-t,l=r.bottom-n;switch(Math.min(o,a,l,s)){case o:if(oh&&l>h&&a>p&&c>p)return{zone:"widget-all",target:s};switch(o/=h,a/=p,l/=h,c/=p,Math.min(o,a,l,c)){case o:d="widget-left";break;case a:d="widget-top";break;case l:d="widget-right";break;case c:d="widget-bottom";break;default:throw"unreachable"}return{zone:d,target:s}},e.getDropRef=function(e){return 0===e.titles.length?null:e.currentTitle?e.currentTitle.owner:e.titles[e.titles.length-1].owner}}(Me||(Me={}));class De{constructor(){this._counter=0,this._widgets=[],this._activeWidget=null,this._currentWidget=null,this._numbers=new Map,this._nodes=new Map,this._activeChanged=new O.Signal(this),this._currentChanged=new O.Signal(this)}dispose(){if(!(this._counter<0)){this._counter=-1,O.Signal.clearData(this);for(const e of this._widgets)e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0);this._activeWidget=null,this._currentWidget=null,this._nodes.clear(),this._numbers.clear(),this._widgets.length=0}}get currentChanged(){return this._currentChanged}get activeChanged(){return this._activeChanged}get isDisposed(){return this._counter<0}get currentWidget(){return this._currentWidget}get activeWidget(){return this._activeWidget}get widgets(){return this._widgets}focusNumber(e){let t=this._numbers.get(e);return void 0===t?-1:t}has(e){return this._numbers.has(e)}add(e){if(this._numbers.has(e))return;let t=e.node.contains(document.activeElement),n=t?this._counter++:-1;this._widgets.push(e),this._numbers.set(e,n),this._nodes.set(e.node,e),e.node.addEventListener("focus",this,!0),e.node.addEventListener("blur",this,!0),e.disposed.connect(this._onWidgetDisposed,this),t&&this._setWidgets(e,e)}remove(e){if(!this._numbers.has(e))return;if(e.disposed.disconnect(this._onWidgetDisposed,this),e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0),i.removeFirstOf(this._widgets,e),this._nodes.delete(e.node),this._numbers.delete(e),this._currentWidget!==e)return;let t=function(e,t){let n;for(const i of e)void 0!==n?t(i,n)>0&&(n=i):n=i;return n}(this._widgets.filter((e=>-1!==this._numbers.get(e))),((e,t)=>this._numbers.get(e)-this._numbers.get(t)))||null;this._setWidgets(t,null)}handleEvent(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e)}}_setWidgets(e,t){let n=this._currentWidget;this._currentWidget=e;let i=this._activeWidget;this._activeWidget=t,n!==e&&this._currentChanged.emit({oldValue:n,newValue:e}),i!==t&&this._activeChanged.emit({oldValue:i,newValue:t})}_evtFocus(e){let t=this._nodes.get(e.currentTarget);t!==this._currentWidget&&this._numbers.set(t,this._counter++),this._setWidgets(t,t)}_evtBlur(e){let t=this._nodes.get(e.currentTarget),n=e.relatedTarget;n&&(t.node.contains(n)||a(this._widgets,(e=>e.node.contains(n))))||this._setWidgets(this._currentWidget,null)}_onWidgetDisposed(e){this.remove(e)}}class Re extends Z{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new X],this._columnSizers=[new X],this._box=null,void 0!==e.rowCount&&Te.reallocSizers(this._rowSizers,e.rowCount),void 0!==e.columnCount&&Te.reallocSizers(this._columnSizers,e.columnCount),void 0!==e.rowSpacing&&(this._rowSpacing=Te.clampValue(e.rowSpacing)),void 0!==e.columnSpacing&&(this._columnSpacing=Te.clampValue(e.columnSpacing))}dispose(){for(const e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(Te.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(Te.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=Te.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=Te.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let n=this._rowSizers[e];n&&(t=Te.clampValue(t),n.stretch!==t&&(n.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let n=this._columnSizers[e];n&&(t=Te.clampValue(t),n.stretch!==t&&(n.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(const e of this._items)yield e.widget}addWidget(e){-1===i.findFirstIndex(this._items,(t=>t.widget===e))&&(this._items.push(new ee(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=i.findFirstIndex(this._items,(t=>t.widget===e));if(-1===t)return;let n=i.removeAt(this._items,t);this.parent&&this.detachWidget(e),n.dispose()}init(){super.init();for(const e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&f.sendMessage(e,Q.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&f.sendMessage(e,Q.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&f.sendMessage(e,Q.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&f.sendMessage(e,Q.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let e=0,t=this.rowCount;e!e.isHidden));for(let t=0,n=e.length;t({row:0,column:0,rowSpan:1,columnSpan:1}),changed:function(e){e.parent&&e.parent.layout instanceof Re&&e.parent.fit()}}),e.normalizeConfig=function(e){return{row:Math.max(0,Math.floor(e.row||0)),column:Math.max(0,Math.floor(e.column||0)),rowSpan:Math.max(1,Math.floor(e.rowSpan||0)),columnSpan:Math.max(1,Math.floor(e.columnSpan||0))}},e.clampValue=function(e){return Math.max(0,Math.floor(e))},e.rowSpanCmp=function(t,n){let i=e.cellConfigProperty.get(t.widget),r=e.cellConfigProperty.get(n.widget);return i.rowSpan-r.rowSpan},e.columnSpanCmp=function(t,n){let i=e.cellConfigProperty.get(t.widget),r=e.cellConfigProperty.get(n.widget);return i.columnSpan-r.columnSpan},e.reallocSizers=function(e,t){for(t=Math.max(1,Math.floor(t));e.lengtht&&(e.length=t)},e.distributeMin=function(e,t,n,i){if(n=i)return;let s=(i-r)/(n-t+1);for(let i=t;i<=n;++i)e[i].minSize+=s}}(Te||(Te={}));class je extends Q{constructor(e={}){super({node:Oe.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(Q.Flag.DisallowLayout),this.renderer=e.renderer||je.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&0===this._menus[e].items.length&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){-1!==this._activeIndex&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,n=!0){this._closeChildMenu();let r=this._menus.indexOf(t),s=Math.max(0,Math.min(e,this._menus.length));if(-1===r)return i.insert(this._menus,s,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),void(n&&this.update());s===this._menus.length&&s--,r!==s&&(i.move(this._menus,r,s),n&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let n=i.removeAt(this._menus,e);n&&(n.aboutToClose.disconnect(this._onMenuAboutToClose,this),n.menuRequested.disconnect(this._onMenuMenuRequested,this),n.title.changed.disconnect(this._onTitleChanged,this),n.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(0!==this._menus.length){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation()}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let n=this._menus,i=this.renderer,r=this._activeIndex,s=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:n.length,a=0,l=!1;o=null!==this._overflowMenu?o-1:o;let u=new Array(o);for(let e=0;e{this._tabFocusIndex=e,this.activeIndex=e}}),a+=this._menuItemSizes[e],n[e].title.label===this._overflowMenuOptions.title&&(l=!0,o--);if(this._overflowMenuOptions.isVisible)if(this._overflowIndex>-1&&!l){if(null===this._overflowMenu){const e=null!==(t=this._overflowMenuOptions.title)&&void 0!==t?t:"...";this._overflowMenu=new we({commands:new W}),this._overflowMenu.title.label=e,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let e=n.length-2;e>=o;e--){const t=this.menus[e];t.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:t}),this.removeMenu(t,!1)}u[o]=i.renderItem({title:this._overflowMenu.title,active:o===r&&0!==n[o].items.length,tabbable:o===s,disabled:0===n[o].items.length,onfocus:()=>{this._tabFocusIndex=o,this.activeIndex=o}}),o++}else if(null!==this._overflowMenu){let e=this._overflowMenu.items,t=this.node.offsetWidth,r=this._overflowMenu.items.length;for(let l=0;lthis._menuItemSizes[r]){let t=e[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(o,t,!1),u[o]=i.renderItem({title:t.title,active:!1,tabbable:o===s,disabled:0===n[o].items.length,onfocus:()=>{this._tabFocusIndex=o,this.activeIndex=o}}),o++}}0===this._overflowMenu.items.length&&(this.removeMenu(this._overflowMenu,!1),u.pop(),this._overflowMenu=null,this._overflowIndex=-1)}F.render(u,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;const e=this.contentNode.childNodes;let t=this.node.offsetWidth,n=0,i=-1,r=e.length;if(0==this._menuItemSizes.length)for(let s=0;st&&-1===i&&(i=s)}else for(let e=0;et){i=e;break}this._overflowIndex=i}_evtKeyDown(e){let t=e.keyCode;if(9===t)return void(this.activeIndex=-1);if(e.preventDefault(),e.stopPropagation(),13===t||32===t||38===t||40===t){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;return void this.openActiveMenu()}if(27===t)return this._closeChildMenu(),void this._focusItemAt(this.activeIndex);if(37===t||39===t){let e=37===t?-1:1,n=this._tabFocusIndex+e,i=this._menus.length;for(let t=0;tu.hitTest(t,e.clientX,e.clientY)));if(-1!==t){if(0===e.button)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();const n=this._positionForMenu(t);we.saveWindowData(),this.activeIndex=t,this._openChildMenu(n)}}else this._closeChildMenu()}_evtMouseMove(e){let t=i.findFirstIndex(this.contentNode.children,(t=>u.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex)return;if(-1===t&&this._childMenu)return;const n=t>=0&&this._childMenu?this._positionForMenu(t):null;we.saveWindowData(),this.activeIndex=t,n&&this._openChildMenu(n)}_positionForMenu(e){let t=this.contentNode.children[e],{left:n,bottom:i}=t.getBoundingClientRect();return{top:i,left:n}}_evtFocusOut(e){this._childMenu||this.node.contains(e.relatedTarget)||(this.activeIndex=-1)}_focusItemAt(e){const t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t)return void this._closeChildMenu();let n=this._childMenu;if(n===t)return;this._childMenu=t,n?n.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,f.sendMessage(this,Q.Msg.UpdateRequest);let{left:i,top:r}=e;void 0!==i&&void 0!==r||({left:i,top:r}=this._positionForMenu(this._activeIndex)),n||this.addClass("lm-mod-active"),t.items.length>0&&t.open(i,r,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let n=this._activeIndex,i=this._menus.length;switch(t){case"next":this.activeIndex=n===i-1?0:n+1;break;case"previous":this.activeIndex=0===n?i-1:n-1}this.openActiveMenu()}_onTitleChanged(){this.update()}}!function(e){class t{renderItem(e){let t=this.createItemClass(e),n=this.createItemDataset(e),i=this.createItemARIA(e);return J.li({className:t,dataset:n,...e.disabled?{}:{tabindex:e.tabbable?"0":"-1"},onfocus:e.onfocus,...i},this.renderIcon(e),this.renderLabel(e))}renderIcon(e){let t=this.createIconClass(e);return J.div({className:t},e.title.icon,e.title.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return J.div({className:"lm-MenuBar-itemLabel"},t)}createItemClass(e){let t="lm-MenuBar-item";return e.title.className&&(t+=` ${e.title.className}`),e.active&&!e.disabled&&(t+=" lm-mod-active"),t}createItemDataset(e){return e.title.dataset}createItemARIA(e){return{role:"menuitem","aria-haspopup":"true","aria-disabled":e.disabled?"true":"false"}}createIconClass(e){let t="lm-MenuBar-itemIcon",n=e.title.iconClass;return n?`${t} ${n}`:t}formatLabel(e){let{label:t,mnemonic:n}=e.title;if(n<0||n>=t.length)return t;let i=t.slice(0,n),r=t.slice(n+1),s=t[n];return[i,J.span({className:"lm-MenuBar-itemMnemonic"},s),r]}}e.Renderer=t,e.defaultRenderer=new t}(je||(je={})),function(e){e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-MenuBar-content",e.appendChild(t),t.setAttribute("role","menubar"),e},e.findMnemonic=function(e,t,n){let i=-1,r=-1,s=!1,o=t.toUpperCase();for(let t=0,a=e.length;t=0&&c{if(this._repeatTimer=-1,!this._pressData)return;let e=this._pressData.part;if("thumb"===e)return;this._repeatTimer=window.setTimeout(this._onRepeat,20);let t=this._pressData.mouseX,n=this._pressData.mouseY;if("decrement"!==e)if("increment"!==e){if("track"===e){if(!u.hitTest(this.trackNode,t,n))return;let e=this.thumbNode;if(u.hitTest(e,t,n))return;let i,r=e.getBoundingClientRect();return i="horizontal"===this._orientation?t1&&this.widgets.forEach((e=>{e.hiddenMode=this._hiddenMode})))}dispose(){for(const e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===Q.HiddenMode.Scale&&this._items.length>0?(1===this._items.length&&(this.widgets[0].hiddenMode=Q.HiddenMode.Scale),t.hiddenMode=Q.HiddenMode.Scale):t.hiddenMode=Q.HiddenMode.Display,i.insert(this._items,e,new ee(t)),this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,n){i.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let n=i.removeAt(this._items,e);this.parent.isAttached&&f.sendMessage(t,Q.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&f.sendMessage(t,Q.Msg.AfterDetach),n.widget.node.style.zIndex="",this._hiddenMode===Q.HiddenMode.Scale&&(t.hiddenMode=Q.HiddenMode.Display,1===this._items.length&&(this._items[0].widget.hiddenMode=Q.HiddenMode.Display)),n.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let n=0,i=this._items.length;n{var i,r,s;s="object"==typeof self&&self.self===self&&self||"object"==typeof n.g&&n.g.global===n.g&&n.g,i=[n(62562),n(34651),t],r=function(e,t,n){s.Backbone=function(e,t,n,i){var r=e.Backbone,s=Array.prototype.slice;t.VERSION="1.4.0",t.$=i,t.noConflict=function(){return e.Backbone=r,this},t.emulateHTTP=!1,t.emulateJSON=!1;var o,a=t.Events={},l=/\s+/,u=function(e,t,i,r,s){var o,a=0;if(i&&"object"==typeof i){void 0!==r&&"context"in s&&void 0===s.context&&(s.context=r);for(o=n.keys(i);athis.length&&(r=this.length),r<0&&(r+=this.length+1);var s,o,a=[],l=[],u=[],c=[],d={},h=t.add,p=t.merge,f=t.remove,m=!1,g=this.comparator&&null==r&&!1!==t.sort,v=n.isString(this.comparator)?this.comparator:null;for(o=0;o7),this._useHashChange=this._wantsHashChange&&this._hasHashChange,this._wantsPushState=!!this.options.pushState,this._hasPushState=!(!this.history||!this.history.pushState),this._usePushState=this._wantsPushState&&this._hasPushState,this.fragment=this.getFragment(),this.root=("/"+this.root+"/").replace($,"/"),this._wantsHashChange&&this._wantsPushState){if(!this._hasPushState&&!this.atRoot()){var t=this.root.slice(0,-1)||"/";return this.location.replace(t+"#"+this.getPath()),!0}this._hasPushState&&this.atRoot()&&this.navigate(this.getHash(),{replace:!0})}if(!this._hasHashChange&&this._wantsHashChange&&!this._usePushState){this.iframe=document.createElement("iframe"),this.iframe.src="javascript:0",this.iframe.style.display="none",this.iframe.tabIndex=-1;var i=document.body,r=i.insertBefore(this.iframe,i.firstChild).contentWindow;r.document.open(),r.document.close(),r.location.hash="#"+this.fragment}var s=window.addEventListener||function(e,t){return attachEvent("on"+e,t)};if(this._usePushState?s("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe?s("hashchange",this.checkUrl,!1):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,this.interval)),!this.options.silent)return this.loadUrl()},stop:function(){var e=window.removeEventListener||function(e,t){return detachEvent("on"+e,t)};this._usePushState?e("popstate",this.checkUrl,!1):this._useHashChange&&!this.iframe&&e("hashchange",this.checkUrl,!1),this.iframe&&(document.body.removeChild(this.iframe),this.iframe=null),this._checkUrlInterval&&clearInterval(this._checkUrlInterval),z.started=!1},route:function(e,t){this.handlers.unshift({route:e,callback:t})},checkUrl:function(e){var t=this.getFragment();if(t===this.fragment&&this.iframe&&(t=this.getHash(this.iframe.contentWindow)),t===this.fragment)return!1;this.iframe&&this.navigate(t),this.loadUrl()},loadUrl:function(e){return!!this.matchRoot()&&(e=this.fragment=this.getFragment(e),n.some(this.handlers,(function(t){if(t.route.test(e))return t.callback(e),!0})))},navigate:function(e,t){if(!z.started)return!1;t&&!0!==t||(t={trigger:!!t}),e=this.getFragment(e||"");var n=this.root;""!==e&&"?"!==e.charAt(0)||(n=n.slice(0,-1)||"/");var i=n+e;e=e.replace(U,"");var r=this.decodeFragment(e);if(this.fragment!==r){if(this.fragment=r,this._usePushState)this.history[t.replace?"replaceState":"pushState"]({},document.title,i);else{if(!this._wantsHashChange)return this.location.assign(i);if(this._updateHash(this.location,e,t.replace),this.iframe&&e!==this.getHash(this.iframe.contentWindow)){var s=this.iframe.contentWindow;t.replace||(s.document.open(),s.document.close()),this._updateHash(s.location,e,t.replace)}}return t.trigger?this.loadUrl(e):void 0}},_updateHash:function(e,t,n){if(n){var i=e.href.replace(/(javascript:|#).*$/,"");e.replace(i+"#"+t)}else e.hash="#"+t}}),t.history=new z;v.extend=_.extend=L.extend=M.extend=z.extend=function(e,t){var i,r=this;return i=e&&n.has(e,"constructor")?e.constructor:function(){return r.apply(this,arguments)},n.extend(i,r,t),i.prototype=n.create(r.prototype,e),i.prototype.constructor=i,i.__super__=r.prototype,i};var q=function(){throw new Error('A "url" property or function must be specified')},V=function(e,t){var n=t.error;t.error=function(i){n&&n.call(t.context,e,i,t),e.trigger("error",e,i,t)}};return t}(s,n,e,t)}.apply(t,i),void 0===r||(e.exports=r)},7991:(e,t)=>{"use strict";t.bg=function(e){var t,n,s=function(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}(e),o=s[0],a=s[1],l=new r(function(e,t,n){return 3*(t+n)/4-n}(0,o,a)),u=0,c=a>0?o-4:o;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;return 2===a&&(t=i[e.charCodeAt(n)]<<2|i[e.charCodeAt(n+1)]>>4,l[u++]=255&t),1===a&&(t=i[e.charCodeAt(n)]<<10|i[e.charCodeAt(n+1)]<<4|i[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t),l},t.iI=function(e){for(var t,i=e.length,r=i%3,s=[],o=16383,l=0,u=i-r;lu?u:l+o));return 1===r?(t=e[i-1],s.push(n[t>>2]+n[t<<4&63]+"==")):2===r&&(t=(e[i-2]<<8)+e[i-1],s.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),s.join("")};for(var n=[],i=[],r="undefined"!=typeof Uint8Array?Uint8Array:Array,s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0;o<64;++o)n[o]=s[o],i[s.charCodeAt(o)]=o;function a(e,t,i){for(var r,s,o=[],a=t;a>18&63]+n[s>>12&63]+n[s>>6&63]+n[63&s]);return o.join("")}i["-".charCodeAt(0)]=62,i["_".charCodeAt(0)]=63},52743:e=>{"use strict";var t=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function i(e,t){return!1!==t.clone&&t.isMergeableObject(e)?a((n=e,Array.isArray(n)?[]:{}),e,t):e;var n}function r(e,t,n){return e.concat(t).map((function(e){return i(e,n)}))}function s(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]}(e))}function o(e,t){try{return t in e}catch(e){return!1}}function a(e,n,l){(l=l||{}).arrayMerge=l.arrayMerge||r,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=i;var u=Array.isArray(n);return u===Array.isArray(e)?u?l.arrayMerge(e,n,l):function(e,t,n){var r={};return n.isMergeableObject(e)&&s(e).forEach((function(t){r[t]=i(e[t],n)})),s(t).forEach((function(s){(function(e,t){return o(e,t)&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))})(e,s)||(o(e,s)&&n.isMergeableObject(t[s])?r[s]=function(e,t){if(!t.customMerge)return a;var n=t.customMerge(e);return"function"==typeof n?n:a}(s,n)(e[s],t[s],n):r[s]=i(t[s],n))})),r}(e,n,l):i(n,l)}a.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,n){return a(e,n,t)}),{})};var l=a;e.exports=l},93338:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=t.ElementType=void 0,function(e){e.Root="root",e.Text="text",e.Directive="directive",e.Comment="comment",e.Script="script",e.Style="style",e.Tag="tag",e.CDATA="cdata",e.Doctype="doctype"}(n=t.ElementType||(t.ElementType={})),t.isTag=function(e){return e.type===n.Tag||e.type===n.Script||e.type===n.Style},t.Root=n.Root,t.Text=n.Text,t.Directive=n.Directive,t.Comment=n.Comment,t.Script=n.Script,t.Style=n.Style,t.Tag=n.Tag,t.CDATA=n.CDATA,t.Doctype=n.Doctype},3379:function(e,t,n){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,n,i){void 0===i&&(i=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,r)}:function(e,t,n,i){void 0===i&&(i=n),e[i]=t[n]}),r=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&i(t,e,n);return r(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTMLAttribute=t.decodeHTML=t.determineBranch=t.EntityDecoder=t.DecodingMode=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var a=o(n(57346));t.htmlDecodeTree=a.default;var l=o(n(18622));t.xmlDecodeTree=l.default;var u=s(n(22809));t.decodeCodePoint=u.default;var c,d,h,p,f=n(22809);function m(e){return e>=c.ZERO&&e<=c.NINE}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return f.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return f.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.EQUALS=61]="EQUALS",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.LOWER_Z=122]="LOWER_Z",e[e.UPPER_A=65]="UPPER_A",e[e.UPPER_F=70]="UPPER_F",e[e.UPPER_Z=90]="UPPER_Z"}(c||(c={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE"}(d=t.BinTrieFlags||(t.BinTrieFlags={})),function(e){e[e.EntityStart=0]="EntityStart",e[e.NumericStart=1]="NumericStart",e[e.NumericDecimal=2]="NumericDecimal",e[e.NumericHex=3]="NumericHex",e[e.NamedEntity=4]="NamedEntity"}(h||(h={})),function(e){e[e.Legacy=0]="Legacy",e[e.Strict=1]="Strict",e[e.Attribute=2]="Attribute"}(p=t.DecodingMode||(t.DecodingMode={}));var g=function(){function e(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=h.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=p.Strict}return e.prototype.startEntity=function(e){this.decodeMode=e,this.state=h.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1},e.prototype.write=function(e,t){switch(this.state){case h.EntityStart:return e.charCodeAt(t)===c.NUM?(this.state=h.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=h.NamedEntity,this.stateNamedEntity(e,t));case h.NumericStart:return this.stateNumericStart(e,t);case h.NumericDecimal:return this.stateNumericDecimal(e,t);case h.NumericHex:return this.stateNumericHex(e,t);case h.NamedEntity:return this.stateNamedEntity(e,t)}},e.prototype.stateNumericStart=function(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===c.LOWER_X?(this.state=h.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=h.NumericDecimal,this.stateNumericDecimal(e,t))},e.prototype.addToNumericResult=function(e,t,n,i){if(t!==n){var r=n-t;this.result=this.result*Math.pow(i,r)+parseInt(e.substr(t,r),i),this.consumed+=r}},e.prototype.stateNumericHex=function(e,t){for(var n,i=t;t=c.UPPER_A&&n<=c.UPPER_F||n>=c.LOWER_A&&n<=c.LOWER_F)))return this.addToNumericResult(e,i,t,16),this.emitNumericEntity(r,3);t+=1}return this.addToNumericResult(e,i,t,16),-1},e.prototype.stateNumericDecimal=function(e,t){for(var n=t;t>14;t=c.UPPER_A&&e<=c.UPPER_Z||e>=c.LOWER_A&&e<=c.LOWER_Z||m(e)}(o)))?0:this.emitNotTerminatedNamedEntity();if(0!=(r=((i=n[this.treeIndex])&d.VALUE_LENGTH)>>14)){if(s===c.SEMI)return this.emitNamedEntityData(this.treeIndex,r,this.consumed+this.excess);this.decodeMode!==p.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}var o;return-1},e.prototype.emitNotTerminatedNamedEntity=function(){var e,t=this.result,n=(this.decodeTree[t]&d.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,n,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed},e.prototype.emitNamedEntityData=function(e,t,n){var i=this.decodeTree;return this.emitCodePoint(1===t?i[e]&~d.VALUE_LENGTH:i[e+1],n),3===t&&this.emitCodePoint(i[e+2],n),n},e.prototype.end=function(){var e;switch(this.state){case h.NamedEntity:return 0===this.result||this.decodeMode===p.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case h.NumericDecimal:return this.emitNumericEntity(0,2);case h.NumericHex:return this.emitNumericEntity(0,3);case h.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case h.EntityStart:return 0}},e}();function v(e){var t="",n=new g(e,(function(e){return t+=(0,u.fromCodePoint)(e)}));return function(e,i){for(var r=0,s=0;(s=e.indexOf("&",s))>=0;){t+=e.slice(r,s),n.startEntity(i);var o=n.write(e,s+1);if(o<0){r=s+n.end();break}r=s+o,s=0===o?r+1:r}var a=t+e.slice(r);return t="",a}}function _(e,t,n,i){var r=(t&d.BRANCH_LENGTH)>>7,s=t&d.JUMP_TABLE;if(0===r)return 0!==s&&i===s?n:-1;if(s){var o=i-s;return o<0||o>=r?-1:e[n+o]-1}for(var a=n,l=a+r-1;a<=l;){var u=a+l>>>1,c=e[u];if(ci))return e[u+r];l=u-1}}return-1}t.EntityDecoder=g,t.determineBranch=_;var b=v(a.default),y=v(l.default);t.decodeHTML=function(e,t){return void 0===t&&(t=p.Legacy),b(e,t)},t.decodeHTMLAttribute=function(e){return b(e,p.Attribute)},t.decodeHTMLStrict=function(e){return b(e,p.Strict)},t.decodeXML=function(e){return y(e,p.Strict)}},22809:(e,t)=>{"use strict";var n;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var i=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function r(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=i.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(n=String.fromCodePoint)&&void 0!==n?n:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=r,t.default=function(e){return(0,t.fromCodePoint)(r(e))}},33231:function(e,t,n){"use strict";var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.encodeNonAsciiHTML=t.encodeHTML=void 0;var r=i(n(58635)),s=n(57078),o=/[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;function a(e,t){for(var n,i="",o=0;null!==(n=e.exec(t));){var a=n.index;i+=t.substring(o,a);var l=t.charCodeAt(a),u=r.default.get(l);if("object"==typeof u){if(a+1{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.getCodePoint=t.xmlReplacer=void 0,t.xmlReplacer=/["&'<>$\x80-\uFFFF]/g;var n=new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]);function i(e){for(var i,r="",s=0;null!==(i=t.xmlReplacer.exec(e));){var o=i.index,a=e.charCodeAt(o),l=n.get(a);void 0!==l?(r+=e.substring(s,o)+l,s=o+1):(r+="".concat(e.substring(s,o),"&#x").concat((0,t.getCodePoint)(e,o).toString(16),";"),s=t.xmlReplacer.lastIndex+=Number(55296==(64512&a)))}return r+e.substr(s)}function r(e,t){return function(n){for(var i,r=0,s="";i=e.exec(n);)r!==i.index&&(s+=n.substring(r,i.index)),s+=t.get(i[0].charCodeAt(0)),r=i.index+1;return s+n.substring(r)}}t.getCodePoint=null!=String.prototype.codePointAt?function(e,t){return e.codePointAt(t)}:function(e,t){return 55296==(64512&e.charCodeAt(t))?1024*(e.charCodeAt(t)-55296)+e.charCodeAt(t+1)-56320+65536:e.charCodeAt(t)},t.encodeXML=i,t.escape=i,t.escapeUTF8=r(/[&<>'"]/g,n),t.escapeAttribute=r(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),t.escapeText=r(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]))},57346:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})))},18622:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})))},58635:(e,t)=>{"use strict";function n(e){for(var t=1;t{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLAttribute=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.DecodingMode=t.EntityDecoder=t.encodeHTML5=t.encodeHTML4=t.encodeNonAsciiHTML=t.encodeHTML=t.escapeText=t.escapeAttribute=t.escapeUTF8=t.escape=t.encodeXML=t.encode=t.decodeStrict=t.decode=t.EncodingMode=t.EntityLevel=void 0;var i,r,s=n(3379),o=n(33231),a=n(57078);function l(e,t){if(void 0===t&&(t=i.XML),("number"==typeof t?t:t.level)===i.HTML){var n="object"==typeof t?t.mode:void 0;return(0,s.decodeHTML)(e,n)}return(0,s.decodeXML)(e)}!function(e){e[e.XML=0]="XML",e[e.HTML=1]="HTML"}(i=t.EntityLevel||(t.EntityLevel={})),function(e){e[e.UTF8=0]="UTF8",e[e.ASCII=1]="ASCII",e[e.Extensive=2]="Extensive",e[e.Attribute=3]="Attribute",e[e.Text=4]="Text"}(r=t.EncodingMode||(t.EncodingMode={})),t.decode=l,t.decodeStrict=function(e,t){var n;void 0===t&&(t=i.XML);var r="number"==typeof t?{level:t}:t;return null!==(n=r.mode)&&void 0!==n||(r.mode=s.DecodingMode.Strict),l(e,r)},t.encode=function(e,t){void 0===t&&(t=i.XML);var n="number"==typeof t?{level:t}:t;return n.mode===r.UTF8?(0,a.escapeUTF8)(e):n.mode===r.Attribute?(0,a.escapeAttribute)(e):n.mode===r.Text?(0,a.escapeText)(e):n.level===i.HTML?n.mode===r.ASCII?(0,o.encodeNonAsciiHTML)(e):(0,o.encodeHTML)(e):(0,a.encodeXML)(e)};var u=n(57078);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return u.encodeXML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return u.escape}}),Object.defineProperty(t,"escapeUTF8",{enumerable:!0,get:function(){return u.escapeUTF8}}),Object.defineProperty(t,"escapeAttribute",{enumerable:!0,get:function(){return u.escapeAttribute}}),Object.defineProperty(t,"escapeText",{enumerable:!0,get:function(){return u.escapeText}});var c=n(33231);Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return c.encodeHTML}}),Object.defineProperty(t,"encodeNonAsciiHTML",{enumerable:!0,get:function(){return c.encodeNonAsciiHTML}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return c.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return c.encodeHTML}});var d=n(3379);Object.defineProperty(t,"EntityDecoder",{enumerable:!0,get:function(){return d.EntityDecoder}}),Object.defineProperty(t,"DecodingMode",{enumerable:!0,get:function(){return d.DecodingMode}}),Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return d.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTMLAttribute",{enumerable:!0,get:function(){return d.decodeHTMLAttribute}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return d.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return d.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return d.decodeXML}})},72189:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},34651:function(e,t){var n;!function(t,n){"use strict";"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,(function(i,r){"use strict";var s=[],o=Object.getPrototypeOf,a=s.slice,l=s.flat?function(e){return s.flat.call(e)}:function(e){return s.concat.apply([],e)},u=s.push,c=s.indexOf,d={},h=d.toString,p=d.hasOwnProperty,f=p.toString,m=f.call(Object),g={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},_=function(e){return null!=e&&e===e.window},b=i.document,y={type:!0,src:!0,nonce:!0,noModule:!0};function w(e,t,n){var i,r,s=(n=n||b).createElement("script");if(s.text=e,t)for(i in y)(r=t[i]||t.getAttribute&&t.getAttribute(i))&&s.setAttribute(i,r);n.head.appendChild(s).parentNode.removeChild(s)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?d[h.call(e)]||"object":typeof e}var S="3.7.1",E=/HTML$/i,C=function(e,t){return new C.fn.init(e,t)};function k(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!_(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function M(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}C.fn=C.prototype={jquery:S,constructor:C,length:0,toArray:function(){return a.call(this)},get:function(e){return null==e?a.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=C.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return C.each(this,e)},map:function(e){return this.pushStack(C.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(a.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(C.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(C.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+A+")"+A+"*"),$=new RegExp(A+"|>"),U=new RegExp(j),q=new RegExp("^"+N+"$"),V={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+L),PSEUDO:new RegExp("^"+j),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+A+"*(even|odd|(([+-]|)(\\d*)n|)"+A+"*(?:([+-]|)"+A+"*(\\d+)|))"+A+"*\\)|)","i"),bool:new RegExp("^(?:"+k+")$","i"),needsContext:new RegExp("^"+A+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+A+"*((?:-\\d)?\\d*)"+A+"*\\)|)(?=[^-]|$)","i")},H=/^(?:input|select|textarea|button)$/i,W=/^h\d$/i,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/[+~]/,J=new RegExp("\\\\[\\da-fA-F]{1,6}"+A+"?|\\\\([^\\r\\n\\f])","g"),X=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},Y=function(){le()},Q=he((function(e){return!0===e.disabled&&M(e,"fieldset")}),{dir:"parentNode",next:"legend"});try{m.apply(s=a.call(D.childNodes),D.childNodes),s[D.childNodes.length].nodeType}catch(e){m={apply:function(e,t){R.apply(e,a.call(t))},call:function(e){R.apply(e,a.call(arguments,1))}}}function Z(e,t,n,i){var r,s,o,a,u,c,p,f=t&&t.ownerDocument,_=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==_&&9!==_&&11!==_)return n;if(!i&&(le(t),t=t||l,d)){if(11!==_&&(u=K.exec(e)))if(r=u[1]){if(9===_){if(!(o=t.getElementById(r)))return n;if(o.id===r)return m.call(n,o),n}else if(f&&(o=f.getElementById(r))&&Z.contains(t,o)&&o.id===r)return m.call(n,o),n}else{if(u[2])return m.apply(n,t.getElementsByTagName(e)),n;if((r=u[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(r)),n}if(!(S[e+" "]||h&&h.test(e))){if(p=e,f=t,1===_&&($.test(e)||F.test(e))){for((f=G.test(e)&&ae(t.parentNode)||t)==t&&g.scope||((a=t.getAttribute("id"))?a=C.escapeSelector(a):t.setAttribute("id",a=v)),s=(c=ce(e)).length;s--;)c[s]=(a?"#"+a:":scope")+" "+de(c[s]);p=c.join(",")}try{return m.apply(n,f.querySelectorAll(p)),n}catch(t){S(e,!0)}finally{a===v&&t.removeAttribute("id")}}}return _e(e.replace(P,"$1"),t,n,i)}function ee(){var e=[];return function n(i,r){return e.push(i+" ")>t.cacheLength&&delete n[e.shift()],n[i+" "]=r}}function te(e){return e[v]=!0,e}function ne(e){var t=l.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ie(e){return function(t){return M(t,"input")&&t.type===e}}function re(e){return function(t){return(M(t,"input")||M(t,"button"))&&t.type===e}}function se(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&Q(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function oe(e){return te((function(t){return t=+t,te((function(n,i){for(var r,s=e([],n.length,t),o=s.length;o--;)n[r=s[o]]&&(n[r]=!(i[r]=n[r]))}))}))}function ae(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var n,i=e?e.ownerDocument||e:D;return i!=l&&9===i.nodeType&&i.documentElement?(u=(l=i).documentElement,d=!C.isXMLDoc(l),f=u.matches||u.webkitMatchesSelector||u.msMatchesSelector,u.msMatchesSelector&&D!=l&&(n=l.defaultView)&&n.top!==n&&n.addEventListener("unload",Y),g.getById=ne((function(e){return u.appendChild(e).id=C.expando,!l.getElementsByName||!l.getElementsByName(C.expando).length})),g.disconnectedMatch=ne((function(e){return f.call(e,"*")})),g.scope=ne((function(){return l.querySelectorAll(":scope")})),g.cssHas=ne((function(){try{return l.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}})),g.getById?(t.filter.ID=function(e){var t=e.replace(J,X);return function(e){return e.getAttribute("id")===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n=t.getElementById(e);return n?[n]:[]}}):(t.filter.ID=function(e){var t=e.replace(J,X);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},t.find.ID=function(e,t){if(void 0!==t.getElementById&&d){var n,i,r,s=t.getElementById(e);if(s){if((n=s.getAttributeNode("id"))&&n.value===e)return[s];for(r=t.getElementsByName(e),i=0;s=r[i++];)if((n=s.getAttributeNode("id"))&&n.value===e)return[s]}return[]}}),t.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},t.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&d)return t.getElementsByClassName(e)},h=[],ne((function(e){var t;u.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||h.push("\\["+A+"*(?:value|"+k+")"),e.querySelectorAll("[id~="+v+"-]").length||h.push("~="),e.querySelectorAll("a#"+v+"+*").length||h.push(".#.+[+~]"),e.querySelectorAll(":checked").length||h.push(":checked"),(t=l.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),u.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&h.push(":enabled",":disabled"),(t=l.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||h.push("\\["+A+"*name"+A+"*="+A+"*(?:''|\"\")")})),g.cssHas||h.push(":has"),h=h.length&&new RegExp(h.join("|")),E=function(e,t){if(e===t)return o=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!g.sortDetached&&t.compareDocumentPosition(e)===n?e===l||e.ownerDocument==D&&Z.contains(D,e)?-1:t===l||t.ownerDocument==D&&Z.contains(D,t)?1:r?c.call(r,e)-c.call(r,t):0:4&n?-1:1)},l):l}for(e in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(le(e),d&&!S[t+" "]&&(!h||!h.test(t)))try{var n=f.call(e,t);if(n||g.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return Z(t,l,null,[e]).length>0},Z.contains=function(e,t){return(e.ownerDocument||e)!=l&&le(e),C.contains(e,t)},Z.attr=function(e,n){(e.ownerDocument||e)!=l&&le(e);var i=t.attrHandle[n.toLowerCase()],r=i&&p.call(t.attrHandle,n.toLowerCase())?i(e,n,!d):void 0;return void 0!==r?r:e.getAttribute(n)},Z.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},C.uniqueSort=function(e){var t,n=[],i=0,s=0;if(o=!g.sortStable,r=!g.sortStable&&a.call(e,0),O.call(e,E),o){for(;t=e[s++];)t===e[s]&&(i=n.push(s));for(;i--;)I.call(e,n[i],1)}return r=null,e},C.fn.uniqueSort=function(){return this.pushStack(C.uniqueSort(a.apply(this)))},t=C.expr={cacheLength:50,createPseudo:te,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(J,X),e[3]=(e[3]||e[4]||e[5]||"").replace(J,X),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&U.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(J,X).toLowerCase();return"*"===e?function(){return!0}:function(e){return M(e,t)}},CLASS:function(e){var t=y[e+" "];return t||(t=new RegExp("(^|"+A+")"+e+"("+A+"|$)"))&&y(e,(function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(i){var r=Z.attr(i,e);return null==r?"!="===t:!t||(r+="","="===t?r===n:"!="===t?r!==n:"^="===t?n&&0===r.indexOf(n):"*="===t?n&&r.indexOf(n)>-1:"$="===t?n&&r.slice(-n.length)===n:"~="===t?(" "+r.replace(B," ")+" ").indexOf(n)>-1:"|="===t&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,i,r){var s="nth"!==e.slice(0,3),o="last"!==e.slice(-4),a="of-type"===t;return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,h,p,f=s!==o?"nextSibling":"previousSibling",m=t.parentNode,g=a&&t.nodeName.toLowerCase(),b=!l&&!a,y=!1;if(m){if(s){for(;f;){for(d=t;d=d[f];)if(a?M(d,g):1===d.nodeType)return!1;p=f="only"===e&&!p&&"nextSibling"}return!0}if(p=[o?m.firstChild:m.lastChild],o&&b){for(y=(h=(u=(c=m[v]||(m[v]={}))[e]||[])[0]===_&&u[1])&&u[2],d=h&&m.childNodes[h];d=++h&&d&&d[f]||(y=h=0)||p.pop();)if(1===d.nodeType&&++y&&d===t){c[e]=[_,h,y];break}}else if(b&&(y=h=(u=(c=t[v]||(t[v]={}))[e]||[])[0]===_&&u[1]),!1===y)for(;(d=++h&&d&&d[f]||(y=h=0)||p.pop())&&(!(a?M(d,g):1===d.nodeType)||!++y||(b&&((c=d[v]||(d[v]={}))[e]=[_,y]),d!==t)););return(y-=r)===i||y%i==0&&y/i>=0}}},PSEUDO:function(e,n){var i,r=t.pseudos[e]||t.setFilters[e.toLowerCase()]||Z.error("unsupported pseudo: "+e);return r[v]?r(n):r.length>1?(i=[e,e,"",n],t.setFilters.hasOwnProperty(e.toLowerCase())?te((function(e,t){for(var i,s=r(e,n),o=s.length;o--;)e[i=c.call(e,s[o])]=!(t[i]=s[o])})):function(e){return r(e,0,i)}):r}},pseudos:{not:te((function(e){var t=[],n=[],i=ve(e.replace(P,"$1"));return i[v]?te((function(e,t,n,r){for(var s,o=i(e,null,r,[]),a=e.length;a--;)(s=o[a])&&(e[a]=!(t[a]=s))})):function(e,r,s){return t[0]=e,i(t,null,s,n),t[0]=null,!n.pop()}})),has:te((function(e){return function(t){return Z(e,t).length>0}})),contains:te((function(e){return e=e.replace(J,X),function(t){return(t.textContent||C.text(t)).indexOf(e)>-1}})),lang:te((function(e){return q.test(e||"")||Z.error("unsupported lang: "+e),e=e.replace(J,X).toLowerCase(),function(t){var n;do{if(n=d?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(e){var t=i.location&&i.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===u},focus:function(e){return e===function(){try{return l.activeElement}catch(e){}}()&&l.hasFocus()&&!!(e.type||e.href||~e.tabIndex)},enabled:se(!1),disabled:se(!0),checked:function(e){return M(e,"input")&&!!e.checked||M(e,"option")&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!t.pseudos.empty(e)},header:function(e){return W.test(e.nodeName)},input:function(e){return H.test(e.nodeName)},button:function(e){return M(e,"input")&&"button"===e.type||M(e,"button")},text:function(e){var t;return M(e,"input")&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:oe((function(){return[0]})),last:oe((function(e,t){return[t-1]})),eq:oe((function(e,t,n){return[n<0?n+t:n]})),even:oe((function(e,t){for(var n=0;nt?t:n;--i>=0;)e.push(i);return e})),gt:oe((function(e,t,n){for(var i=n<0?n+t:n;++i1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function fe(e,t,n,i,r){for(var s,o=[],a=0,l=e.length,u=null!=t;a-1&&(s[u]=!(o[u]=h))}}else p=fe(p===o?p.splice(v,p.length):p),r?r(null,o,p,l):m.apply(o,p)}))}function ge(e){for(var i,r,s,o=e.length,a=t.relative[e[0].type],l=a||t.relative[" "],u=a?1:0,d=he((function(e){return e===i}),l,!0),h=he((function(e){return c.call(i,e)>-1}),l,!0),p=[function(e,t,r){var s=!a&&(r||t!=n)||((i=t).nodeType?d(e,t,r):h(e,t,r));return i=null,s}];u1&&pe(p),u>1&&de(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(P,"$1"),r,u0,s=e.length>0,o=function(o,a,u,c,h){var p,f,g,v=0,b="0",y=o&&[],w=[],x=n,S=o||s&&t.find.TAG("*",h),E=_+=null==x?1:Math.random()||.1,k=S.length;for(h&&(n=a==l||a||h);b!==k&&null!=(p=S[b]);b++){if(s&&p){for(f=0,a||p.ownerDocument==l||(le(p),u=!d);g=e[f++];)if(g(p,a||l,u)){m.call(c,p);break}h&&(_=E)}r&&((p=!g&&p)&&v--,o&&y.push(p))}if(v+=b,r&&b!==v){for(f=0;g=i[f++];)g(y,w,a,u);if(o){if(v>0)for(;b--;)y[b]||w[b]||(w[b]=T.call(c));w=fe(w)}m.apply(c,w),h&&!o&&w.length>0&&v+i.length>1&&C.uniqueSort(c)}return h&&(_=E,n=x),y};return r?te(o):o}(o,s)),a.selector=e}return a}function _e(e,n,i,r){var s,o,a,l,u,c="function"==typeof e&&e,h=!r&&ce(e=c.selector||e);if(i=i||[],1===h.length){if((o=h[0]=h[0].slice(0)).length>2&&"ID"===(a=o[0]).type&&9===n.nodeType&&d&&t.relative[o[1].type]){if(!(n=(t.find.ID(a.matches[0].replace(J,X),n)||[])[0]))return i;c&&(n=n.parentNode),e=e.slice(o.shift().value.length)}for(s=V.needsContext.test(e)?0:o.length;s--&&(a=o[s],!t.relative[l=a.type]);)if((u=t.find[l])&&(r=u(a.matches[0].replace(J,X),G.test(o[0].type)&&ae(n.parentNode)||n))){if(o.splice(s,1),!(e=r.length&&de(o)))return m.apply(i,r),i;break}}return(c||ve(e,h))(r,n,!d,i,!n||G.test(e)&&ae(n.parentNode)||n),i}ue.prototype=t.filters=t.pseudos,t.setFilters=new ue,g.sortStable=v.split("").sort(E).join("")===v,le(),g.sortDetached=ne((function(e){return 1&e.compareDocumentPosition(l.createElement("fieldset"))})),C.find=Z,C.expr[":"]=C.expr.pseudos,C.unique=C.uniqueSort,Z.compile=ve,Z.select=_e,Z.setDocument=le,Z.tokenize=ce,Z.escape=C.escapeSelector,Z.getText=C.text,Z.isXML=C.isXMLDoc,Z.selectors=C.expr,Z.support=C.support,Z.uniqueSort=C.uniqueSort}();var j=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&C(e).is(n))break;i.push(e)}return i},B=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},z=C.expr.match.needsContext,F=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function $(e,t,n){return v(t)?C.grep(e,(function(e,i){return!!t.call(e,i,e)!==n})):t.nodeType?C.grep(e,(function(e){return e===t!==n})):"string"!=typeof t?C.grep(e,(function(e){return c.call(t,e)>-1!==n})):C.filter(t,e,n)}C.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?C.find.matchesSelector(i,e)?[i]:[]:C.find.matches(e,C.grep(t,(function(e){return 1===e.nodeType})))},C.fn.extend({find:function(e){var t,n,i=this.length,r=this;if("string"!=typeof e)return this.pushStack(C(e).filter((function(){for(t=0;t1?C.uniqueSort(n):n},filter:function(e){return this.pushStack($(this,e||[],!1))},not:function(e){return this.pushStack($(this,e||[],!0))},is:function(e){return!!$(this,"string"==typeof e&&z.test(e)?C(e):e||[],!1).length}});var U,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(C.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||U,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:q.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof C?t[0]:t,C.merge(this,C.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:b,!0)),F.test(i[1])&&C.isPlainObject(t))for(i in t)v(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=b.getElementById(i[2]))&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(C):C.makeArray(e,this)}).prototype=C.fn,U=C(b);var V=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function W(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}C.fn.extend({has:function(e){var t=C(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&C.find.matchesSelector(n,e))){s.push(n);break}return this.pushStack(s.length>1?C.uniqueSort(s):s)},index:function(e){return e?"string"==typeof e?c.call(C(e),this[0]):c.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(C.uniqueSort(C.merge(this.get(),C(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),C.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return j(e,"parentNode")},parentsUntil:function(e,t,n){return j(e,"parentNode",n)},next:function(e){return W(e,"nextSibling")},prev:function(e){return W(e,"previousSibling")},nextAll:function(e){return j(e,"nextSibling")},prevAll:function(e){return j(e,"previousSibling")},nextUntil:function(e,t,n){return j(e,"nextSibling",n)},prevUntil:function(e,t,n){return j(e,"previousSibling",n)},siblings:function(e){return B((e.parentNode||{}).firstChild,e)},children:function(e){return B(e.firstChild)},contents:function(e){return null!=e.contentDocument&&o(e.contentDocument)?e.contentDocument:(M(e,"template")&&(e=e.content||e),C.merge([],e.childNodes))}},(function(e,t){C.fn[e]=function(n,i){var r=C.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=C.filter(i,r)),this.length>1&&(H[e]||C.uniqueSort(r),V.test(e)&&r.reverse()),this.pushStack(r)}}));var K=/[^\x20\t\r\n\f]+/g;function G(e){return e}function J(e){throw e}function X(e,t,n,i){var r;try{e&&v(r=e.promise)?r.call(e).done(t).fail(n):e&&v(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}C.Callbacks=function(e){e="string"==typeof e?function(e){var t={};return C.each(e.match(K)||[],(function(e,n){t[n]=!0})),t}(e):C.extend({},e);var t,n,i,r,s=[],o=[],a=-1,l=function(){for(r=r||e.once,i=t=!0;o.length;a=-1)for(n=o.shift();++a-1;)s.splice(n,1),n<=a&&a--})),this},has:function(e){return e?C.inArray(e,s)>-1:s.length>0},empty:function(){return s&&(s=[]),this},disable:function(){return r=o=[],s=n="",this},disabled:function(){return!s},lock:function(){return r=o=[],n||t||(s=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u},C.extend({Deferred:function(e){var t=[["notify","progress",C.Callbacks("memory"),C.Callbacks("memory"),2],["resolve","done",C.Callbacks("once memory"),C.Callbacks("once memory"),0,"resolved"],["reject","fail",C.Callbacks("once memory"),C.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return s.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return C.Deferred((function(n){C.each(t,(function(t,i){var r=v(e[i[4]])&&e[i[4]];s[i[1]]((function(){var e=r&&r.apply(this,arguments);e&&v(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[e]:arguments)}))})),e=null})).promise()},then:function(e,n,r){var s=0;function o(e,t,n,r){return function(){var a=this,l=arguments,u=function(){var i,u;if(!(e=s&&(n!==J&&(a=void 0,l=[i]),t.rejectWith(a,l))}};e?c():(C.Deferred.getErrorHook?c.error=C.Deferred.getErrorHook():C.Deferred.getStackHook&&(c.error=C.Deferred.getStackHook()),i.setTimeout(c))}}return C.Deferred((function(i){t[0][3].add(o(0,i,v(r)?r:G,i.notifyWith)),t[1][3].add(o(0,i,v(e)?e:G)),t[2][3].add(o(0,i,v(n)?n:J))})).promise()},promise:function(e){return null!=e?C.extend(e,r):r}},s={};return C.each(t,(function(e,i){var o=i[2],a=i[5];r[i[1]]=o.add,a&&o.add((function(){n=a}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(i[3].fire),s[i[0]]=function(){return s[i[0]+"With"](this===s?void 0:this,arguments),this},s[i[0]+"With"]=o.fireWith})),r.promise(s),e&&e.call(s,s),s},when:function(e){var t=arguments.length,n=t,i=Array(n),r=a.call(arguments),s=C.Deferred(),o=function(e){return function(n){i[e]=this,r[e]=arguments.length>1?a.call(arguments):n,--t||s.resolveWith(i,r)}};if(t<=1&&(X(e,s.done(o(n)).resolve,s.reject,!t),"pending"===s.state()||v(r[n]&&r[n].then)))return s.then();for(;n--;)X(r[n],o(n),s.reject);return s.promise()}});var Y=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;C.Deferred.exceptionHook=function(e,t){i.console&&i.console.warn&&e&&Y.test(e.name)&&i.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},C.readyException=function(e){i.setTimeout((function(){throw e}))};var Q=C.Deferred();function Z(){b.removeEventListener("DOMContentLoaded",Z),i.removeEventListener("load",Z),C.ready()}C.fn.ready=function(e){return Q.then(e).catch((function(e){C.readyException(e)})),this},C.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--C.readyWait:C.isReady)||(C.isReady=!0,!0!==e&&--C.readyWait>0||Q.resolveWith(b,[C]))}}),C.ready.then=Q.then,"complete"===b.readyState||"loading"!==b.readyState&&!b.documentElement.doScroll?i.setTimeout(C.ready):(b.addEventListener("DOMContentLoaded",Z),i.addEventListener("load",Z));var ee=function(e,t,n,i,r,s,o){var a=0,l=e.length,u=null==n;if("object"===x(n))for(a in r=!0,n)ee(e,t,a,n[a],!0,s,o);else if(void 0!==i&&(r=!0,v(i)||(o=!0),u&&(o?(t.call(e,i),t=null):(u=t,t=function(e,t,n){return u.call(C(e),n)})),t))for(;a1,null,!0)},removeData:function(e){return this.each((function(){le.remove(this,e)}))}}),C.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=ae.get(e,t),n&&(!i||Array.isArray(n)?i=ae.access(e,t,C.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=C.queue(e,t),i=n.length,r=n.shift(),s=C._queueHooks(e,t);"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete s.stop,r.call(e,(function(){C.dequeue(e,t)}),s)),!i&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ae.get(e,n)||ae.access(e,n,{empty:C.Callbacks("once memory").add((function(){ae.remove(e,[t+"queue",n])}))})}}),C.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Me=/^$|^module$|\/(?:java|ecma)script/i;Se=b.createDocumentFragment().appendChild(b.createElement("div")),(Ee=b.createElement("input")).setAttribute("type","radio"),Ee.setAttribute("checked","checked"),Ee.setAttribute("name","t"),Se.appendChild(Ee),g.checkClone=Se.cloneNode(!0).cloneNode(!0).lastChild.checked,Se.innerHTML="",g.noCloneChecked=!!Se.cloneNode(!0).lastChild.defaultValue,Se.innerHTML="",g.option=!!Se.lastChild;var Te={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Oe(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&M(e,t)?C.merge([e],n):n}function Ie(e,t){for(var n=0,i=e.length;n",""]);var Ae=/<|&#?\w+;/;function Pe(e,t,n,i,r){for(var s,o,a,l,u,c,d=t.createDocumentFragment(),h=[],p=0,f=e.length;p-1)r&&r.push(s);else if(u=ge(s),o=Oe(d.appendChild(s),"script"),u&&Ie(o),n)for(c=0;s=o[c++];)Me.test(s.type||"")&&n.push(s);return d}var Ne=/^([^.]*)(?:\.(.+)|)/;function Le(){return!0}function De(){return!1}function Re(e,t,n,i,r,s){var o,a;if("object"==typeof t){for(a in"string"!=typeof n&&(i=i||n,n=void 0),t)Re(e,a,n,i,t[a],s);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=De;else if(!r)return e;return 1===s&&(o=r,r=function(e){return C().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=C.guid++)),e.each((function(){C.event.add(this,t,r,i,n)}))}function je(e,t,n){n?(ae.set(e,t,!1),C.event.add(e,t,{namespace:!1,handler:function(e){var n,i=ae.get(this,t);if(1&e.isTrigger&&this[t]){if(i)(C.event.special[t]||{}).delegateType&&e.stopPropagation();else if(i=a.call(arguments),ae.set(this,t,i),this[t](),n=ae.get(this,t),ae.set(this,t,!1),i!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else i&&(ae.set(this,t,C.event.trigger(i[0],i.slice(1),this)),e.stopPropagation(),e.isImmediatePropagationStopped=Le)}})):void 0===ae.get(e,t)&&C.event.add(e,t,Le)}C.event={global:{},add:function(e,t,n,i,r){var s,o,a,l,u,c,d,h,p,f,m,g=ae.get(e);if(se(e))for(n.handler&&(n=(s=n).handler,r=s.selector),r&&C.find.matchesSelector(me,r),n.guid||(n.guid=C.guid++),(l=g.events)||(l=g.events=Object.create(null)),(o=g.handle)||(o=g.handle=function(t){return void 0!==C&&C.event.triggered!==t.type?C.event.dispatch.apply(e,arguments):void 0}),u=(t=(t||"").match(K)||[""]).length;u--;)p=m=(a=Ne.exec(t[u])||[])[1],f=(a[2]||"").split(".").sort(),p&&(d=C.event.special[p]||{},p=(r?d.delegateType:d.bindType)||p,d=C.event.special[p]||{},c=C.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&C.expr.match.needsContext.test(r),namespace:f.join(".")},s),(h=l[p])||((h=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,i,f,o)||e.addEventListener&&e.addEventListener(p,o)),d.add&&(d.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),r?h.splice(h.delegateCount++,0,c):h.push(c),C.event.global[p]=!0)},remove:function(e,t,n,i,r){var s,o,a,l,u,c,d,h,p,f,m,g=ae.hasData(e)&&ae.get(e);if(g&&(l=g.events)){for(u=(t=(t||"").match(K)||[""]).length;u--;)if(p=m=(a=Ne.exec(t[u])||[])[1],f=(a[2]||"").split(".").sort(),p){for(d=C.event.special[p]||{},h=l[p=(i?d.delegateType:d.bindType)||p]||[],a=a[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=s=h.length;s--;)c=h[s],!r&&m!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||i&&i!==c.selector&&("**"!==i||!c.selector)||(h.splice(s,1),c.selector&&h.delegateCount--,d.remove&&d.remove.call(e,c));o&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||C.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)C.event.remove(e,p+t[u],n,i,!0);C.isEmptyObject(l)&&ae.remove(e,"handle events")}},dispatch:function(e){var t,n,i,r,s,o,a=new Array(arguments.length),l=C.event.fix(e),u=(ae.get(this,"events")||Object.create(null))[l.type]||[],c=C.event.special[l.type]||{};for(a[0]=l,t=1;t=1))for(;u!==this;u=u.parentNode||this)if(1===u.nodeType&&("click"!==e.type||!0!==u.disabled)){for(s=[],o={},n=0;n-1:C.find(r,this,null,[u]).length),o[r]&&s.push(i);s.length&&a.push({elem:u,handlers:s})}return u=this,l\s*$/g;function $e(e,t){return M(e,"table")&&M(11!==t.nodeType?t:t.firstChild,"tr")&&C(e).children("tbody")[0]||e}function Ue(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Ve(e,t){var n,i,r,s,o,a;if(1===t.nodeType){if(ae.hasData(e)&&(a=ae.get(e).events))for(r in ae.remove(t,"handle events"),a)for(n=0,i=a[r].length;n1&&"string"==typeof f&&!g.checkClone&&ze.test(f))return e.each((function(r){var s=e.eq(r);m&&(t[0]=f.call(this,r,s.html())),We(s,t,n,i)}));if(h&&(s=(r=Pe(t,e[0].ownerDocument,!1,e,i)).firstChild,1===r.childNodes.length&&(r=s),s||i)){for(a=(o=C.map(Oe(r,"script"),Ue)).length;d0&&Ie(o,!l&&Oe(e,"script")),a},cleanData:function(e){for(var t,n,i,r=C.event.special,s=0;void 0!==(n=e[s]);s++)if(se(n)){if(t=n[ae.expando]){if(t.events)for(i in t.events)r[i]?C.event.remove(n,i):C.removeEvent(n,i,t.handle);n[ae.expando]=void 0}n[le.expando]&&(n[le.expando]=void 0)}}}),C.fn.extend({detach:function(e){return Ke(this,e,!0)},remove:function(e){return Ke(this,e)},text:function(e){return ee(this,(function(e){return void 0===e?C.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return We(this,arguments,(function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||$e(this,e).appendChild(e)}))},prepend:function(){return We(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=$e(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return We(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(C.cleanData(Oe(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return C.clone(this,e,t)}))},html:function(e){return ee(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Be.test(e)&&!Te[(ke.exec(e)||["",""])[1].toLowerCase()]){e=C.htmlPrefilter(e);try{for(;n=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-s-l-a-.5))||0),l+u}function ct(e,t,n){var i=Xe(e),r=(!g.boxSizingReliable()||n)&&"border-box"===C.css(e,"boxSizing",!1,i),s=r,o=Ze(e,t,i),a="offset"+t[0].toUpperCase()+t.slice(1);if(Ge.test(o)){if(!n)return o;o="auto"}return(!g.boxSizingReliable()&&r||!g.reliableTrDimensions()&&M(e,"tr")||"auto"===o||!parseFloat(o)&&"inline"===C.css(e,"display",!1,i))&&e.getClientRects().length&&(r="border-box"===C.css(e,"boxSizing",!1,i),(s=a in e)&&(o=e[a])),(o=parseFloat(o)||0)+ut(e,t,n||(r?"border":"content"),s,i,o)+"px"}function dt(e,t,n,i,r){return new dt.prototype.init(e,t,n,i,r)}C.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ze(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,aspectRatio:!0,borderImageSlice:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,scale:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeMiterlimit:!0,strokeOpacity:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,s,o,a=re(t),l=Je.test(t),u=e.style;if(l||(t=rt(a)),o=C.cssHooks[t]||C.cssHooks[a],void 0===n)return o&&"get"in o&&void 0!==(r=o.get(e,!1,i))?r:u[t];"string"==(s=typeof n)&&(r=pe.exec(n))&&r[1]&&(n=be(e,t,r),s="number"),null!=n&&n==n&&("number"!==s||l||(n+=r&&r[3]||(C.cssNumber[a]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,i))||(l?u.setProperty(t,n):u[t]=n))}},css:function(e,t,n,i){var r,s,o,a=re(t);return Je.test(t)||(t=rt(a)),(o=C.cssHooks[t]||C.cssHooks[a])&&"get"in o&&(r=o.get(e,!0,n)),void 0===r&&(r=Ze(e,t,i)),"normal"===r&&t in at&&(r=at[t]),""===n||n?(s=parseFloat(r),!0===n||isFinite(s)?s||0:r):r}}),C.each(["height","width"],(function(e,t){C.cssHooks[t]={get:function(e,n,i){if(n)return!st.test(C.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?ct(e,t,i):Ye(e,ot,(function(){return ct(e,t,i)}))},set:function(e,n,i){var r,s=Xe(e),o=!g.scrollboxSize()&&"absolute"===s.position,a=(o||i)&&"border-box"===C.css(e,"boxSizing",!1,s),l=i?ut(e,t,i,a,s):0;return a&&o&&(l-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(s[t])-ut(e,t,"border",!1,s)-.5)),l&&(r=pe.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=C.css(e,t)),lt(0,n,l)}}})),C.cssHooks.marginLeft=et(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ze(e,"marginLeft"))||e.getBoundingClientRect().left-Ye(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),C.each({margin:"",padding:"",border:"Width"},(function(e,t){C.cssHooks[e+t]={expand:function(n){for(var i=0,r={},s="string"==typeof n?n.split(" "):[n];i<4;i++)r[e+fe[i]+t]=s[i]||s[i-2]||s[0];return r}},"margin"!==e&&(C.cssHooks[e+t].set=lt)})),C.fn.extend({css:function(e,t){return ee(this,(function(e,t,n){var i,r,s={},o=0;if(Array.isArray(t)){for(i=Xe(e),r=t.length;o1)}}),C.Tween=dt,dt.prototype={constructor:dt,init:function(e,t,n,i,r,s){this.elem=e,this.prop=n,this.easing=r||C.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=s||(C.cssNumber[n]?"":"px")},cur:function(){var e=dt.propHooks[this.prop];return e&&e.get?e.get(this):dt.propHooks._default.get(this)},run:function(e){var t,n=dt.propHooks[this.prop];return this.options.duration?this.pos=t=C.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):dt.propHooks._default.set(this),this}},dt.prototype.init.prototype=dt.prototype,dt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=C.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){C.fx.step[e.prop]?C.fx.step[e.prop](e):1!==e.elem.nodeType||!C.cssHooks[e.prop]&&null==e.elem.style[rt(e.prop)]?e.elem[e.prop]=e.now:C.style(e.elem,e.prop,e.now+e.unit)}}},dt.propHooks.scrollTop=dt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},C.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},C.fx=dt.prototype.init,C.fx.step={};var ht,pt,ft=/^(?:toggle|show|hide)$/,mt=/queueHooks$/;function gt(){pt&&(!1===b.hidden&&i.requestAnimationFrame?i.requestAnimationFrame(gt):i.setTimeout(gt,C.fx.interval),C.fx.tick())}function vt(){return i.setTimeout((function(){ht=void 0})),ht=Date.now()}function _t(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=fe[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function bt(e,t,n){for(var i,r=(yt.tweeners[t]||[]).concat(yt.tweeners["*"]),s=0,o=r.length;s1)},removeAttr:function(e){return this.each((function(){C.removeAttr(this,e)}))}}),C.extend({attr:function(e,t,n){var i,r,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return void 0===e.getAttribute?C.prop(e,t,n):(1===s&&C.isXMLDoc(e)||(r=C.attrHooks[t.toLowerCase()]||(C.expr.match.bool.test(t)?wt:void 0)),void 0!==n?null===n?void C.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:null==(i=C.find.attr(e,t))?void 0:i)},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&M(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,r=t&&t.match(K);if(r&&1===e.nodeType)for(;n=r[i++];)e.removeAttribute(n)}}),wt={set:function(e,t,n){return!1===t?C.removeAttr(e,n):e.setAttribute(n,n),n}},C.each(C.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=xt[t]||C.find.attr;xt[t]=function(e,t,i){var r,s,o=t.toLowerCase();return i||(s=xt[o],xt[o]=r,r=null!=n(e,t,i)?o:null,xt[o]=s),r}}));var St=/^(?:input|select|textarea|button)$/i,Et=/^(?:a|area)$/i;function Ct(e){return(e.match(K)||[]).join(" ")}function kt(e){return e.getAttribute&&e.getAttribute("class")||""}function Mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(K)||[]}C.fn.extend({prop:function(e,t){return ee(this,C.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[C.propFix[e]||e]}))}}),C.extend({prop:function(e,t,n){var i,r,s=e.nodeType;if(3!==s&&8!==s&&2!==s)return 1===s&&C.isXMLDoc(e)||(t=C.propFix[t]||t,r=C.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=C.find.attr(e,"tabindex");return t?parseInt(t,10):St.test(e.nodeName)||Et.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(C.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),C.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){C.propFix[this.toLowerCase()]=this})),C.fn.extend({addClass:function(e){var t,n,i,r,s,o;return v(e)?this.each((function(t){C(this).addClass(e.call(this,t,kt(this)))})):(t=Mt(e)).length?this.each((function(){if(i=kt(this),n=1===this.nodeType&&" "+Ct(i)+" "){for(s=0;s-1;)n=n.replace(" "+r+" "," ");o=Ct(n),i!==o&&this.setAttribute("class",o)}})):this:this.attr("class","")},toggleClass:function(e,t){var n,i,r,s,o=typeof e,a="string"===o||Array.isArray(e);return v(e)?this.each((function(n){C(this).toggleClass(e.call(this,n,kt(this),t),t)})):"boolean"==typeof t&&a?t?this.addClass(e):this.removeClass(e):(n=Mt(e),this.each((function(){if(a)for(s=C(this),r=0;r-1)return!0;return!1}});var Tt=/\r/g;C.fn.extend({val:function(e){var t,n,i,r=this[0];return arguments.length?(i=v(e),this.each((function(n){var r;1===this.nodeType&&(null==(r=i?e.call(this,n,C(this).val()):e)?r="":"number"==typeof r?r+="":Array.isArray(r)&&(r=C.map(r,(function(e){return null==e?"":e+""}))),(t=C.valHooks[this.type]||C.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))}))):r?(t=C.valHooks[r.type]||C.valHooks[r.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:"string"==typeof(n=r.value)?n.replace(Tt,""):null==n?"":n:void 0}}),C.extend({valHooks:{option:{get:function(e){var t=C.find.attr(e,"value");return null!=t?t:Ct(C.text(e))}},select:{get:function(e){var t,n,i,r=e.options,s=e.selectedIndex,o="select-one"===e.type,a=o?null:[],l=o?s+1:r.length;for(i=s<0?l:o?s:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),s}}}}),C.each(["radio","checkbox"],(function(){C.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=C.inArray(C(e).val(),t)>-1}},g.checkOn||(C.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}));var Ot=i.location,It={guid:Date.now()},At=/\?/;C.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{t=(new i.DOMParser).parseFromString(e,"text/xml")}catch(e){}return n=t&&t.getElementsByTagName("parsererror")[0],t&&!n||C.error("Invalid XML: "+(n?C.map(n.childNodes,(function(e){return e.textContent})).join("\n"):e)),t};var Pt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e){e.stopPropagation()};C.extend(C.event,{trigger:function(e,t,n,r){var s,o,a,l,u,c,d,h,f=[n||b],m=p.call(e,"type")?e.type:e,g=p.call(e,"namespace")?e.namespace.split("."):[];if(o=h=a=n=n||b,3!==n.nodeType&&8!==n.nodeType&&!Pt.test(m+C.event.triggered)&&(m.indexOf(".")>-1&&(g=m.split("."),m=g.shift(),g.sort()),u=m.indexOf(":")<0&&"on"+m,(e=e[C.expando]?e:new C.Event(m,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=g.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:C.makeArray(t,[e]),d=C.event.special[m]||{},r||!d.trigger||!1!==d.trigger.apply(n,t))){if(!r&&!d.noBubble&&!_(n)){for(l=d.delegateType||m,Pt.test(l+m)||(o=o.parentNode);o;o=o.parentNode)f.push(o),a=o;a===(n.ownerDocument||b)&&f.push(a.defaultView||a.parentWindow||i)}for(s=0;(o=f[s++])&&!e.isPropagationStopped();)h=o,e.type=s>1?l:d.bindType||m,(c=(ae.get(o,"events")||Object.create(null))[e.type]&&ae.get(o,"handle"))&&c.apply(o,t),(c=u&&o[u])&&c.apply&&se(o)&&(e.result=c.apply(o,t),!1===e.result&&e.preventDefault());return e.type=m,r||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(f.pop(),t)||!se(n)||u&&v(n[m])&&!_(n)&&((a=n[u])&&(n[u]=null),C.event.triggered=m,e.isPropagationStopped()&&h.addEventListener(m,Nt),n[m](),e.isPropagationStopped()&&h.removeEventListener(m,Nt),C.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var i=C.extend(new C.Event,n,{type:e,isSimulated:!0});C.event.trigger(i,null,t)}}),C.fn.extend({trigger:function(e,t){return this.each((function(){C.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return C.event.trigger(e,t,n,!0)}});var Lt=/\[\]$/,Dt=/\r?\n/g,Rt=/^(?:submit|button|image|reset|file)$/i,jt=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,n,i){var r;if(Array.isArray(t))C.each(t,(function(t,r){n||Lt.test(e)?i(e,r):Bt(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)}));else if(n||"object"!==x(t))i(e,t);else for(r in t)Bt(e+"["+r+"]",t[r],n,i)}C.param=function(e,t){var n,i=[],r=function(e,t){var n=v(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!C.isPlainObject(e))C.each(e,(function(){r(this.name,this.value)}));else for(n in e)Bt(n,e[n],t,r);return i.join("&")},C.fn.extend({serialize:function(){return C.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=C.prop(this,"elements");return e?C.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!C(this).is(":disabled")&&jt.test(this.nodeName)&&!Rt.test(e)&&(this.checked||!Ce.test(e))})).map((function(e,t){var n=C(this).val();return null==n?null:Array.isArray(n)?C.map(n,(function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}})):{name:t.name,value:n.replace(Dt,"\r\n")}})).get()}});var zt=/%20/g,Ft=/#.*$/,$t=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)$/gm,qt=/^(?:GET|HEAD)$/,Vt=/^\/\//,Ht={},Wt={},Kt="*/".concat("*"),Gt=b.createElement("a");function Jt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,s=t.toLowerCase().match(K)||[];if(v(n))for(;i=s[r++];)"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Xt(e,t,n,i){var r={},s=e===Wt;function o(a){var l;return r[a]=!0,C.each(e[a]||[],(function(e,a){var u=a(t,n,i);return"string"!=typeof u||s||r[u]?s?!(l=u):void 0:(t.dataTypes.unshift(u),o(u),!1)})),l}return o(t.dataTypes[0])||!r["*"]&&o("*")}function Yt(e,t){var n,i,r=C.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&C.extend(!0,e,i),e}Gt.href=Ot.href,C.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ot.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Ot.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":C.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Yt(Yt(e,C.ajaxSettings),t):Yt(C.ajaxSettings,e)},ajaxPrefilter:Jt(Ht),ajaxTransport:Jt(Wt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var n,r,s,o,a,l,u,c,d,h,p=C.ajaxSetup({},t),f=p.context||p,m=p.context&&(f.nodeType||f.jquery)?C(f):C.event,g=C.Deferred(),v=C.Callbacks("once memory"),_=p.statusCode||{},y={},w={},x="canceled",S={readyState:0,getResponseHeader:function(e){var t;if(u){if(!o)for(o={};t=Ut.exec(s);)o[t[1].toLowerCase()+" "]=(o[t[1].toLowerCase()+" "]||[]).concat(t[2]);t=o[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return u?s:null},setRequestHeader:function(e,t){return null==u&&(e=w[e.toLowerCase()]=w[e.toLowerCase()]||e,y[e]=t),this},overrideMimeType:function(e){return null==u&&(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(u)S.always(e[S.status]);else for(t in e)_[t]=[_[t],e[t]];return this},abort:function(e){var t=e||x;return n&&n.abort(t),E(0,t),this}};if(g.promise(S),p.url=((e||p.url||Ot.href)+"").replace(Vt,Ot.protocol+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=(p.dataType||"*").toLowerCase().match(K)||[""],null==p.crossDomain){l=b.createElement("a");try{l.href=p.url,l.href=l.href,p.crossDomain=Gt.protocol+"//"+Gt.host!=l.protocol+"//"+l.host}catch(e){p.crossDomain=!0}}if(p.data&&p.processData&&"string"!=typeof p.data&&(p.data=C.param(p.data,p.traditional)),Xt(Ht,p,t,S),u)return S;for(d in(c=C.event&&p.global)&&0==C.active++&&C.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!qt.test(p.type),r=p.url.replace(Ft,""),p.hasContent?p.data&&p.processData&&0===(p.contentType||"").indexOf("application/x-www-form-urlencoded")&&(p.data=p.data.replace(zt,"+")):(h=p.url.slice(r.length),p.data&&(p.processData||"string"==typeof p.data)&&(r+=(At.test(r)?"&":"?")+p.data,delete p.data),!1===p.cache&&(r=r.replace($t,"$1"),h=(At.test(r)?"&":"?")+"_="+It.guid+++h),p.url=r+h),p.ifModified&&(C.lastModified[r]&&S.setRequestHeader("If-Modified-Since",C.lastModified[r]),C.etag[r]&&S.setRequestHeader("If-None-Match",C.etag[r])),(p.data&&p.hasContent&&!1!==p.contentType||t.contentType)&&S.setRequestHeader("Content-Type",p.contentType),S.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Kt+"; q=0.01":""):p.accepts["*"]),p.headers)S.setRequestHeader(d,p.headers[d]);if(p.beforeSend&&(!1===p.beforeSend.call(f,S,p)||u))return S.abort();if(x="abort",v.add(p.complete),S.done(p.success),S.fail(p.error),n=Xt(Wt,p,t,S)){if(S.readyState=1,c&&m.trigger("ajaxSend",[S,p]),u)return S;p.async&&p.timeout>0&&(a=i.setTimeout((function(){S.abort("timeout")}),p.timeout));try{u=!1,n.send(y,E)}catch(e){if(u)throw e;E(-1,e)}}else E(-1,"No Transport");function E(e,t,o,l){var d,h,b,y,w,x=t;u||(u=!0,a&&i.clearTimeout(a),n=void 0,s=l||"",S.readyState=e>0?4:0,d=e>=200&&e<300||304===e,o&&(y=function(e,t,n){for(var i,r,s,o,a=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)s=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){s=r;break}o||(o=r)}s=s||o}if(s)return s!==l[0]&&l.unshift(s),n[s]}(p,S,o)),!d&&C.inArray("script",p.dataTypes)>-1&&C.inArray("json",p.dataTypes)<0&&(p.converters["text script"]=function(){}),y=function(e,t,n,i){var r,s,o,a,l,u={},c=e.dataTypes.slice();if(c[1])for(o in e.converters)u[o.toLowerCase()]=e.converters[o];for(s=c.shift();s;)if(e.responseFields[s]&&(n[e.responseFields[s]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=s,s=c.shift())if("*"===s)s=l;else if("*"!==l&&l!==s){if(!(o=u[l+" "+s]||u["* "+s]))for(r in u)if((a=r.split(" "))[1]===s&&(o=u[l+" "+a[0]]||u["* "+a[0]])){!0===o?o=u[r]:!0!==u[r]&&(s=a[0],c.unshift(a[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(e){return{state:"parsererror",error:o?e:"No conversion from "+l+" to "+s}}}return{state:"success",data:t}}(p,y,S,d),d?(p.ifModified&&((w=S.getResponseHeader("Last-Modified"))&&(C.lastModified[r]=w),(w=S.getResponseHeader("etag"))&&(C.etag[r]=w)),204===e||"HEAD"===p.type?x="nocontent":304===e?x="notmodified":(x=y.state,h=y.data,d=!(b=y.error))):(b=x,!e&&x||(x="error",e<0&&(e=0))),S.status=e,S.statusText=(t||x)+"",d?g.resolveWith(f,[h,x,S]):g.rejectWith(f,[S,x,b]),S.statusCode(_),_=void 0,c&&m.trigger(d?"ajaxSuccess":"ajaxError",[S,p,d?h:b]),v.fireWith(f,[S,x]),c&&(m.trigger("ajaxComplete",[S,p]),--C.active||C.event.trigger("ajaxStop")))}return S},getJSON:function(e,t,n){return C.get(e,t,n,"json")},getScript:function(e,t){return C.get(e,void 0,t,"script")}}),C.each(["get","post"],(function(e,t){C[t]=function(e,n,i,r){return v(n)&&(r=r||i,i=n,n=void 0),C.ajax(C.extend({url:e,type:t,dataType:r,data:n,success:i},C.isPlainObject(e)&&e))}})),C.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),C._evalUrl=function(e,t,n){return C.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){C.globalEval(e,t,n)}})},C.fn.extend({wrapAll:function(e){var t;return this[0]&&(v(e)&&(e=e.call(this[0])),t=C(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return v(e)?this.each((function(t){C(this).wrapInner(e.call(this,t))})):this.each((function(){var t=C(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=v(e);return this.each((function(n){C(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){C(this).replaceWith(this.childNodes)})),this}}),C.expr.pseudos.hidden=function(e){return!C.expr.pseudos.visible(e)},C.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},C.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(e){}};var Qt={0:200,1223:204},Zt=C.ajaxSettings.xhr();g.cors=!!Zt&&"withCredentials"in Zt,g.ajax=Zt=!!Zt,C.ajaxTransport((function(e){var t,n;if(g.cors||Zt&&!e.crossDomain)return{send:function(r,s){var o,a=e.xhr();if(a.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)a[o]=e.xhrFields[o];for(o in e.mimeType&&a.overrideMimeType&&a.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)a.setRequestHeader(o,r[o]);t=function(e){return function(){t&&(t=n=a.onload=a.onerror=a.onabort=a.ontimeout=a.onreadystatechange=null,"abort"===e?a.abort():"error"===e?"number"!=typeof a.status?s(0,"error"):s(a.status,a.statusText):s(Qt[a.status]||a.status,a.statusText,"text"!==(a.responseType||"text")||"string"!=typeof a.responseText?{binary:a.response}:{text:a.responseText},a.getAllResponseHeaders()))}},a.onload=t(),n=a.onerror=a.ontimeout=t("error"),void 0!==a.onabort?a.onabort=n:a.onreadystatechange=function(){4===a.readyState&&i.setTimeout((function(){t&&n()}))},t=t("abort");try{a.send(e.hasContent&&e.data||null)}catch(e){if(t)throw e}},abort:function(){t&&t()}}})),C.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),C.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return C.globalEval(e),e}}}),C.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),C.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,r){t=C("
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Analyzing the impact of the lockdown on air quality in Delhi, India

A grid showing the India Gate in smog above and clear air below

What you’ll do

Calculate Air Quality Indices (AQI) and perform paired Student’s t-test on them.

What you’ll learn

  • You’ll learn the concept of moving averages

  • You’ll learn how to calculate Air Quality Index (AQI)

  • You’ll learn how to perform a paired Student’s t-test and find the t and p values

  • You’ll learn how to interpret these values

What you’ll need

  • SciPy installed in your environment

  • Basic understanding of statistical terms like population, sample, mean, standard deviation etc.


The problem of air pollution

Air pollution is one of the most prominent types of pollution we face that has an immediate effect on our daily lives. The +COVID-19 pandemic resulted in lockdowns in different parts of the world; offering a rare opportunity to study the effect of +human activity (or lack thereof) on air pollution. In this tutorial, we will study the air quality in Delhi, one of the +worst affected cities by air pollution, before and during the lockdown from March to June 2020. For this, we will first compute +the Air Quality Index for each hour from the collected pollutant measurements. Next, we will sample these indices and perform +a paired Student’s t-test on them. It will statistically show us that the air quality improved due to the lockdown, supporting our intuition.

Let’s start by importing the necessary libraries into our environment.

import numpy as np
+from numpy.random import default_rng
+from scipy import stats

Building the dataset

We will use a condensed version of the Air Quality Data in India dataset. This dataset contains air quality data and AQI (Air Quality Index) at hourly and daily level of various stations across multiple cities in India. The condensed version available with this tutorial contains hourly pollutant measurements for Delhi +from May 31, 2019 to June 30, 2020. It has measurements of the standard pollutants that are required for Air Quality Index calculation and a few other important ones: +Particulate Matter (PM 2.5 and PM 10), nitrogen dioxide (NO2), ammonia (NH3), sulfur dioxide (SO2), carbon monoxide (CO), ozone (O3), oxides of nitrogen (NOx), nitric oxide (NO), benzene, toluene, and xylene.

Let’s print out the first few rows to have a glimpse of our dataset.

! head air-quality-data.csv
Datetime,PM2.5,PM10,NO2,NH3,SO2,CO,O3,NOx,NO,Benzene,Toluene,Xylene
+2019-05-31 00:00:00,103.26,305.46,94.71,31.43,30.16,3.0,18.06,178.31,152.73,13.65,83.47,2.54
+2019-05-31 01:00:00,104.47,309.14,74.66,34.08,27.02,1.69,18.65,106.5,79.98,11.35,76.79,2.91
+2019-05-31 02:00:00,90.0,314.02,48.11,32.6,18.12,0.83,28.27,48.45,25.27,5.66,32.91,1.59
+2019-05-31 03:00:00,78.01,356.14,45.45,30.21,16.78,0.79,27.47,44.22,21.5,3.6,21.41,0.78
+2019-05-31 04:00:00,80.19,372.9,45.23,28.68,16.41,0.76,26.92,44.06,22.15,4.5,23.39,0.62
+2019-05-31 05:00:00,83.59,389.97,39.49,27.71,17.42,0.76,28.71,39.33,21.04,3.25,23.59,0.56
+2019-05-31 06:00:00,79.04,371.64,39.61,26.87,16.91,0.84,29.26,43.11,24.37,3.12,15.27,0.46
+2019-05-31 07:00:00,77.32,361.88,42.63,27.26,17.86,0.96,27.07,48.22,28.81,3.32,14.42,0.41
+2019-05-31 08:00:00,84.3,377.77,42.49,28.41,20.19,0.98,33.05,48.22,27.76,3.4,14.53,0.4
+

For the purpose of this tutorial, we are only concerned with standard pollutants required for calculating the AQI, viz., PM 2.5, PM 10, NO2, NH3, SO2, CO, and O3. So, we will only import these particular columns with np.loadtxt. We’ll then slice and create two sets: pollutants_A with PM 2.5, PM 10, NO2, NH3, and SO2, and pollutants_B with CO and O3. The +two sets will be processed slightly differently, as we’ll see later on.

pollutant_data = np.loadtxt("air-quality-data.csv", dtype=float, delimiter=",",
+                            skiprows=1, usecols=range(1, 8))
+pollutants_A = pollutant_data[:, 0:5]
+pollutants_B = pollutant_data[:, 5:]
+
+print(pollutants_A.shape)
+print(pollutants_B.shape)
(9528, 5)
+(9528, 2)
+

Our dataset might contain missing values, denoted by NaN, so let’s do a quick check with np.isfinite.

np.all(np.isfinite(pollutant_data))
np.True_

With this, we have successfully imported the data and checked that it is complete. Let’s move on to the AQI calculations!

Calculating the Air Quality Index

We will calculate the AQI using the method adopted by the Central Pollution Control Board of India. To summarize the steps:

  • Collect 24-hourly average concentration values for the standard pollutants; 8-hourly in case of CO and O3.

  • Calculate the sub-indices for these pollutants with the formula:

    Ip=IHi – ILoBPHi – BPLoCp – BPLo+ILoIp = \dfrac{\text{IHi – ILo}}{\text{BPHi – BPLo}}\cdot{\text{Cp – BPLo}} + \text{ILo}

    Where,

    Ip = sub-index of pollutant p
    Cp = averaged concentration of pollutant p
    BPHi = concentration breakpoint i.e. greater than or equal to Cp
    BPLo = concentration breakpoint i.e. less than or equal to Cp
    IHi = AQI value corresponding to BPHi
    ILo = AQI value corresponding to BPLo

  • The maximum sub-index at any given time is the Air Quality Index.

The Air Quality Index is calculated with the help of breakpoint ranges as shown in the chart below.

Chart of the breakpoint ranges

Let’s create two arrays to store the AQI ranges and breakpoints so that we can use them later for our calculations.

AQI = np.array([0, 51, 101, 201, 301, 401, 501])
+
+breakpoints = {
+    'PM2.5': np.array([0, 31, 61, 91, 121, 251]),
+    'PM10': np.array([0, 51, 101, 251, 351, 431]),
+    'NO2': np.array([0, 41, 81, 181, 281, 401]),
+    'NH3': np.array([0, 201, 401, 801, 1201, 1801]),
+    'SO2': np.array([0, 41, 81, 381, 801, 1601]),
+    'CO': np.array([0, 1.1, 2.1, 10.1, 17.1, 35]),
+    'O3': np.array([0, 51, 101, 169, 209, 749])
+}

Moving averages

For the first step, we have to compute moving averages for pollutants_A over a window of 24 hours and pollutants_B over a +window of 8 hours. We will write a simple function moving_mean using np.cumsum and sliced indexing to achieve this.

To make sure both the sets are of the same length, we will truncate the pollutants_B_8hr_avg according to the length of +pollutants_A_24hr_avg. This will also ensure we have concentrations for all the pollutants over the same period of time.

def moving_mean(a, n):
+    ret = np.cumsum(a, dtype=float, axis=0)
+    ret[n:] = ret[n:] - ret[:-n]
+    return ret[n - 1:] / n
+
+pollutants_A_24hr_avg = moving_mean(pollutants_A, 24)
+pollutants_B_8hr_avg = moving_mean(pollutants_B, 8)[-(pollutants_A_24hr_avg.shape[0]):]

Now, we can join both sets with np.concatenate to form a single data set of all the averaged concentrations. Note that we have to join our arrays column-wise so we pass the +axis=1 parameter.

pollutants = np.concatenate((pollutants_A_24hr_avg, pollutants_B_8hr_avg), axis=1)

Sub-indices

The subindices for each pollutant are calculated according to the linear relationship between the AQI and standard breakpoint ranges with the formula as above:

Ip=IHi – ILoBPHi – BPLoCp – BPLo+ILoIp = \dfrac{\text{IHi – ILo}}{\text{BPHi – BPLo}}\cdot{\text{Cp – BPLo}} + \text{ILo}

The compute_indices function first fetches the correct upper and lower bounds of AQI categories and breakpoint concentrations for the input concentration and pollutant with the help of arrays AQI and breakpoints we created above. Then, it feeds these values into the formula to calculate the sub-index.

def compute_indices(pol, con):
+    bp = breakpoints[pol]
+    
+    if pol == 'CO':
+        inc = 0.1
+    else:
+        inc = 1
+    
+    if bp[0] <= con < bp[1]:
+        Bl = bp[0]
+        Bh = bp[1] - inc
+        Ih = AQI[1] - inc
+        Il = AQI[0]
+
+    elif bp[1] <= con < bp[2]:
+        Bl = bp[1]
+        Bh = bp[2] - inc
+        Ih = AQI[2] - inc
+        Il = AQI[1]
+
+    elif bp[2] <= con < bp[3]:
+        Bl = bp[2]
+        Bh = bp[3] - inc
+        Ih = AQI[3] - inc
+        Il = AQI[2]
+
+    elif bp[3] <= con < bp[4]:
+        Bl = bp[3]
+        Bh = bp[4] - inc
+        Ih = AQI[4] - inc
+        Il = AQI[3]
+
+    elif bp[4] <= con < bp[5]:
+        Bl = bp[4]
+        Bh = bp[5] - inc
+        Ih = AQI[5] - inc
+        Il = AQI[4]
+
+    elif bp[5] <= con:
+        Bl = bp[5]
+        Bh = bp[5] + bp[4] - (2 * inc)
+        Ih = AQI[6]
+        Il = AQI[5]
+
+    else:
+        print("Concentration out of range!")
+        
+    return ((Ih - Il) / (Bh - Bl)) * (con - Bl) + Il

We will use np.vectorize to utilize the concept of vectorization. This simply means we don’t have loop over each element of the pollutant array ourselves. Vectorization is one of the key advantages of NumPy.

vcompute_indices = np.vectorize(compute_indices)

By calling our vectorized function vcompute_indices for each pollutant, we get the sub-indices. To get back an array with the original shape, we use np.stack.

sub_indices = np.stack((vcompute_indices('PM2.5', pollutants[..., 0]),
+                        vcompute_indices('PM10', pollutants[..., 1]),
+                        vcompute_indices('NO2', pollutants[..., 2]),
+                        vcompute_indices('NH3', pollutants[..., 3]),
+                        vcompute_indices('SO2', pollutants[..., 4]),
+                        vcompute_indices('CO', pollutants[..., 5]),
+                        vcompute_indices('O3', pollutants[..., 6])), axis=1)

Air quality indices

Using np.max, we find out the maximum sub-index for each period, which is our Air Quality Index!

aqi_array = np.max(sub_indices, axis=1)

With this, we have the AQI for every hour from June 1, 2019 to June 30, 2020. Note that even though we started out with +the data from 31st May, we truncated that during the moving averages step.

Paired Student’s t-test on the AQIs

Hypothesis testing is a form of descriptive statistics used to help us make decisions with the data. From the calculated AQI data, we want to find out if there was a statistically significant difference in average AQI before and after the lockdown was imposed. We will use the left-tailed, paired Student’s t-test to compute two test statistics- the t statistic and the p value. We will then compare these with the corresponding critical values to make a decision.

Normal distribution plot showing area of rejection in one-tailed test (left tailed)

Sampling

We will now import the datetime column from our original dataset into a datetime64 dtype array. We will use this array to index the AQI array and obtain subsets of the dataset.

datetime = np.loadtxt("air-quality-data.csv", dtype='M8[h]', delimiter=",",
+                         skiprows=1, usecols=(0, ))[-(pollutants_A_24hr_avg.shape[0]):]

Since total lockdown commenced in Delhi from March 24, 2020, the after-lockdown subset is of the period March 24, 2020 to June 30, 2020. The before-lockdown subset is for the same length of time before 24th March.

after_lock = aqi_array[np.where(datetime >= np.datetime64('2020-03-24T00'))]
+
+before_lock = aqi_array[np.where(datetime <= np.datetime64('2020-03-21T00'))][-(after_lock.shape[0]):]
+
+print(after_lock.shape)
+print(before_lock.shape)
(2376,)
+(2376,)
+

To make sure our samples are approximately normally distributed, we take samples of size n = 30. before_sample and after_sample are the set of random observations drawn before and after the total lockdown. We use random.Generator.choice to generate the samples.

rng = default_rng()
+
+before_sample = rng.choice(before_lock, size=30, replace=False)
+after_sample = rng.choice(after_lock, size=30, replace=False)

Defining the hypothesis

Let us assume that there is no significant difference between the sample means before and after the lockdown. This will be the null hypothesis. The alternative hypothesis would be that there is a significant difference between the means and the AQI improved. Mathematically,

H0:μafter-before=0H_{0}: \mu_\text{after-before} = 0
Ha:μafter-before<0H_{a}: \mu_\text{after-before} < 0

Calculating the test statistics

We will use the t statistic to evaluate our hypothesis and even calculate the p value from it. The formula for the t statistic is:

t=μafter-beforeσ2/nt = \frac{\mu_\text{after-before}}{\sqrt{\sigma^{2}/n}}

where,

μafter-before\mu_\text{after-before} = mean differences of samples
σ2\sigma^{2} = variance of mean differences
nn = sample size

def t_test(x, y):
+    diff = y - x
+    var = np.var(diff, ddof=1)
+    num = np.mean(diff)
+    denom = np.sqrt(var / len(x))
+    return np.divide(num, denom)
+
+t_value = t_test(before_sample, after_sample)

For the p value, we will use SciPy’s stats.distributions.t.cdf() function. It takes two arguments- the t statistic and the degrees of freedom (dof). The formula for dof is n - 1.

dof = len(before_sample) - 1
+
+p_value = stats.distributions.t.cdf(t_value, dof)
+
+print("The t value is {} and the p value is {}.".format(t_value, p_value))
The t value is -6.442706427324541 and the p value is 2.3821680975480706e-07.
+

What do the t and p values mean?

We will now compare the calculated test statistics with the critical test statistics. The critical t value is calculated by looking up the t-distribution table.

Table of selected t values at different confidence levels. T value for 29 dof at 95% confidence level is highlighted with a yellow square

From the table above, the critical value is 1.699 for 29 dof at a confidence level of 95%. Since we are using the left tailed test, our critical value is -1.699. Clearly, the calculated t value is less than the critical value so we can safely reject the null hypothesis.

The critical p value, denoted by α\alpha, is usually chosen to be 0.05, corresponding to a confidence level of 95%. If the calculated p value is less than α\alpha, then the null hypothesis can be safely rejected. Clearly, our p value is much less than α\alpha, so we can reject the null hypothesis.

Note that this does not mean we can accept the alternative hypothesis. It only tells us that there is not enough evidence to reject HaH_{a}. In other words, we fail to reject the alternative hypothesis so, it may be true.


In practice...

  • The pandas library is preferable to use for time-series data analysis.

  • The SciPy stats module provides the stats.ttest_rel function which can be used to get the t statistic and p value.

  • In real life, data are generally not normally distributed. There are tests for such non-normal data like the Wilcoxon test.

Further reading

  • There are various versions of the Student’s t-test that you can adopt according to your needs.

\ No newline at end of file diff --git a/tutorial-deep-learning-on-mnist.json b/tutorial-deep-learning-on-mnist.json new file mode 100644 index 00000000..656bca0b --- /dev/null +++ b/tutorial-deep-learning-on-mnist.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"f7e0ed529f434a920ee79efa037f938eeaab6451c6437fff75b4a63af68c9b68","slug":"tutorial-deep-learning-on-mnist","location":"/content/tutorial-deep-learning-on-mnist.md","dependencies":[],"frontmatter":{"title":"Deep learning on MNIST","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-deep-learning-on-mnist.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-deep-learning-on-mnist.md","thumbnail":"/numpy-tutorials/build/tutorial-deep-learni-1a6932c38d13641ad9a1eda7d431b1f5.png","exports":[{"format":"md","filename":"tutorial-deep-learning-on-mnist.md","url":"/numpy-tutorials/build/tutorial-deep-learni-3299eef5d4d2ec39b6c8b9d0c5a1dedb.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"children":[{"type":"text","value":"This tutorial demonstrates how to build a simple ","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"ILwelrAcRB"},{"type":"link","url":"https://en.wikipedia.org/wiki/Feedforward_neural_network","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"children":[{"type":"text","value":"feedforward neural network","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"BgwQqtmXGN"}],"urlSource":"https://en.wikipedia.org/wiki/Feedforward_neural_network","data":{"page":"Feedforward_neural_network","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"q6hBbCCMnx"},{"type":"text","value":" (with one hidden layer) and train it from scratch with NumPy to recognize handwritten digit images.","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"key":"qi2MqZZ41i"}],"key":"YlrkKsRt28"},{"type":"paragraph","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Your deep learning model — one of the most basic artificial neural networks that resembles the original ","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"T122l9a114"},{"type":"link","url":"https://en.wikipedia.org/wiki/Multilayer_perceptron","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"multi-layer perceptron","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"K44iEn5W1X"}],"urlSource":"https://en.wikipedia.org/wiki/Multilayer_perceptron","data":{"page":"Multilayer_perceptron","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"b5bFkGoYB7"},{"type":"text","value":" — will learn to classify digits from 0 to 9 from the ","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"e8ZiCxmTVM"},{"type":"link","url":"https://en.wikipedia.org/wiki/MNIST_database","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"MNIST","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"IT980zI6kG"}],"urlSource":"https://en.wikipedia.org/wiki/MNIST_database","data":{"page":"MNIST_database","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"I78OyJIlbI"},{"type":"text","value":" dataset. The dataset contains 60,000 training and 10,000 test images and corresponding labels. Each training and test image is of size 784 (or 28x28 pixels) — this will be your input for the neural network.","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"GAw3uaWA5T"}],"key":"sGubNfy7DB"},{"type":"paragraph","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"Based on the image inputs and their labels (","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"jFfHPSAHOr"},{"type":"link","url":"https://en.wikipedia.org/wiki/Supervised_learning","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"supervised learning","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"Y46rWJg7ym"}],"urlSource":"https://en.wikipedia.org/wiki/Supervised_learning","data":{"page":"Supervised_learning","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"egIz3UXGXW"},{"type":"text","value":"), your neural network will be trained to learn their features using forward propagation and backpropagation (","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"KagvA2r7s3"},{"type":"link","url":"https://en.wikipedia.org/wiki/Automatic_differentiation#Reverse_accumulation","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"text","value":"reverse-mode","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"ALyV6HVBkd"}],"urlSource":"https://en.wikipedia.org/wiki/Automatic_differentiation#Reverse_accumulation","data":{"page":"Automatic_differentiation#Reverse_accumulation","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"dPToMEKVnG"},{"type":"text","value":" differentiation). The final output of the network is a vector of 10 scores — one for each handwritten digit image. You will also evaluate how good your model is at classifying the images on the test set.","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"i68eF7zojz"}],"key":"CBUHjPtcKJ"},{"type":"image","url":"/numpy-tutorials/build/tutorial-deep-learni-1a6932c38d13641ad9a1eda7d431b1f5.png","alt":"Diagram showing operations detailed in this tutorial (The input imageis passed into a Hidden layer that creates a weighted sum of outputs.The weighted sum is passed to the Non-linearity, then regularization andinto the output layer. The output layer creates a prediction which canthen be compared to existing data. The errors are used to calculate theloss function and update weights in the hidden layer and outputlayer.)","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"b8DgzJgGYU","urlSource":"_static/tutorial-deep-learning-on-mnist.png"},{"type":"paragraph","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"This tutorial was adapted from the work by ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"ij7aMz0GgF"},{"type":"link","url":"https://github.com/iamtrask/Grokking-Deep-Learning","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"Andrew Trask","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"osPMIQjWc7"}],"urlSource":"https://github.com/iamtrask/Grokking-Deep-Learning","error":true,"key":"IaziLS8xYi"},{"type":"text","value":" (with the author’s permission).","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"i9oks3vmY5"}],"key":"UAaXk0eANh"},{"type":"heading","depth":2,"position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"text","value":"Prerequisites","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"NY5eI9eUDp"}],"identifier":"prerequisites","label":"Prerequisites","html_id":"prerequisites","implicit":true,"key":"iG3LFhNUcC"},{"type":"paragraph","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"The reader should have some knowledge of Python, NumPy array manipulation, and linear algebra. In addition, you should be familiar with main concepts of ","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"I2Hn7Wvr3q"},{"type":"link","url":"https://en.wikipedia.org/wiki/Deep_learning","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"deep learning","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"TnVjXvKA8Y"}],"urlSource":"https://en.wikipedia.org/wiki/Deep_learning","data":{"page":"Deep_learning","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"pVgDWmFtcu"},{"type":"text","value":".","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"Lh2BfTfBaa"}],"key":"vc11Je4xe4"},{"type":"paragraph","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"text","value":"To refresh the memory, you can take the ","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"eWR413eYMW"},{"type":"link","url":"https://docs.python.org/dev/tutorial/index.html","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"text","value":"Python","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"tMO2RGCUzD"}],"urlSource":"https://docs.python.org/dev/tutorial/index.html","key":"wvLOwI7s2Y"},{"type":"text","value":" and ","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"o52zc94njx"},{"type":"link","url":"/tutorial-svd","urlSource":"tutorial-svd","dataUrl":"/tutorial-svd.json","internal":true,"children":[{"type":"text","value":"Linear algebra on n-dimensional arrays","key":"ZyvrXljTGn"}],"protocol":"file","key":"LHyBHdf8nv"},{"type":"text","value":" tutorials.","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"b1LjnYCMrr"}],"key":"eG5jwaqzwH"},{"type":"paragraph","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"text","value":"You are advised to read the ","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"llVaKWmiZ3"},{"type":"link","url":"http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"text","value":"Deep learning","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"WSxnH5BFQ6"}],"urlSource":"http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf","key":"FTu2dgYI8w"},{"type":"text","value":" paper published in 2015 by Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, who are regarded as some of the pioneers of the field. You should also consider reading Andrew Trask’s ","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"Gy2GdZtY1r"},{"type":"link","url":"https://www.manning.com/books/grokking-deep-learning","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"text","value":"Grokking Deep Learning","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"VhXMJBczrb"}],"urlSource":"https://www.manning.com/books/grokking-deep-learning","key":"d6CwWhz8SN"},{"type":"text","value":", which teaches deep learning with NumPy.","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"QQxyGj6poo"}],"key":"pZBcYloxtJ"},{"type":"paragraph","position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"text","value":"In addition to NumPy, you will be utilizing the following Python standard modules for data loading and processing:","position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"key":"NGCCHTRGIk"}],"key":"Ca3YPwHx3m"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":41,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"link","url":"https://docs.python.org/3/library/urllib.html","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"inlineCode","value":"urllib","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"yYj5nKAhDI"}],"urlSource":"https://docs.python.org/3/library/urllib.html","key":"AAlEOoJsuG"},{"type":"text","value":" for URL handling","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"uu2gXhPmuF"}],"key":"RkAejQzuFJ"}],"key":"TWsjskZrQb"},{"type":"listItem","spread":true,"position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"children":[{"type":"link","url":"https://docs.python.org/3/library/urllib.request.html","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"children":[{"type":"inlineCode","value":"request","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"key":"ds2eywNX0s"}],"urlSource":"https://docs.python.org/3/library/urllib.request.html","key":"xGRRxHgTEJ"},{"type":"text","value":" for URL opening","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"key":"D5LKBu4p5Z"}],"key":"FyVGAXtSrL"}],"key":"RUsddK8Mpo"},{"type":"listItem","spread":true,"position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"link","url":"https://docs.python.org/3/library/gzip.html","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"inlineCode","value":"gzip","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"I7FFlrtjXg"}],"urlSource":"https://docs.python.org/3/library/gzip.html","key":"ud8kH4QNiu"},{"type":"text","value":" for gzip file decompression","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"cyIoROQvqz"}],"key":"uNUlDC79zI"}],"key":"UUlKZIAzQJ"},{"type":"listItem","spread":true,"position":{"start":{"line":44,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"children":[{"type":"link","url":"https://docs.python.org/3/library/pickle.html","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"children":[{"type":"inlineCode","value":"pickle","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"key":"q6zJphlDW6"}],"urlSource":"https://docs.python.org/3/library/pickle.html","key":"iyyQrOnX7o"},{"type":"text","value":" to work with the pickle file format","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"key":"PyxBsmb6iR"}],"key":"uZwP5B52oq"},{"type":"paragraph","position":{"start":{"line":46,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"text","value":"as well as:","position":{"start":{"line":46,"column":1},"end":{"line":46,"column":1}},"key":"Xgt8I7kEnU"}],"key":"RmSg7ZEEKw"}],"key":"lAkZMboaA3"},{"type":"listItem","spread":true,"position":{"start":{"line":47,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"fQdKYEXQYe"}],"urlSource":"https://matplotlib.org/","key":"fh2lBwUVdC"},{"type":"text","value":" for data visualization","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"DrfqPXPviL"}],"key":"pSg0rDWbGv"}],"key":"UqAFgeR79K"}],"key":"f9c4Ko1Byb"},{"type":"paragraph","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"This tutorial can be run locally in an isolated environment, such as ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"BC87HSIwJO"},{"type":"link","url":"https://virtualenv.pypa.io/en/stable/","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"Virtualenv","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"uZ62GIAiHN"}],"urlSource":"https://virtualenv.pypa.io/en/stable/","key":"w8lkzmGMRb"},{"type":"text","value":" or ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"HuVuHR7oMD"},{"type":"link","url":"https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"conda","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"SgI3wwrOfH"}],"urlSource":"https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html","key":"DQ1TCRzEz8"},{"type":"text","value":". You can use ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"xsPwxNcHOv"},{"type":"link","url":"https://jupyter.org/install","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"Jupyter Notebook or JupyterLab","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"DYeK46Dqs3"}],"urlSource":"https://jupyter.org/install","key":"GMXb0GQY0d"},{"type":"text","value":" to run each notebook cell. Don’t forget to ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"X0q6tzL9or"},{"type":"link","url":"https://numpy.org/doc/stable/user/absolute_beginners.html#installing-numpy","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"set up NumPy","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"uINoL4aRye"}],"urlSource":"https://numpy.org/doc/stable/user/absolute_beginners.html#installing-numpy","key":"iIFA1Uwi5D"},{"type":"text","value":" and ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"bBa0OjotsB"},{"type":"link","url":"https://matplotlib.org/users/installing.html#installing-an-official-release","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"bXo3bjPkSm"}],"urlSource":"https://matplotlib.org/users/installing.html#installing-an-official-release","key":"iL7aUjT6bL"},{"type":"text","value":".","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"O7FEFqGL58"}],"key":"Pv8uB9705n"},{"type":"heading","depth":2,"position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"children":[{"type":"text","value":"Table of contents","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"W1ekzltZIq"}],"identifier":"table-of-contents","label":"Table of contents","html_id":"table-of-contents","implicit":true,"key":"DTFhngZ8CH"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":53,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":53,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"children":[{"type":"text","value":"Load the MNIST dataset","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"key":"vERrBHz8fr"}],"key":"fxMKpAOBmu"}],"key":"tmwjvapGyW"},{"type":"listItem","spread":true,"position":{"start":{"line":55,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"Preprocess the dataset","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"vNJV8mnfMx"}],"key":"pF98pHIifX"}],"key":"PfRkMTW01n"},{"type":"listItem","spread":true,"position":{"start":{"line":57,"column":1},"end":{"line":58,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"text","value":"Build and train a small neural network from scratch","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"P4vcguti6l"}],"key":"SBwpPSdrUJ"}],"key":"GB0upFPBn1"},{"type":"listItem","spread":true,"position":{"start":{"line":59,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"text","value":"Next steps","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"key":"pRPyLGduLm"}],"key":"VPLc0uAHET"}],"key":"KLuIgycDLm"}],"key":"l8KNGKSrxZ"},{"type":"thematicBreak","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"U8fQxDRJ06"},{"type":"heading","depth":2,"position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"children":[{"type":"text","value":"1. Load the MNIST dataset","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"AZKLkc7dcT"}],"identifier":"id-1-load-the-mnist-dataset","label":"1. Load the MNIST dataset","html_id":"id-1-load-the-mnist-dataset","implicit":true,"key":"wqra9IkCS1"},{"type":"paragraph","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"children":[{"type":"text","value":"In this section, you will download the zipped MNIST dataset files originally developed by Yann LeCun’s research team. (More details of the MNIST dataset are available on ","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"sqRbQHlU6c"},{"type":"link","url":"https://www.kaggle.com/datasets/hojjatk/mnist-dataset","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"children":[{"type":"text","value":"Kaggle","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"NUtt5M3A6k"}],"urlSource":"https://www.kaggle.com/datasets/hojjatk/mnist-dataset","key":"ByedK6yfRC"},{"type":"text","value":".) Then, you will transform them into 4 files of NumPy array type using built-in Python modules. Finally, you will split the arrays into training and test sets.","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"key":"EX8eVlwvU3"}],"key":"AYttO3IMvW"},{"type":"paragraph","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"strong","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"xSrcZm01Xy"}],"key":"pHjc8SoVfc"},{"type":"text","value":" Define a variable to store the training/test image/label names of the MNIST dataset in a list:","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"iJaub8zOCv"}],"key":"TRXWjBg9MC"}],"key":"WuihpwoFiF"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"data_sources = {\n \"training_images\": \"train-images-idx3-ubyte.gz\", # 60,000 training images.\n \"test_images\": \"t10k-images-idx3-ubyte.gz\", # 10,000 test images.\n \"training_labels\": \"train-labels-idx1-ubyte.gz\", # 60,000 training labels.\n \"test_labels\": \"t10k-labels-idx1-ubyte.gz\", # 10,000 test labels.\n}","key":"xRPwV1KIfs"},{"type":"outputs","id":"UUtI3by-prw5T0qkp8Ych","children":[],"key":"BQO91nuckQ"}],"key":"ojetBavzi5"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":78,"column":1},"end":{"line":79,"column":1}},"children":[{"type":"strong","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"AFxZkJTyoE"}],"key":"iXPoacjzjE"},{"type":"text","value":" Load the data. First check if the data is stored locally; if not, then\ndownload it.","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"mGYsPsMAMu"}],"key":"hgwfa7H4ht"}],"key":"wiSvr8Ufsb"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# Use responsibly! When running notebooks locally, be sure to keep local\n# copies of the datasets to prevent unnecessary server requests\nheaders = {\n \"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20100101 Firefox/10.0\"\n}\nrequest_opts = {\n \"headers\": headers,\n \"params\": {\"raw\": \"true\"},\n}","visibility":"show","key":"gqbVRYSOzH"},{"type":"outputs","id":"ViLn6bqPf4vsBK0NidiXU","children":[],"visibility":"show","key":"N2DAHU4isn"}],"data":{"tags":[]},"visibility":"remove","key":"VNqyyaw9YY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import requests\nimport os\n\ndata_dir = \"../_data\"\nos.makedirs(data_dir, exist_ok=True)\n\nbase_url = \"https://ossci-datasets.s3.amazonaws.com/mnist/\"\n\nfor fname in data_sources.values():\n fpath = os.path.join(data_dir, fname)\n if not os.path.exists(fpath):\n print(\"Downloading file: \" + fname)\n resp = requests.get(base_url + fname, stream=True, **request_opts)\n resp.raise_for_status() # Ensure download was succesful\n with open(fpath, \"wb\") as fh:\n for chunk in resp.iter_content(chunk_size=128):\n fh.write(chunk)","key":"GeSuTAs99l"},{"type":"outputs","id":"pxLFqwVNpp3SQJAmg-Pgq","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Downloading file: train-images-idx3-ubyte.gz\n"},"key":"mdvINELzAR"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Downloading file: t10k-images-idx3-ubyte.gz\nDownloading file: train-labels-idx1-ubyte.gz\n"},"key":"CXF80H2Hd6"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Downloading file: t10k-labels-idx1-ubyte.gz\n"},"key":"E6eDK5yF9V"}],"key":"f5Vm6asDcj"}],"key":"hZgHtZnOZo"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"children":[{"type":"strong","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"key":"kxEtkA0w4x"}],"key":"nvgwj89Blx"},{"type":"text","value":" Decompress the 4 files and create 4 ","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"key":"KIOw0s9NG7"},{"type":"link","url":"https://numpy.org/doc/stable/reference/arrays.ndarray.html","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"children":[{"type":"inlineCode","value":"ndarrays","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"key":"h5lbjjr7nK"}],"urlSource":"https://numpy.org/doc/stable/reference/arrays.ndarray.html","key":"wCP4dj9zDY"},{"type":"text","value":", saving them into a dictionary. Each original image is of size 28x28 and neural networks normally expect a 1D vector input; therefore, you also need to reshape the images by multiplying 28 by 28 (784).","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"key":"wFqVYWgGMN"}],"key":"Ekq4BY3EIU"}],"key":"TSWrzNK53n"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import gzip\nimport numpy as np\n\nmnist_dataset = {}\n\n# Images\nfor key in (\"training_images\", \"test_images\"):\n with gzip.open(os.path.join(data_dir, data_sources[key]), \"rb\") as mnist_file:\n mnist_dataset[key] = np.frombuffer(\n mnist_file.read(), np.uint8, offset=16\n ).reshape(-1, 28 * 28)\n# Labels\nfor key in (\"training_labels\", \"test_labels\"):\n with gzip.open(os.path.join(data_dir, data_sources[key]), \"rb\") as mnist_file:\n mnist_dataset[key] = np.frombuffer(mnist_file.read(), np.uint8, offset=8)","key":"InTwBJcuUh"},{"type":"outputs","id":"8WEfgi2vthJJ6qTgSGpaE","children":[],"key":"Kp08aPRLrM"}],"key":"EMEIsv8ou6"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"children":[{"type":"strong","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"children":[{"type":"text","value":"4.","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"HjLiwM6yHa"}],"key":"TZZQyTF2Zf"},{"type":"text","value":" Split the data into training and test sets using the standard notation of ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"AMACwfJWGz"},{"type":"inlineCode","value":"x","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"XVPPhNA7ck"},{"type":"text","value":" for data and ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"dhXKkvD2rr"},{"type":"inlineCode","value":"y","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"kqFq4q510y"},{"type":"text","value":" for labels, calling the training and test set images ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"PS43OZD8Qp"},{"type":"inlineCode","value":"x_train","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"UwcqeJXgpE"},{"type":"text","value":" and ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"DJ6K8zpSAG"},{"type":"inlineCode","value":"x_test","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"gFq7phMdYE"},{"type":"text","value":", and the labels ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"Y7eRp6cupi"},{"type":"inlineCode","value":"y_train","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"KKJ6MzGdvU"},{"type":"text","value":" and ","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"tJ8Fx8bxYS"},{"type":"inlineCode","value":"y_test","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"mEkuJxrPgy"},{"type":"text","value":":","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"QRUzwBFeDF"}],"key":"L4oqCzu4YT"}],"key":"vSwxF2mvBl"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x_train, y_train, x_test, y_test = (\n mnist_dataset[\"training_images\"],\n mnist_dataset[\"training_labels\"],\n mnist_dataset[\"test_images\"],\n mnist_dataset[\"test_labels\"],\n)","key":"vAx3IkOhlF"},{"type":"outputs","id":"dSabR4hxuMZZXvmfKg7IB","children":[],"key":"GRO7ElZlAS"}],"key":"DnbWFQVGnb"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"children":[{"type":"strong","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"children":[{"type":"text","value":"5.","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"kRDj8I1pjJ"}],"key":"DIi7xI2Tlb"},{"type":"text","value":" You can confirm that the shape of the image arrays is ","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"mqF0QzOsOF"},{"type":"inlineCode","value":"(60000, 784)","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"lJjPzm9eqj"},{"type":"text","value":" and ","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"M9s13by0XZ"},{"type":"inlineCode","value":"(10000, 784)","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"P5jtM8Z6wV"},{"type":"text","value":" for training and test sets, respectively, and the labels — ","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"WzscS1LGna"},{"type":"inlineCode","value":"(60000,)","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"nCIMaeHbuC"},{"type":"text","value":" and ","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"CrSmPmyla6"},{"type":"inlineCode","value":"(10000,)","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"sAK5wlpkJc"},{"type":"text","value":":","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"fFI36mYHo9"}],"key":"j7LlQ75sHx"}],"key":"EKtXnr1Lkq"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\n \"The shape of training images: {} and training labels: {}\".format(\n x_train.shape, y_train.shape\n )\n)\nprint(\n \"The shape of test images: {} and test labels: {}\".format(\n x_test.shape, y_test.shape\n )\n)","key":"p6O3VH3ZHH"},{"type":"outputs","id":"ClqyouFDKMK_3FBm8QHOR","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The shape of training images: (60000, 784) and training labels: (60000,)\nThe shape of test images: (10000, 784) and test labels: (10000,)\n"},"key":"RbidqJA0p2"}],"key":"KnXOS73oV6"}],"key":"Q2FRNKgaEF"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"children":[{"type":"strong","position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"children":[{"type":"text","value":"6.","position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"key":"X6wAia6NVG"}],"key":"JQKdDpSaLA"},{"type":"text","value":" And you can inspect some images using Matplotlib:","position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"key":"FnGkuTGICy"}],"key":"VCygemhh84"}],"key":"ogVGexhXAF"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\n\n# Take the 60,000th image (indexed at 59,999) from the training set,\n# reshape from (784, ) to (28, 28) to have a valid shape for displaying purposes.\nmnist_image = x_train[59999, :].reshape(28, 28)\n\nfig, ax = plt.subplots()\n# Set the color mapping to grayscale to have a black background.\nax.imshow(mnist_image, cmap=\"gray\")","key":"NVkKlDZKYI"},{"type":"outputs","id":"AjcplhLREhw2WQEeMlBw5","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"e018622a0b32aae6fc08527a27232984","path":"/numpy-tutorials/build/e018622a0b32aae6fc08527a27232984.png"}}},"key":"cGeezCdKcx"}],"key":"DRmXgyP5rV"}],"key":"JfTTN7owIE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# Display 5 random images from the training set.\nnum_examples = 5\nseed = 147197952744\nrng = np.random.default_rng(seed)\n\nfig, axes = plt.subplots(1, num_examples)\nfor sample, ax in zip(rng.choice(x_train, size=num_examples, replace=False), axes):\n ax.imshow(sample.reshape(28, 28), cmap=\"gray\")","key":"JR7SMA8S9X"},{"type":"outputs","id":"H3zPDTlW5gY_iOA0tF2oY","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"b38af87a5e32f7a78feb44788a3ac955","path":"/numpy-tutorials/build/b38af87a5e32f7a78feb44788a3ac955.png"}}},"key":"zzCmCxFjXE"}],"key":"EYptBuJWCM"}],"key":"jCSqpWAYhO"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":186,"column":1},"end":{"line":187,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":186,"column":1},"end":{"line":186,"column":1}},"children":[{"type":"text","value":"Above are five images taken from the MNIST training set. Various hand-drawn\nArabic numerals are shown, with exact values chosen randomly with each run of the code.","position":{"start":{"line":186,"column":1},"end":{"line":186,"column":1}},"key":"TMbRGmGerb"}],"key":"xL38fKhrNa"}],"key":"liP6hqPCqq"},{"type":"blockquote","position":{"start":{"line":189,"column":1},"end":{"line":198,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"children":[{"type":"strong","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"children":[{"type":"text","value":"Note:","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"WVNub6KZWC"}],"key":"RsrzjmKAEC"},{"type":"text","value":" You can also visualize a sample image as an array by printing ","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"DxZqN7kIGq"},{"type":"inlineCode","value":"x_train[59999]","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"p6DRtROtjo"},{"type":"text","value":". Here, ","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"MUb1elPMwm"},{"type":"inlineCode","value":"59999","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"SkcXVeAn2x"},{"type":"text","value":" is your 60,000th training image sample (","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"koXptUH9ow"},{"type":"inlineCode","value":"0","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"T1My45Jdnt"},{"type":"text","value":" would be your first). Your output will be quite long and should contain an array of 8-bit integers:","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"meyQnNcjzp"}],"key":"cTcOjTm6t6"},{"type":"code","lang":"","value":"...\n 0, 0, 38, 48, 48, 22, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 62, 97, 198, 243, 254, 254, 212, 27, 0, 0, 0, 0,\n...","position":{"start":{"line":192,"column":1},"end":{"line":198,"column":1}},"key":"F981UjNRVB"}],"key":"AAbTygHea7"}],"key":"oUxKZIfZgN"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# Display the label of the 60,000th image (indexed at 59,999) from the training set.\ny_train[59999]","key":"EZVpyjA2pL"},{"type":"outputs","id":"ss8hmEstPBB9Mi43tX7cQ","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":9,"metadata":{},"data":{"text/plain":{"content":"np.uint8(8)","content_type":"text/plain"}}},"key":"wzcZnkz1sV"}],"key":"CWfwTK4vLF"}],"key":"I9s4DP27j1"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"children":[{"type":"text","value":"2. Preprocess the data","position":{"start":{"line":205,"column":1},"end":{"line":205,"column":1}},"key":"UrQPICOeta"}],"identifier":"id-2-preprocess-the-data","label":"2. Preprocess the data","html_id":"id-2-preprocess-the-data","implicit":true,"key":"YjM5vioPDn"},{"type":"paragraph","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"children":[{"type":"text","value":"Neural networks can work with inputs that are in a form of tensors (multidimensional arrays) of floating-point type. When preprocessing the data, you should consider the following processes: ","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"agddmjOJu3"},{"type":"link","url":"https://en.wikipedia.org/wiki/Vectorization_%28mathematics%29","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"children":[{"type":"text","value":"vectorization","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"TDOnufs0W1"}],"urlSource":"https://en.wikipedia.org/wiki/Vectorization_%28mathematics%29","data":{"page":"Vectorization_%28mathematics%29","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"orpCD0nM8J"},{"type":"text","value":" and ","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"vYJxAcwxOW"},{"type":"link","url":"https://en.wikipedia.org/wiki/Floating-point_arithmetic#Floating-point_numbers","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"children":[{"type":"text","value":"conversion to a floating-point format","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"SknH8t4bNh"}],"urlSource":"https://en.wikipedia.org/wiki/Floating-point_arithmetic#Floating-point_numbers","data":{"page":"Floating-point_arithmetic#Floating-point_numbers","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"wk5dH0EgLO"},{"type":"text","value":".","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"xu0t9DbmnI"}],"key":"nt1nPrNwL1"},{"type":"paragraph","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"text","value":"Since the MNIST data is already vectorized and the arrays are of ","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"JuoPbfyfD4"},{"type":"inlineCode","value":"dtype","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"vU9ZG5d5HS"},{"type":"text","value":" ","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"MPv4ow1Tlf"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"ubsKVcx2tk"},{"type":"text","value":", your next challenge is to convert them to a floating-point format, such as ","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"dtsbErH7wr"},{"type":"inlineCode","value":"float64","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"evIoLvk0az"},{"type":"text","value":" (","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"Pz0uGNcizD"},{"type":"link","url":"https://en.wikipedia.org/wiki/Double-precision_floating-point_format","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"text","value":"double-precision","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"p4wAmD7kXZ"}],"urlSource":"https://en.wikipedia.org/wiki/Double-precision_floating-point_format","data":{"page":"Double-precision_floating-point_format","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"SIbYNVSZhY"},{"type":"text","value":"):","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"Zfay8vnoiy"}],"key":"lYTnoUWGkT"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":211,"column":1},"end":{"line":213,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"children":[{"type":"text","value":"Normalizing","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"SQGbtsvDpM"}],"key":"sMCW6j3KuI"},{"type":"text","value":" the image data: a ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"bloUNYy16u"},{"type":"link","url":"https://en.wikipedia.org/wiki/Feature_scaling#Application","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"children":[{"type":"text","value":"feature scaling","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"gg8ntCY23M"}],"urlSource":"https://en.wikipedia.org/wiki/Feature_scaling#Application","data":{"page":"Feature_scaling#Application","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"tV7ea7D3wV"},{"type":"text","value":" procedure that can speed up the neural network training process by standardizing the ","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"zlFADYJ1rz"},{"type":"link","url":"https://arxiv.org/pdf/1502.03167.pdf","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"children":[{"type":"text","value":"distribution of your input data","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"uyqV1WrCOC"}],"urlSource":"https://arxiv.org/pdf/1502.03167.pdf","key":"kLbCg2IDLB"},{"type":"text","value":".","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"VBzEzt7pyi"}],"key":"uWJQBsti1g"}],"key":"TWdid3l21B"},{"type":"listItem","spread":true,"position":{"start":{"line":212,"column":1},"end":{"line":213,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/One-hot","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"children":[{"type":"text","value":"One-hot/categorical encoding","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"key":"iqFY7utMvb"}],"urlSource":"https://en.wikipedia.org/wiki/One-hot","data":{"page":"One-hot","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"mXTPtkU9ge"}],"key":"MWDK1D1btS"},{"type":"text","value":" of the image labels.","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"key":"BgY4zvsChH"}],"key":"kyRUGRfWX0"}],"key":"BhC28VDXrL"}],"key":"wlsMisHMRZ"},{"type":"paragraph","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"In practice, you can use different types of floating-point precision depending on your goals and you can find more information about that in the ","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"FXC4XJM4BE"},{"type":"link","url":"https://blogs.nvidia.com/blog/2019/11/15/whats-the-difference-between-single-double-multi-and-mixed-precision-computing/","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"Nvidia","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"oYwyYj4f5O"}],"urlSource":"https://blogs.nvidia.com/blog/2019/11/15/whats-the-difference-between-single-double-multi-and-mixed-precision-computing/","key":"IuFJiUQUec"},{"type":"text","value":" and ","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"jXI9IKOolQ"},{"type":"link","url":"https://cloud.google.com/blog/products/ai-machine-learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"Google Cloud","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"IHSt0zvX7d"}],"urlSource":"https://cloud.google.com/blog/products/ai-machine-learning/bfloat16-the-secret-to-high-performance-on-cloud-tpus","key":"KgtwjEdfWu"},{"type":"text","value":" blog posts.","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"Oqy66Dg2dq"}],"key":"d5t8Qsg9F6"},{"type":"heading","depth":3,"position":{"start":{"line":216,"column":1},"end":{"line":216,"column":1}},"children":[{"type":"text","value":"Convert the image data to the floating-point format","position":{"start":{"line":216,"column":1},"end":{"line":216,"column":1}},"key":"ryZclrpPb6"}],"identifier":"convert-the-image-data-to-the-floating-point-format","label":"Convert the image data to the floating-point format","html_id":"convert-the-image-data-to-the-floating-point-format","implicit":true,"key":"EUYutIYxRj"},{"type":"paragraph","position":{"start":{"line":218,"column":1},"end":{"line":218,"column":1}},"children":[{"type":"text","value":"The images data contain 8-bit integers encoded in the [0, 255] interval with color values between 0 and 255.","position":{"start":{"line":218,"column":1},"end":{"line":218,"column":1}},"key":"NXplrcl9RT"}],"key":"h3NtQZSuuG"},{"type":"paragraph","position":{"start":{"line":220,"column":1},"end":{"line":220,"column":1}},"children":[{"type":"text","value":"You will normalize them into floating-point arrays in the [0, 1] interval by dividing them by 255.","position":{"start":{"line":220,"column":1},"end":{"line":220,"column":1}},"key":"USFJBUnxKD"}],"key":"bz4PvigDFo"},{"type":"paragraph","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"children":[{"type":"strong","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"onPWb03TAl"}],"key":"imfeo8UrQf"},{"type":"text","value":" Check that the vectorized image data has type ","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"b4s3vUkqye"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"boJpIdXd0W"},{"type":"text","value":":","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"gFT7Q0N3Mi"}],"key":"JfdY6jGOtp"}],"key":"wPzkml0GMM"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type of training images: {}\".format(x_train.dtype))\nprint(\"The data type of test images: {}\".format(x_test.dtype))","key":"bXU8c4piUh"},{"type":"outputs","id":"7Kl8MTLePMU8dDJUvWrf5","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type of training images: uint8\nThe data type of test images: uint8\n"},"key":"m1nH8M5hDS"}],"key":"Wa2pqwLGGC"}],"key":"IRKCA8S7zV"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":229,"column":1},"end":{"line":235,"column":1}},"children":[{"type":"strong","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"lGgvUEyNKN"}],"key":"KDxysELBpj"},{"type":"text","value":" Normalize the arrays by dividing them by 255 (and thus promoting the data type from ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"eOYW12SaPm"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"QjSbuYYxfm"},{"type":"text","value":" to ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"JbkTKJCu5l"},{"type":"inlineCode","value":"float64","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"wua89Lekvh"},{"type":"text","value":") and then assign the train and test image data variables — ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"akNu3y6VyE"},{"type":"inlineCode","value":"x_train","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"oobkgjG78o"},{"type":"text","value":" and ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"fH6rdrTqrU"},{"type":"inlineCode","value":"x_test","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"KsMdCD41rx"},{"type":"text","value":" — to ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"PniMxKjA2g"},{"type":"inlineCode","value":"training_images","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"cSZI4KXe3M"},{"type":"text","value":" and ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"FuMigRY6GK"},{"type":"inlineCode","value":"train_labels","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"hWdqRcMllX"},{"type":"text","value":", respectively.\nTo reduce the model training and evaluation time in this example, only a subset\nof the training and test images will be used.\nBoth ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"mB2BwPnZsc"},{"type":"inlineCode","value":"training_images","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"hvuyTfLNhC"},{"type":"text","value":" and ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"KxCC9aLlnU"},{"type":"inlineCode","value":"test_images","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"zoI9AfQELE"},{"type":"text","value":" will contain only 1,000 samples each out\nof the complete datasets of 60,000 and 10,000 images, respectively.\nThese values can be controlled by changing the ","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"DsAvgncpJI"},{"type":"inlineCode","value":"training_sample","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"cmHsC91taf"},{"type":"text","value":" and\n","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"HSxngwgY2j"},{"type":"inlineCode","value":"test_sample","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"CZTtVNuA3L"},{"type":"text","value":" below, up to their maximum values of 60,000 and 10,000.","position":{"start":{"line":229,"column":1},"end":{"line":229,"column":1}},"key":"Lx1xZDgewA"}],"key":"Gf5fPHVRdj"}],"key":"pEs92hDLJm"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"training_sample, test_sample = 1000, 1000\ntraining_images = x_train[0:training_sample] / 255\ntest_images = x_test[0:test_sample] / 255","key":"AfwNp6uMDa"},{"type":"outputs","id":"VbN1_2zjufGUR056TdbMe","children":[],"key":"NurEfy8e0z"}],"key":"uIxvw2RetG"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"children":[{"type":"strong","position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"key":"UdUiCDBvMg"}],"key":"QwufvDwEWw"},{"type":"text","value":" Confirm that the image data has changed to the floating-point format:","position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"key":"mMMI0dxCSr"}],"key":"ZIE3hlVbRp"}],"key":"HA2yLjYPim"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type of training images: {}\".format(training_images.dtype))\nprint(\"The data type of test images: {}\".format(test_images.dtype))","key":"YQC21GxGTm"},{"type":"outputs","id":"g5gWvvcq4FfhKDpCGsBBc","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type of training images: float64\nThe data type of test images: float64\n"},"key":"OixFUgJgIj"}],"key":"Uwhixn7aZH"}],"key":"RS4KQn0yjw"},{"type":"block","children":[{"type":"blockquote","position":{"start":{"line":250,"column":1},"end":{"line":258,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"children":[{"type":"strong","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"children":[{"type":"text","value":"Note:","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"n05oeCcWOi"}],"key":"SejgxBlCLS"},{"type":"text","value":" You can also check that normalization was successful by printing ","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"d1pYckzbNF"},{"type":"inlineCode","value":"training_images[0]","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"aCRPKBwpm4"},{"type":"text","value":" in a notebook cell. Your long output should contain an array of floating-point numbers:","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"yTBTnEzmY0"}],"key":"qMr1LDvqa4"},{"type":"code","lang":"","value":"...\n 0. , 0. , 0.01176471, 0.07058824, 0.07058824,\n 0.07058824, 0.49411765, 0.53333333, 0.68627451, 0.10196078,\n 0.65098039, 1. , 0.96862745, 0.49803922, 0. ,\n...","position":{"start":{"line":252,"column":1},"end":{"line":258,"column":1}},"key":"iqJrwoAVG3"}],"key":"MxHWd7lu6V"},{"type":"heading","depth":3,"position":{"start":{"line":260,"column":1},"end":{"line":260,"column":1}},"children":[{"type":"text","value":"Convert the labels to floating point through categorical/one-hot encoding","position":{"start":{"line":260,"column":1},"end":{"line":260,"column":1}},"key":"RhpupI4Ao2"}],"identifier":"convert-the-labels-to-floating-point-through-categorical-one-hot-encoding","label":"Convert the labels to floating point through categorical/one-hot encoding","html_id":"convert-the-labels-to-floating-point-through-categorical-one-hot-encoding","implicit":true,"key":"JqfimCXHhA"},{"type":"paragraph","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"children":[{"type":"text","value":"You will use one-hot encoding to embed each digit label as an all-zero vector with ","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"DSWcaYY1V5"},{"type":"inlineCode","value":"np.zeros()","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"FWQQtTTHQY"},{"type":"text","value":" and place ","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"O3La1Ykj8j"},{"type":"inlineCode","value":"1","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"tDSvHRPxas"},{"type":"text","value":" for a label index. As a result, your label data will be arrays with ","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"QL6tAXV7Wo"},{"type":"inlineCode","value":"1.0","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"hP0Ylnm4Gl"},{"type":"text","value":" (or ","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"WUgGPgOoBw"},{"type":"inlineCode","value":"1.","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"fBuZFhmgmK"},{"type":"text","value":") in the position of each image label.","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"C5h5kh4Yoe"}],"key":"jAC2IUuunp"},{"type":"paragraph","position":{"start":{"line":264,"column":1},"end":{"line":264,"column":1}},"children":[{"type":"text","value":"Since there are 10 labels (from 0 to 9) in total, your arrays will look similar to this:","position":{"start":{"line":264,"column":1},"end":{"line":264,"column":1}},"key":"xJjiQLgZbO"}],"key":"apXnr9SDCD"},{"type":"code","lang":"","value":"array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])","position":{"start":{"line":266,"column":1},"end":{"line":268,"column":1}},"key":"V7lTRUOoAr"},{"type":"paragraph","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"children":[{"type":"strong","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"UqUbosuhEu"}],"key":"vJZwcr9R7G"},{"type":"text","value":" Confirm that the image label data are integers with ","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"mj9OJZWdjE"},{"type":"inlineCode","value":"dtype","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"ja2WvVFveO"},{"type":"text","value":" ","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"PIVICOIYng"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"BfYz1aBJiw"},{"type":"text","value":":","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"sXRT9EQ9ws"}],"key":"MGL5LXAIJd"}],"key":"zwBIiLdUTk"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type of training labels: {}\".format(y_train.dtype))\nprint(\"The data type of test labels: {}\".format(y_test.dtype))","key":"SOrI5Lgtdu"},{"type":"outputs","id":"2E3RTQ5tS3X0XI_SHIrCD","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type of training labels: uint8\nThe data type of test labels: uint8\n"},"key":"arukUPSffD"}],"key":"X4WuOJrHFK"}],"key":"zwcvYiyfP6"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":277,"column":1},"end":{"line":277,"column":1}},"children":[{"type":"strong","position":{"start":{"line":277,"column":1},"end":{"line":277,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":277,"column":1},"end":{"line":277,"column":1}},"key":"qH9Q2o1WIc"}],"key":"irgEyDGo1c"},{"type":"text","value":" Define a function that performs one-hot encoding on arrays:","position":{"start":{"line":277,"column":1},"end":{"line":277,"column":1}},"key":"GZbVftZ7BG"}],"key":"vwMflydDEg"}],"key":"j706IzYAx7"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def one_hot_encoding(labels, dimension=10):\n # Define a one-hot variable for an all-zero vector\n # with 10 dimensions (number labels from 0 to 9).\n one_hot_labels = labels[..., None] == np.arange(dimension)[None]\n # Return one-hot encoded labels.\n return one_hot_labels.astype(np.float64)","key":"InQk4qKPik"},{"type":"outputs","id":"fVsvX3oSkHTV4C3dM1XXW","children":[],"key":"FEcNwqAH4V"}],"key":"P4raNuObqV"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":288,"column":1},"end":{"line":288,"column":1}},"children":[{"type":"strong","position":{"start":{"line":288,"column":1},"end":{"line":288,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":288,"column":1},"end":{"line":288,"column":1}},"key":"j4bNtCW90O"}],"key":"GanPlpnhwY"},{"type":"text","value":" Encode the labels and assign the values to new variables:","position":{"start":{"line":288,"column":1},"end":{"line":288,"column":1}},"key":"HVDhhLHuQh"}],"key":"RX6qVOdXKi"}],"key":"K500MUEqfp"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"training_labels = one_hot_encoding(y_train[:training_sample])\ntest_labels = one_hot_encoding(y_test[:test_sample])","key":"uvbIBbnQjr"},{"type":"outputs","id":"ILr47r-uItPnwTHnchllw","children":[],"key":"XRnlC8M5F6"}],"key":"pli1p0Qkzv"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"children":[{"type":"strong","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"children":[{"type":"text","value":"4.","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"key":"ln9VH6llev"}],"key":"Z6LYTcP11D"},{"type":"text","value":" Check that the data type has changed to floating point:","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"key":"B4cyNZHUKL"}],"key":"Bm7MYs9g1s"}],"key":"LerJHm2onu"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type of training labels: {}\".format(training_labels.dtype))\nprint(\"The data type of test labels: {}\".format(test_labels.dtype))","key":"GF1OX7n0vb"},{"type":"outputs","id":"9iHY0Urp2OdqssTmiVUBa","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type of training labels: float64\nThe data type of test labels: float64\n"},"key":"HwxNenQXXv"}],"key":"o9BoQLIUT4"}],"key":"NwaEIC8q3Y"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"children":[{"type":"strong","position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"children":[{"type":"text","value":"5.","position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"key":"hnjvVF6jUE"}],"key":"l5EkDeYi5K"},{"type":"text","value":" Examine a few encoded labels:","position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"key":"gG71w0yqyb"}],"key":"Te2ns3FL3v"}],"key":"fKxK3BcOQZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(training_labels[0])\nprint(training_labels[1])\nprint(training_labels[2])","key":"FLjtzxw7K0"},{"type":"outputs","id":"Gr8nMFOmtwgdWwAbMZEQe","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]\n[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]\n"},"key":"RM12h23yG2"}],"key":"W2USJKSszk"}],"key":"dmyqRVAOab"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":310,"column":1},"end":{"line":310,"column":1}},"children":[{"type":"text","value":"...and compare to the originals:","position":{"start":{"line":310,"column":1},"end":{"line":310,"column":1}},"key":"VpVXxQsnSb"}],"key":"JWSDI9TnO5"}],"key":"rTUxVAoVBK"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(y_train[0])\nprint(y_train[1])\nprint(y_train[2])","key":"JK9xhr2ZCb"},{"type":"outputs","id":"WMFVgU-EojmjfQ-bPBpej","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"5\n0\n4\n"},"key":"aySwpNlhaV"}],"key":"XBIxDwviw3"}],"key":"EvOjlMvQGx"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":318,"column":1},"end":{"line":318,"column":1}},"children":[{"type":"text","value":"You have finished preparing the dataset.","position":{"start":{"line":318,"column":1},"end":{"line":318,"column":1}},"key":"aiepSsNTS9"}],"key":"x6UGS64Qjx"},{"type":"heading","depth":2,"position":{"start":{"line":320,"column":1},"end":{"line":320,"column":1}},"children":[{"type":"text","value":"3. Build and train a small neural network from scratch","position":{"start":{"line":320,"column":1},"end":{"line":320,"column":1}},"key":"rduxzfssSc"}],"identifier":"id-3-build-and-train-a-small-neural-network-from-scratch","label":"3. Build and train a small neural network from scratch","html_id":"id-3-build-and-train-a-small-neural-network-from-scratch","implicit":true,"key":"qK6M6Al0Ka"},{"type":"paragraph","position":{"start":{"line":322,"column":1},"end":{"line":322,"column":1}},"children":[{"type":"text","value":"In this section you will familiarize yourself with some high-level concepts of the basic building blocks of a deep learning model. You can refer to the original ","position":{"start":{"line":322,"column":1},"end":{"line":322,"column":1}},"key":"XCKwnJevOh"},{"type":"link","url":"http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf","position":{"start":{"line":322,"column":1},"end":{"line":322,"column":1}},"children":[{"type":"text","value":"Deep learning","position":{"start":{"line":322,"column":1},"end":{"line":322,"column":1}},"key":"LGBW6NbEfc"}],"urlSource":"http://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf","key":"EyZtoxY7Qa"},{"type":"text","value":" research publication for more information.","position":{"start":{"line":322,"column":1},"end":{"line":322,"column":1}},"key":"NgcXlhUUpH"}],"key":"YtquNcr4g4"},{"type":"paragraph","position":{"start":{"line":324,"column":1},"end":{"line":324,"column":1}},"children":[{"type":"text","value":"Afterwards, you will construct the building blocks of a simple deep learning model in Python and NumPy and train it to learn to identify handwritten digits from the MNIST dataset with a certain level of accuracy.","position":{"start":{"line":324,"column":1},"end":{"line":324,"column":1}},"key":"YI7ssJCxve"}],"key":"ZVpexbXeeu"},{"type":"heading","depth":3,"position":{"start":{"line":326,"column":1},"end":{"line":326,"column":1}},"children":[{"type":"text","value":"Neural network building blocks with NumPy","position":{"start":{"line":326,"column":1},"end":{"line":326,"column":1}},"key":"USFcZw3yuQ"}],"identifier":"neural-network-building-blocks-with-numpy","label":"Neural network building blocks with NumPy","html_id":"neural-network-building-blocks-with-numpy","implicit":true,"key":"nP1dBiepsn"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":328,"column":1},"end":{"line":353,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":328,"column":1},"end":{"line":335,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":328,"column":1},"end":{"line":328,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":328,"column":1},"end":{"line":328,"column":1}},"children":[{"type":"text","value":"Layers","position":{"start":{"line":328,"column":1},"end":{"line":328,"column":1}},"key":"wGfpkQ84SS"}],"key":"M9WQdkIEoh"},{"type":"text","value":": These building blocks work as data filters — they process data and learn representations from inputs to better predict the target outputs.","position":{"start":{"line":328,"column":1},"end":{"line":328,"column":1}},"key":"JW2obAhS9x"}],"key":"hNFerwlE6X"},{"type":"paragraph","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"children":[{"type":"text","value":"You will use 1 hidden layer in your model to pass the inputs forward (","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"sdhrCyEoIz"},{"type":"emphasis","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"children":[{"type":"text","value":"forward propagation","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"Rm6venbIJr"}],"key":"NNgWZFeKip"},{"type":"text","value":") and propagate the gradients/error derivatives of a loss function backward (","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"Usq9cU1Xtg"},{"type":"emphasis","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"children":[{"type":"text","value":"backpropagation","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"HpynXy17iU"}],"key":"P1LYsUmErl"},{"type":"text","value":"). These are input, hidden and output layers.","position":{"start":{"line":330,"column":1},"end":{"line":330,"column":1}},"key":"eIFP6Unj42"}],"key":"GuAUhKymGb"},{"type":"paragraph","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"children":[{"type":"text","value":"In the hidden (middle) and output (last) layers, the neural network model will compute the weighted sum of inputs. To compute this process, you will use NumPy’s matrix multiplication function (the “dot multiply” or ","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"WwXoHkblPy"},{"type":"inlineCode","value":"np.dot(layer, weights)","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"G6Pg2kDvAD"},{"type":"text","value":").","position":{"start":{"line":332,"column":1},"end":{"line":332,"column":1}},"key":"VeqoOJeIMA"}],"key":"WyX5EVtf0O"},{"type":"blockquote","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"children":[{"type":"strong","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"children":[{"type":"text","value":"Note:","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"key":"AVgUnw91VJ"}],"key":"qbMHNmmiCy"},{"type":"text","value":" For simplicity, the bias term is omitted in this example (there is no ","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"key":"JDevocXgG9"},{"type":"inlineCode","value":"np.dot(layer, weights) + bias","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"key":"ZXfggVKzT9"},{"type":"text","value":").","position":{"start":{"line":334,"column":1},"end":{"line":334,"column":1}},"key":"gXiezmwv78"}],"key":"YiQkKNn0pq"}],"key":"XqBWeAkjoj"}],"key":"OHHjP2qdr2"},{"type":"listItem","spread":true,"position":{"start":{"line":336,"column":1},"end":{"line":339,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"children":[{"type":"text","value":"Weights","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"WaFlZt9PUL"}],"key":"QnQSsKmkEc"},{"type":"text","value":": These are important adjustable parameters that the neural network fine-tunes by forward and backward propagating the data. They are optimized through a process called ","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"EbmoG6rVdg"},{"type":"link","url":"https://en.wikipedia.org/wiki/Stochastic_gradient_descent","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"children":[{"type":"text","value":"gradient descent","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"BWfwNVM6RY"}],"urlSource":"https://en.wikipedia.org/wiki/Stochastic_gradient_descent","data":{"page":"Stochastic_gradient_descent","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"b3BfzWulL7"},{"type":"text","value":". Before the model training starts, the weights are randomly initialized with NumPy’s ","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"TVaIWjyoVY"},{"type":"link","url":"https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.random.html","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"children":[{"type":"inlineCode","value":"Generator.random()","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"vFf3f5WRE1"}],"urlSource":"https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.random.html","key":"JI195ROn7v"},{"type":"text","value":".","position":{"start":{"line":336,"column":1},"end":{"line":336,"column":1}},"key":"VgGEHnnNCD"}],"key":"WOxmLgHTsk"},{"type":"paragraph","position":{"start":{"line":338,"column":1},"end":{"line":338,"column":1}},"children":[{"type":"text","value":"The optimal weights should produce the highest prediction accuracy and the lowest error on the training and test sets.","position":{"start":{"line":338,"column":1},"end":{"line":338,"column":1}},"key":"WKBUcHAiW5"}],"key":"WgjoTfj9qP"}],"key":"DWzsgGjUOA"},{"type":"listItem","spread":true,"position":{"start":{"line":340,"column":1},"end":{"line":343,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"children":[{"type":"text","value":"Activation function","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"cl0fpURXbI"}],"key":"KLXKkcHBqn"},{"type":"text","value":": Deep learning models are capable of determining non-linear relationships between inputs and outputs and these ","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"LQg3o6vrAY"},{"type":"link","url":"https://en.wikipedia.org/wiki/Activation_function","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"children":[{"type":"text","value":"non-linear functions","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"t9BuhbKw9Z"}],"urlSource":"https://en.wikipedia.org/wiki/Activation_function","data":{"page":"Activation_function","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"DCQIsBv2kc"},{"type":"text","value":" are usually applied to the output of each layer.","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"wPAY3liFng"}],"key":"nDdLOzxW0a"},{"type":"paragraph","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"children":[{"type":"text","value":"You will use a ","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"Mt6DIwm9PB"},{"type":"link","url":"https://en.wikipedia.org/wiki/Rectifier_(neural_networks)","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"children":[{"type":"text","value":"rectified linear unit (ReLU)","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"ScLnBJ2GUl"}],"urlSource":"https://en.wikipedia.org/wiki/Rectifier_(neural_networks)","data":{"page":"Rectifier_(neural_networks)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"rLpIvq9aab"},{"type":"text","value":" to the hidden layer’s output (for example, ","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"mF1KChLH3e"},{"type":"inlineCode","value":"relu(np.dot(layer, weights))","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"ejlAsWhLjT"},{"type":"text","value":".","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"Qhj8Q3aXl1"}],"key":"GOFykfZNUG"}],"key":"QC8aLXYO0P"},{"type":"listItem","spread":true,"position":{"start":{"line":344,"column":1},"end":{"line":347,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"children":[{"type":"text","value":"Regularization","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"zKag4MxNkO"}],"key":"OQJfbwhrcl"},{"type":"text","value":": This ","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"aotvrTI5sA"},{"type":"link","url":"https://en.wikipedia.org/wiki/Regularization_(mathematics)","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"children":[{"type":"text","value":"technique","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"GGmnbTlVah"}],"urlSource":"https://en.wikipedia.org/wiki/Regularization_(mathematics)","data":{"page":"Regularization_(mathematics)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"h9zid2M5qz"},{"type":"text","value":" helps prevent the neural network model from ","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"T8RKDeXkA5"},{"type":"link","url":"https://en.wikipedia.org/wiki/Overfitting","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"children":[{"type":"text","value":"overfitting","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"XiZ2movsgy"}],"urlSource":"https://en.wikipedia.org/wiki/Overfitting","data":{"page":"Overfitting","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"FtlNxfNcLa"},{"type":"text","value":".","position":{"start":{"line":344,"column":1},"end":{"line":344,"column":1}},"key":"aYXmMmQjys"}],"key":"KDkfPPAAmN"},{"type":"paragraph","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"children":[{"type":"text","value":"In this example, you will use a method called dropout — ","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"key":"Znf6PkI5SR"},{"type":"link","url":"https://en.wikipedia.org/wiki/Dilution_(neural_networks)","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"children":[{"type":"text","value":"dilution","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"key":"BF72gu193t"}],"urlSource":"https://en.wikipedia.org/wiki/Dilution_(neural_networks)","data":{"page":"Dilution_(neural_networks)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"znf9WXnEHd"},{"type":"text","value":" — that randomly sets a number of features in a layer to 0s. You will define it with NumPy’s ","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"key":"UTpIldh4vu"},{"type":"link","url":"https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.integers.html","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"children":[{"type":"inlineCode","value":"Generator.integers()","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"key":"C8UPTh62GN"}],"urlSource":"https://numpy.org/doc/stable/reference/random/generated/numpy.random.Generator.integers.html","key":"BNRgyqT29I"},{"type":"text","value":" method and apply it to the hidden layer of the network.","position":{"start":{"line":346,"column":1},"end":{"line":346,"column":1}},"key":"M2j8nBe3UT"}],"key":"VJlB0o2ivQ"}],"key":"UHJZHddHal"},{"type":"listItem","spread":true,"position":{"start":{"line":348,"column":1},"end":{"line":351,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":348,"column":1},"end":{"line":348,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":348,"column":1},"end":{"line":348,"column":1}},"children":[{"type":"text","value":"Loss function","position":{"start":{"line":348,"column":1},"end":{"line":348,"column":1}},"key":"Cq3ZTi8WQf"}],"key":"cVpu1bmeJ7"},{"type":"text","value":": The computation determines the quality of predictions by comparing the image labels (the truth) with the predicted values in the final layer’s output.","position":{"start":{"line":348,"column":1},"end":{"line":348,"column":1}},"key":"Uejzx9Tlod"}],"key":"bk5Ug55Ogg"},{"type":"paragraph","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"children":[{"type":"text","value":"For simplicity, you will use a basic total squared error using NumPy’s ","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"key":"cBUl6rPzJM"},{"type":"inlineCode","value":"np.sum()","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"key":"bJve1U6kPr"},{"type":"text","value":" function (for example, ","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"key":"MhYFz1YAtg"},{"type":"inlineCode","value":"np.sum((final_layer_output - image_labels) ** 2)","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"key":"kylIThkZvK"},{"type":"text","value":").","position":{"start":{"line":350,"column":1},"end":{"line":350,"column":1}},"key":"kMtG09xQmj"}],"key":"XZGHT2n3RH"}],"key":"AgduJJELN0"},{"type":"listItem","spread":true,"position":{"start":{"line":352,"column":1},"end":{"line":353,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"children":[{"type":"text","value":"Accuracy","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"key":"QNztsputiZ"}],"key":"mgSObMWR0s"},{"type":"text","value":": This metric measures the accuracy of the network’s ability to predict on the data it hasn’t seen.","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"key":"RkFkhauj1u"}],"key":"okmAzaO5Y6"}],"key":"JWiZ9Dz0IW"}],"key":"jXd3cBFOWs"},{"type":"heading","depth":3,"position":{"start":{"line":354,"column":1},"end":{"line":354,"column":1}},"children":[{"type":"text","value":"Model architecture and training summary","position":{"start":{"line":354,"column":1},"end":{"line":354,"column":1}},"key":"SeYzs8dh2t"}],"identifier":"model-architecture-and-training-summary","label":"Model architecture and training summary","html_id":"model-architecture-and-training-summary","implicit":true,"key":"rPlLVYptWA"},{"type":"paragraph","position":{"start":{"line":356,"column":1},"end":{"line":356,"column":1}},"children":[{"type":"text","value":"Here is a summary of the neural network model architecture and the training process:","position":{"start":{"line":356,"column":1},"end":{"line":356,"column":1}},"key":"zWAGOYRfbV"}],"key":"mpH0vmXYb4"},{"type":"image","url":"/numpy-tutorials/build/tutorial-deep-learni-1a6932c38d13641ad9a1eda7d431b1f5.png","alt":"Diagram showing operations detailed in this tutorial (The input imageis passed into a Hidden layer that creates a weighted sum of outputs.The weighted sum is passed to the Non-linearity, then regularization andinto the output layer. The output layer creates a prediction which canthen be compared to existing data. The errors are used to calculate theloss function and update weights in the hidden layer and outputlayer.)","position":{"start":{"line":359,"column":1},"end":{"line":359,"column":1}},"key":"h2YUB1iyNR","urlSource":"_static/tutorial-deep-learning-on-mnist.png"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":367,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":367,"column":1},"end":{"line":370,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"children":[{"type":"text","value":"The input layer","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"key":"zo5B1RuXYi"}],"key":"Ldpia8YoDT"},{"type":"text","value":":","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"key":"LeRKUpPGZG"}],"key":"zvwLjNJZjb"},{"type":"paragraph","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"children":[{"type":"text","value":"It is the input for the network — the previously preprocessed data that is loaded from ","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"key":"CrcJmBmFhG"},{"type":"inlineCode","value":"training_images","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"key":"vuyfZFN9HP"},{"type":"text","value":" into ","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"key":"NBhd0OY2qj"},{"type":"inlineCode","value":"layer_0","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"key":"zfrQdJVHZV"},{"type":"text","value":".","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"key":"HhUcBHUuPy"}],"key":"eurGN2Y8va"}],"key":"zKoZYSyMpq"},{"type":"listItem","spread":true,"position":{"start":{"line":371,"column":1},"end":{"line":376,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"children":[{"type":"text","value":"The hidden (middle) layer","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"vIVxSDbMbZ"}],"key":"rXFIrwCs5J"},{"type":"text","value":":","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"AVBMHYMzgN"}],"key":"iQHqICfKIU"},{"type":"paragraph","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"children":[{"type":"inlineCode","value":"layer_1","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"mblmEjqLeK"},{"type":"text","value":" takes the output from the previous layer and performs matrix-multiplication of the input by weights (","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"JOO2870TDl"},{"type":"inlineCode","value":"weights_1","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"SCSRIPkUan"},{"type":"text","value":") with NumPy’s ","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"pyHeTdbHj1"},{"type":"inlineCode","value":"np.dot()","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"Zyy0pSkUi3"},{"type":"text","value":").","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"butUOUhYcS"}],"key":"NgQXILHCj5"},{"type":"paragraph","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"children":[{"type":"text","value":"Then, this output is passed through the ReLU activation function for non-linearity and then dropout is applied to help with overfitting.","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"key":"bO1MekWT5c"}],"key":"FVkXsrvMpz"}],"key":"vJqf2e9iqY"},{"type":"listItem","spread":true,"position":{"start":{"line":377,"column":1},"end":{"line":382,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"text","value":"The output (last) layer","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"xXYakoB2BW"}],"key":"w8N1oz5CQk"},{"type":"text","value":":","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"qcSlDboUwG"}],"key":"WaFsAChjJr"},{"type":"paragraph","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"children":[{"type":"inlineCode","value":"layer_2","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"vLdbxzxm8j"},{"type":"text","value":" ingests the output from ","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"JNTR5yDEO3"},{"type":"inlineCode","value":"layer_1","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"IUeJ4fUXq6"},{"type":"text","value":" and repeats the same “dot multiply” process with ","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"rhYyIOf6vd"},{"type":"inlineCode","value":"weights_2","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"XNqX9uNP3q"},{"type":"text","value":".","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"yeTWT7qDzy"}],"key":"OzNBGANyQA"},{"type":"paragraph","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"children":[{"type":"text","value":"The final output returns 10 scores for each of the 0-9 digit labels. The network model ends with a size 10 layer — a 10-dimensional vector.","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"glszLZzL74"}],"key":"zHwEyBfFRG"}],"key":"EIpV3Cn5ZP"},{"type":"listItem","spread":true,"position":{"start":{"line":383,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"text","value":"Forward propagation, backpropagation, training loop","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"k8yiPCnWUk"}],"key":"UKB3M42RLq"},{"type":"text","value":":","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"CFB4MB5GYP"}],"key":"FtUmkBASaa"},{"type":"paragraph","position":{"start":{"line":385,"column":1},"end":{"line":385,"column":1}},"children":[{"type":"text","value":"In the beginning of model training, your network randomly initializes the weights and feeds the input data forward through the hidden and output layers. This process is the forward pass or forward propagation.","position":{"start":{"line":385,"column":1},"end":{"line":385,"column":1}},"key":"eUVNhKwZui"}],"key":"OVlS4aNEFZ"},{"type":"paragraph","position":{"start":{"line":387,"column":1},"end":{"line":387,"column":1}},"children":[{"type":"text","value":"Then, the network propagates the “signal” from the loss function back through the hidden layer and adjusts the weights with the help of the learning rate parameter (more on that later).","position":{"start":{"line":387,"column":1},"end":{"line":387,"column":1}},"key":"r0d6GDKBiO"}],"key":"GehdVE8d9G"}],"key":"FGkMOBAQno"}],"key":"HFcmMUrDyI"},{"type":"blockquote","position":{"start":{"line":389,"column":1},"end":{"line":397,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"children":[{"type":"strong","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"children":[{"type":"text","value":"Note:","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"key":"xZSaqGiApY"}],"key":"V626Bn7YzL"},{"type":"text","value":" In more technical terms, you:","position":{"start":{"line":389,"column":1},"end":{"line":389,"column":1}},"key":"nXDAXhwn6z"}],"key":"htJZq4nGJr"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":391,"column":1},"end":{"line":394,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":391,"column":1},"end":{"line":391,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Measure the error by comparing the real label of an image (the truth) with the prediction of the model.","position":{"start":{"line":391,"column":1},"end":{"line":391,"column":1}},"key":"ynWlnOMX62"}],"key":"GIb1oE9pUK"}],"key":"nZ95GQUioW"},{"type":"listItem","spread":true,"position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Differentiate the loss function.","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"ceb9UssJuo"}],"key":"jBDCf55NOy"}],"key":"UKwUT8RDan"},{"type":"listItem","spread":true,"position":{"start":{"line":393,"column":1},"end":{"line":394,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Ingest the ","position":{"start":{"line":393,"column":1},"end":{"line":393,"column":1}},"key":"D9sYVVpvc9"},{"type":"link","url":"https://en.wikipedia.org/wiki/Gradient","position":{"start":{"line":393,"column":1},"end":{"line":393,"column":1}},"children":[{"type":"text","value":"gradients","position":{"start":{"line":393,"column":1},"end":{"line":393,"column":1}},"key":"xNpiNp2ECd"}],"urlSource":"https://en.wikipedia.org/wiki/Gradient","data":{"page":"Gradient","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"qIhvj2YEQL"},{"type":"text","value":" with the respect to the output, and backpropagate them with the respect to the inputs through the layer(s).","position":{"start":{"line":393,"column":1},"end":{"line":393,"column":1}},"key":"AbMSvy5EH0"}],"key":"U9DeQn59pe"}],"key":"WLeIOcBrVO"}],"key":"ltCyih7Vta"},{"type":"paragraph","position":{"start":{"line":395,"column":1},"end":{"line":395,"column":1}},"children":[{"type":"text","value":"Since the network contains tensor operations and weight matrices, backpropagation uses the ","position":{"start":{"line":395,"column":1},"end":{"line":395,"column":1}},"key":"boQ82vXnOc"},{"type":"link","url":"https://en.wikipedia.org/wiki/Chain_rule","position":{"start":{"line":395,"column":1},"end":{"line":395,"column":1}},"children":[{"type":"text","value":"chain rule","position":{"start":{"line":395,"column":1},"end":{"line":395,"column":1}},"key":"A75eaN6wH1"}],"urlSource":"https://en.wikipedia.org/wiki/Chain_rule","data":{"page":"Chain_rule","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"aQUrlNoWXE"},{"type":"text","value":".","position":{"start":{"line":395,"column":1},"end":{"line":395,"column":1}},"key":"cTWMvoFBWv"}],"key":"k6Dx4v2fwo"},{"type":"paragraph","position":{"start":{"line":397,"column":1},"end":{"line":397,"column":1}},"children":[{"type":"text","value":"With each iteration (epoch) of the neural network training, this forward and backward propagation cycle adjusts the weights, which is reflected in the accuracy and error metrics. As you train the model, your goal is to minimize the error and maximize the accuracy on the training data, where the model learns from, as well as the test data, where you evaluate the model.","position":{"start":{"line":397,"column":1},"end":{"line":397,"column":1}},"key":"wj9scbtT9c"}],"key":"UnN8JafKJC"}],"key":"cskHZdHKKv"},{"type":"heading","depth":3,"position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"children":[{"type":"text","value":"Compose the model and begin training and testing it","position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"key":"boB5QfVAHs"}],"identifier":"compose-the-model-and-begin-training-and-testing-it","label":"Compose the model and begin training and testing it","html_id":"compose-the-model-and-begin-training-and-testing-it","implicit":true,"key":"Dgmbv8cMSk"},{"type":"paragraph","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"children":[{"type":"text","value":"Having covered the main deep learning concepts and the neural network architecture, let’s write the code.","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"key":"ki5A3yvo4P"}],"key":"jyBdMq4EiH"},{"type":"paragraph","position":{"start":{"line":403,"column":1},"end":{"line":404,"column":1}},"children":[{"type":"strong","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"key":"jCZ5gpzTPd"}],"key":"ms2yQZciXS"},{"type":"text","value":" We’ll start by creating a new random number generator, providing a seed\nfor reproducibility:","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"key":"mS2PTmMyRW"}],"key":"RCZkLIurE7"}],"key":"VM93gYUbc9"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"seed = 884736743\nrng = np.random.default_rng(seed)","key":"Kk9ZwqvmeT"},{"type":"outputs","id":"fLkZ8b4QY96ZJfJ7caWcr","children":[],"key":"sOAksm8Tsh"}],"key":"GWORTY7dLx"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"children":[{"type":"strong","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"key":"iFRxGNBvWJ"}],"key":"zdPwdcWLnK"},{"type":"text","value":" For the hidden layer, define the ReLU activation function for forward propagation and ReLU’s derivative that will be used during backpropagation:","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"key":"aGIJ49Sf2f"}],"key":"DoqVPizpwg"}],"key":"aXc7Ol87Td"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# Define ReLU that returns the input if it's positive and 0 otherwise.\ndef relu(x):\n return (x >= 0) * x\n\n\n# Set up a derivative of the ReLU function that returns 1 for a positive input\n# and 0 otherwise.\ndef relu2deriv(output):\n return output >= 0","key":"MCgpo6y3NW"},{"type":"outputs","id":"u-2_t9-QIUvIwSXUKyzm-","children":[],"key":"rozlBOVUcX"}],"key":"RulpdqS4PS"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"children":[{"type":"strong","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"key":"LDP5ncxJtt"}],"key":"hsBUJIGU9Y"},{"type":"text","value":" Set certain default values of ","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"key":"msV9dw8Xlg"},{"type":"link","url":"https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning)","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"children":[{"type":"text","value":"hyperparameters","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"key":"az5NWvu7Dg"}],"urlSource":"https://en.wikipedia.org/wiki/Hyperparameter_(machine_learning)","data":{"page":"Hyperparameter_(machine_learning)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"qsf0nDRMGy"},{"type":"text","value":", such as:","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"key":"R8E9uvc0eD"}],"key":"om4z0J0S4P"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":427,"column":1},"end":{"line":432,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Learning_rate","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"children":[{"type":"text","value":"Learning rate","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"key":"liJu38kAj7"}],"key":"TG2MV4aBbD"}],"urlSource":"https://en.wikipedia.org/wiki/Learning_rate","data":{"page":"Learning_rate","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Xq36fe84lR"},{"type":"text","value":": ","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"key":"TdyDJNE2cJ"},{"type":"inlineCode","value":"learning_rate","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"key":"sRdwg1QgpX"},{"type":"text","value":" — helps limit the magnitude of weight updates to prevent them from overcorrecting.","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"key":"ANECf37U3n"}],"key":"HUjDOrtqUN"}],"key":"zKoUkXyCvn"},{"type":"listItem","spread":true,"position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"children":[{"type":"text","value":"Epochs (iterations)","position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"key":"hR7osShcnB"}],"key":"HvtGaiZsuH"},{"type":"text","value":": ","position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"key":"BwQc0nbbdL"},{"type":"inlineCode","value":"epochs","position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"key":"t9f9YFHkg8"},{"type":"text","value":" — the number of complete passes — forward and backward propagations — of the data through the network. This parameter can positively or negatively affect the results. The higher the iterations, the longer the learning process may take. Because this is a computationally intensive task, we have chosen a very low number of epochs (20). To get meaningful results, you should choose a much larger number.","position":{"start":{"line":428,"column":1},"end":{"line":428,"column":1}},"key":"SO46i0icGT"}],"key":"JyBBzBbTvW"}],"key":"qKcGOK1sb5"},{"type":"listItem","spread":true,"position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"children":[{"type":"text","value":"Size of the hidden (middle) layer in a network","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"key":"Z43lT18ti2"}],"key":"vTtRjO5zk3"},{"type":"text","value":": ","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"key":"eBrZOV1DEM"},{"type":"inlineCode","value":"hidden_size","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"key":"KD0HTBhAtF"},{"type":"text","value":" — different sizes of the hidden layer can affect the results during training and testing.","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"key":"ET5UNSRnxj"}],"key":"wAGXLYjLi1"}],"key":"bN76uK696H"},{"type":"listItem","spread":true,"position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"children":[{"type":"text","value":"Size of the input:","position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"key":"WI31Cr8BBC"}],"key":"onCVx0FpB7"},{"type":"text","value":" ","position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"key":"O26OH8bB21"},{"type":"inlineCode","value":"pixels_per_image","position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"key":"sRZRv9cpHM"},{"type":"text","value":" — you have established that the image input is 784 (28x28) (in pixels).","position":{"start":{"line":430,"column":1},"end":{"line":430,"column":1}},"key":"eISItEtXic"}],"key":"oaPRBI1MKb"}],"key":"NMiLENfCWd"},{"type":"listItem","spread":true,"position":{"start":{"line":431,"column":1},"end":{"line":432,"column":1}},"children":[{"type":"paragraph","children":[{"type":"emphasis","position":{"start":{"line":431,"column":1},"end":{"line":431,"column":1}},"children":[{"type":"text","value":"Number of labels","position":{"start":{"line":431,"column":1},"end":{"line":431,"column":1}},"key":"wjdyDe3F9p"}],"key":"ZyeiNW1Gc4"},{"type":"text","value":": ","position":{"start":{"line":431,"column":1},"end":{"line":431,"column":1}},"key":"H36Zjpikh0"},{"type":"inlineCode","value":"num_labels","position":{"start":{"line":431,"column":1},"end":{"line":431,"column":1}},"key":"URfcQppsZ6"},{"type":"text","value":" — indicates the output number for the output layer where the predictions occur for 10 (0 to 9) handwritten digit labels.","position":{"start":{"line":431,"column":1},"end":{"line":431,"column":1}},"key":"X1pyxZfBLF"}],"key":"EHQmYxM9eV"}],"key":"b2ANFMY8HS"}],"key":"h4JLRHtXeo"}],"key":"lVJBbY3wPL"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"learning_rate = 0.005\nepochs = 20\nhidden_size = 100\npixels_per_image = 784\nnum_labels = 10","key":"LQZP2Y2UmF"},{"type":"outputs","id":"gpTY_Yv4_ioxXOY16M29U","children":[],"key":"xJiO596leS"}],"key":"R8gzmTqSjF"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":441,"column":1},"end":{"line":441,"column":1}},"children":[{"type":"strong","position":{"start":{"line":441,"column":1},"end":{"line":441,"column":1}},"children":[{"type":"text","value":"4.","position":{"start":{"line":441,"column":1},"end":{"line":441,"column":1}},"key":"eeDDJm0ocl"}],"key":"xjTfz4ZA1Q"},{"type":"text","value":" Initialize the weight vectors that will be used in the hidden and output layers with random values:","position":{"start":{"line":441,"column":1},"end":{"line":441,"column":1}},"key":"CFd1s5B3YL"}],"key":"CgORpALfmq"}],"key":"C1IcwBgJoW"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"weights_1 = 0.2 * rng.random((pixels_per_image, hidden_size)) - 0.1\nweights_2 = 0.2 * rng.random((hidden_size, num_labels)) - 0.1","key":"Sb5qjT3Qb2"},{"type":"outputs","id":"1ZU-MzfOFqECWa8nZOIX8","children":[],"key":"abzfEHjsDH"}],"key":"qHfHkbpxUx"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":448,"column":1},"end":{"line":450,"column":1}},"children":[{"type":"strong","position":{"start":{"line":448,"column":1},"end":{"line":448,"column":1}},"children":[{"type":"text","value":"5.","position":{"start":{"line":448,"column":1},"end":{"line":448,"column":1}},"key":"mJk33Te6dY"}],"key":"AeozZ8ankS"},{"type":"text","value":" Set up the neural network’s learning experiment with a training loop and start the training process.\nNote that the model is evaluated against the test set at each epoch to track\nits performance over the training epochs.","position":{"start":{"line":448,"column":1},"end":{"line":448,"column":1}},"key":"jIIUjtfMD0"}],"key":"lfaNn8uJML"},{"type":"paragraph","position":{"start":{"line":452,"column":1},"end":{"line":452,"column":1}},"children":[{"type":"text","value":"Start the training process:","position":{"start":{"line":452,"column":1},"end":{"line":452,"column":1}},"key":"Is2pz3dUTE"}],"key":"WU1pDoRs85"}],"key":"CbnqygFUwe"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# To store training and test set losses and accurate predictions\n# for visualization.\nstore_training_loss = []\nstore_training_accurate_pred = []\nstore_test_loss = []\nstore_test_accurate_pred = []\n\n# This is a training loop.\n# Run the learning experiment for a defined number of epochs (iterations).\nfor j in range(epochs):\n\n #################\n # Training step #\n #################\n\n # Set the initial loss/error and the number of accurate predictions to zero.\n training_loss = 0.0\n training_accurate_predictions = 0\n\n # For all images in the training set, perform a forward pass\n # and backpropagation and adjust the weights accordingly.\n for i in range(len(training_images)):\n # Forward propagation/forward pass:\n # 1. The input layer:\n # Initialize the training image data as inputs.\n layer_0 = training_images[i]\n # 2. The hidden layer:\n # Take in the training image data into the middle layer by\n # matrix-multiplying it by randomly initialized weights.\n layer_1 = np.dot(layer_0, weights_1)\n # 3. Pass the hidden layer's output through the ReLU activation function.\n layer_1 = relu(layer_1)\n # 4. Define the dropout function for regularization.\n dropout_mask = rng.integers(low=0, high=2, size=layer_1.shape)\n # 5. Apply dropout to the hidden layer's output.\n layer_1 *= dropout_mask * 2\n # 6. The output layer:\n # Ingest the output of the middle layer into the the final layer\n # by matrix-multiplying it by randomly initialized weights.\n # Produce a 10-dimension vector with 10 scores.\n layer_2 = np.dot(layer_1, weights_2)\n\n # Backpropagation/backward pass:\n # 1. Measure the training error (loss function) between the actual\n # image labels (the truth) and the prediction by the model.\n training_loss += np.sum((training_labels[i] - layer_2) ** 2)\n # 2. Increment the accurate prediction count.\n training_accurate_predictions += int(\n np.argmax(layer_2) == np.argmax(training_labels[i])\n )\n # 3. Differentiate the loss function/error.\n layer_2_delta = training_labels[i] - layer_2\n # 4. Propagate the gradients of the loss function back through the hidden layer.\n layer_1_delta = np.dot(weights_2, layer_2_delta) * relu2deriv(layer_1)\n # 5. Apply the dropout to the gradients.\n layer_1_delta *= dropout_mask\n # 6. Update the weights for the middle and input layers\n # by multiplying them by the learning rate and the gradients.\n weights_1 += learning_rate * np.outer(layer_0, layer_1_delta)\n weights_2 += learning_rate * np.outer(layer_1, layer_2_delta)\n\n # Store training set losses and accurate predictions.\n store_training_loss.append(training_loss)\n store_training_accurate_pred.append(training_accurate_predictions)\n\n ###################\n # Evaluation step #\n ###################\n\n # Evaluate model performance on the test set at each epoch.\n\n # Unlike the training step, the weights are not modified for each image\n # (or batch). Therefore the model can be applied to the test images in a\n # vectorized manner, eliminating the need to loop over each image\n # individually:\n\n results = relu(test_images @ weights_1) @ weights_2\n\n # Measure the error between the actual label (truth) and prediction values.\n test_loss = np.sum((test_labels - results) ** 2)\n\n # Measure prediction accuracy on test set\n test_accurate_predictions = np.sum(\n np.argmax(results, axis=1) == np.argmax(test_labels, axis=1)\n )\n\n # Store test set losses and accurate predictions.\n store_test_loss.append(test_loss)\n store_test_accurate_pred.append(test_accurate_predictions)\n\n # Summarize error and accuracy metrics at each epoch\n print(\n (\n f\"Epoch: {j}\\n\"\n f\" Training set error: {training_loss / len(training_images):.3f}\\n\"\n f\" Training set accuracy: {training_accurate_predictions / len(training_images)}\\n\"\n f\" Test set error: {test_loss / len(test_images):.3f}\\n\"\n f\" Test set accuracy: {test_accurate_predictions / len(test_images)}\"\n )\n )","key":"Ul0cKbiBeD"},{"type":"outputs","id":"JpSK9tlgl6VP8NXcK5Ecb","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 0\n Training set error: 0.898\n Training set accuracy: 0.397\n Test set error: 0.680\n Test set accuracy: 0.582\n"},"key":"dIELt5Y14l"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 1\n Training set error: 0.656\n Training set accuracy: 0.633\n Test set error: 0.607\n Test set accuracy: 0.641\n"},"key":"foG0XjH0Ga"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 2\n Training set error: 0.592\n Training set accuracy: 0.68\n Test set error: 0.569\n Test set accuracy: 0.679\n"},"key":"DireTimzCs"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 3\n Training set error: 0.556\n Training set accuracy: 0.7\n Test set error: 0.541\n Test set accuracy: 0.708\n"},"key":"MzLDZ8gusv"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 4\n Training set error: 0.534\n Training set accuracy: 0.732\n Test set error: 0.526\n Test set accuracy: 0.729\n"},"key":"nXI8c7fZbT"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 5\n Training set error: 0.515\n Training set accuracy: 0.715\n Test set error: 0.500\n Test set accuracy: 0.739\n"},"key":"N0J1YwvZGT"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 6\n Training set error: 0.495\n Training set accuracy: 0.748\n Test set error: 0.487\n Test set accuracy: 0.753\n"},"key":"ycOKeD0q8z"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 7\n Training set error: 0.483\n Training set accuracy: 0.769\n Test set error: 0.486\n Test set accuracy: 0.747\n"},"key":"tE4sGbTFho"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 8\n Training set error: 0.473\n Training set accuracy: 0.776\n Test set error: 0.473\n Test set accuracy: 0.752\n"},"key":"TzaxoudnuS"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 9\n Training set error: 0.460\n Training set accuracy: 0.788\n Test set error: 0.462\n Test set accuracy: 0.762\n"},"key":"D62G4lSnTZ"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 10\n Training set error: 0.465\n Training set accuracy: 0.769\n Test set error: 0.462\n Test set accuracy: 0.767\n"},"key":"I0Y9XLXRzE"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 11\n Training set error: 0.443\n Training set accuracy: 0.801\n Test set error: 0.456\n Test set accuracy: 0.775\n"},"key":"AowK3BpEAB"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 12\n Training set error: 0.448\n Training set accuracy: 0.795\n Test set error: 0.455\n Test set accuracy: 0.772\n"},"key":"o8oq6IrchG"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 13\n Training set error: 0.438\n Training set accuracy: 0.787\n Test set error: 0.453\n Test set accuracy: 0.778\n"},"key":"Zf4fZbWUUN"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 14\n Training set error: 0.446\n Training set accuracy: 0.791\n Test set error: 0.450\n Test set accuracy: 0.779\n"},"key":"vomZ1kPLtQ"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 15\n Training set error: 0.441\n Training set accuracy: 0.788\n Test set error: 0.452\n Test set accuracy: 0.772\n"},"key":"sS1PgbePGl"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 16\n Training set error: 0.437\n Training set accuracy: 0.786\n Test set error: 0.453\n Test set accuracy: 0.772\n"},"key":"Kjt8nuL9vQ"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 17\n Training set error: 0.436\n Training set accuracy: 0.794\n Test set error: 0.449\n Test set accuracy: 0.778\n"},"key":"tulmYSx9Ht"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 18\n Training set error: 0.433\n Training set accuracy: 0.801\n Test set error: 0.450\n Test set accuracy: 0.774\n"},"key":"omURtMEDPR"},{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Epoch: 19\n Training set error: 0.429\n Training set accuracy: 0.785\n Test set error: 0.436\n Test set accuracy: 0.784\n"},"key":"q0eMizUjJv"}],"key":"jiTfNq6YZ1"}],"key":"qpRyXkVFP9"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":557,"column":1},"end":{"line":557,"column":1}},"children":[{"type":"text","value":"The training process may take many minutes, depending on a number of factors, such as the processing power of the machine you are running the experiment on and the number of epochs. To reduce the waiting time, you can change the epoch (iteration) variable from 100 to a lower number, reset the runtime (which will reset the weights), and run the notebook cells again.","position":{"start":{"line":557,"column":1},"end":{"line":557,"column":1}},"key":"cuhSoL3Ptk"}],"key":"nSfKqd32M4"}],"key":"gLyNU6NzUu"},{"type":"block","position":{"start":{"line":559,"column":1},"end":{"line":559,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":561,"column":1},"end":{"line":561,"column":1}},"children":[{"type":"text","value":"After executing the cell above, you can visualize the training and test set errors and accuracy for an instance of this training process.","position":{"start":{"line":561,"column":1},"end":{"line":561,"column":1}},"key":"rc42RmcMwx"}],"key":"n286wGAo48"}],"key":"HvYuJZsUPs"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"epoch_range = np.arange(epochs) + 1 # Starting from 1\n\n# The training set metrics.\ntraining_metrics = {\n \"accuracy\": np.asarray(store_training_accurate_pred) / len(training_images),\n \"error\": np.asarray(store_training_loss) / len(training_images),\n}\n\n# The test set metrics.\ntest_metrics = {\n \"accuracy\": np.asarray(store_test_accurate_pred) / len(test_images),\n \"error\": np.asarray(store_test_loss) / len(test_images),\n}\n\n# Display the plots.\nfig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 5))\nfor ax, metrics, title in zip(\n axes, (training_metrics, test_metrics), (\"Training set\", \"Test set\")\n):\n # Plot the metrics\n for metric, values in metrics.items():\n ax.plot(epoch_range, values, label=metric.capitalize())\n ax.set_title(title)\n ax.set_xlabel(\"Epochs\")\n ax.legend()","key":"UXla8EHSGE"},{"type":"outputs","id":"eTt8919DSZ0GpdTTPwmuP","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"87249290c03a34d5ea6dd3cb94f73280","path":"/numpy-tutorials/build/87249290c03a34d5ea6dd3cb94f73280.png"}}},"key":"czFLkqBnen"}],"key":"m7IZXiWkdT"}],"key":"kRuwOxX0td"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":591,"column":1},"end":{"line":593,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":591,"column":1},"end":{"line":591,"column":1}},"children":[{"type":"text","value":"The training and testing error is shown above in the left and right\nplots, respectively. As the number of Epochs increases, the total error\ndecreases and the accuracy increases.","position":{"start":{"line":591,"column":1},"end":{"line":591,"column":1}},"key":"XZI5BrEMgn"}],"key":"uiX7HG6Yvb"}],"key":"etB8cLOW4w"},{"type":"paragraph","position":{"start":{"line":595,"column":1},"end":{"line":595,"column":1}},"children":[{"type":"text","value":"The accuracy rates that your model reaches during training and testing may be somewhat plausible but you may also find the error rates to be quite high.","position":{"start":{"line":595,"column":1},"end":{"line":595,"column":1}},"key":"jCeVV34VG7"}],"key":"UlkQSZj5tq"},{"type":"paragraph","position":{"start":{"line":597,"column":1},"end":{"line":597,"column":1}},"children":[{"type":"text","value":"To reduce the error during training and testing, you can consider changing the simple loss function to, for example, categorical ","position":{"start":{"line":597,"column":1},"end":{"line":597,"column":1}},"key":"wLNLV0ZvQC"},{"type":"link","url":"https://en.wikipedia.org/wiki/Cross_entropy","position":{"start":{"line":597,"column":1},"end":{"line":597,"column":1}},"children":[{"type":"text","value":"cross-entropy","position":{"start":{"line":597,"column":1},"end":{"line":597,"column":1}},"key":"QWu7RXeXth"}],"urlSource":"https://en.wikipedia.org/wiki/Cross_entropy","data":{"page":"Cross_entropy","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"zmsyYNBEHf"},{"type":"text","value":". Other possible solutions are discussed below.","position":{"start":{"line":597,"column":1},"end":{"line":597,"column":1}},"key":"umJmmlnVsn"}],"key":"HbAFCJi2CH"},{"type":"heading","depth":2,"position":{"start":{"line":599,"column":1},"end":{"line":599,"column":1}},"children":[{"type":"text","value":"Next steps","position":{"start":{"line":599,"column":1},"end":{"line":599,"column":1}},"key":"z4MVuz0lmQ"}],"identifier":"next-steps","label":"Next steps","html_id":"next-steps","implicit":true,"key":"FNwvfGl3Nz"},{"type":"paragraph","position":{"start":{"line":601,"column":1},"end":{"line":601,"column":1}},"children":[{"type":"text","value":"You have learned how to build and train a simple feed-forward neural network from scratch using just NumPy to classify handwritten MNIST digits.","position":{"start":{"line":601,"column":1},"end":{"line":601,"column":1}},"key":"hyqt0BNqD5"}],"key":"S62RmhvVKs"},{"type":"paragraph","position":{"start":{"line":603,"column":1},"end":{"line":603,"column":1}},"children":[{"type":"text","value":"To further enhance and optimize your neural network model, you can consider one of a mixture of the following:","position":{"start":{"line":603,"column":1},"end":{"line":603,"column":1}},"key":"UQppeLZPxT"}],"key":"n3YCeCSZyf"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":604,"column":1},"end":{"line":613,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":604,"column":1},"end":{"line":604,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Increase the training sample size from 1,000 to a higher number (up to 60,000).","position":{"start":{"line":604,"column":1},"end":{"line":604,"column":1}},"key":"AvgqlPyHtQ"}],"key":"ddJzHZEm6I"}],"key":"z0zqfI3sWl"},{"type":"listItem","spread":true,"position":{"start":{"line":605,"column":1},"end":{"line":605,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Use ","position":{"start":{"line":605,"column":1},"end":{"line":605,"column":1}},"key":"fouhf2GjuK"},{"type":"link","url":"http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf","position":{"start":{"line":605,"column":1},"end":{"line":605,"column":1}},"children":[{"type":"text","value":"mini-batches and reduce the learning rate","position":{"start":{"line":605,"column":1},"end":{"line":605,"column":1}},"key":"MWAOFBQaI0"}],"urlSource":"http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf","key":"uxE7m8ZgZa"},{"type":"text","value":".","position":{"start":{"line":605,"column":1},"end":{"line":605,"column":1}},"key":"G2qs9u1960"}],"key":"fpntiOtCrX"}],"key":"xAa0zlulqm"},{"type":"listItem","spread":true,"position":{"start":{"line":606,"column":1},"end":{"line":606,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Alter the architecture by introducing more hidden layers to make the network ","position":{"start":{"line":606,"column":1},"end":{"line":606,"column":1}},"key":"Alki0v2iIk"},{"type":"link","url":"https://en.wikipedia.org/wiki/Deep_learning","position":{"start":{"line":606,"column":1},"end":{"line":606,"column":1}},"children":[{"type":"text","value":"deeper","position":{"start":{"line":606,"column":1},"end":{"line":606,"column":1}},"key":"Rh9rhuT10L"}],"urlSource":"https://en.wikipedia.org/wiki/Deep_learning","data":{"page":"Deep_learning","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"ydf7ufZHf4"},{"type":"text","value":".","position":{"start":{"line":606,"column":1},"end":{"line":606,"column":1}},"key":"sWN7uvvMOs"}],"key":"dBCLCJw948"}],"key":"OHRxCSh3iH"},{"type":"listItem","spread":true,"position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Combine the ","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"key":"v7JnkU7Uzs"},{"type":"link","url":"https://en.wikipedia.org/wiki/Cross_entropy","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"children":[{"type":"text","value":"cross-entropy","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"key":"W59qXnXZrm"}],"urlSource":"https://en.wikipedia.org/wiki/Cross_entropy","data":{"page":"Cross_entropy","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"HDwulVir3X"},{"type":"text","value":" loss function with a ","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"key":"eNWupEV0tJ"},{"type":"link","url":"https://en.wikipedia.org/wiki/Softmax_function","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"children":[{"type":"text","value":"softmax","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"key":"B3OfJ4JEpT"}],"urlSource":"https://en.wikipedia.org/wiki/Softmax_function","data":{"page":"Softmax_function","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"zBDPKo5tco"},{"type":"text","value":" activation function in the last layer.","position":{"start":{"line":607,"column":1},"end":{"line":607,"column":1}},"key":"ts5zh244Ll"}],"key":"RJt6ooJ1Ch"}],"key":"fRdUbqqj7W"},{"type":"listItem","spread":true,"position":{"start":{"line":608,"column":1},"end":{"line":608,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Introduce convolutional layers: replace the feedforward network with a ","position":{"start":{"line":608,"column":1},"end":{"line":608,"column":1}},"key":"dazCrGe17P"},{"type":"link","url":"https://en.wikipedia.org/wiki/Convolutional_neural_network","position":{"start":{"line":608,"column":1},"end":{"line":608,"column":1}},"children":[{"type":"text","value":"convolutional neural network","position":{"start":{"line":608,"column":1},"end":{"line":608,"column":1}},"key":"oxR0cq3wsF"}],"urlSource":"https://en.wikipedia.org/wiki/Convolutional_neural_network","data":{"page":"Convolutional_neural_network","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"yxlf903NK5"},{"type":"text","value":" architecture.","position":{"start":{"line":608,"column":1},"end":{"line":608,"column":1}},"key":"ChlKF2GczM"}],"key":"NhQ5KB3ZEI"}],"key":"vm7FsTXETU"},{"type":"listItem","spread":true,"position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Use a higher epoch size to train longer and add more regularization techniques, such as ","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"key":"wUTrlPBD4U"},{"type":"link","url":"https://en.wikipedia.org/wiki/Early_stopping","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"children":[{"type":"text","value":"early stopping","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"key":"CUVipMCb6e"}],"urlSource":"https://en.wikipedia.org/wiki/Early_stopping","data":{"page":"Early_stopping","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"aeCrvN4fWA"},{"type":"text","value":", to prevent ","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"key":"wHpEuMBHFd"},{"type":"link","url":"https://en.wikipedia.org/wiki/Overfitting","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"children":[{"type":"text","value":"overfitting","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"key":"Hgz6LG9M9V"}],"urlSource":"https://en.wikipedia.org/wiki/Overfitting","data":{"page":"Overfitting","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"c2YgbOSiGK"},{"type":"text","value":".","position":{"start":{"line":609,"column":1},"end":{"line":609,"column":1}},"key":"NcUuxoALfa"}],"key":"wEAxyQZTGh"}],"key":"oz3RP3Hmsg"},{"type":"listItem","spread":true,"position":{"start":{"line":610,"column":1},"end":{"line":610,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Introduce a ","position":{"start":{"line":610,"column":1},"end":{"line":610,"column":1}},"key":"wy9PXVt1iI"},{"type":"link","url":"https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets","position":{"start":{"line":610,"column":1},"end":{"line":610,"column":1}},"children":[{"type":"text","value":"validation set","position":{"start":{"line":610,"column":1},"end":{"line":610,"column":1}},"key":"HFEFtSfJeq"}],"urlSource":"https://en.wikipedia.org/wiki/Training,_validation,_and_test_sets","data":{"page":"Training,_validation,_and_test_sets","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"dLj1wR4irq"},{"type":"text","value":" for an unbiased valuation of the model fit.","position":{"start":{"line":610,"column":1},"end":{"line":610,"column":1}},"key":"UJQd0LHLET"}],"key":"cvakoiYfDF"}],"key":"JMTuCsXi7F"},{"type":"listItem","spread":true,"position":{"start":{"line":611,"column":1},"end":{"line":611,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Apply ","position":{"start":{"line":611,"column":1},"end":{"line":611,"column":1}},"key":"Icx9YJuvjA"},{"type":"link","url":"https://en.wikipedia.org/wiki/Batch_normalization","position":{"start":{"line":611,"column":1},"end":{"line":611,"column":1}},"children":[{"type":"text","value":"batch normalization","position":{"start":{"line":611,"column":1},"end":{"line":611,"column":1}},"key":"k1GqFz7y7q"}],"urlSource":"https://en.wikipedia.org/wiki/Batch_normalization","data":{"page":"Batch_normalization","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"AQTkE5xnZX"},{"type":"text","value":" for faster and more stable training.","position":{"start":{"line":611,"column":1},"end":{"line":611,"column":1}},"key":"JsFBs1XnJQ"}],"key":"Vww7N5u47K"}],"key":"FfuBJilw6E"},{"type":"listItem","spread":true,"position":{"start":{"line":612,"column":1},"end":{"line":613,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Tune other parameters, such as the learning rate and hidden layer size.","position":{"start":{"line":612,"column":1},"end":{"line":612,"column":1}},"key":"z2fQ5kBiIC"}],"key":"sX2xedKh5u"}],"key":"KtyG7hhrLU"}],"key":"f9fmwkEZBb"},{"type":"paragraph","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"Building a neural network from scratch with NumPy is a great way to learn more about NumPy and about deep learning. However, for real-world applications you should use specialized frameworks — such as ","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"HuUhAhJiJB"},{"type":"link","url":"https://pytorch.org/","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"PyTorch","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"llRyAeQ09L"}],"urlSource":"https://pytorch.org/","key":"QzAWT5zJhu"},{"type":"text","value":", ","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"lItDtaUv1p"},{"type":"link","url":"https://github.com/google/jax","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"JAX","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"eEQlKJ6eAB"}],"urlSource":"https://github.com/google/jax","error":true,"key":"wMAeIQ6eSp"},{"type":"text","value":", ","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"cKt5wctpma"},{"type":"link","url":"https://www.tensorflow.org/guide/tf_numpy","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"TensorFlow","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"KCAewounNk"}],"urlSource":"https://www.tensorflow.org/guide/tf_numpy","key":"WKH7JVSeSn"},{"type":"text","value":" or ","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"J9Bd5SnnSL"},{"type":"link","url":"https://mxnet.apache.org","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"MXNet","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"hDxk8SpYC2"}],"urlSource":"https://mxnet.apache.org","key":"F35rJZp81Q"},{"type":"text","value":" — that provide NumPy-like APIs, have built-in ","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"VlnqrIDUUS"},{"type":"link","url":"https://en.wikipedia.org/wiki/Automatic_differentiation","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"children":[{"type":"text","value":"automatic differentiation","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"i9tprrPy8f"}],"urlSource":"https://en.wikipedia.org/wiki/Automatic_differentiation","data":{"page":"Automatic_differentiation","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"dl2BxXYdtM"},{"type":"text","value":" and GPU support, and are designed for high-performance numerical computing and machine learning.","position":{"start":{"line":614,"column":1},"end":{"line":614,"column":1}},"key":"mtNG96HkFt"}],"key":"m5wDjEIMfG"},{"type":"paragraph","position":{"start":{"line":616,"column":1},"end":{"line":616,"column":1}},"children":[{"type":"text","value":"Finally, when developing a machine learning model, you should think about potential ethical issues and apply practices to avoid or mitigate those:","position":{"start":{"line":616,"column":1},"end":{"line":616,"column":1}},"key":"UTkEaYTJGo"}],"key":"uXBeQvJExL"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":617,"column":1},"end":{"line":621,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":617,"column":1},"end":{"line":617,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Document a trained model with a Model Card - see the ","position":{"start":{"line":617,"column":1},"end":{"line":617,"column":1}},"key":"bsZyIMOULu"},{"type":"cite","url":"https://doi.org/10.1145/3287560.3287596","position":{"start":{"line":617,"column":1},"end":{"line":617,"column":1}},"children":[{"type":"text","value":"Model Cards for Model Reporting paper","position":{"start":{"line":617,"column":1},"end":{"line":617,"column":1}},"key":"qGLl31dCKH"}],"kind":"narrative","label":"Mitchell_2019","identifier":"https://doi.org/10.1145/3287560.3287596","enumerator":"1","key":"T7zrvqto3u"},{"type":"text","value":" by Margaret Mitchell et al..","position":{"start":{"line":617,"column":1},"end":{"line":617,"column":1}},"key":"E4eotKLFrj"}],"key":"DMKcjvLHjm"}],"key":"XQ6AW7N8yo"},{"type":"listItem","spread":true,"position":{"start":{"line":618,"column":1},"end":{"line":618,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Document a dataset with a Datasheet - see the ","position":{"start":{"line":618,"column":1},"end":{"line":618,"column":1}},"key":"RvNO0DPCUy"},{"type":"link","url":"https://arxiv.org/abs/1803.09010","position":{"start":{"line":618,"column":1},"end":{"line":618,"column":1}},"children":[{"type":"text","value":"Datasheets for Datasets paper","position":{"start":{"line":618,"column":1},"end":{"line":618,"column":1}},"key":"pXaP5OdIlx"}],"urlSource":"https://arxiv.org/abs/1803.09010","key":"rvJ4UGccnt"},{"type":"text","value":") by Timnit Gebru et al..","position":{"start":{"line":618,"column":1},"end":{"line":618,"column":1}},"key":"YyWBm3LGCb"}],"key":"cUrk0rtDsL"}],"key":"P2mSRMQ9Js"},{"type":"listItem","spread":true,"position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Consider the impact of your model - who is affected by it, who does it benefit - see ","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"key":"AREUhNTBfG"},{"type":"link","url":"https://www.nature.com/articles/d41586-020-02003-2","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"children":[{"type":"text","value":"the article","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"key":"p0kz3W4uou"}],"urlSource":"https://www.nature.com/articles/d41586-020-02003-2","key":"sniOf049GS"},{"type":"text","value":" and ","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"key":"H5OO5EMFtg"},{"type":"link","url":"https://slideslive.com/38923453/the-values-of-machine-learning","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"children":[{"type":"text","value":"talk","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"key":"m0EUYmxla0"}],"urlSource":"https://slideslive.com/38923453/the-values-of-machine-learning","key":"N1Es167ZRw"},{"type":"text","value":" by Pratyusha Kalluri.","position":{"start":{"line":619,"column":1},"end":{"line":619,"column":1}},"key":"C1uM6LZarI"}],"key":"AjFVuFYhf9"}],"key":"hKQl4LalDv"},{"type":"listItem","spread":true,"position":{"start":{"line":620,"column":1},"end":{"line":621,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"For more resources, see ","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"key":"ZpVLoFwK18"},{"type":"link","url":"https://www.fast.ai/2018/09/24/ai-ethics-resources/","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"children":[{"type":"text","value":"this blog post by Rachel Thomas","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"key":"t0UmqpK1Xk"}],"urlSource":"https://www.fast.ai/2018/09/24/ai-ethics-resources/","key":"lOUHxvg8L4"},{"type":"text","value":" and the ","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"key":"zXViScT5Ai"},{"type":"link","url":"https://www.radicalai.org/","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"children":[{"type":"text","value":"Radical AI podcast","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"key":"HyFYlskiRx"}],"urlSource":"https://www.radicalai.org/","key":"Dl1KhJ269V"},{"type":"text","value":".","position":{"start":{"line":620,"column":1},"end":{"line":620,"column":1}},"key":"p9oGZP82tD"}],"key":"GKgTqKvWJ8"}],"key":"U7DXJv1NGf"}],"key":"vPp71liS0z"},{"type":"paragraph","position":{"start":{"line":622,"column":1},"end":{"line":622,"column":1}},"children":[{"type":"text","value":"(Credit to ","position":{"start":{"line":622,"column":1},"end":{"line":622,"column":1}},"key":"qyTsBfEXz4"},{"type":"link","url":"https://github.com/hsjeong5/MNIST-for-Numpy","position":{"start":{"line":622,"column":1},"end":{"line":622,"column":1}},"children":[{"type":"text","value":"hsjeong5","position":{"start":{"line":622,"column":1},"end":{"line":622,"column":1}},"key":"u7d5H7LTTE"}],"urlSource":"https://github.com/hsjeong5/MNIST-for-Numpy","error":true,"key":"go0d76atrh"},{"type":"text","value":" for demonstrating how to download MNIST without the use of external libraries.)","position":{"start":{"line":622,"column":1},"end":{"line":622,"column":1}},"key":"gppje1s5HY"}],"key":"nqH9xyRj6H"}],"key":"JWB5i0R9eq"}],"key":"tni6auSfnr"},"references":{"cite":{"order":["Mitchell_2019"],"data":{"Mitchell_2019":{"label":"Mitchell_2019","enumerator":"1","doi":"10.1145/3287560.3287596","html":"Mitchell, M., Wu, S., Zaldivar, A., Barnes, P., Vasserman, L., Hutchinson, B., Spitzer, E., Raji, I. D., & Gebru, T. (2019). Model Cards for Model Reporting. Proceedings of the Conference on Fairness, Accountability, and Transparency, 220–229. 10.1145/3287560.3287596","url":"https://doi.org/10.1145/3287560.3287596"}}}},"footer":{"navigation":{"prev":{"title":"Determining Moore’s Law with real data in NumPy","short_title":"Moore's Law","url":"/mooreslaw-tutorial","group":"Applications"},"next":{"title":"X-ray image processing","url":"/tutorial-x-ray-image-processing","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-deep-learning-on-mnist/index.html b/tutorial-deep-learning-on-mnist/index.html new file mode 100644 index 00000000..f331d147 --- /dev/null +++ b/tutorial-deep-learning-on-mnist/index.html @@ -0,0 +1,402 @@ +Deep learning on MNIST - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Deep learning on MNIST

This tutorial demonstrates how to build a simple feedforward neural network (with one hidden layer) and train it from scratch with NumPy to recognize handwritten digit images.

Your deep learning model — one of the most basic artificial neural networks that resembles the original multi-layer perceptron — will learn to classify digits from 0 to 9 from the MNIST dataset. The dataset contains 60,000 training and 10,000 test images and corresponding labels. Each training and test image is of size 784 (or 28x28 pixels) — this will be your input for the neural network.

Based on the image inputs and their labels (supervised learning), your neural network will be trained to learn their features using forward propagation and backpropagation (reverse-mode differentiation). The final output of the network is a vector of 10 scores — one for each handwritten digit image. You will also evaluate how good your model is at classifying the images on the test set.

Diagram showing operations detailed in this tutorial (The input imageis passed into a Hidden layer that creates a weighted sum of outputs.The weighted sum is passed to the Non-linearity, then regularization andinto the output layer. The output layer creates a prediction which canthen be compared to existing data. The errors are used to calculate theloss function and update weights in the hidden layer and outputlayer.)

This tutorial was adapted from the work by Andrew Trask (with the author’s permission).

Prerequisites

The reader should have some knowledge of Python, NumPy array manipulation, and linear algebra. In addition, you should be familiar with main concepts of deep learning.

To refresh the memory, you can take the Python and Linear algebra on n-dimensional arrays tutorials.

You are advised to read the Deep learning paper published in 2015 by Yann LeCun, Yoshua Bengio, and Geoffrey Hinton, who are regarded as some of the pioneers of the field. You should also consider reading Andrew Trask’s Grokking Deep Learning, which teaches deep learning with NumPy.

In addition to NumPy, you will be utilizing the following Python standard modules for data loading and processing:

This tutorial can be run locally in an isolated environment, such as Virtualenv or conda. You can use Jupyter Notebook or JupyterLab to run each notebook cell. Don’t forget to set up NumPy and Matplotlib.

Table of contents

  1. Load the MNIST dataset

  2. Preprocess the dataset

  3. Build and train a small neural network from scratch

  4. Next steps


1. Load the MNIST dataset

In this section, you will download the zipped MNIST dataset files originally developed by Yann LeCun’s research team. (More details of the MNIST dataset are available on Kaggle.) Then, you will transform them into 4 files of NumPy array type using built-in Python modules. Finally, you will split the arrays into training and test sets.

1. Define a variable to store the training/test image/label names of the MNIST dataset in a list:

data_sources = {
+    "training_images": "train-images-idx3-ubyte.gz",  # 60,000 training images.
+    "test_images": "t10k-images-idx3-ubyte.gz",  # 10,000 test images.
+    "training_labels": "train-labels-idx1-ubyte.gz",  # 60,000 training labels.
+    "test_labels": "t10k-labels-idx1-ubyte.gz",  # 10,000 test labels.
+}

2. Load the data. First check if the data is stored locally; if not, then +download it.

import requests
+import os
+
+data_dir = "../_data"
+os.makedirs(data_dir, exist_ok=True)
+
+base_url = "https://ossci-datasets.s3.amazonaws.com/mnist/"
+
+for fname in data_sources.values():
+    fpath = os.path.join(data_dir, fname)
+    if not os.path.exists(fpath):
+        print("Downloading file: " + fname)
+        resp = requests.get(base_url + fname, stream=True, **request_opts)
+        resp.raise_for_status()  # Ensure download was succesful
+        with open(fpath, "wb") as fh:
+            for chunk in resp.iter_content(chunk_size=128):
+                fh.write(chunk)
Downloading file: train-images-idx3-ubyte.gz
+
Downloading file: t10k-images-idx3-ubyte.gz
+Downloading file: train-labels-idx1-ubyte.gz
+
Downloading file: t10k-labels-idx1-ubyte.gz
+

3. Decompress the 4 files and create 4 ndarrays, saving them into a dictionary. Each original image is of size 28x28 and neural networks normally expect a 1D vector input; therefore, you also need to reshape the images by multiplying 28 by 28 (784).

import gzip
+import numpy as np
+
+mnist_dataset = {}
+
+# Images
+for key in ("training_images", "test_images"):
+    with gzip.open(os.path.join(data_dir, data_sources[key]), "rb") as mnist_file:
+        mnist_dataset[key] = np.frombuffer(
+            mnist_file.read(), np.uint8, offset=16
+        ).reshape(-1, 28 * 28)
+# Labels
+for key in ("training_labels", "test_labels"):
+    with gzip.open(os.path.join(data_dir, data_sources[key]), "rb") as mnist_file:
+        mnist_dataset[key] = np.frombuffer(mnist_file.read(), np.uint8, offset=8)

4. Split the data into training and test sets using the standard notation of x for data and y for labels, calling the training and test set images x_train and x_test, and the labels y_train and y_test:

x_train, y_train, x_test, y_test = (
+    mnist_dataset["training_images"],
+    mnist_dataset["training_labels"],
+    mnist_dataset["test_images"],
+    mnist_dataset["test_labels"],
+)

5. You can confirm that the shape of the image arrays is (60000, 784) and (10000, 784) for training and test sets, respectively, and the labels — (60000,) and (10000,):

print(
+    "The shape of training images: {} and training labels: {}".format(
+        x_train.shape, y_train.shape
+    )
+)
+print(
+    "The shape of test images: {} and test labels: {}".format(
+        x_test.shape, y_test.shape
+    )
+)
The shape of training images: (60000, 784) and training labels: (60000,)
+The shape of test images: (10000, 784) and test labels: (10000,)
+

6. And you can inspect some images using Matplotlib:

import matplotlib.pyplot as plt
+
+# Take the 60,000th image (indexed at 59,999) from the training set,
+# reshape from (784, ) to (28, 28) to have a valid shape for displaying purposes.
+mnist_image = x_train[59999, :].reshape(28, 28)
+
+fig, ax = plt.subplots()
+# Set the color mapping to grayscale to have a black background.
+ax.imshow(mnist_image, cmap="gray")
<Figure size 640x480 with 1 Axes>
# Display 5 random images from the training set.
+num_examples = 5
+seed = 147197952744
+rng = np.random.default_rng(seed)
+
+fig, axes = plt.subplots(1, num_examples)
+for sample, ax in zip(rng.choice(x_train, size=num_examples, replace=False), axes):
+    ax.imshow(sample.reshape(28, 28), cmap="gray")
<Figure size 640x480 with 5 Axes>

Above are five images taken from the MNIST training set. Various hand-drawn +Arabic numerals are shown, with exact values chosen randomly with each run of the code.

Note: You can also visualize a sample image as an array by printing x_train[59999]. Here, 59999 is your 60,000th training image sample (0 would be your first). Your output will be quite long and should contain an array of 8-bit integers:

...
+         0,   0,  38,  48,  48,  22,   0,   0,   0,   0,   0,   0,   0,
+         0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+         0,  62,  97, 198, 243, 254, 254, 212,  27,   0,   0,   0,   0,
+...
# Display the label of the 60,000th image (indexed at 59,999) from the training set.
+y_train[59999]
np.uint8(8)

2. Preprocess the data

Neural networks can work with inputs that are in a form of tensors (multidimensional arrays) of floating-point type. When preprocessing the data, you should consider the following processes: vectorization and conversion to a floating-point format.

Since the MNIST data is already vectorized and the arrays are of dtype uint8, your next challenge is to convert them to a floating-point format, such as float64 (double-precision):

In practice, you can use different types of floating-point precision depending on your goals and you can find more information about that in the Nvidia and Google Cloud blog posts.

Convert the image data to the floating-point format

The images data contain 8-bit integers encoded in the [0, 255] interval with color values between 0 and 255.

You will normalize them into floating-point arrays in the [0, 1] interval by dividing them by 255.

1. Check that the vectorized image data has type uint8:

print("The data type of training images: {}".format(x_train.dtype))
+print("The data type of test images: {}".format(x_test.dtype))
The data type of training images: uint8
+The data type of test images: uint8
+

2. Normalize the arrays by dividing them by 255 (and thus promoting the data type from uint8 to float64) and then assign the train and test image data variables — x_train and x_test — to training_images and train_labels, respectively. +To reduce the model training and evaluation time in this example, only a subset +of the training and test images will be used. +Both training_images and test_images will contain only 1,000 samples each out +of the complete datasets of 60,000 and 10,000 images, respectively. +These values can be controlled by changing the training_sample and +test_sample below, up to their maximum values of 60,000 and 10,000.

training_sample, test_sample = 1000, 1000
+training_images = x_train[0:training_sample] / 255
+test_images = x_test[0:test_sample] / 255

3. Confirm that the image data has changed to the floating-point format:

print("The data type of training images: {}".format(training_images.dtype))
+print("The data type of test images: {}".format(test_images.dtype))
The data type of training images: float64
+The data type of test images: float64
+

Note: You can also check that normalization was successful by printing training_images[0] in a notebook cell. Your long output should contain an array of floating-point numbers:

...
+       0.        , 0.        , 0.01176471, 0.07058824, 0.07058824,
+       0.07058824, 0.49411765, 0.53333333, 0.68627451, 0.10196078,
+       0.65098039, 1.        , 0.96862745, 0.49803922, 0.        ,
+...

Convert the labels to floating point through categorical/one-hot encoding

You will use one-hot encoding to embed each digit label as an all-zero vector with np.zeros() and place 1 for a label index. As a result, your label data will be arrays with 1.0 (or 1.) in the position of each image label.

Since there are 10 labels (from 0 to 9) in total, your arrays will look similar to this:

array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])

1. Confirm that the image label data are integers with dtype uint8:

print("The data type of training labels: {}".format(y_train.dtype))
+print("The data type of test labels: {}".format(y_test.dtype))
The data type of training labels: uint8
+The data type of test labels: uint8
+

2. Define a function that performs one-hot encoding on arrays:

def one_hot_encoding(labels, dimension=10):
+    # Define a one-hot variable for an all-zero vector
+    # with 10 dimensions (number labels from 0 to 9).
+    one_hot_labels = labels[..., None] == np.arange(dimension)[None]
+    # Return one-hot encoded labels.
+    return one_hot_labels.astype(np.float64)

3. Encode the labels and assign the values to new variables:

training_labels = one_hot_encoding(y_train[:training_sample])
+test_labels = one_hot_encoding(y_test[:test_sample])

4. Check that the data type has changed to floating point:

print("The data type of training labels: {}".format(training_labels.dtype))
+print("The data type of test labels: {}".format(test_labels.dtype))
The data type of training labels: float64
+The data type of test labels: float64
+

5. Examine a few encoded labels:

print(training_labels[0])
+print(training_labels[1])
+print(training_labels[2])
[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
+[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
+[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
+

...and compare to the originals:

print(y_train[0])
+print(y_train[1])
+print(y_train[2])
5
+0
+4
+

You have finished preparing the dataset.

3. Build and train a small neural network from scratch

In this section you will familiarize yourself with some high-level concepts of the basic building blocks of a deep learning model. You can refer to the original Deep learning research publication for more information.

Afterwards, you will construct the building blocks of a simple deep learning model in Python and NumPy and train it to learn to identify handwritten digits from the MNIST dataset with a certain level of accuracy.

Neural network building blocks with NumPy

  • Layers: These building blocks work as data filters — they process data and learn representations from inputs to better predict the target outputs.

    You will use 1 hidden layer in your model to pass the inputs forward (forward propagation) and propagate the gradients/error derivatives of a loss function backward (backpropagation). These are input, hidden and output layers.

    In the hidden (middle) and output (last) layers, the neural network model will compute the weighted sum of inputs. To compute this process, you will use NumPy’s matrix multiplication function (the “dot multiply” or np.dot(layer, weights)).

    Note: For simplicity, the bias term is omitted in this example (there is no np.dot(layer, weights) + bias).

  • Weights: These are important adjustable parameters that the neural network fine-tunes by forward and backward propagating the data. They are optimized through a process called gradient descent. Before the model training starts, the weights are randomly initialized with NumPy’s Generator.random().

    The optimal weights should produce the highest prediction accuracy and the lowest error on the training and test sets.

  • Activation function: Deep learning models are capable of determining non-linear relationships between inputs and outputs and these non-linear functions are usually applied to the output of each layer.

    You will use a rectified linear unit (ReLU) to the hidden layer’s output (for example, relu(np.dot(layer, weights)).

  • Regularization: This technique helps prevent the neural network model from overfitting.

    In this example, you will use a method called dropout — dilution — that randomly sets a number of features in a layer to 0s. You will define it with NumPy’s Generator.integers() method and apply it to the hidden layer of the network.

  • Loss function: The computation determines the quality of predictions by comparing the image labels (the truth) with the predicted values in the final layer’s output.

    For simplicity, you will use a basic total squared error using NumPy’s np.sum() function (for example, np.sum((final_layer_output - image_labels) ** 2)).

  • Accuracy: This metric measures the accuracy of the network’s ability to predict on the data it hasn’t seen.

Model architecture and training summary

Here is a summary of the neural network model architecture and the training process:

Diagram showing operations detailed in this tutorial (The input imageis passed into a Hidden layer that creates a weighted sum of outputs.The weighted sum is passed to the Non-linearity, then regularization andinto the output layer. The output layer creates a prediction which canthen be compared to existing data. The errors are used to calculate theloss function and update weights in the hidden layer and outputlayer.)
  • The input layer:

    It is the input for the network — the previously preprocessed data that is loaded from training_images into layer_0.

  • The hidden (middle) layer:

    layer_1 takes the output from the previous layer and performs matrix-multiplication of the input by weights (weights_1) with NumPy’s np.dot()).

    Then, this output is passed through the ReLU activation function for non-linearity and then dropout is applied to help with overfitting.

  • The output (last) layer:

    layer_2 ingests the output from layer_1 and repeats the same “dot multiply” process with weights_2.

    The final output returns 10 scores for each of the 0-9 digit labels. The network model ends with a size 10 layer — a 10-dimensional vector.

  • Forward propagation, backpropagation, training loop:

    In the beginning of model training, your network randomly initializes the weights and feeds the input data forward through the hidden and output layers. This process is the forward pass or forward propagation.

    Then, the network propagates the “signal” from the loss function back through the hidden layer and adjusts the weights with the help of the learning rate parameter (more on that later).

Note: In more technical terms, you:

  1. Measure the error by comparing the real label of an image (the truth) with the prediction of the model.

  2. Differentiate the loss function.

  3. Ingest the gradients with the respect to the output, and backpropagate them with the respect to the inputs through the layer(s).

Since the network contains tensor operations and weight matrices, backpropagation uses the chain rule.

With each iteration (epoch) of the neural network training, this forward and backward propagation cycle adjusts the weights, which is reflected in the accuracy and error metrics. As you train the model, your goal is to minimize the error and maximize the accuracy on the training data, where the model learns from, as well as the test data, where you evaluate the model.

Compose the model and begin training and testing it

Having covered the main deep learning concepts and the neural network architecture, let’s write the code.

1. We’ll start by creating a new random number generator, providing a seed +for reproducibility:

seed = 884736743
+rng = np.random.default_rng(seed)

2. For the hidden layer, define the ReLU activation function for forward propagation and ReLU’s derivative that will be used during backpropagation:

# Define ReLU that returns the input if it's positive and 0 otherwise.
+def relu(x):
+    return (x >= 0) * x
+
+
+# Set up a derivative of the ReLU function that returns 1 for a positive input
+# and 0 otherwise.
+def relu2deriv(output):
+    return output >= 0

3. Set certain default values of hyperparameters, such as:

  • Learning rate: learning_rate — helps limit the magnitude of weight updates to prevent them from overcorrecting.

  • Epochs (iterations): epochs — the number of complete passes — forward and backward propagations — of the data through the network. This parameter can positively or negatively affect the results. The higher the iterations, the longer the learning process may take. Because this is a computationally intensive task, we have chosen a very low number of epochs (20). To get meaningful results, you should choose a much larger number.

  • Size of the hidden (middle) layer in a network: hidden_size — different sizes of the hidden layer can affect the results during training and testing.

  • Size of the input: pixels_per_image — you have established that the image input is 784 (28x28) (in pixels).

  • Number of labels: num_labels — indicates the output number for the output layer where the predictions occur for 10 (0 to 9) handwritten digit labels.

learning_rate = 0.005
+epochs = 20
+hidden_size = 100
+pixels_per_image = 784
+num_labels = 10

4. Initialize the weight vectors that will be used in the hidden and output layers with random values:

weights_1 = 0.2 * rng.random((pixels_per_image, hidden_size)) - 0.1
+weights_2 = 0.2 * rng.random((hidden_size, num_labels)) - 0.1

5. Set up the neural network’s learning experiment with a training loop and start the training process. +Note that the model is evaluated against the test set at each epoch to track +its performance over the training epochs.

Start the training process:

# To store training and test set losses and accurate predictions
+# for visualization.
+store_training_loss = []
+store_training_accurate_pred = []
+store_test_loss = []
+store_test_accurate_pred = []
+
+# This is a training loop.
+# Run the learning experiment for a defined number of epochs (iterations).
+for j in range(epochs):
+
+    #################
+    # Training step #
+    #################
+
+    # Set the initial loss/error and the number of accurate predictions to zero.
+    training_loss = 0.0
+    training_accurate_predictions = 0
+
+    # For all images in the training set, perform a forward pass
+    # and backpropagation and adjust the weights accordingly.
+    for i in range(len(training_images)):
+        # Forward propagation/forward pass:
+        # 1. The input layer:
+        #    Initialize the training image data as inputs.
+        layer_0 = training_images[i]
+        # 2. The hidden layer:
+        #    Take in the training image data into the middle layer by
+        #    matrix-multiplying it by randomly initialized weights.
+        layer_1 = np.dot(layer_0, weights_1)
+        # 3. Pass the hidden layer's output through the ReLU activation function.
+        layer_1 = relu(layer_1)
+        # 4. Define the dropout function for regularization.
+        dropout_mask = rng.integers(low=0, high=2, size=layer_1.shape)
+        # 5. Apply dropout to the hidden layer's output.
+        layer_1 *= dropout_mask * 2
+        # 6. The output layer:
+        #    Ingest the output of the middle layer into the the final layer
+        #    by matrix-multiplying it by randomly initialized weights.
+        #    Produce a 10-dimension vector with 10 scores.
+        layer_2 = np.dot(layer_1, weights_2)
+
+        # Backpropagation/backward pass:
+        # 1. Measure the training error (loss function) between the actual
+        #    image labels (the truth) and the prediction by the model.
+        training_loss += np.sum((training_labels[i] - layer_2) ** 2)
+        # 2. Increment the accurate prediction count.
+        training_accurate_predictions += int(
+            np.argmax(layer_2) == np.argmax(training_labels[i])
+        )
+        # 3. Differentiate the loss function/error.
+        layer_2_delta = training_labels[i] - layer_2
+        # 4. Propagate the gradients of the loss function back through the hidden layer.
+        layer_1_delta = np.dot(weights_2, layer_2_delta) * relu2deriv(layer_1)
+        # 5. Apply the dropout to the gradients.
+        layer_1_delta *= dropout_mask
+        # 6. Update the weights for the middle and input layers
+        #    by multiplying them by the learning rate and the gradients.
+        weights_1 += learning_rate * np.outer(layer_0, layer_1_delta)
+        weights_2 += learning_rate * np.outer(layer_1, layer_2_delta)
+
+    # Store training set losses and accurate predictions.
+    store_training_loss.append(training_loss)
+    store_training_accurate_pred.append(training_accurate_predictions)
+
+    ###################
+    # Evaluation step #
+    ###################
+
+    # Evaluate model performance on the test set at each epoch.
+
+    # Unlike the training step, the weights are not modified for each image
+    # (or batch). Therefore the model can be applied to the test images in a
+    # vectorized manner, eliminating the need to loop over each image
+    # individually:
+
+    results = relu(test_images @ weights_1) @ weights_2
+
+    # Measure the error between the actual label (truth) and prediction values.
+    test_loss = np.sum((test_labels - results) ** 2)
+
+    # Measure prediction accuracy on test set
+    test_accurate_predictions = np.sum(
+        np.argmax(results, axis=1) == np.argmax(test_labels, axis=1)
+    )
+
+    # Store test set losses and accurate predictions.
+    store_test_loss.append(test_loss)
+    store_test_accurate_pred.append(test_accurate_predictions)
+
+    # Summarize error and accuracy metrics at each epoch
+    print(
+        (
+            f"Epoch: {j}\n"
+            f"  Training set error: {training_loss / len(training_images):.3f}\n"
+            f"  Training set accuracy: {training_accurate_predictions / len(training_images)}\n"
+            f"  Test set error: {test_loss / len(test_images):.3f}\n"
+            f"  Test set accuracy: {test_accurate_predictions / len(test_images)}"
+        )
+    )
Epoch: 0
+  Training set error: 0.898
+  Training set accuracy: 0.397
+  Test set error: 0.680
+  Test set accuracy: 0.582
+
Epoch: 1
+  Training set error: 0.656
+  Training set accuracy: 0.633
+  Test set error: 0.607
+  Test set accuracy: 0.641
+
Epoch: 2
+  Training set error: 0.592
+  Training set accuracy: 0.68
+  Test set error: 0.569
+  Test set accuracy: 0.679
+
Epoch: 3
+  Training set error: 0.556
+  Training set accuracy: 0.7
+  Test set error: 0.541
+  Test set accuracy: 0.708
+
Epoch: 4
+  Training set error: 0.534
+  Training set accuracy: 0.732
+  Test set error: 0.526
+  Test set accuracy: 0.729
+
Epoch: 5
+  Training set error: 0.515
+  Training set accuracy: 0.715
+  Test set error: 0.500
+  Test set accuracy: 0.739
+
Epoch: 6
+  Training set error: 0.495
+  Training set accuracy: 0.748
+  Test set error: 0.487
+  Test set accuracy: 0.753
+
Epoch: 7
+  Training set error: 0.483
+  Training set accuracy: 0.769
+  Test set error: 0.486
+  Test set accuracy: 0.747
+
Epoch: 8
+  Training set error: 0.473
+  Training set accuracy: 0.776
+  Test set error: 0.473
+  Test set accuracy: 0.752
+
Epoch: 9
+  Training set error: 0.460
+  Training set accuracy: 0.788
+  Test set error: 0.462
+  Test set accuracy: 0.762
+
Epoch: 10
+  Training set error: 0.465
+  Training set accuracy: 0.769
+  Test set error: 0.462
+  Test set accuracy: 0.767
+
Epoch: 11
+  Training set error: 0.443
+  Training set accuracy: 0.801
+  Test set error: 0.456
+  Test set accuracy: 0.775
+
Epoch: 12
+  Training set error: 0.448
+  Training set accuracy: 0.795
+  Test set error: 0.455
+  Test set accuracy: 0.772
+
Epoch: 13
+  Training set error: 0.438
+  Training set accuracy: 0.787
+  Test set error: 0.453
+  Test set accuracy: 0.778
+
Epoch: 14
+  Training set error: 0.446
+  Training set accuracy: 0.791
+  Test set error: 0.450
+  Test set accuracy: 0.779
+
Epoch: 15
+  Training set error: 0.441
+  Training set accuracy: 0.788
+  Test set error: 0.452
+  Test set accuracy: 0.772
+
Epoch: 16
+  Training set error: 0.437
+  Training set accuracy: 0.786
+  Test set error: 0.453
+  Test set accuracy: 0.772
+
Epoch: 17
+  Training set error: 0.436
+  Training set accuracy: 0.794
+  Test set error: 0.449
+  Test set accuracy: 0.778
+
Epoch: 18
+  Training set error: 0.433
+  Training set accuracy: 0.801
+  Test set error: 0.450
+  Test set accuracy: 0.774
+
Epoch: 19
+  Training set error: 0.429
+  Training set accuracy: 0.785
+  Test set error: 0.436
+  Test set accuracy: 0.784
+

The training process may take many minutes, depending on a number of factors, such as the processing power of the machine you are running the experiment on and the number of epochs. To reduce the waiting time, you can change the epoch (iteration) variable from 100 to a lower number, reset the runtime (which will reset the weights), and run the notebook cells again.

After executing the cell above, you can visualize the training and test set errors and accuracy for an instance of this training process.

epoch_range = np.arange(epochs) + 1  # Starting from 1
+
+# The training set metrics.
+training_metrics = {
+    "accuracy": np.asarray(store_training_accurate_pred) / len(training_images),
+    "error": np.asarray(store_training_loss) / len(training_images),
+}
+
+# The test set metrics.
+test_metrics = {
+    "accuracy": np.asarray(store_test_accurate_pred) / len(test_images),
+    "error": np.asarray(store_test_loss) / len(test_images),
+}
+
+# Display the plots.
+fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 5))
+for ax, metrics, title in zip(
+    axes, (training_metrics, test_metrics), ("Training set", "Test set")
+):
+    # Plot the metrics
+    for metric, values in metrics.items():
+        ax.plot(epoch_range, values, label=metric.capitalize())
+    ax.set_title(title)
+    ax.set_xlabel("Epochs")
+    ax.legend()
<Figure size 1500x500 with 2 Axes>

The training and testing error is shown above in the left and right +plots, respectively. As the number of Epochs increases, the total error +decreases and the accuracy increases.

The accuracy rates that your model reaches during training and testing may be somewhat plausible but you may also find the error rates to be quite high.

To reduce the error during training and testing, you can consider changing the simple loss function to, for example, categorical cross-entropy. Other possible solutions are discussed below.

Next steps

You have learned how to build and train a simple feed-forward neural network from scratch using just NumPy to classify handwritten MNIST digits.

To further enhance and optimize your neural network model, you can consider one of a mixture of the following:

Building a neural network from scratch with NumPy is a great way to learn more about NumPy and about deep learning. However, for real-world applications you should use specialized frameworks — such as PyTorch, JAX, TensorFlow or MXNet — that provide NumPy-like APIs, have built-in automatic differentiation and GPU support, and are designed for high-performance numerical computing and machine learning.

Finally, when developing a machine learning model, you should think about potential ethical issues and apply practices to avoid or mitigate those:

(Credit to hsjeong5 for demonstrating how to download MNIST without the use of external libraries.)

References
  1. Mitchell, M., Wu, S., Zaldivar, A., Barnes, P., Vasserman, L., Hutchinson, B., Spitzer, E., Raji, I. D., & Gebru, T. (2019). Model Cards for Model Reporting. Proceedings of the Conference on Fairness, Accountability, and Transparency, 220–229. 10.1145/3287560.3287596
\ No newline at end of file diff --git a/tutorial-ma.json b/tutorial-ma.json new file mode 100644 index 00000000..bbea2bf6 --- /dev/null +++ b/tutorial-ma.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"f91c6b2c1c8f4a5106175c4eadbe8a01bbbd9760d5a4101fa9139e79a6b8b4d9","slug":"tutorial-ma","location":"/content/tutorial-ma.md","dependencies":[],"frontmatter":{"title":"Masked Arrays","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"formats":"ipynb,md:myst","text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-ma.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-ma.md","exports":[{"format":"md","filename":"tutorial-ma.md","url":"/numpy-tutorials/build/tutorial-ma-7716231bf204ceb0a9fe85db76453ca5.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"jOcqirfT0V"}],"identifier":"what-youll-do","label":"What you’ll do","html_id":"what-youll-do","implicit":true,"key":"F6PGkdNnou"},{"type":"paragraph","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"children":[{"type":"text","value":"Use the masked arrays module from NumPy to analyze COVID-19 data and deal with missing values.","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"s1UZ1twtdb"}],"key":"dWtX2fw7HU"},{"type":"heading","depth":2,"position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"d8d4foi8E1"}],"identifier":"what-youll-learn","label":"What you’ll learn","html_id":"what-youll-learn","implicit":true,"key":"gPCJUce6xr"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":23,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll understand what are masked arrays and how they can be created","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"q32hqMuVHQ"}],"key":"kA1dofTHrR"}],"key":"hw77sO9f7p"},{"type":"listItem","spread":true,"position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll see how to access and modify data for masked arrays","position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"key":"dLU1NvLypG"}],"key":"CQAb3DKKKR"}],"key":"t3HM4r1Ayt"},{"type":"listItem","spread":true,"position":{"start":{"line":25,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"You’ll be able to decide when the use of masked arrays is appropriate in some of your applications","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"gYWhSFD9uk"}],"key":"O4NjiKjU9e"}],"key":"hUMgHMo53C"}],"key":"p04vzilGxy"},{"type":"heading","depth":2,"position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"FNdvf7EHpy"}],"identifier":"what-youll-need","label":"What you’ll need","html_id":"what-youll-need","implicit":true,"key":"aHKNvKtNnQ"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":29,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Basic familiarity with Python. If you would like to refresh your memory, take a look at the ","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"hhBOiikiMH"},{"type":"link","url":"https://docs.python.org/dev/tutorial/index.html","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"text","value":"Python tutorial","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"ygph4uu49H"}],"urlSource":"https://docs.python.org/dev/tutorial/index.html","key":"fFXiOqoPOL"},{"type":"text","value":".","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"S6ZXeadC9d"}],"key":"MGxfkYU4sD"}],"key":"QkaJJLNxEE"},{"type":"listItem","spread":true,"position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Basic familiarity with NumPy","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"biDpPZpHvT"}],"key":"OhhNTAWwly"}],"key":"GIyUoLKrJX"},{"type":"listItem","spread":true,"position":{"start":{"line":31,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"To run the plots on your computer, you need ","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"blsIjS4fub"},{"type":"link","url":"https://matplotlib.org","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"text","value":"matplotlib","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"ExFhPPutv9"}],"urlSource":"https://matplotlib.org","key":"NhERufJpIo"},{"type":"text","value":".","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"icfylvKsMk"}],"key":"CTWSyPwS0v"}],"key":"dvy2Q4mXt5"}],"key":"ZvJXHa2J5i"}],"key":"ibSfA8kSZh"},{"type":"block","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"thematicBreak","position":{"start":{"line":35,"column":1},"end":{"line":35,"column":1}},"key":"OvZ10MF917"}],"key":"Se1jnMAH9x"},{"type":"block","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"children":[{"type":"text","value":"What are masked arrays?","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"HxYuJ9Btyd"}],"identifier":"what-are-masked-arrays","label":"What are masked arrays?","html_id":"what-are-masked-arrays","implicit":true,"key":"ACv2UIV8Pb"},{"type":"paragraph","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"Consider the following problem. You have a dataset with missing or invalid entries. If you’re doing any kind of processing on this data, and want to ","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"tg0IAti4NW"},{"type":"emphasis","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"skip","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"oriiiiZuRu"}],"key":"TUqjpb9wBB"},{"type":"text","value":" or flag these unwanted entries without just deleting them, you may have to use conditionals or filter your data somehow. The ","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"YxLOJTwJdk"},{"type":"link","url":"https://numpy.org/devdocs/reference/maskedarray.generic.html#module-numpy.ma","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"numpy.ma","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"hxtNl9Ldrm"}],"urlSource":"https://numpy.org/devdocs/reference/maskedarray.generic.html#module-numpy.ma","key":"edUMWvsI0M"},{"type":"text","value":" module provides some of the same functionality of ","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"rnsqJhwX3x"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.ndarray.html#numpy.ndarray","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"NumPy ndarrays","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"Q6vAh3Mm7k"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.ndarray.html#numpy.ndarray","key":"vyGvVLduOF"},{"type":"text","value":" with added structure to ensure invalid entries are not used in computation.","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"tQumAzvW6t"}],"key":"eX0mjwHtLO"},{"type":"paragraph","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"text","value":"From the ","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"nVYRBeLqcQ"},{"type":"link","url":"https://numpy.org/devdocs/reference/maskedarray.generic.html#module-numpy.ma","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"text","value":"Reference Guide","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"pAfmgwqNGt"}],"urlSource":"https://numpy.org/devdocs/reference/maskedarray.generic.html#module-numpy.ma","key":"R5ZBbENp7P"},{"type":"text","value":":","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"Qgh9gc67Bb"}],"key":"RC8G2vDSIP"},{"type":"blockquote","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"text","value":"A masked array is the combination of a standard ","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"f0BAC6KZoM"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.ndarray.html#numpy.ndarray","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"text","value":"numpy.ndarray","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"ZbvLQy2LUR"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.ndarray.html#numpy.ndarray","key":"mgJaellbaf"},{"type":"text","value":" and a ","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"UXibO3frM2"},{"type":"strong","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"text","value":"mask","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"csZJYj0oxr"}],"key":"coDvlhfGWI"},{"type":"text","value":". A mask is either ","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"U9RxdYaTQh"},{"type":"inlineCode","value":"nomask","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"WvG5DVpGiI"},{"type":"text","value":", indicating that no value of the associated array is invalid, or an array of booleans that determines for each element of the associated array whether the value is valid or not. When an element of the mask is ","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"jWnJC1QERt"},{"type":"inlineCode","value":"False","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"xP1M0Vtaag"},{"type":"text","value":", the corresponding element of the associated array is valid and is said to be unmasked. When an element of the mask is ","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"li2GnJsahG"},{"type":"inlineCode","value":"True","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"rx3X1CIh4b"},{"type":"text","value":", the corresponding element of the associated array is said to be masked (invalid).","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"key":"EHkfk2OWnq"}],"key":"h3BVyZZV4I"}],"key":"tYMpEfKyRa"},{"type":"paragraph","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"We can think of a ","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"Ob2FulVfMI"},{"type":"link","url":"https://numpy.org/devdocs/reference/maskedarray.baseclass.html#numpy.ma.MaskedArray","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"MaskedArray","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"Kf1ahfW6My"}],"urlSource":"https://numpy.org/devdocs/reference/maskedarray.baseclass.html#numpy.ma.MaskedArray","key":"xXVVOfUSVG"},{"type":"text","value":" as a combination of:","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"emFkGOLQub"}],"key":"kwWKqfSEvL"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":49,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Data, as a regular ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"DfdPnMwLKa"},{"type":"inlineCode","value":"numpy.ndarray","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"zWZ5KH8cZF"},{"type":"text","value":" of any shape or datatype;","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"ttmVHAKIWc"}],"key":"CGZ5CZXJAN"}],"key":"vke0F397e2"},{"type":"listItem","spread":true,"position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"A boolean mask with the same shape as the data;","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"TWnYBAiZHz"}],"key":"VzXfY7guVL"}],"key":"zTpj8kvt7Q"},{"type":"listItem","spread":true,"position":{"start":{"line":51,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"A ","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"hUIJNGkKXC"},{"type":"inlineCode","value":"fill_value","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"w7EjUjXKNo"},{"type":"text","value":", a value that may be used to replace the invalid entries in order to return a standard ","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"oG0lQauStz"},{"type":"inlineCode","value":"numpy.ndarray","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"GmIKwcD8bS"},{"type":"text","value":".","position":{"start":{"line":51,"column":1},"end":{"line":51,"column":1}},"key":"AzZUlGzWtf"}],"key":"PyMbrPM26q"}],"key":"uDqR8O4fmV"}],"key":"cB3e4FVvfp"},{"type":"heading","depth":2,"position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"children":[{"type":"text","value":"When can they be useful?","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"key":"PpC1XkkC4B"}],"identifier":"when-can-they-be-useful","label":"When can they be useful?","html_id":"when-can-they-be-useful","implicit":true,"key":"TAvqcOnuKb"},{"type":"paragraph","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"There are a few situations where masked arrays can be more useful than just eliminating the invalid entries of an array:","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"VO0iNl2FcM"}],"key":"xEzQn5jYEL"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":57,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"When you want to preserve the values you masked for later processing, without copying the array;","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"z7tp9MCqGz"}],"key":"ga4LsvaJlK"}],"key":"pbMGVxa0rF"},{"type":"listItem","spread":true,"position":{"start":{"line":58,"column":1},"end":{"line":58,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"When you have to handle many arrays, each with their own mask. If the mask is part of the array, you avoid bugs and the code is possibly more compact;","position":{"start":{"line":58,"column":1},"end":{"line":58,"column":1}},"key":"cAbnD3WNSb"}],"key":"yrILKKgxba"}],"key":"tyqYom3xqV"},{"type":"listItem","spread":true,"position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"When you have different flags for missing or invalid values, and wish to preserve these flags without replacing them in the original dataset, but exclude them from computations;","position":{"start":{"line":59,"column":1},"end":{"line":59,"column":1}},"key":"oGDu5tGdZj"}],"key":"YNDJObbhjh"}],"key":"zdF4vcEm1X"},{"type":"listItem","spread":true,"position":{"start":{"line":60,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"If you can’t avoid or eliminate missing values, but don’t want to deal with ","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"DMaRMxuYZR"},{"type":"link","url":"https://numpy.org/devdocs/reference/constants.html#numpy.nan","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"text","value":"NaN (Not a Number)","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"FlTvRSseha"}],"urlSource":"https://numpy.org/devdocs/reference/constants.html#numpy.nan","key":"MYIzrvrzQ6"},{"type":"text","value":" values in your operations.","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"K8Hgdd7cnQ"}],"key":"LJW8rxclfG"}],"key":"FfdyGq3eIC"}],"key":"vHs29QgXFy"},{"type":"paragraph","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"text","value":"Masked arrays are also a good idea since the ","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"JOIfsC3pSk"},{"type":"inlineCode","value":"numpy.ma","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"bzdzyatnzZ"},{"type":"text","value":" module also comes with a specific implementation of most ","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"o16kfH6ce9"},{"type":"link","url":"https://numpy.org/devdocs/glossary.html#term-ufunc","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"text","value":"NumPy universal functions (ufuncs)","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"ioB8hU5sNT"}],"urlSource":"https://numpy.org/devdocs/glossary.html#term-ufunc","key":"UilDBaCF89"},{"type":"text","value":", which means that you can still apply fast vectorized functions and operations on masked data. The output is then a masked array. We’ll see some examples of how this works in practice below.","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"sRrCevU3IP"}],"key":"WBviHL5fM2"}],"key":"ZIfDXfhmSY"},{"type":"block","position":{"start":{"line":64,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"children":[{"type":"text","value":"Using masked arrays to see COVID-19 data","position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"key":"VnBJRysFtI"}],"identifier":"using-masked-arrays-to-see-covid-19-data","label":"Using masked arrays to see COVID-19 data","html_id":"using-masked-arrays-to-see-covid-19-data","implicit":true,"key":"HktiutrgGI"},{"type":"paragraph","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"From ","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"MvxZ2JWNWv"},{"type":"link","url":"https://www.kaggle.com/atilamadai/covid19","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"Kaggle","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"LpgVh8FytA"}],"urlSource":"https://www.kaggle.com/atilamadai/covid19","key":"KBSo882Y1w"},{"type":"text","value":" it is possible to download a dataset with initial data about the COVID-19 outbreak in the beginning of 2020. We are going to look at a small subset of this data, contained in the file ","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"ZmeR0nkbLs"},{"type":"inlineCode","value":"who_covid_19_sit_rep_time_series.csv","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"OBry7epFQH"},{"type":"text","value":". ","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"GGcd97eBt2"},{"type":"emphasis","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"(Note that this file has been replaced with a version without missing data sometime in late 2020.)","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"geQQUNLIie"}],"key":"fb5hjLMp3K"}],"key":"hT7yM8bwee"}],"key":"JodPmaQD2P"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np\nimport os\n\n# The os.getcwd() function returns the current folder; you can change\n# the filepath variable to point to the folder where you saved the .csv file\nfilepath = os.getcwd()\nfilename = os.path.join(filepath, \"who_covid_19_sit_rep_time_series.csv\")","key":"WQiDsertZ8"},{"type":"outputs","id":"iyRudBsnADbwfv-er3k0C","children":[],"key":"wvkX4b3F51"}],"key":"dUNOyUDIEh"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"children":[{"type":"text","value":"The data file contains data of different types and is organized as follows:","position":{"start":{"line":80,"column":1},"end":{"line":80,"column":1}},"key":"tDwG7oNYX2"}],"key":"V9yMSyZrTk"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":82,"column":1},"end":{"line":85,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The first row is a header line that (mostly) describes the data in each column that follow in the rows below, and beginning in the fourth column, the header is the date of the observation.","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"wfdp0OTjVM"}],"key":"CPhEz0r3hy"}],"key":"nMlHdsBwAc"},{"type":"listItem","spread":true,"position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The second through seventh row contain summary data that is of a different type than that which we are going to examine, so we will need to exclude that from the data with which we will work.","position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"key":"UmvBUyBFER"}],"key":"l2cAe5YeL2"}],"key":"RVHLEBl6z3"},{"type":"listItem","spread":true,"position":{"start":{"line":84,"column":1},"end":{"line":85,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The numerical data we wish to work with begins at column 4, row 8, and extends from there to the rightmost column and the lowermost row.","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"rBHPXi0kKm"}],"key":"a7bLEBpxi6"}],"key":"pwohLGhAAg"}],"key":"LGoGyo7kKV"},{"type":"paragraph","position":{"start":{"line":86,"column":1},"end":{"line":87,"column":1}},"children":[{"type":"text","value":"Let’s explore the data inside this file for the first 14 days of records. To gather data from the ","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"JnRLbV0mA9"},{"type":"inlineCode","value":".csv","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"EWKnqekL6h"},{"type":"text","value":" file, we will use the ","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"RwM1hIgkX5"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"children":[{"type":"text","value":"numpy.genfromtxt","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"lP3bEm8UQz"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt","key":"noFJLqxjye"},{"type":"text","value":" function, making sure we select only the columns with actual numbers instead of the first four columns which contain location data. We also skip the first 6\nrows of this file, since they contain other data we are not interested in. Separately, we will extract the information about dates and location for this data.","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"nnEMJehP9G"}],"key":"m3Tz9TAKWw"}],"key":"Vo2SHdOezX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# Note we are using skip_header and usecols to read only portions of the\n# data file into each variable.\n# Read just the dates for columns 4-18 from the first row\ndates = np.genfromtxt(\n filename,\n dtype=np.str_,\n delimiter=\",\",\n max_rows=1,\n usecols=range(4, 18),\n encoding=\"utf-8-sig\",\n)\n# Read the names of the geographic locations from the first two\n# columns, skipping the first six rows\nlocations = np.genfromtxt(\n filename,\n dtype=np.str_,\n delimiter=\",\",\n skip_header=6,\n usecols=(0, 1),\n encoding=\"utf-8-sig\",\n)\n# Read the numeric data from just the first 14 days\nnbcases = np.genfromtxt(\n filename,\n dtype=np.int_,\n delimiter=\",\",\n skip_header=6,\n usecols=range(4, 18),\n encoding=\"utf-8-sig\",\n)","key":"aneBQRPgnm"},{"type":"outputs","id":"3Bdc8V_mb_3bBgTaw1k0S","children":[],"key":"HEb9aMwTpU"}],"key":"moRMRRzq9n"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"text","value":"Included in the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"yJjdj5sgRK"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"RAGtGdZ6PR"},{"type":"text","value":" function call, we have selected the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"FWfCHE6Xge"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.dtype.html#numpy.dtype","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"text","value":"numpy.dtype","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"cnqlr4yVos"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.dtype.html#numpy.dtype","key":"OBVNoSVLg6"},{"type":"text","value":" for each subset of the data (either an integer - ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"ZjExSoKw4E"},{"type":"inlineCode","value":"numpy.int_","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"amPpUBKjIi"},{"type":"text","value":" - or a string of characters - ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"WGqlx9JoQx"},{"type":"inlineCode","value":"numpy.str_","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"AEaDpgVxDH"},{"type":"text","value":"). We have also used the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"pnhPJbGA56"},{"type":"inlineCode","value":"encoding","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"VTjnWATozT"},{"type":"text","value":" argument to select ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"zjIOi3LK1t"},{"type":"inlineCode","value":"utf-8-sig","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"eNDXsKyQOC"},{"type":"text","value":" as the encoding for the file (read more about encoding in the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"pTJ2EPdUjH"},{"type":"link","url":"https://docs.python.org/3/library/codecs.html#encodings-and-unicode","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"text","value":"official Python documentation","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"FMePpA7dv0"}],"urlSource":"https://docs.python.org/3/library/codecs.html#encodings-and-unicode","key":"bgTAwo10xx"},{"type":"text","value":". You can read more about the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"FrCROp5jJQ"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"tIn7mITnGn"},{"type":"text","value":" function from the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"EiahKDTIOU"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"text","value":"Reference Documentation","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"SPrd6C3m7B"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.genfromtxt.html#numpy.genfromtxt","key":"O9LD6Mg9eB"},{"type":"text","value":" or from the ","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"acMYwINQD3"},{"type":"link","url":"https://numpy.org/devdocs/user/basics.io.genfromtxt.html","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"text","value":"Basic IO tutorial","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"ZStjzJTVzk"}],"urlSource":"https://numpy.org/devdocs/user/basics.io.genfromtxt.html","key":"wil8ZU2E6G"},{"type":"text","value":".","position":{"start":{"line":122,"column":1},"end":{"line":122,"column":1}},"key":"Hl8wsgC2yP"}],"key":"R36uTuMUMk"}],"key":"KYfb51qHnq"},{"type":"block","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":126,"column":1},"end":{"line":126,"column":1}},"children":[{"type":"text","value":"Exploring the data","position":{"start":{"line":126,"column":1},"end":{"line":126,"column":1}},"key":"OR6FQpqtWd"}],"identifier":"exploring-the-data","label":"Exploring the data","html_id":"exploring-the-data","implicit":true,"key":"eZKY2cuhsz"},{"type":"paragraph","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"children":[{"type":"text","value":"First of all, we can plot the whole set of data we have and see what it looks like. In order to get a readable plot, we select only a few of the dates to show in our ","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"O4Eft4xqYJ"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.xticks.html#matplotlib.pyplot.xticks","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"children":[{"type":"text","value":"x-axis ticks","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"U6SWBAcHQr"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.xticks.html#matplotlib.pyplot.xticks","key":"yWeYbPH2Db"},{"type":"text","value":". Note also that in our plot command, we use ","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"Gd0xvlwCHs"},{"type":"inlineCode","value":"nbcases.T","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"RCs4rZ5eg5"},{"type":"text","value":" (the transpose of the ","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"wUyMhG0RAw"},{"type":"inlineCode","value":"nbcases","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"DYDhAGDIFz"},{"type":"text","value":" array) since this means we will plot each row of the file as a separate line. We choose to plot a dashed line (using the ","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"TvIzDXo3x7"},{"type":"inlineCode","value":"'--'","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"OBQZffqhDd"},{"type":"text","value":" line style). See the ","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"levyKeL7Yu"},{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"children":[{"type":"text","value":"matplotlib","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"ugdzARTPZs"}],"urlSource":"https://matplotlib.org/","key":"xO6Dz1dbok"},{"type":"text","value":" documentation for more info on this.","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"GWFMjvjxTq"}],"key":"uVtWLnFuXX"}],"key":"rzRl1TSNJi"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\n\nselected_dates = [0, 3, 11, 13]\n\nfig, ax = plt.subplots()\nax.plot(dates, nbcases.T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020\")","key":"L4KPu8zr4p"},{"type":"outputs","id":"hXeOSFyl8mGCrgjXif6fS","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"d08c79eba17c823037f90ad9c9ac2cc1","path":"/numpy-tutorials/build/d08c79eba17c823037f90ad9c9ac2cc1.png"}}},"key":"D5cOi0Ami8"}],"key":"VeGY0bkFj9"}],"key":"OWkQSiFO3N"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"The graph has a strange shape from January 24th to February 1st. It would be interesting to know where this data comes from. If we look at the ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"MqttbOSCg7"},{"type":"inlineCode","value":"locations","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"FzrYvxhe42"},{"type":"text","value":" array we extracted from the ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"n0j6xMB43G"},{"type":"inlineCode","value":".csv","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"KGwLp54Ix4"},{"type":"text","value":" file, we can see that we have two columns, where the first would contain regions and the second would contain the name of the country. However, only the first few rows contain data for the the first column (province names in China). Following that, we only have country names. So it would make sense to group all the data from China into a single row. For this, we’ll select from the ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"yLKA8zlXCe"},{"type":"inlineCode","value":"nbcases","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"ItwfjS2z91"},{"type":"text","value":" array only the rows for which the second entry of the ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"H5V8aK2akH"},{"type":"inlineCode","value":"locations","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"MuPXL9BWsz"},{"type":"text","value":" array corresponds to China. Next, we’ll use the ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"zg3Zi0Fypz"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.sum.html#numpy.sum","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"numpy.sum","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"rlRsUfKmZD"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.sum.html#numpy.sum","key":"qXRMHWHGNF"},{"type":"text","value":" function to sum all the selected rows (","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"iZuABks7V0"},{"type":"inlineCode","value":"axis=0","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"QfFqnw7uat"},{"type":"text","value":"). Note also that row 35 corresponds to the total counts for the whole country for each date. Since we want to calculate the sum ourselves from the provinces data, we have to remove that row first from both ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"XpV42vbbuh"},{"type":"inlineCode","value":"locations","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"WtMrZwG25b"},{"type":"text","value":" and ","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"ziGcLysejE"},{"type":"inlineCode","value":"nbcases","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"gDnyiMvV4b"},{"type":"text","value":":","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"hx13NDQKp2"}],"key":"uIXPOODGvC"}],"key":"ADLnZolnQy"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"totals_row = 35\nlocations = np.delete(locations, (totals_row), axis=0)\nnbcases = np.delete(nbcases, (totals_row), axis=0)\n\nchina_total = nbcases[locations[:, 1] == \"China\"].sum(axis=0)\nchina_total","key":"sNWerJc6W5"},{"type":"outputs","id":"4ESkLRgsIuLgD1mbJ9f1A","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":4,"metadata":{},"data":{"text/plain":{"content":"array([ 247, 288, 556, 817, -22, -22, -15, -10, -9,\n -7, -4, 11820, 14410, 17237])","content_type":"text/plain"}}},"key":"wPxNI3GGG3"}],"key":"LlKBppux4R"}],"key":"YNFThK7AiZ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"text","value":"Something’s wrong with this data - we are not supposed to have negative values in a cumulative data set. What’s going on?","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"zIa6s3ZDiq"}],"key":"k7FueggLDm"}],"key":"BNZWol5H5A"},{"type":"block","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"Missing data","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"ASgnsTPZwC"}],"identifier":"missing-data","label":"Missing data","html_id":"missing-data","implicit":true,"key":"JM4tbYfMiH"},{"type":"paragraph","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"children":[{"type":"text","value":"Looking at the data, here’s what we find: there is a period with ","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"Q4y5TewLz6"},{"type":"strong","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"children":[{"type":"text","value":"missing data","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"vxNidvC1Ut"}],"key":"fLDkAqb2kX"},{"type":"text","value":":","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"Ybw9THRhSC"}],"key":"B7LJuuws2M"}],"key":"NDgtz8pufe"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"nbcases","key":"m0eas7vUkK"},{"type":"outputs","id":"bApvnRcnM4E6tekpy1Sgp","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":5,"metadata":{},"data":{"text/plain":{"content":"array([[ 258, 270, 375, ..., 7153, 9074, 11177],\n [ 14, 17, 26, ..., 520, 604, 683],\n [ -1, 1, 1, ..., 422, 493, 566],\n ...,\n [ -1, -1, -1, ..., -1, -1, -1],\n [ -1, -1, -1, ..., -1, -1, -1],\n [ -1, -1, -1, ..., -1, -1, -1]], shape=(263, 14))","content_type":"text/plain"}}},"key":"EG1GTvCAE7"}],"key":"S6ueULbCC3"}],"key":"OSgxDmKH0V"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":164,"column":1},"end":{"line":165,"column":1}},"children":[{"type":"text","value":"All the ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"DSLVmtuOJH"},{"type":"inlineCode","value":"-1","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"Jq3M7ECh0y"},{"type":"text","value":" values we are seeing come from ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"paGGRKZpr4"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"eV6xKW9xF7"},{"type":"text","value":" attempting to read missing data from the original ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"TtE7XfjA4B"},{"type":"inlineCode","value":".csv","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"Bn607uPULk"},{"type":"text","value":" file. Obviously, we\ndon’t want to compute missing data as ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"mYOj5o7953"},{"type":"inlineCode","value":"-1","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"SiNyXQDXTN"},{"type":"text","value":" - we just want to skip this value so it doesn’t interfere in our analysis. After importing the ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"Nj25HHWxbA"},{"type":"inlineCode","value":"numpy.ma","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"D29vyUM9rl"},{"type":"text","value":" module, we’ll create a new array, this time masking the invalid values:","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"BEeP2qp4ec"}],"key":"jQMXAmHM6k"}],"key":"khXPca6Hfp"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"from numpy import ma\n\nnbcases_ma = ma.masked_values(nbcases, -1)","key":"n6P8LKLTJc"},{"type":"outputs","id":"uUWn9L_lYnaQfxfqe6-zZ","children":[],"key":"QvejjfzNau"}],"key":"u3UhS9HwHX"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":173,"column":1},"end":{"line":173,"column":1}},"children":[{"type":"text","value":"If we look at the ","position":{"start":{"line":173,"column":1},"end":{"line":173,"column":1}},"key":"PkrBwauYvZ"},{"type":"inlineCode","value":"nbcases_ma","position":{"start":{"line":173,"column":1},"end":{"line":173,"column":1}},"key":"CosoHcOIrA"},{"type":"text","value":" masked array, this is what we have:","position":{"start":{"line":173,"column":1},"end":{"line":173,"column":1}},"key":"kGoSmMsV8t"}],"key":"PGFWKLRzZf"}],"key":"VmzxnYPbGZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"nbcases_ma","key":"IIQErKuxRD"},{"type":"outputs","id":"E0gHsBcVUX2WrBwUax0zi","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":7,"metadata":{},"data":{"text/plain":{"content":"masked_array(\n data=[[258, 270, 375, ..., 7153, 9074, 11177],\n [14, 17, 26, ..., 520, 604, 683],\n [--, 1, 1, ..., 422, 493, 566],\n ...,\n [--, --, --, ..., --, --, --],\n [--, --, --, ..., --, --, --],\n [--, --, --, ..., --, --, --]],\n mask=[[False, False, False, ..., False, False, False],\n [False, False, False, ..., False, False, False],\n [ True, False, False, ..., False, False, False],\n ...,\n [ True, True, True, ..., True, True, True],\n [ True, True, True, ..., True, True, True],\n [ True, True, True, ..., True, True, True]],\n fill_value=-1)","content_type":"text/plain"}}},"key":"DaGFRF6jDT"}],"key":"okbqCAK1Fw"}],"key":"k2tHiqiIhr"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":179,"column":1},"end":{"line":180,"column":1}},"children":[{"type":"text","value":"We can see that this is a different kind of array. As mentioned in the introduction, it has three attributes (","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"odl5WTmIAu"},{"type":"inlineCode","value":"data","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"sCJxi0z6LU"},{"type":"text","value":", ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"dlrbXvdSlc"},{"type":"inlineCode","value":"mask","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"qDumE7EwWz"},{"type":"text","value":" and ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"R6JFowdZfC"},{"type":"inlineCode","value":"fill_value","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"HVB9D7zvT4"},{"type":"text","value":").\nKeep in mind that the ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"uCdyFZanFZ"},{"type":"inlineCode","value":"mask","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"IlpxCRhhbD"},{"type":"text","value":" attribute has a ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"g11eSVSz2h"},{"type":"inlineCode","value":"True","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"CJGpJSCBTy"},{"type":"text","value":" value for elements corresponding to ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"rjwjueOYtZ"},{"type":"strong","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"children":[{"type":"text","value":"invalid","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"tdqCIOFoqE"}],"key":"R9BIsJ8Rdu"},{"type":"text","value":" data (represented by two dashes in the ","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"skOpEr5JrO"},{"type":"inlineCode","value":"data","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"y2qysTff3E"},{"type":"text","value":" attribute).","position":{"start":{"line":179,"column":1},"end":{"line":179,"column":1}},"key":"Gn1uk3ePhR"}],"key":"DNoYe57B3S"}],"key":"MYH2UqXLyO"},{"type":"block","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":184,"column":1},"end":{"line":185,"column":1}},"children":[{"type":"text","value":"Let’s try and see what the data looks like excluding the first row (data from the Hubei province in China) so we can look at the missing data more\nclosely:","position":{"start":{"line":184,"column":1},"end":{"line":184,"column":1}},"key":"eBgRFcWEzS"}],"key":"f8em4NaBVJ"}],"key":"gv4YWgxtKX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.plot(dates, nbcases_ma[1:].T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020\")","key":"Oyu4lA0szZ"},{"type":"outputs","id":"OnmFem7UI9BNWiST7L07E","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"613f065b167d8d181b5dc5e1173b74db","path":"/numpy-tutorials/build/613f065b167d8d181b5dc5e1173b74db.png"}}},"key":"b5XnyYy8fS"}],"key":"njbB3aWx3v"}],"key":"RpADBWcKLw"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"children":[{"type":"text","value":"Now that our data has been masked, let’s try summing up all the cases in China:","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"N2hKGYcCqS"}],"key":"ynl68m9uCU"}],"key":"LiuUGQeeOs"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_masked = nbcases_ma[locations[:, 1] == \"China\"].sum(axis=0)\nchina_masked","key":"JUeQ9XLIk6"},{"type":"outputs","id":"w41J1ltChiRKSDNChsDCh","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":9,"metadata":{},"data":{"text/plain":{"content":"masked_array(data=[278, 309, 574, 835, 10, 10, 17, 22, 23, 25, 28, 11821,\n 14411, 17238],\n mask=[False, False, False, False, False, False, False, False,\n False, False, False, False, False, False],\n fill_value=999999)","content_type":"text/plain"}}},"key":"efmkSqJISE"}],"key":"AbFFhgBhV3"}],"key":"w4PiJASbRC"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"children":[{"type":"text","value":"Note that ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"SfN35vUo3i"},{"type":"inlineCode","value":"china_masked","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"c33aX5blqL"},{"type":"text","value":" is a masked array, so it has a different data structure than a regular NumPy array. Now, we can access its data directly by using the ","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"SaKzUOo9Ei"},{"type":"inlineCode","value":".data","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"BVr0B0gHul"},{"type":"text","value":" attribute:","position":{"start":{"line":201,"column":1},"end":{"line":201,"column":1}},"key":"ScODMdXQBc"}],"key":"Ig2uklqRyb"}],"key":"ExPzY71jhm"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_total = china_masked.data\nchina_total","key":"JIJcEKa4Hh"},{"type":"outputs","id":"E0hc4TSfgZt-7-LY89XoH","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":10,"metadata":{},"data":{"text/plain":{"content":"array([ 278, 309, 574, 835, 10, 10, 17, 22, 23,\n 25, 28, 11821, 14411, 17238])","content_type":"text/plain"}}},"key":"L6tdXrpdnK"}],"key":"ugCHIb56fB"}],"key":"eqxoky7z0N"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"children":[{"type":"text","value":"That is better: no more negative values. However, we can still see that for some days, the cumulative number of cases seems to go down (from 835 to 10, for example), which does not agree with the definition of “cumulative data”. If we look more closely at the data, we can see that in the period where there was missing data in mainland China, there was valid data for Hong Kong, Taiwan, Macau and “Unspecified” regions of China. Maybe we can remove those from the total sum of cases in China, to get a better understanding of the data.","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"PAXfFxAWqW"}],"key":"COa4PNTgzn"},{"type":"paragraph","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"children":[{"type":"text","value":"First, we’ll identify the indices of locations in mainland China:","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"JAUnGdv3FD"}],"key":"ohNTAj8vn2"}],"key":"AA7xDQMTuX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_mask = (\n (locations[:, 1] == \"China\")\n & (locations[:, 0] != \"Hong Kong\")\n & (locations[:, 0] != \"Taiwan\")\n & (locations[:, 0] != \"Macau\")\n & (locations[:, 0] != \"Unspecified*\")\n)","key":"GUgpToD48w"},{"type":"outputs","id":"EgxOi8i9Xccvlt65bECD2","children":[],"key":"FkM8DFl2NT"}],"key":"c2kHlxA4A7"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"children":[{"type":"text","value":"Now, ","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"CGl3voummA"},{"type":"inlineCode","value":"china_mask","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"QsvmhpkzGG"},{"type":"text","value":" is an array of boolean values (","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"gQkOfbeEdx"},{"type":"inlineCode","value":"True","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"udLFk5DLuO"},{"type":"text","value":" or ","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"AoiHrGbFkv"},{"type":"inlineCode","value":"False","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"KrMwUawGSq"},{"type":"text","value":"); we can check that the indices are what we wanted with the ","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"vMn68iVnoE"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.ma.nonzero.html#numpy.ma.nonzero","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"children":[{"type":"text","value":"ma.nonzero","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"FNvum31amv"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.ma.nonzero.html#numpy.ma.nonzero","key":"hXDuw7tkvE"},{"type":"text","value":" method for masked arrays:","position":{"start":{"line":222,"column":1},"end":{"line":222,"column":1}},"key":"ACYK67pIGT"}],"key":"neNgrU9GSc"}],"key":"zezNfAsccc"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_mask.nonzero()","key":"Z1wI1QhYVK"},{"type":"outputs","id":"SSjehsND5lCRjpj-9wLDe","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":12,"metadata":{},"data":{"text/plain":{"content":"(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 33]),)","content_type":"text/plain"}}},"key":"gcW7vHx15Y"}],"key":"NcUOilAwmW"}],"key":"c3NDITxXI4"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":228,"column":1},"end":{"line":228,"column":1}},"children":[{"type":"text","value":"Now we can correctly sum entries for mainland China:","position":{"start":{"line":228,"column":1},"end":{"line":228,"column":1}},"key":"cS39mQG1pS"}],"key":"rYmQE06UQ7"}],"key":"n5rYq8RNma"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_total = nbcases_ma[china_mask].sum(axis=0)\nchina_total","key":"SNCyRYbfXs"},{"type":"outputs","id":"kFN7Qkvl5KVrVXE8t1zBm","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":13,"metadata":{},"data":{"text/plain":{"content":"masked_array(data=[278, 308, 440, 446, --, --, --, --, --, --, --, 11791,\n 14380, 17205],\n mask=[False, False, False, False, True, True, True, True,\n True, True, True, False, False, False],\n fill_value=999999)","content_type":"text/plain"}}},"key":"B7KLbSft3H"}],"key":"yXf9A07gjs"}],"key":"AIhB1xRM2l"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":235,"column":1},"end":{"line":235,"column":1}},"children":[{"type":"text","value":"We can replace the data with this information and plot a new graph, focusing on Mainland China:","position":{"start":{"line":235,"column":1},"end":{"line":235,"column":1}},"key":"MOTFpf79wo"}],"key":"CqPPDuCLEh"}],"key":"bJkrnkRhtf"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.plot(dates, china_total.T, \"--\")\nax.set_xticks(selected_dates, dates[selected_dates])\nax.set_title(\"COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China\")","key":"fLgNQPw0hW"},{"type":"outputs","id":"z9ZPh7E5c47tVJsvRRLo7","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"9c07c4f86dd02b243a8eec9094bc14fc","path":"/numpy-tutorials/build/9c07c4f86dd02b243a8eec9094bc14fc.png"}}},"key":"W6r91ZuUdn"}],"key":"AIP9kGVKgn"}],"key":"y0xqdPHyMh"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"children":[{"type":"text","value":"It’s clear that masked arrays are the right solution here. We cannot represent the missing data without mischaracterizing the evolution of the curve.","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"key":"uHjSzxhekF"}],"key":"GeyQGEx9iG"}],"key":"UWFu8ANxuW"},{"type":"block","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"children":[{"type":"text","value":"Fitting Data","position":{"start":{"line":248,"column":1},"end":{"line":248,"column":1}},"key":"jv15l6T0Ci"}],"identifier":"fitting-data","label":"Fitting Data","html_id":"fitting-data","implicit":true,"key":"iCmv6L0AaW"},{"type":"paragraph","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"children":[{"type":"text","value":"One possibility we can think of is to interpolate the missing data to estimate the number of cases in late January. Observe that we can select the masked elements using the ","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"ZyQBi2j9rc"},{"type":"inlineCode","value":".mask","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"ZNQ3bNeYQp"},{"type":"text","value":" attribute:","position":{"start":{"line":250,"column":1},"end":{"line":250,"column":1}},"key":"weVJd9S886"}],"key":"R6GN3yH3ik"}],"key":"klnDrdmBRX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"china_total.mask\ninvalid = china_total[china_total.mask]\ninvalid","key":"bybo083EP6"},{"type":"outputs","id":"yWbzoRPOrBNHW67Vwvrgd","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":15,"metadata":{},"data":{"text/plain":{"content":"masked_array(data=[--, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True],\n fill_value=999999,\n dtype=int64)","content_type":"text/plain"}}},"key":"Ju3kISdBRC"}],"key":"J1rLVhDdyi"}],"key":"CS6dNqtsTj"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":258,"column":1},"end":{"line":258,"column":1}},"children":[{"type":"text","value":"We can also access the valid entries by using the logical negation for this mask:","position":{"start":{"line":258,"column":1},"end":{"line":258,"column":1}},"key":"BwHRfoRVla"}],"key":"Hx5jNWROC5"}],"key":"woUeqc7i6P"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"valid = china_total[~china_total.mask]\nvalid","key":"tB5TIxU9F5"},{"type":"outputs","id":"Qa5CvxdOWp_hU8_5zxgxL","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":16,"metadata":{},"data":{"text/plain":{"content":"masked_array(data=[278, 308, 440, 446, 11791, 14380, 17205],\n mask=[False, False, False, False, False, False, False],\n fill_value=999999)","content_type":"text/plain"}}},"key":"TYBBGAcr5O"}],"key":"wfUn6LXQVz"}],"key":"aqeFAZoO88"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":265,"column":1},"end":{"line":265,"column":1}},"children":[{"type":"text","value":"Now, if we want to create a very simple approximation for this data, we should take into account the valid entries around the invalid ones. So first let’s select the dates for which the data is valid. Note that we can use the mask from the ","position":{"start":{"line":265,"column":1},"end":{"line":265,"column":1}},"key":"dR8aKhLTPZ"},{"type":"inlineCode","value":"china_total","position":{"start":{"line":265,"column":1},"end":{"line":265,"column":1}},"key":"yc640qoNcu"},{"type":"text","value":" masked array to index the dates array:","position":{"start":{"line":265,"column":1},"end":{"line":265,"column":1}},"key":"r4TrlIIPhv"}],"key":"mpRCf3jMGO"}],"key":"areRZN0iGC"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"dates[~china_total.mask]","key":"km7SIYd8a9"},{"type":"outputs","id":"-vx6pxVp3pApdw97aUKnW","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":17,"metadata":{},"data":{"text/plain":{"content":"array(['1/21/20', '1/22/20', '1/23/20', '1/24/20', '2/1/20', '2/2/20',\n '2/3/20'], dtype='","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"705b0ce4ba67115fce959db22ca0f373","path":"/numpy-tutorials/build/705b0ce4ba67115fce959db22ca0f373.png"}}},"key":"zfwqe1Sczm"}],"key":"Bd5wUUU1Mt"}],"key":"kDJhHiZU2L"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":284,"column":1},"end":{"line":285,"column":1}},"children":[{"type":"text","value":"This plot is not so readable since the lines seem to be over each other, so let’s summarize in a more elaborate plot. We’ll plot the real data when\navailable, and show the cubic fit for unavailable data, using this fit to compute an estimate to the observed number of cases on January 28th 2020, 7 days after the beginning of the records:","position":{"start":{"line":284,"column":1},"end":{"line":284,"column":1}},"key":"J1jtzy5E1e"}],"key":"OBmCE4JTSU"}],"key":"SiAMD4IHeb"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.plot(t, china_total)\nax.plot(t[china_total.mask], model(t)[china_total.mask], \"--\", color=\"orange\")\nax.plot(7, model(7), \"r*\")\n\nax.set_xticks([0, 7, 13], dates[[0, 7, 13]])\nax.set_yticks([0, model(7), 10000, 17500])\nax.legend([\"Mainland China\", \"Cubic estimate\", \"7 days after start\"])\nax.set_title(\n \"COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China\\n\"\n \"Cubic estimate for 7 days after start\"\n)","key":"ifR1iP4w5I"},{"type":"outputs","id":"c32FLmZQLONK4_obxxawj","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"0af5964dc0b4e30f177f4bb98384bc83","path":"/numpy-tutorials/build/0af5964dc0b4e30f177f4bb98384bc83.png"}}},"key":"zpJMuVKMNi"}],"key":"EKYZeW71mt"}],"key":"oL6tgNuoGb"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"children":[{"type":"text","value":"In practice","position":{"start":{"line":302,"column":1},"end":{"line":302,"column":1}},"key":"yc0CamnNdf"}],"identifier":"in-practice","label":"In practice","html_id":"in-practice","implicit":true,"key":"P2VUxS1ien"}],"key":"jWp3QsZKwh"},{"type":"block","position":{"start":{"line":304,"column":1},"end":{"line":304,"column":1}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":306,"column":1},"end":{"line":307,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":306,"column":1},"end":{"line":307,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Adding ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"JoT61nVmTO"},{"type":"inlineCode","value":"-1","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"azYeIpDLVU"},{"type":"text","value":" to missing data is not a problem with ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"S10poNjURQ"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"pNta44wyzg"},{"type":"text","value":"; in this particular case, substituting the missing value with ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"h1rLFKrMRi"},{"type":"inlineCode","value":"0","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"rlGVUCvBh0"},{"type":"text","value":" might have been fine, but we’ll see later that this is far from a general solution. Also, it is possible to call the ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"bC8JAv9Glj"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"EPyAC39GFG"},{"type":"text","value":" function using the ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"P2HQvAuFI1"},{"type":"inlineCode","value":"usemask","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"ghwvUnq8E5"},{"type":"text","value":" parameter. If ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"wyf8RxBGMC"},{"type":"inlineCode","value":"usemask=True","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"ay1JbaDTSO"},{"type":"text","value":", ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"Wgd2ffRYgh"},{"type":"inlineCode","value":"numpy.genfromtxt","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"WLW7z7rIcy"},{"type":"text","value":" automatically returns a masked array.","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"m7gkzfEq6p"}],"key":"FE01cRPZM2"}],"key":"adUREB81nZ"}],"key":"JkMrzBjJsi"}],"key":"INMhghWfbD"},{"type":"block","position":{"start":{"line":308,"column":1},"end":{"line":308,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":310,"column":1},"end":{"line":310,"column":1}},"children":[{"type":"text","value":"Further reading","position":{"start":{"line":310,"column":1},"end":{"line":310,"column":1}},"key":"Lo2ISzW4Uk"}],"identifier":"further-reading","label":"Further reading","html_id":"further-reading","implicit":true,"key":"Npq96sQ3KR"},{"type":"paragraph","position":{"start":{"line":312,"column":1},"end":{"line":312,"column":1}},"children":[{"type":"text","value":"Topics not covered in this tutorial can be found in the documentation:","position":{"start":{"line":312,"column":1},"end":{"line":312,"column":1}},"key":"oWML18WpcP"}],"key":"zt5SMnv7KH"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":314,"column":1},"end":{"line":316,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.ma.harden_mask.html#numpy.ma.harden_mask","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"children":[{"type":"text","value":"Hardmasks","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"key":"awmoclNVPZ"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.ma.harden_mask.html#numpy.ma.harden_mask","key":"vnZXyOCKEu"},{"type":"text","value":" vs. ","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"key":"efI9EQIjK1"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.ma.soften_mask.html#numpy.ma.soften_mask","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"children":[{"type":"text","value":"softmasks","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"key":"ygXO04ZCSv"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.ma.soften_mask.html#numpy.ma.soften_mask","key":"tOUfOU9lvc"}],"key":"FdETPcFdUe"}],"key":"MpyO9w4S8I"},{"type":"listItem","spread":true,"position":{"start":{"line":315,"column":1},"end":{"line":316,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/devdocs/reference/maskedarray.generic.html#maskedarray-generic","position":{"start":{"line":315,"column":1},"end":{"line":315,"column":1}},"children":[{"type":"text","value":"The numpy.ma module","position":{"start":{"line":315,"column":1},"end":{"line":315,"column":1}},"key":"b1FHiTHBxw"}],"urlSource":"https://numpy.org/devdocs/reference/maskedarray.generic.html#maskedarray-generic","key":"XJ7lGdmyyb"}],"key":"kxqse6j26x"}],"key":"JC4K8tW9iU"}],"key":"owiTjLlA1b"},{"type":"heading","depth":3,"position":{"start":{"line":317,"column":1},"end":{"line":317,"column":1}},"children":[{"type":"text","value":"Reference","position":{"start":{"line":317,"column":1},"end":{"line":317,"column":1}},"key":"uoGsaFsEN9"}],"identifier":"reference","label":"Reference","html_id":"reference","implicit":true,"key":"M6DKQPb3Fr"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Ensheng Dong, Hongru Du, Lauren Gardner, ","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"key":"Qy3tAc4ZT5"},{"type":"emphasis","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"children":[{"type":"text","value":"An interactive web-based dashboard to track COVID-19 in real time","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"key":"yGCh2xyHEo"}],"key":"K2rpFOUwJv"},{"type":"text","value":", The Lancet Infectious Diseases, Volume 20, Issue 5, 2020, Pages 533-534, ISSN 1473-3099, ","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"key":"lFcCBQbVQ3"},{"type":"cite","url":"https://doi.org/10.1016/S1473-3099(20)30120-1","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"children":[{"type":"text","value":"Dong ","key":"mwt90OaHYd"},{"type":"emphasis","children":[{"type":"text","value":"et al.","key":"VPAEKBlcBO"}],"key":"GMwyP50Ixx"},{"type":"text","value":" (2020)","key":"Hg79gq70ee"}],"kind":"narrative","label":"Dong_2020","identifier":"https://doi.org/10.1016/S1473-3099(20)30120-1","enumerator":"1","key":"Ec4y81pE88"},{"type":"text","value":".","position":{"start":{"line":319,"column":1},"end":{"line":319,"column":1}},"key":"AY6GNeSTIQ"}],"key":"N35dU7adMZ"}],"key":"j0SJE4pPBj"}],"key":"Nn8jo617e9"}],"key":"YbYxUOxo2q"}],"key":"Z77uW159MJ"},"references":{"cite":{"order":["Dong_2020"],"data":{"Dong_2020":{"label":"Dong_2020","enumerator":"1","doi":"10.1016/s1473-3099(20)30120-1","html":"Dong, E., Du, H., & Gardner, L. (2020). An interactive web-based dashboard to track COVID-19 in real time. The Lancet Infectious Diseases, 20(5), 533–534. 10.1016/s1473-3099(20)30120-1","url":"https://doi.org/10.1016/s1473-3099(20)30120-1"}}}},"footer":{"navigation":{"prev":{"title":"Saving and sharing your NumPy arrays","short_title":"Sharing Array Data","url":"/save-load-arrays","group":"Features"},"next":{"title":"Contributing","short_title":"Contributing","url":"/contributing","group":"Features"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-ma/index.html b/tutorial-ma/index.html new file mode 100644 index 00000000..af9c03e4 --- /dev/null +++ b/tutorial-ma/index.html @@ -0,0 +1,163 @@ +Masked Arrays - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Masked Arrays

What you’ll do

Use the masked arrays module from NumPy to analyze COVID-19 data and deal with missing values.

What you’ll learn

  • You’ll understand what are masked arrays and how they can be created

  • You’ll see how to access and modify data for masked arrays

  • You’ll be able to decide when the use of masked arrays is appropriate in some of your applications

What you’ll need

  • Basic familiarity with Python. If you would like to refresh your memory, take a look at the Python tutorial.

  • Basic familiarity with NumPy

  • To run the plots on your computer, you need matplotlib.


What are masked arrays?

Consider the following problem. You have a dataset with missing or invalid entries. If you’re doing any kind of processing on this data, and want to skip or flag these unwanted entries without just deleting them, you may have to use conditionals or filter your data somehow. The numpy.ma module provides some of the same functionality of NumPy ndarrays with added structure to ensure invalid entries are not used in computation.

From the Reference Guide:

A masked array is the combination of a standard numpy.ndarray and a mask. A mask is either nomask, indicating that no value of the associated array is invalid, or an array of booleans that determines for each element of the associated array whether the value is valid or not. When an element of the mask is False, the corresponding element of the associated array is valid and is said to be unmasked. When an element of the mask is True, the corresponding element of the associated array is said to be masked (invalid).

We can think of a MaskedArray as a combination of:

  • Data, as a regular numpy.ndarray of any shape or datatype;

  • A boolean mask with the same shape as the data;

  • A fill_value, a value that may be used to replace the invalid entries in order to return a standard numpy.ndarray.

When can they be useful?

There are a few situations where masked arrays can be more useful than just eliminating the invalid entries of an array:

  • When you want to preserve the values you masked for later processing, without copying the array;

  • When you have to handle many arrays, each with their own mask. If the mask is part of the array, you avoid bugs and the code is possibly more compact;

  • When you have different flags for missing or invalid values, and wish to preserve these flags without replacing them in the original dataset, but exclude them from computations;

  • If you can’t avoid or eliminate missing values, but don’t want to deal with NaN (Not a Number) values in your operations.

Masked arrays are also a good idea since the numpy.ma module also comes with a specific implementation of most NumPy universal functions (ufuncs), which means that you can still apply fast vectorized functions and operations on masked data. The output is then a masked array. We’ll see some examples of how this works in practice below.

Using masked arrays to see COVID-19 data

From Kaggle it is possible to download a dataset with initial data about the COVID-19 outbreak in the beginning of 2020. We are going to look at a small subset of this data, contained in the file who_covid_19_sit_rep_time_series.csv. (Note that this file has been replaced with a version without missing data sometime in late 2020.)

import numpy as np
+import os
+
+# The os.getcwd() function returns the current folder; you can change
+# the filepath variable to point to the folder where you saved the .csv file
+filepath = os.getcwd()
+filename = os.path.join(filepath, "who_covid_19_sit_rep_time_series.csv")

The data file contains data of different types and is organized as follows:

  • The first row is a header line that (mostly) describes the data in each column that follow in the rows below, and beginning in the fourth column, the header is the date of the observation.

  • The second through seventh row contain summary data that is of a different type than that which we are going to examine, so we will need to exclude that from the data with which we will work.

  • The numerical data we wish to work with begins at column 4, row 8, and extends from there to the rightmost column and the lowermost row.

Let’s explore the data inside this file for the first 14 days of records. To gather data from the .csv file, we will use the numpy.genfromtxt function, making sure we select only the columns with actual numbers instead of the first four columns which contain location data. We also skip the first 6 +rows of this file, since they contain other data we are not interested in. Separately, we will extract the information about dates and location for this data.

# Note we are using skip_header and usecols to read only portions of the
+# data file into each variable.
+# Read just the dates for columns 4-18 from the first row
+dates = np.genfromtxt(
+    filename,
+    dtype=np.str_,
+    delimiter=",",
+    max_rows=1,
+    usecols=range(4, 18),
+    encoding="utf-8-sig",
+)
+# Read the names of the geographic locations from the first two
+# columns, skipping the first six rows
+locations = np.genfromtxt(
+    filename,
+    dtype=np.str_,
+    delimiter=",",
+    skip_header=6,
+    usecols=(0, 1),
+    encoding="utf-8-sig",
+)
+# Read the numeric data from just the first 14 days
+nbcases = np.genfromtxt(
+    filename,
+    dtype=np.int_,
+    delimiter=",",
+    skip_header=6,
+    usecols=range(4, 18),
+    encoding="utf-8-sig",
+)

Included in the numpy.genfromtxt function call, we have selected the numpy.dtype for each subset of the data (either an integer - numpy.int_ - or a string of characters - numpy.str_). We have also used the encoding argument to select utf-8-sig as the encoding for the file (read more about encoding in the official Python documentation. You can read more about the numpy.genfromtxt function from the Reference Documentation or from the Basic IO tutorial.

Exploring the data

First of all, we can plot the whole set of data we have and see what it looks like. In order to get a readable plot, we select only a few of the dates to show in our x-axis ticks. Note also that in our plot command, we use nbcases.T (the transpose of the nbcases array) since this means we will plot each row of the file as a separate line. We choose to plot a dashed line (using the '--' line style). See the matplotlib documentation for more info on this.

import matplotlib.pyplot as plt
+
+selected_dates = [0, 3, 11, 13]
+
+fig, ax = plt.subplots()
+ax.plot(dates, nbcases.T, "--")
+ax.set_xticks(selected_dates, dates[selected_dates])
+ax.set_title("COVID-19 cumulative cases from Jan 21 to Feb 3 2020")
<Figure size 640x480 with 1 Axes>

The graph has a strange shape from January 24th to February 1st. It would be interesting to know where this data comes from. If we look at the locations array we extracted from the .csv file, we can see that we have two columns, where the first would contain regions and the second would contain the name of the country. However, only the first few rows contain data for the the first column (province names in China). Following that, we only have country names. So it would make sense to group all the data from China into a single row. For this, we’ll select from the nbcases array only the rows for which the second entry of the locations array corresponds to China. Next, we’ll use the numpy.sum function to sum all the selected rows (axis=0). Note also that row 35 corresponds to the total counts for the whole country for each date. Since we want to calculate the sum ourselves from the provinces data, we have to remove that row first from both locations and nbcases:

totals_row = 35
+locations = np.delete(locations, (totals_row), axis=0)
+nbcases = np.delete(nbcases, (totals_row), axis=0)
+
+china_total = nbcases[locations[:, 1] == "China"].sum(axis=0)
+china_total
array([ 247, 288, 556, 817, -22, -22, -15, -10, -9, + -7, -4, 11820, 14410, 17237])

Something’s wrong with this data - we are not supposed to have negative values in a cumulative data set. What’s going on?

Missing data

Looking at the data, here’s what we find: there is a period with missing data:

nbcases
array([[ 258, 270, 375, ..., 7153, 9074, 11177], + [ 14, 17, 26, ..., 520, 604, 683], + [ -1, 1, 1, ..., 422, 493, 566], + ..., + [ -1, -1, -1, ..., -1, -1, -1], + [ -1, -1, -1, ..., -1, -1, -1], + [ -1, -1, -1, ..., -1, -1, -1]], shape=(263, 14))

All the -1 values we are seeing come from numpy.genfromtxt attempting to read missing data from the original .csv file. Obviously, we +don’t want to compute missing data as -1 - we just want to skip this value so it doesn’t interfere in our analysis. After importing the numpy.ma module, we’ll create a new array, this time masking the invalid values:

from numpy import ma
+
+nbcases_ma = ma.masked_values(nbcases, -1)

If we look at the nbcases_ma masked array, this is what we have:

nbcases_ma
masked_array( + data=[[258, 270, 375, ..., 7153, 9074, 11177], + [14, 17, 26, ..., 520, 604, 683], + [--, 1, 1, ..., 422, 493, 566], + ..., + [--, --, --, ..., --, --, --], + [--, --, --, ..., --, --, --], + [--, --, --, ..., --, --, --]], + mask=[[False, False, False, ..., False, False, False], + [False, False, False, ..., False, False, False], + [ True, False, False, ..., False, False, False], + ..., + [ True, True, True, ..., True, True, True], + [ True, True, True, ..., True, True, True], + [ True, True, True, ..., True, True, True]], + fill_value=-1)

We can see that this is a different kind of array. As mentioned in the introduction, it has three attributes (data, mask and fill_value). +Keep in mind that the mask attribute has a True value for elements corresponding to invalid data (represented by two dashes in the data attribute).

Let’s try and see what the data looks like excluding the first row (data from the Hubei province in China) so we can look at the missing data more +closely:

fig, ax = plt.subplots()
+ax.plot(dates, nbcases_ma[1:].T, "--")
+ax.set_xticks(selected_dates, dates[selected_dates])
+ax.set_title("COVID-19 cumulative cases from Jan 21 to Feb 3 2020")
<Figure size 640x480 with 1 Axes>

Now that our data has been masked, let’s try summing up all the cases in China:

china_masked = nbcases_ma[locations[:, 1] == "China"].sum(axis=0)
+china_masked
masked_array(data=[278, 309, 574, 835, 10, 10, 17, 22, 23, 25, 28, 11821, + 14411, 17238], + mask=[False, False, False, False, False, False, False, False, + False, False, False, False, False, False], + fill_value=999999)

Note that china_masked is a masked array, so it has a different data structure than a regular NumPy array. Now, we can access its data directly by using the .data attribute:

china_total = china_masked.data
+china_total
array([ 278, 309, 574, 835, 10, 10, 17, 22, 23, + 25, 28, 11821, 14411, 17238])

That is better: no more negative values. However, we can still see that for some days, the cumulative number of cases seems to go down (from 835 to 10, for example), which does not agree with the definition of “cumulative data”. If we look more closely at the data, we can see that in the period where there was missing data in mainland China, there was valid data for Hong Kong, Taiwan, Macau and “Unspecified” regions of China. Maybe we can remove those from the total sum of cases in China, to get a better understanding of the data.

First, we’ll identify the indices of locations in mainland China:

china_mask = (
+    (locations[:, 1] == "China")
+    & (locations[:, 0] != "Hong Kong")
+    & (locations[:, 0] != "Taiwan")
+    & (locations[:, 0] != "Macau")
+    & (locations[:, 0] != "Unspecified*")
+)

Now, china_mask is an array of boolean values (True or False); we can check that the indices are what we wanted with the ma.nonzero method for masked arrays:

china_mask.nonzero()
(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 33]),)

Now we can correctly sum entries for mainland China:

china_total = nbcases_ma[china_mask].sum(axis=0)
+china_total
masked_array(data=[278, 308, 440, 446, --, --, --, --, --, --, --, 11791, + 14380, 17205], + mask=[False, False, False, False, True, True, True, True, + True, True, True, False, False, False], + fill_value=999999)

We can replace the data with this information and plot a new graph, focusing on Mainland China:

fig, ax = plt.subplots()
+ax.plot(dates, china_total.T, "--")
+ax.set_xticks(selected_dates, dates[selected_dates])
+ax.set_title("COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China")
<Figure size 640x480 with 1 Axes>

It’s clear that masked arrays are the right solution here. We cannot represent the missing data without mischaracterizing the evolution of the curve.

Fitting Data

One possibility we can think of is to interpolate the missing data to estimate the number of cases in late January. Observe that we can select the masked elements using the .mask attribute:

china_total.mask
+invalid = china_total[china_total.mask]
+invalid
masked_array(data=[--, --, --, --, --, --, --], + mask=[ True, True, True, True, True, True, True], + fill_value=999999, + dtype=int64)

We can also access the valid entries by using the logical negation for this mask:

valid = china_total[~china_total.mask]
+valid
masked_array(data=[278, 308, 440, 446, 11791, 14380, 17205], + mask=[False, False, False, False, False, False, False], + fill_value=999999)

Now, if we want to create a very simple approximation for this data, we should take into account the valid entries around the invalid ones. So first let’s select the dates for which the data is valid. Note that we can use the mask from the china_total masked array to index the dates array:

dates[~china_total.mask]
array(['1/21/20', '1/22/20', '1/23/20', '1/24/20', '2/1/20', '2/2/20', + '2/3/20'], dtype='<U7')

Finally, we can use the +fitting functionality of the numpy.polynomial +package to create a cubic polynomial model that fits the data as best as possible:

t = np.arange(len(china_total))
+model = np.polynomial.Polynomial.fit(t[~china_total.mask], valid, deg=3)
+
+fig, ax = plt.subplots()
+ax.plot(t, china_total)
+ax.plot(t, model(t), "--")
<Figure size 640x480 with 1 Axes>

This plot is not so readable since the lines seem to be over each other, so let’s summarize in a more elaborate plot. We’ll plot the real data when +available, and show the cubic fit for unavailable data, using this fit to compute an estimate to the observed number of cases on January 28th 2020, 7 days after the beginning of the records:

fig, ax = plt.subplots()
+ax.plot(t, china_total)
+ax.plot(t[china_total.mask], model(t)[china_total.mask], "--", color="orange")
+ax.plot(7, model(7), "r*")
+
+ax.set_xticks([0, 7, 13], dates[[0, 7, 13]])
+ax.set_yticks([0, model(7), 10000, 17500])
+ax.legend(["Mainland China", "Cubic estimate", "7 days after start"])
+ax.set_title(
+    "COVID-19 cumulative cases from Jan 21 to Feb 3 2020 - Mainland China\n"
+    "Cubic estimate for 7 days after start"
+)
<Figure size 640x480 with 1 Axes>

In practice

  • Adding -1 to missing data is not a problem with numpy.genfromtxt; in this particular case, substituting the missing value with 0 might have been fine, but we’ll see later that this is far from a general solution. Also, it is possible to call the numpy.genfromtxt function using the usemask parameter. If usemask=True, numpy.genfromtxt automatically returns a masked array.

Further reading

Topics not covered in this tutorial can be found in the documentation:

Reference

  • Ensheng Dong, Hongru Du, Lauren Gardner, An interactive web-based dashboard to track COVID-19 in real time, The Lancet Infectious Diseases, Volume 20, Issue 5, 2020, Pages 533-534, ISSN 1473-3099, Dong et al. (2020).

References
  1. Dong, E., Du, H., & Gardner, L. (2020). An interactive web-based dashboard to track COVID-19 in real time. The Lancet Infectious Diseases, 20(5), 533–534. 10.1016/s1473-3099(20)30120-1
\ No newline at end of file diff --git a/tutorial-plotting-fractals.json b/tutorial-plotting-fractals.json new file mode 100644 index 00000000..4f069545 --- /dev/null +++ b/tutorial-plotting-fractals.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"2342ef3b81acbe66047eb0e4c3eafc83aab6e0238602ed8b5396abd01186026d","slug":"tutorial-plotting-fractals","location":"/content/tutorial-plotting-fractals.md","dependencies":[],"frontmatter":{"title":"Plotting Fractals","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"formats":"ipynb,md:myst","text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.4"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-plotting-fractals.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-plotting-fractals.md","thumbnail":"/numpy-tutorials/build/fractal-4ebbc2569665376d939ff6f78ae5e5ab.png","exports":[{"format":"md","filename":"tutorial-plotting-fractals.md","url":"/numpy-tutorials/build/tutorial-plotting-fr-d38e4485740d8943d2487fe8a6f5a2a3.md"}]},"mdast":{"type":"root","children":[{"type":"block","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"image","url":"/numpy-tutorials/build/fractal-4ebbc2569665376d939ff6f78ae5e5ab.png","alt":"Fractal picture","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"hSsl9jxasn","urlSource":"tutorial-plotting-fractals/fractal.png"}],"key":"pGq9PbxORS"},{"type":"block","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"Fractals are beautiful, compelling mathematical forms that can be oftentimes created from a relatively simple set of instructions. In nature they can be found in various places, such as coastlines, seashells, and ferns, and even were used in creating certain types of antennas. The mathematical idea of fractals was known for quite some time, but they really began to be truly appreciated in the 1970’s as advancements in computer graphics and some accidental discoveries lead researchers like ","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"lHTQHD64JC"},{"type":"link","url":"https://en.wikipedia.org/wiki/Benoit_Mandelbrot","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"Benoît Mandelbrot","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"tEXW3OTue5"}],"urlSource":"https://en.wikipedia.org/wiki/Benoit_Mandelbrot","data":{"page":"Benoit_Mandelbrot","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"mtgnDkBo2M"},{"type":"text","value":" to stumble upon the truly mystifying visualizations that fractals possess.","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"izps9sv31K"}],"key":"wHPr3c6ZTN"},{"type":"paragraph","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"Today we will learn how to plot these beautiful visualizations and will start to do a bit of exploring for ourselves as we gain familiarity of the mathematics behind fractals and will use the ever powerful NumPy universal functions to perform the necessary calculations efficiently.","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"FMosLTlQyu"}],"key":"zrPDRSVJXi"}],"key":"DxfyrAFy6F"},{"type":"block","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"FCOM2PCK65"}],"identifier":"what-youll-do","label":"What you’ll do","html_id":"what-youll-do","implicit":true,"key":"vYjJiRZvm4"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":31,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Write a function for plotting various Julia sets","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"OoHqZjazGj"}],"key":"SR5AzLojoe"}],"key":"i2pi2YAXb7"},{"type":"listItem","spread":true,"position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Create a visualization of the Mandelbrot set","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"TWJIHkvwqz"}],"key":"B2g5EAzMd1"}],"key":"h3d1kMlueU"},{"type":"listItem","spread":true,"position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Write a function that computes Newton fractals","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"WPkaPHiqgZ"}],"key":"VIKW7qL1hs"}],"key":"impZzw9igk"},{"type":"listItem","spread":true,"position":{"start":{"line":34,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Experiment with variations of general fractal types","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"qep48AFkLk"}],"key":"P2iXxT4Hqx"}],"key":"Mghwfykfuw"}],"key":"qdFvXvk3A5"}],"key":"QFWapHzC5B"},{"type":"block","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"LCIWYeUxuT"}],"identifier":"what-youll-learn","label":"What you’ll learn","html_id":"what-youll-learn","implicit":true,"key":"FpHMM0dA2a"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":40,"column":1},"end":{"line":44,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"A better intuition for how fractals work mathematically","position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"key":"LkLpCiBwGk"}],"key":"o37rTXAkHK"}],"key":"Bh0J4nBXk3"},{"type":"listItem","spread":true,"position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"A basic understanding about NumPy universal functions and Boolean Indexing","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"IhCiKD7KYx"}],"key":"igGnPji7I4"}],"key":"THVTipfBVx"},{"type":"listItem","spread":true,"position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The basics of working with complex numbers in NumPy","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"key":"STR05oAZf3"}],"key":"n8ejv8iCHc"}],"key":"NqDxfUCoTU"},{"type":"listItem","spread":true,"position":{"start":{"line":43,"column":1},"end":{"line":44,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"How to create your own unique fractal visualizations","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"LhFYJfUGGz"}],"key":"F6jXMGtKgp"}],"key":"rKmvGmP5Ib"}],"key":"ZpUABqRjmV"}],"key":"GxZTgOhXrS"},{"type":"block","position":{"start":{"line":45,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"e2o04j0h8r"}],"identifier":"what-youll-need","label":"What you’ll need","html_id":"what-youll-need","implicit":true,"key":"IxOGJzRZWg"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":49,"column":1},"end":{"line":51,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"gKEySEuzyv"}],"urlSource":"https://matplotlib.org/","key":"X3hAIke2WQ"}],"key":"KuLdlej0Lu"}],"key":"zPbt0DVoNM"},{"type":"listItem","spread":true,"position":{"start":{"line":50,"column":1},"end":{"line":51,"column":1}},"children":[{"type":"paragraph","children":[{"type":"inlineCode","value":"make_axis_locatable","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"hwEnuZWaul"},{"type":"text","value":" function from mpl_toolkits API","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"kf9IjPE0eH"}],"key":"ZYMM6Dl5ue"}],"key":"Kfrx0y32bf"}],"key":"p6K7UrC8tb"},{"type":"paragraph","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"text","value":"which can be imported as follows:","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"key":"yE62teU2P6"}],"key":"ENRffpW05Y"}],"key":"ux8GMWwFkd"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np\nimport matplotlib.pyplot as plt\nfrom mpl_toolkits.axes_grid1 import make_axes_locatable","key":"J2auFAayt2"},{"type":"outputs","id":"Z9-xWBdag3EDUaQ8SR2O3","children":[],"key":"gik7haQJuB"}],"key":"T5sLeZQRp0"},{"type":"block","children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":60,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Some familiarity with Python, NumPy and matplotlib","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"mIAO5ttyJ2"}],"key":"MBnnXu79vw"}],"key":"O7dANA1OCB"},{"type":"listItem","spread":true,"position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"An idea of elementary mathematical functions, such as ","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"u41M9VwzGq"},{"type":"link","url":"https://en.wikipedia.org/wiki/Exponential_function","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"text","value":"exponents","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"gcp8TT1NFG"}],"urlSource":"https://en.wikipedia.org/wiki/Exponential_function","data":{"page":"Exponential_function","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"LOlVanRQl6"},{"type":"text","value":", ","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"VwRdiOYH7R"},{"type":"link","url":"https://en.wikipedia.org/wiki/Sine","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"text","value":"sin","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"AHC6oSd6n5"}],"urlSource":"https://en.wikipedia.org/wiki/Sine","data":{"page":"Sine","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"C5zd2TUDac"},{"type":"text","value":", ","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"tuHfXKn1cK"},{"type":"link","url":"https://en.wikipedia.org/wiki/Polynomial","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"children":[{"type":"text","value":"polynomials","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"RNXLSMCOCP"}],"urlSource":"https://en.wikipedia.org/wiki/Polynomial","data":{"page":"Polynomial","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"Cva7wXaLM5"},{"type":"text","value":" etc","position":{"start":{"line":61,"column":1},"end":{"line":61,"column":1}},"key":"viBHmCqMJA"}],"key":"zc8tvwVHFC"}],"key":"HBLqKIvzBi"},{"type":"listItem","spread":true,"position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"A very basic understanding of ","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"SZKRSiHjbF"},{"type":"link","url":"https://en.wikipedia.org/wiki/Complex_number","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"text","value":"complex numbers","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"LVA1MXVbVG"}],"urlSource":"https://en.wikipedia.org/wiki/Complex_number","data":{"page":"Complex_number","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"RGsb9uoQ7J"},{"type":"text","value":" would be useful","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"fmGsbUyPvB"}],"key":"PWFiazCfjN"}],"key":"rl8eODw3mO"},{"type":"listItem","spread":true,"position":{"start":{"line":63,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Knowledge of ","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"EHAFC0j0Mg"},{"type":"link","url":"https://en.wikipedia.org/wiki/Derivative","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"children":[{"type":"text","value":"derivatives","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"aYLvF3oJQq"}],"urlSource":"https://en.wikipedia.org/wiki/Derivative","data":{"page":"Derivative","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"H9QenOop26"},{"type":"text","value":" may be helpful","position":{"start":{"line":63,"column":1},"end":{"line":63,"column":1}},"key":"jgBUQraGBi"}],"key":"TiigQj14Yr"}],"key":"vhU5FtKrZX"}],"key":"O57g5Ef45w"}],"key":"OkolygwP66"},{"type":"block","position":{"start":{"line":65,"column":1},"end":{"line":65,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"text","value":"Warmup","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"yCFCpXVhkM"}],"identifier":"warmup","label":"Warmup","html_id":"warmup","implicit":true,"key":"KwC9fu6h2V"},{"type":"paragraph","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"text","value":"To gain some intuition for what fractals are, we will begin with an example.","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"hLeW73gt4P"}],"key":"KTfziYZmAu"},{"type":"paragraph","position":{"start":{"line":71,"column":1},"end":{"line":71,"column":1}},"children":[{"type":"text","value":"Consider the following equation:","position":{"start":{"line":71,"column":1},"end":{"line":71,"column":1}},"key":"uVBllobd4F"}],"key":"jJvvFEgfGZ"},{"type":"paragraph","position":{"start":{"line":73,"column":1},"end":{"line":73,"column":1}},"children":[{"type":"inlineMath","value":"f(z) = z^2 -1 ","position":{"start":{"line":73,"column":1},"end":{"line":73,"column":1}},"html":"f(z)=z21f(z) = z^2 -1 f(z)=z21","key":"skLHIxxzzI"}],"key":"OsCihy0EHg"},{"type":"paragraph","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"qw4K12mtdx"},{"type":"inlineCode","value":"z","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"hUmVLGTjMb"},{"type":"text","value":" is a complex number (i.e of the form ","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"CZhqvmau7S"},{"type":"inlineMath","value":"a + bi","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"html":"a+bia + bia+bi","key":"LkRkXoV6Cb"},{"type":"text","value":" )","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"HLy4wdRheU"}],"key":"LNgwLk6Q3l"},{"type":"paragraph","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"children":[{"type":"text","value":"For our convenience, we will write a Python function for it","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"ILxO8OuVld"}],"key":"dWAurF1Pi7"}],"key":"q9lZowMIha"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def f(z):\n return np.square(z) - 1","key":"s94OyyBmO4"},{"type":"outputs","id":"m98mQOYr9lPpFrGwrL-Vk","children":[],"key":"pYdBGQZTFO"}],"key":"Sab2q76JBs"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"text","value":"Note that the square function we used is an example of a ","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"u7Gt3UaeEU"},{"type":"strong","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/ufuncs.html","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"text","value":"NumPy universal function","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"mIHQUVhoXZ"}],"urlSource":"https://numpy.org/doc/stable/reference/ufuncs.html","key":"QarOO1IoBd"}],"key":"PRbDl76Dan"},{"type":"text","value":"; we will come back to the significance of this decision shortly.","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"XthOChfLWs"}],"key":"rgc2L6bWUx"},{"type":"paragraph","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"children":[{"type":"text","value":"To gain some intuition for the behaviour of the function, we can try plugging in some different values.","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"YzECUOTIEH"}],"key":"jY8PhW7OfM"},{"type":"paragraph","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"children":[{"type":"text","value":"For ","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"key":"GWUqN3Yk4G"},{"type":"inlineMath","value":"z = 0","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"html":"z=0z = 0z=0","key":"JqU3oLtpEV"},{"type":"text","value":", we would expect to get ","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"key":"qR4xJolUqf"},{"type":"text","value":"-1","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"key":"PHxJd5eHCr"},{"type":"text","value":":","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"key":"iGH7Ws8gsX"}],"key":"AByAsehAtE"}],"key":"XQP5ni6LcA"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"f(0)","key":"RB9GSF27ni"},{"type":"outputs","id":"qYVvDJc6XRuF0mTur9-D7","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":3,"metadata":{},"data":{"text/plain":{"content":"np.int64(-1)","content_type":"text/plain"}}},"key":"L09Nl8oa1J"}],"key":"ewimuey2OX"}],"key":"glDmuPqUFO"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"children":[{"type":"text","value":"Since we used a universal function in our design, we can compute multiple inputs at the same time:","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"key":"wXA6WnKPrH"}],"key":"eaYX6AqDF5"}],"key":"P2u6KiIAcp"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"z = [4, 1-0.2j, 1.6]\nf(z)","key":"hPF4mnIPmJ"},{"type":"outputs","id":"deecikab-dARC1SsHBml4","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":4,"metadata":{},"data":{"text/plain":{"content":"array([15. +0.j , -0.04-0.4j, 1.56+0.j ])","content_type":"text/plain"}}},"key":"MeZRzBt4W1"}],"key":"evCjcdSQM3"}],"key":"evJRtYuuUs"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"children":[{"type":"text","value":"Some values grow, some values shrink, some don’t experience much change.","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"key":"xovpOLEtNZ"}],"key":"G9qI3itHti"},{"type":"paragraph","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"children":[{"type":"text","value":"To see the behaviour of the function on a larger scale, we can apply the function to a subset of the complex plane and plot the result. To create our subset (or mesh), we can make use of the ","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"DM9jxDjHB8"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.meshgrid.html","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"children":[{"type":"strong","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"children":[{"type":"text","value":"meshgrid","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"OOAjoU4uwM"}],"key":"zid1gMNwWH"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.meshgrid.html","key":"b5PMMx5IKE"},{"type":"text","value":" function.","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"P9eyq6Q2Tx"}],"key":"BNEQmJUhPm"}],"key":"YZB0dSs0rK"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x, y = np.meshgrid(np.linspace(-10, 10, 20), np.linspace(-10, 10, 20))\nmesh = x + (1j * y) # Make mesh of complex plane","key":"u1XAPZ6uhx"},{"type":"outputs","id":"4GDUHbd3lCGlKNuEfE76-","children":[],"key":"oFQ9C404sZ"}],"key":"cddraOPNE7"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"children":[{"type":"text","value":"Now we will apply our function to each value contained in the mesh. Since we used a universal function in our design, this means that we can pass in the entire mesh all at once. This is extremely convenient for two reasons: It reduces the amount of code needed to be written and greatly increases the efficiency (as universal functions make use of system level C programming in their computations).","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"key":"LhUssEPMVT"}],"key":"kXxsxXCLzK"},{"type":"paragraph","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"Here we plot the absolute value (or modulus) of each element in the mesh after one “iteration” of the function using a ","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"ZdxOaF97ku"},{"type":"link","url":"https://matplotlib.org/stable/users/explain/toolkits/mplot3d.html#scatter-plots","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"strong","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"3D scatterplot","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"jDZDEYYMNV"}],"key":"sddZ1d8v8M"}],"urlSource":"https://matplotlib.org/stable/users/explain/toolkits/mplot3d.html#scatter-plots","key":"SwSYXc4iKS"},{"type":"text","value":":","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"UaXqjqZmi2"}],"key":"FM7SVHWmCH"}],"key":"P08EBslJYE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = np.abs(f(mesh)) # Take the absolute value of the output (for plotting)\n\nfig = plt.figure()\nax = plt.axes(projection='3d')\n\nax.scatter(x, y, output, alpha=0.2)\n\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\nax.set_zlabel('Absolute value')\nax.set_title('One Iteration: $ f(z) = z^2 - 1$');","key":"gESkmsWixK"},{"type":"outputs","id":"BfT2biNy536zQe_FAeggb","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"7f84e402be89c586dd50d9df108361bf","path":"/numpy-tutorials/build/7f84e402be89c586dd50d9df108361bf.png"}}},"key":"IbktloJXUX"}],"key":"bcWnyLtZKz"}],"key":"ZnZKQqI0Rt"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"children":[{"type":"text","value":"This gives us a rough idea of what one iteration of the function does. Certain areas (notably in the areas closest to ","position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"key":"ZeFTypv0B0"},{"type":"inlineMath","value":"(0,0i)","position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"html":"(0,0i)(0,0i)(0,0i)","key":"nhJvKESh9X"},{"type":"text","value":") remain rather small while other areas grow quite considerably. Note that we lose information about the output by taking the absolute value, but it is the only way for us to be able to make a plot.","position":{"start":{"line":129,"column":1},"end":{"line":129,"column":1}},"key":"bT0111bwlS"}],"key":"SBInC4tpaw"},{"type":"paragraph","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"children":[{"type":"text","value":"Let’s see what happens when we apply 2 iterations to the mesh:","position":{"start":{"line":131,"column":1},"end":{"line":131,"column":1}},"key":"I6b1wGFm6b"}],"key":"Wt4Sgqd21y"}],"key":"IwDsv3lBry"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = np.abs(f(f(mesh)))\n\nax = plt.axes(projection='3d')\n\nax.scatter(x, y, output, alpha=0.2)\n\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\nax.set_zlabel('Absolute value')\nax.set_title('Two Iterations: $ f(z) = z^2 - 1$');","key":"wSbrhqCcEu"},{"type":"outputs","id":"c-6zJPeb1MEU3iIum1UP5","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"7fbde6b0eca93c7afca99c9aa7d7c976","path":"/numpy-tutorials/build/7fbde6b0eca93c7afca99c9aa7d7c976.png"}}},"key":"pspTPnw6hQ"}],"key":"Yhq8sVzBB1"}],"key":"ZQ776qHQwG"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"children":[{"type":"text","value":"Once again, we see that values around the origin remain small, and values with a larger absolute value (or modulus) “explode”.","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"oQo18ni474"}],"key":"DHgGHm7cyn"},{"type":"paragraph","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"children":[{"type":"text","value":"From first impression, its behaviour appears to be normal, and may even seem mundane. Fractals tend to have more to them then what meets the eye; the exotic behavior shows itself when we begin applying more iterations.","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"mradH3eVWn"}],"key":"MPxOOU2Wot"}],"key":"zgQCof0l8v"},{"type":"block","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"text","value":"Consider three complex numbers:","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"s33q3xJml8"}],"key":"w0av7Py5Te"},{"type":"paragraph","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"children":[{"type":"inlineMath","value":"z_1 = 0.4 + 0.4i ","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"html":"z1=0.4+0.4iz_1 = 0.4 + 0.4i z1=0.4+0.4i","key":"Z6Mcr94m1p"},{"type":"text","value":",","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"key":"tiI9uLwDBu"}],"key":"UNnGobpfiW"},{"type":"paragraph","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"inlineMath","value":"z_2 = z_1 + 0.1","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"html":"z2=z1+0.1z_2 = z_1 + 0.1z2=z1+0.1","key":"efGRvIfYGV"},{"type":"text","value":",","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"hVxwZzynsN"}],"key":"S0Tm3nsC5T"},{"type":"paragraph","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"children":[{"type":"inlineMath","value":"z_3 = z_1 + 0.1i","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"html":"z3=z1+0.1iz_3 = z_1 + 0.1iz3=z1+0.1i","key":"RaZnJS5tbk"}],"key":"aqgm2OMgap"},{"type":"paragraph","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"children":[{"type":"text","value":"Given the shape of our first two plots, we would expect that these values would remain near the origin as we apply iterations to them. Let us see what happens when we apply 10 iterations to each value:","position":{"start":{"line":160,"column":1},"end":{"line":160,"column":1}},"key":"r6g7V4Geif"}],"key":"Jy46AExLQX"}],"key":"LHtrqGHXL0"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"selected_values = np.array([0.4 + 0.4j, 0.41 + 0.4j, 0.4 + 0.41j])\nnum_iter = 9\n\noutputs = np.zeros((num_iter+1, selected_values.shape[0]), dtype=complex)\noutputs[0] = selected_values\n\nfor i in range(num_iter):\n outputs[i+1] = f(outputs[i]) # Apply 10 iterations, save each output\n\nfig, axes = plt.subplots(1, selected_values.shape[0], figsize=(16, 6))\naxes[1].set_xlabel('Real axis')\naxes[0].set_ylabel('Imaginary axis')\n\nfor ax, data in zip(axes, outputs.T):\n cycle = ax.scatter(data.real, data.imag, c=range(data.shape[0]), alpha=0.6)\n ax.set_title(f'Mapping of iterations on {data[0]}')\n\nfig.colorbar(cycle, ax=axes, location=\"bottom\", label='Iteration');","key":"ECD61VSkjm"},{"type":"outputs","id":"o7wOQL0KbHq6E3IlT6Q1L","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"92114b78b40d8deb0fce5ce7359a888b","path":"/numpy-tutorials/build/92114b78b40d8deb0fce5ce7359a888b.png"}}},"key":"uHi0qM93kf"}],"key":"yxxbWYuAyq"}],"key":"jpWKaMubsO"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"children":[{"type":"text","value":"To our surprise, the behaviour of the function did not come close to matching our hypothesis. This is a prime example of the chaotic behaviour fractals possess. In the first two plots, the value “exploded” on the last iteration, jumping way beyond the region that it was contained in previously. The third plot on the other hand remained bounded to a small region close to the origin, yielding completely different behaviour despite the tiny change in value.","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"eXqWCEjznJ"}],"key":"WM4Kmgty2Z"},{"type":"paragraph","position":{"start":{"line":185,"column":1},"end":{"line":185,"column":1}},"children":[{"type":"text","value":"This leads us to an extremely important question: ","position":{"start":{"line":185,"column":1},"end":{"line":185,"column":1}},"key":"UCk6n5kglX"},{"type":"strong","position":{"start":{"line":185,"column":1},"end":{"line":185,"column":1}},"children":[{"type":"text","value":"How many iterations can be applied to each value before they diverge (“explode”)?","position":{"start":{"line":185,"column":1},"end":{"line":185,"column":1}},"key":"zIKJOPFfPD"}],"key":"KxbHehCcnB"}],"key":"krrPJbgdsO"},{"type":"paragraph","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"children":[{"type":"text","value":"As we saw from the first two plots, the further the values were from the origin, the faster they generally exploded. Although the behaviour is uncertain for smaller values (like ","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"key":"Tn409ZFIuE"},{"type":"inlineMath","value":"z_1, z_2, z_3","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"html":"z1,z2,z3z_1, z_2, z_3z1,z2,z3","key":"JIJgAixFUA"},{"type":"text","value":"), we can assume that if a value surpasses a certain distance from the origin (say 2) that it is doomed to diverge. We will call this threshold the ","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"key":"iKhWbZRx4k"},{"type":"strong","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"children":[{"type":"text","value":"radius","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"key":"ICPgn8xAxM"}],"key":"Q1tR7rZU2e"},{"type":"text","value":".","position":{"start":{"line":187,"column":1},"end":{"line":187,"column":1}},"key":"HEIL8wJIvw"}],"key":"N5svdyqfz4"},{"type":"paragraph","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"children":[{"type":"text","value":"This allows us to quantify the behaviour of the function for a particular value without having to perform as many computations. Once the radius is surpassed, we are allowed to stop iterating, which gives us a way of answering the question we posed. If we tally how many computations were applied before divergence, we gain insight into the behaviour of the function that would be hard to keep track of otherwise.","position":{"start":{"line":189,"column":1},"end":{"line":189,"column":1}},"key":"my028b4Bt5"}],"key":"IaZArKmRM9"},{"type":"paragraph","position":{"start":{"line":191,"column":1},"end":{"line":191,"column":1}},"children":[{"type":"text","value":"Of course, we can do much better and design a function that performs the procedure on an entire mesh.","position":{"start":{"line":191,"column":1},"end":{"line":191,"column":1}},"key":"AovQBw41wf"}],"key":"ZeC2U1K4j7"}],"key":"SSQ5Y4oLnW"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def divergence_rate(mesh, num_iter=10, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(mesh.shape) # Keep tally of the number of iterations\n\n # Iterate on element if and only if |element| < radius (Otherwise assume divergence)\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n diverge_len[conv_mask] += 1\n z[conv_mask] = f(z[conv_mask])\n\n return diverge_len","key":"Atm2CUYaOy"},{"type":"outputs","id":"i0T76JcC-7PemtlndywAU","children":[],"key":"Kt8Al4E0a2"}],"key":"qn3Fs3iDHB"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"children":[{"type":"text","value":"The behaviour of this function may look confusing at first glance, so it will help to explain some of the notation.","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"eHypWMoR5S"}],"key":"TixRPys4d6"},{"type":"paragraph","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"children":[{"type":"text","value":"Our goal is to iterate over each value in the mesh and to tally the number of iterations before the value diverges. Since some values will diverge quicker than others, we need a procedure that only iterates over values that have an absolute value that is sufficiently small enough. We also want to stop tallying values once they surpass the radius. For this, we can use ","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"iDl7HZttDG"},{"type":"strong","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"children":[{"type":"link","url":"https://numpy.org/devdocs/user/basics.indexing.html#boolean-array-indexing","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"children":[{"type":"text","value":"Boolean Indexing","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"ZDpog3jarO"}],"urlSource":"https://numpy.org/devdocs/user/basics.indexing.html#boolean-array-indexing","key":"rC0zpmeutn"}],"key":"PNp6HAwMiW"},{"type":"text","value":", a NumPy feature that when paired with universal functions is unbeatable. Boolean Indexing allows for operations to be performed conditionally on a NumPy array without having to resort to looping over and checking for each array value individually.","position":{"start":{"line":210,"column":1},"end":{"line":210,"column":1}},"key":"wkLZmRcNHA"}],"key":"QceJHMm6dY"},{"type":"paragraph","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"children":[{"type":"text","value":"In our case, we use a loop to apply iterations to our function ","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"key":"cWPC3t6gcj"},{"type":"inlineMath","value":"f(z) = z^2 -1 ","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"html":"f(z)=z21f(z) = z^2 -1 f(z)=z21","key":"BqUZgzNs5v"},{"type":"text","value":" and keep tally. Using Boolean indexing, we only apply the iterations to values that have an absolute value less than 2.","position":{"start":{"line":212,"column":1},"end":{"line":212,"column":1}},"key":"hUm8hZ8tYr"}],"key":"hKkaRHvdkX"},{"type":"paragraph","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"With that out of the way, we can go about plotting our first fractal! We will use the ","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"EbnfeRGVy7"},{"type":"link","url":"https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imshow.html","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"strong","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"imshow","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"fVAeJJRBsZ"}],"key":"knh4KJjhoo"}],"urlSource":"https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imshow.html","key":"A0VmrI9Y4b"},{"type":"text","value":" function to create a colour-coded visualization of the tallies.","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"ZeJuX8JwLk"}],"key":"H5eoqBf02Y"}],"key":"bpcVGALoeB"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))\nmesh = x + (1j * y)\n\noutput = divergence_rate(mesh)\n\nfig, ax = plt.subplots(figsize=(5, 5))\n\nax.set_title('$f(z) = z^2 -1$')\nax.set_xlabel('Real axis')\nax.set_ylabel('Imaginary axis')\n\nim = ax.imshow(output, extent=[-2, 2, -2, 2])\ndivider = make_axes_locatable(ax)\ncax = divider.append_axes(\"right\", size=\"5%\", pad=0.1)\nplt.colorbar(im, cax=cax, label='Number of iterations');","key":"fD0BH2NxIY"},{"type":"outputs","id":"TksnuF-zbMyy11We_cjRq","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"7aac38b838e1a5bb8292ca93f7ce483a","path":"/numpy-tutorials/build/7aac38b838e1a5bb8292ca93f7ce483a.png"}}},"key":"VDgTbLhSZg"}],"key":"BLvQRPW1lT"}],"key":"HGhne772ba"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":234,"column":1},"end":{"line":234,"column":1}},"children":[{"type":"text","value":"What this stunning visual conveys is the complexity of the function’s behaviour. The yellow region represents values that remain small, while the purple region represents the divergent values. The beautiful pattern that arises on the border of the converging and diverging values is even more fascinating when you realize that it is created from such a simple function.","position":{"start":{"line":234,"column":1},"end":{"line":234,"column":1}},"key":"Muj3bRxcwD"}],"key":"cEbs1MUQgn"}],"key":"MdlgJ7PrOE"},{"type":"block","position":{"start":{"line":236,"column":1},"end":{"line":236,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":238,"column":1},"end":{"line":238,"column":1}},"children":[{"type":"text","value":"Julia set","position":{"start":{"line":238,"column":1},"end":{"line":238,"column":1}},"key":"vZStZdSkg3"}],"identifier":"julia-set","label":"Julia set","html_id":"julia-set","implicit":true,"key":"w51g1Gfzui"},{"type":"paragraph","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"children":[{"type":"text","value":"What we just explored was an example of a fractal visualization of a specific Julia Set.","position":{"start":{"line":240,"column":1},"end":{"line":240,"column":1}},"key":"NRcWq8WCO5"}],"key":"lzvg9dAKVg"},{"type":"paragraph","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"Consider the function ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"sKmVBgbFKt"},{"type":"inlineMath","value":"f(z) = z^2 + c","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"html":"f(z)=z2+cf(z) = z^2 + cf(z)=z2+c","key":"vAb2eEfv5a"},{"type":"text","value":" where ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"BnlrPMm368"},{"type":"inlineMath","value":"c","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"html":"ccc","key":"z98SZVBeAL"},{"type":"text","value":" is a complex number. The ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"NatB5elXKa"},{"type":"strong","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"filled-in Julia set","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"gZ2vK4AAoe"}],"key":"DQwRI2l6fl"},{"type":"text","value":" of ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"TDvAi2y8z1"},{"type":"inlineMath","value":"c","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"html":"ccc","key":"xTDQz2jaH4"},{"type":"text","value":" is the set of all complex numbers ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"a1zi775Ptt"},{"type":"inlineCode","value":"z","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"KipK2WspTV"},{"type":"text","value":" in which the function converges at ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"WmR8IPvPHq"},{"type":"inlineMath","value":"f(z)","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"html":"f(z)f(z)f(z)","key":"LjnBLXnitC"},{"type":"text","value":". Likewise, the boundary of the filled-in Julia set is what we call the ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"gVwCx7cjus"},{"type":"strong","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"children":[{"type":"text","value":"Julia set","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"Lxp3s4bZ4Z"}],"key":"HZw8nKYt8C"},{"type":"text","value":". In our above visualization, we can see that the yellow region represents an approximation of the filled-in Julia set for ","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"t0fCz9g2eG"},{"type":"inlineMath","value":"c = -1","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"html":"c=1c = -1c=1","key":"kdizMv89RG"},{"type":"text","value":" and the greenish-yellow border would contain the Julia set.","position":{"start":{"line":242,"column":1},"end":{"line":242,"column":1}},"key":"FklqLo0xip"}],"key":"yzt9ac7gfW"},{"type":"paragraph","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"children":[{"type":"text","value":"To gain access to a wider range of “Julia fractals”, we can write a function that allows for different values of ","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"key":"XvtrPEv13Q"},{"type":"inlineMath","value":"c","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"html":"ccc","key":"NTTT8nxkwn"},{"type":"text","value":" to be passed in:","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"key":"YgaNQBYd53"}],"key":"DjQwe9S6WL"}],"key":"vFbEjP4dPb"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def julia(mesh, c=-1, num_iter=10, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = np.square(z[conv_mask]) + c\n diverge_len[conv_mask] += 1\n\n return diverge_len","key":"Xc7ymrK5wv"},{"type":"outputs","id":"6D-t6gTGv_PIamQmIzjbU","children":[],"key":"QNuxDgwFUW"}],"key":"R358uqgkaQ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":260,"column":1},"end":{"line":260,"column":1}},"children":[{"type":"text","value":"To make our lives easier, we will create a couple meshes that we will reuse throughout the rest of the examples:","position":{"start":{"line":260,"column":1},"end":{"line":260,"column":1}},"key":"ChX9ElPg4G"}],"key":"Tj5yC83lXa"}],"key":"pWrEPHAkxZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x, y = np.meshgrid(np.linspace(-1, 1, 400), np.linspace(-1, 1, 400))\nsmall_mesh = x + (1j * y)\n\nx, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))\nmesh = x + (1j * y)","key":"NeItbTo2Il"},{"type":"outputs","id":"oieOBxQgM_g4o9z92bC27","children":[],"key":"YUBDoT6h2w"}],"key":"psbDv9WIgS"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"children":[{"type":"text","value":"We will also write a function that we will use to create our fractal plots:","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"bgldDxrsRn"}],"key":"guZlllxGvt"}],"key":"p9eFOqWX1H"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def plot_fractal(fractal, title='Fractal', figsize=(6, 6), cmap='rainbow', extent=[-2, 2, -2, 2]):\n\n fig, ax = plt.subplots(figsize=figsize)\n\n ax.set_title(f'${title}$')\n ax.set_xlabel('Real axis')\n ax.set_ylabel('Imaginary axis')\n\n im = ax.imshow(fractal, extent=extent, cmap=cmap)\n divider = make_axes_locatable(ax)\n cax = divider.append_axes(\"right\", size=\"5%\", pad=0.1)\n plt.colorbar(im, cax=cax, label='Number of iterations')","key":"ZWPWnEXnac"},{"type":"outputs","id":"iggOepucy231SfA55Kpa5","children":[],"key":"xfUywGDf86"}],"key":"OhaEZSgr8y"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":287,"column":1},"end":{"line":287,"column":1}},"children":[{"type":"text","value":"Using our newly defined functions, we can make a quick plot of the first fractal again:","position":{"start":{"line":287,"column":1},"end":{"line":287,"column":1}},"key":"W0VSW1TMdQ"}],"key":"ajKjwu79sA"}],"key":"aFuMHEP6aB"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = julia(mesh, num_iter=15)\nkwargs = {'title': 'f(z) = z^2 -1'}\n\nplot_fractal(output, **kwargs);","key":"OT9lnVijHE"},{"type":"outputs","id":"KegFn4Vu5lLWa3-RJHAtB","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"850f37a471269c156ed7f8880c97d499","path":"/numpy-tutorials/build/850f37a471269c156ed7f8880c97d499.png"}}},"key":"PwmbViJoKj"}],"key":"tlV3wzMeN3"}],"key":"muEHsH3Kdt"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":296,"column":1},"end":{"line":296,"column":1}},"children":[{"type":"text","value":"We also can explore some different Julia sets by experimenting with different values of ","position":{"start":{"line":296,"column":1},"end":{"line":296,"column":1}},"key":"hZiT7hWqtu"},{"type":"inlineMath","value":"c","position":{"start":{"line":296,"column":1},"end":{"line":296,"column":1}},"html":"ccc","key":"lMtjstb7Mk"},{"type":"text","value":". It can be surprising how much influence it has on the shape of the fractal.","position":{"start":{"line":296,"column":1},"end":{"line":296,"column":1}},"key":"VLC55zxJMJ"}],"key":"QoLpkmE6FZ"},{"type":"paragraph","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"children":[{"type":"text","value":"For example, setting ","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"zRPoWblUaM"},{"type":"inlineMath","value":"c = \\frac{\\pi}{10}","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"html":"c=π10c = \\frac{\\pi}{10}c=10π","key":"jKvN9qJVFT"},{"type":"text","value":" gives us a very elegant cloud shape, while setting c = ","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"thf1bpQatx"},{"type":"inlineMath","value":"-\\frac{3}{4} + 0.4i","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"html":"34+0.4i-\\frac{3}{4} + 0.4i43+0.4i","key":"xR9p4oM8Dz"},{"type":"text","value":" yields a completely different pattern.","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"NJKpLPCtDr"}],"key":"N2Vf62NKNl"}],"key":"qgjq95uiQL"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = julia(mesh, c=np.pi/10, num_iter=20)\nkwargs = {'title': r'f(z) = z^2 + \\dfrac{\\pi}{10}', 'cmap': 'plasma'}\n\nplot_fractal(output, **kwargs);","key":"AdhPzu9j0g"},{"type":"outputs","id":"cGdGCsNSD9h54W7Furza2","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"8d408d609f4c318002e526815c6d7da4","path":"/numpy-tutorials/build/8d408d609f4c318002e526815c6d7da4.png"}}},"key":"ONNevWtP4q"}],"key":"mza0TLCShN"}],"key":"fefih2WA8W"},{"type":"block","children":[],"key":"HN8T4xMU78"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = julia(mesh, c=-0.75 + 0.4j, num_iter=20)\nkwargs = {'title': r'f(z) = z^2 - \\dfrac{3}{4} + 0.4i', 'cmap': 'Greens_r'}\n\nplot_fractal(output, **kwargs);","key":"mKQTas9FWc"},{"type":"outputs","id":"IvN2v-bcmLsXfYdrAVIEm","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"329b2cbe8a8967fce9752d6047359f39","path":"/numpy-tutorials/build/329b2cbe8a8967fce9752d6047359f39.png"}}},"key":"xmj426yRZN"}],"key":"qh2Git1kgL"}],"key":"ulITwTUGi8"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"children":[{"type":"text","value":"Mandelbrot set","position":{"start":{"line":314,"column":1},"end":{"line":314,"column":1}},"key":"ASLXjQinVw"}],"identifier":"mandelbrot-set","label":"Mandelbrot set","html_id":"mandelbrot-set","implicit":true,"key":"JX2CUuYbfR"},{"type":"paragraph","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"children":[{"type":"text","value":"Closely related to the Julia set is the famous ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"d7Cr10deaC"},{"type":"strong","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"children":[{"type":"text","value":"Mandelbrot set","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"ji2wOaP8RQ"}],"key":"SxF9iAOALn"},{"type":"text","value":", which has a slightly different definition. Once again, we define ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"ElK3qSlnmu"},{"type":"inlineMath","value":"f(z) = z^2 + c","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"f(z)=z2+cf(z) = z^2 + cf(z)=z2+c","key":"NCgyYdr4P2"},{"type":"text","value":" where ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"kjNu8NorC8"},{"type":"inlineMath","value":"c","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"ccc","key":"Q1ftvzrFc9"},{"type":"text","value":" is a complex number, but this time our focus is on our choice of ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"qi46y84cwZ"},{"type":"inlineMath","value":"c","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"ccc","key":"YXCA5RtKsP"},{"type":"text","value":". We say that ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"MvwbOwDww8"},{"type":"inlineMath","value":"c","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"ccc","key":"wlhMM8Rnie"},{"type":"text","value":" is an element of the Mandelbrot set if f converges at ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"RbbWknJP1E"},{"type":"inlineMath","value":"z = 0","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"z=0z = 0z=0","key":"y9nUD72RDG"},{"type":"text","value":". An equivalent definition is to say that ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"kQHQZYUIDZ"},{"type":"inlineMath","value":"c","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"ccc","key":"evIg5RsliR"},{"type":"text","value":" is an element of the Mandelbrot set if ","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"xve56doHzR"},{"type":"inlineMath","value":"f(c)","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"html":"f(c)f(c)f(c)","key":"cJszn7bKqL"},{"type":"text","value":" can be iterated infinitely and not ‘explode’. We will tweak our Julia function slightly (and rename it appropriately) so that we can plot a visualization of the Mandelbrot set, which possesses an elegant fractal pattern.","position":{"start":{"line":316,"column":1},"end":{"line":316,"column":1}},"key":"rSZECdZJER"}],"key":"Cvj2W6o09a"}],"key":"jhI8WLp1gt"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def mandelbrot(mesh, num_iter=10, radius=2):\n\n c = mesh.copy()\n z = np.zeros(mesh.shape, dtype=np.complex128)\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = np.square(z[conv_mask]) + c[conv_mask]\n diverge_len[conv_mask] += 1\n\n return diverge_len","key":"YuqGK11zif"},{"type":"outputs","id":"7-4O8UzForiQQhhqnFAE_","children":[],"key":"lIbo0k0Q4p"}],"key":"dCxWDLGayS"},{"type":"block","children":[],"key":"mo65gDsAR6"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = mandelbrot(mesh, num_iter=50)\nkwargs = {'title': 'Mandelbrot \\\\ set', 'cmap': 'hot'}\n\nplot_fractal(output, **kwargs);","key":"AulfMpSH5w"},{"type":"outputs","id":"OWGi7y-vPzbGzM_N__iMw","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"94861864bba1e0fd4df66f1b502847f7","path":"/numpy-tutorials/build/94861864bba1e0fd4df66f1b502847f7.png"}}},"key":"dLUBYygQTl"}],"key":"frvWSn8vhY"}],"key":"i4oCP8Jjuk"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"children":[{"type":"text","value":"Generalizing the Julia set","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"mEt6DRAI9Z"}],"identifier":"generalizing-the-julia-set","label":"Generalizing the Julia set","html_id":"generalizing-the-julia-set","implicit":true,"key":"RljHuimLW9"},{"type":"paragraph","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"children":[{"type":"text","value":"We can generalize our Julia function even further by giving it a parameter for which universal function we would like to pass in. This would allow us to plot fractals of the form ","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"YWQ8qblAme"},{"type":"inlineMath","value":"f(z) = g(z) + c","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"html":"f(z)=g(z)+cf(z) = g(z) + cf(z)=g(z)+c","key":"HfhsX6fahY"},{"type":"text","value":" where g is a universal function selected by us.","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"KFoXvf2RHy"}],"key":"rkugWfdXUN"}],"key":"wqHf887lBv"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def general_julia(mesh, c=-1, f=np.square, num_iter=100, radius=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < radius\n z[conv_mask] = f(z[conv_mask]) + c\n diverge_len[conv_mask] += 1\n\n return diverge_len","key":"dX3ben5sG3"},{"type":"outputs","id":"7GycLGioYoyW2Z2tQs52f","children":[],"key":"rlUY9toBXY"}],"key":"ToXnUEpXDy"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"children":[{"type":"text","value":"One cool set of fractals that can be plotted using our general Julia function are ones of the form ","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"key":"uQBRJUNY6n"},{"type":"inlineMath","value":"f(z) = z^n + c","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"html":"f(z)=zn+cf(z) = z^n + cf(z)=zn+c","key":"EnrYqlfj5w"},{"type":"text","value":" for some positive integer ","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"key":"rIvdN7POW2"},{"type":"inlineMath","value":"n","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"html":"nnn","key":"MHjmWDFfch"},{"type":"text","value":". A very cool pattern which emerges is that the number of regions that ‘stick out’ matches the degree in which we raise the function to while iterating over it.","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"key":"cCIbxNqTqk"}],"key":"x9ITbqQLYs"}],"key":"JRGLH3epup"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(2, 3, figsize=(8, 8))\nbase_degree = 2\n\nfor deg, ax in enumerate(axes.ravel()):\n degree = base_degree + deg\n power = lambda z: np.power(z, degree) # Create power function for current degree\n\n diverge_len = general_julia(mesh, f=power, num_iter=15)\n ax.imshow(diverge_len, extent=[-2, 2, -2, 2], cmap='binary')\n ax.set_title(f'$f(z) = z^{degree} -1$')","key":"Flz5P7YnNM"},{"type":"outputs","id":"QDizAhYctZVOwyURMKiRp","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"8d1b8d92abd4f3525e6ed69252e92ac7","path":"/numpy-tutorials/build/8d1b8d92abd4f3525e6ed69252e92ac7.png"}}},"key":"S0eEdGTpBf"}],"key":"nCYPi70ka7"}],"key":"SOphwi146i"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"children":[{"type":"text","value":"Needless to say, there is a large amount of exploring that can be done by fiddling with the inputted function, value of ","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"kNyBMuLssy"},{"type":"inlineMath","value":"c","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"html":"ccc","key":"BvEQLbLNBu"},{"type":"text","value":", number of iterations, radius and even the density of the mesh and choice of colours.","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"key":"ZN5rSqCAh0"}],"key":"lwxZMmbKi2"}],"key":"yppAjAwici"},{"type":"block","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"text","value":"Newton Fractals","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"sju12AsIRA"}],"identifier":"newton-fractals","label":"Newton Fractals","html_id":"newton-fractals","implicit":true,"key":"DcXudCv67B"},{"type":"paragraph","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"children":[{"type":"text","value":"Newton fractals are a specific class of fractals, where iterations involve adding or subtracting the ratio of a function (often a polynomial) and its derivative to the input values. Mathematically, it can be expressed as:","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"zf4xFfRmXg"}],"key":"XwBUCcaJkB"},{"type":"paragraph","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"children":[{"type":"inlineMath","value":"z := z - \\frac{f(z)}{f'(z)}","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"html":"z:=zf(z)f(z)z := z - \\frac{f(z)}{f'(z)}z:=zf(z)f(z)","key":"mFiWToyUHi"}],"key":"g5gpE5QBFq"},{"type":"paragraph","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"text","value":"We will define a general version of the fractal which will allow for different variations to be plotted by passing in our functions of choice.","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"cZpXXwYH4a"}],"key":"GRIn6CaDK3"}],"key":"QbU5ZMiyx5"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def newton_fractal(mesh, f, df, num_iter=10, r=2):\n\n z = mesh.copy()\n diverge_len = np.zeros(z.shape)\n\n for i in range(num_iter):\n conv_mask = np.abs(z) < r\n pz = f(z[conv_mask])\n dp = df(z[conv_mask])\n z[conv_mask] = z[conv_mask] - pz/dp\n diverge_len[conv_mask] += 1\n\n return diverge_len","key":"qCl3ujbAKu"},{"type":"outputs","id":"yTbLKGW9wrJVepUnI_aRn","children":[],"key":"EohFMb3UIH"}],"key":"Y8HFh019xd"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"children":[{"type":"text","value":"Now we can experiment with some different functions. For polynomials, we can create our plots quite effortlessly using the ","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"key":"aim9hV4WIx"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.polynomial.polynomial.Polynomial.html","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"children":[{"type":"text","value":"NumPy Polynomial class","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"key":"Aydhj3qO97"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.polynomial.polynomial.Polynomial.html","key":"fLqolCRL8t"},{"type":"text","value":", which has built in functionality for computing derivatives.","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"key":"ACywNeafNU"}],"key":"ClTrGtKPd9"},{"type":"paragraph","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"children":[{"type":"text","value":"For example, let’s try a higher-degree polynomial:","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"key":"TixZyPWZJK"}],"key":"LhDrMHztXo"}],"key":"R8TArpWS5z"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"p = np.polynomial.Polynomial([-16, 0, 0, 0, 15, 0, 0, 0, 1])\np","key":"Y7TrT1vWvn"},{"type":"outputs","id":"s2DKxYHiEP05lx5ZStMHP","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":22,"metadata":{},"data":{"text/plain":{"content":"Polynomial([-16., 0., 0., 0., 15., 0., 0., 0., 1.], domain=[-1., 1.], window=[-1., 1.], symbol='x')","content_type":"text/plain"},"text/latex":{"content":"$x \\mapsto \\text{-16.0}\\color{LightGray}{ + \\text{0.0}\\,x}\\color{LightGray}{ + \\text{0.0}\\,x^{2}}\\color{LightGray}{ + \\text{0.0}\\,x^{3}} + \\text{15.0}\\,x^{4}\\color{LightGray}{ + \\text{0.0}\\,x^{5}}\\color{LightGray}{ + \\text{0.0}\\,x^{6}}\\color{LightGray}{ + \\text{0.0}\\,x^{7}} + \\text{1.0}\\,x^{8}$","content_type":"text/latex"}}},"key":"JdSjYcrhbx"}],"key":"nFhyCFcEXf"}],"key":"tlPj4hZ7QM"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":410,"column":1},"end":{"line":410,"column":1}},"children":[{"type":"text","value":"which has the derivative:","position":{"start":{"line":410,"column":1},"end":{"line":410,"column":1}},"key":"uYMyDyZQ4N"}],"key":"FNf47Kjpzz"}],"key":"xEC9wJBAfa"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"p.deriv()","key":"Hsd2njd4X0"},{"type":"outputs","id":"fQ5UD6TEBliB344vaxL12","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":23,"metadata":{},"data":{"text/plain":{"content":"Polynomial([ 0., 0., 0., 60., 0., 0., 0., 8.], domain=[-1., 1.], window=[-1., 1.], symbol='x')","content_type":"text/plain"},"text/latex":{"content":"$x \\mapsto \\color{LightGray}{\\text{0.0}}\\color{LightGray}{ + \\text{0.0}\\,x}\\color{LightGray}{ + \\text{0.0}\\,x^{2}} + \\text{60.0}\\,x^{3}\\color{LightGray}{ + \\text{0.0}\\,x^{4}}\\color{LightGray}{ + \\text{0.0}\\,x^{5}}\\color{LightGray}{ + \\text{0.0}\\,x^{6}} + \\text{8.0}\\,x^{7}$","content_type":"text/latex"}}},"key":"rPZh7ocphh"}],"key":"ere8ELQqkE"}],"key":"ARRXGasDcH"},{"type":"block","children":[],"key":"HlRhxWm4kd"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = newton_fractal(mesh, p, p.deriv(), num_iter=15, r=2)\nkwargs = {'title': r'f(z) = z - \\dfrac{(z^8 + 15z^4 - 16)}{(8z^7 + 60z^3)}', 'cmap': 'copper'}\n\nplot_fractal(output, **kwargs)","key":"BcN37XnIut"},{"type":"outputs","id":"gk7M4NgWxVWel5Sx5Akfj","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"c113dd5b777201dd668cb8a8bebe7164","path":"/numpy-tutorials/build/c113dd5b777201dd668cb8a8bebe7164.png"}}},"key":"za0DeAGX2N"}],"key":"tXz51t6c2s"}],"key":"vVDe0IDqJh"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":423,"column":1},"end":{"line":423,"column":1}},"children":[{"type":"text","value":"Beautiful! Let’s try another one:","position":{"start":{"line":423,"column":1},"end":{"line":423,"column":1}},"key":"gjsAdnghYN"}],"key":"PC50uXlVSX"},{"type":"paragraph","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"children":[{"type":"text","value":"f(z) = ","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"key":"nDVzWHFjlx"},{"type":"inlineMath","value":"tan^2(z)","position":{"start":{"line":425,"column":1},"end":{"line":425,"column":1}},"html":"tan2(z)tan^2(z)tan2(z)","key":"JSSPDTk7iI"}],"key":"dFqroKwQxK"},{"type":"paragraph","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"children":[{"type":"inlineMath","value":"\\frac{df}{dz} = 2 \\cdot tan(z) sec^2(z) =\\frac{2 \\cdot tan(z)}{cos^2(z)}","position":{"start":{"line":427,"column":1},"end":{"line":427,"column":1}},"html":"dfdz=2tan(z)sec2(z)=2tan(z)cos2(z)\\frac{df}{dz} = 2 \\cdot tan(z) sec^2(z) =\\frac{2 \\cdot tan(z)}{cos^2(z)}dzdf=2tan(z)sec2(z)=cos2(z)2tan(z)","key":"TrfB2lXPb8"}],"key":"DaG8UC08sn"},{"type":"paragraph","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"children":[{"type":"text","value":"This makes ","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"key":"AyP3w9rZh2"},{"type":"inlineMath","value":"\\frac{f(z)}{f'(z)} = tan^2(z) \\cdot \\frac{cos^2(z)}{2 \\cdot tan(z)} = \\frac{tan(z)\\cdot cos^2(z)}{2} = \\frac{sin(z)\\cdot cos(z)}{2}","position":{"start":{"line":429,"column":1},"end":{"line":429,"column":1}},"html":"f(z)f(z)=tan2(z)cos2(z)2tan(z)=tan(z)cos2(z)2=sin(z)cos(z)2\\frac{f(z)}{f'(z)} = tan^2(z) \\cdot \\frac{cos^2(z)}{2 \\cdot tan(z)} = \\frac{tan(z)\\cdot cos^2(z)}{2} = \\frac{sin(z)\\cdot cos(z)}{2}f(z)f(z)=tan2(z)2tan(z)cos2(z)=2tan(z)cos2(z)=2sin(z)cos(z)","key":"CMvKkHBaa9"}],"key":"KNnTTcTSx8"}],"key":"KvxkfgZomD"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def f_tan(z):\n return np.square(np.tan(z))\n\n\ndef d_tan(z):\n return 2*np.tan(z) / np.square(np.cos(z))","key":"dsDH2IDmtd"},{"type":"outputs","id":"2jvwGpHV1hYD5WmgxCyo8","children":[],"key":"bVvk3WaLsr"}],"key":"vCHw0HPBpg"},{"type":"block","children":[],"key":"PU7bDDGZJZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = newton_fractal(mesh, f_tan, d_tan, num_iter=15, r=50)\nkwargs = {'title': r'f(z) = z - \\dfrac{sin(z)cos(z)}{2}', 'cmap': 'binary'}\n\nplot_fractal(output, **kwargs);","key":"BvUP40ps7q"},{"type":"outputs","id":"0rBl2JxiiO0YeIAdoY01O","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"7b41357f6d283d49ca96c4167104abbc","path":"/numpy-tutorials/build/7b41357f6d283d49ca96c4167104abbc.png"}}},"key":"coAiHc9eRh"}],"key":"oqQXpfuTE0"}],"key":"TDObMA82Bj"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":447,"column":1},"end":{"line":447,"column":1}},"children":[{"type":"text","value":"Note that you sometimes have to play with the radius in order to get a neat looking fractal.","position":{"start":{"line":447,"column":1},"end":{"line":447,"column":1}},"key":"QEYy8mobrw"}],"key":"z3u2DBAalE"},{"type":"paragraph","position":{"start":{"line":449,"column":1},"end":{"line":449,"column":1}},"children":[{"type":"text","value":"Finally, we can go a little bit wild with our function selection","position":{"start":{"line":449,"column":1},"end":{"line":449,"column":1}},"key":"faz7K002JK"}],"key":"bYf2ix7FJU"},{"type":"paragraph","position":{"start":{"line":451,"column":1},"end":{"line":451,"column":1}},"children":[{"type":"inlineMath","value":"f(z) = \\sum_{i=1}^{10} sin^i(z)","position":{"start":{"line":451,"column":1},"end":{"line":451,"column":1}},"html":"f(z)=i=110sini(z)f(z) = \\sum_{i=1}^{10} sin^i(z)f(z)=i=110sini(z)","key":"Oxl4Bcsdh4"}],"key":"z7qfx856x2"},{"type":"paragraph","position":{"start":{"line":453,"column":1},"end":{"line":453,"column":1}},"children":[{"type":"inlineMath","value":"\\frac{df}{dz} = \\sum_{i=1}^{10} i \\cdot sin^{i-1}(z) \\cdot cos(z)","position":{"start":{"line":453,"column":1},"end":{"line":453,"column":1}},"html":"dfdz=i=110isini1(z)cos(z)\\frac{df}{dz} = \\sum_{i=1}^{10} i \\cdot sin^{i-1}(z) \\cdot cos(z)dzdf=i=110isini1(z)cos(z)","key":"yStN7i9SrB"}],"key":"fLYcxlA9Hz"}],"key":"x6YGpYEGCL"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def sin_sum(z, n=10):\n total = np.zeros(z.size, dtype=z.dtype)\n for i in range(1, n+1):\n total += np.power(np.sin(z), i)\n return total\n\n\ndef d_sin_sum(z, n=10):\n total = np.zeros(z.size, dtype=z.dtype)\n for i in range(1, n+1):\n total += i * np.power(np.sin(z), i-1) * np.cos(z)\n return total","key":"Wb20z396pz"},{"type":"outputs","id":"GWoRjGoNBf6DlEoVT-aSy","children":[],"key":"vTadyA2aB4"}],"key":"LG34km9fYe"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":470,"column":1},"end":{"line":470,"column":1}},"children":[{"type":"text","value":"We will denote this one ‘Wacky fractal’, as its equation would not be fun to try and put in the title.","position":{"start":{"line":470,"column":1},"end":{"line":470,"column":1}},"key":"V6GVD49Fki"}],"key":"e2cpiN3fMs"}],"key":"D4Rm2iCX3Q"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = newton_fractal(small_mesh, sin_sum, d_sin_sum, num_iter=10, r=1)\nkwargs = {'title': 'Wacky \\\\ fractal', 'figsize': (6, 6), 'extent': [-1, 1, -1, 1], 'cmap': 'terrain'}\n\nplot_fractal(output, **kwargs)","key":"boHqWmGNVD"},{"type":"outputs","id":"9tZgrEKewzfI4e0SpjSYo","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"49b563b2585d80f061e4651c37e52da7","path":"/numpy-tutorials/build/49b563b2585d80f061e4651c37e52da7.png"}}},"key":"fkPvSuzcUj"}],"key":"K5vg4DFB6A"}],"key":"v1Q8XdUmjw"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":479,"column":1},"end":{"line":479,"column":1}},"children":[{"type":"text","value":"It is truly fascinating how distinct yet similar these fractals are with each other. This leads us to the final section.","position":{"start":{"line":479,"column":1},"end":{"line":479,"column":1}},"key":"sM3DyjBZuJ"}],"key":"gkggFEgZLc"}],"key":"cE2ggidFmR"},{"type":"block","position":{"start":{"line":481,"column":1},"end":{"line":481,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":483,"column":1},"end":{"line":483,"column":1}},"children":[{"type":"text","value":"Creating your own fractals","position":{"start":{"line":483,"column":1},"end":{"line":483,"column":1}},"key":"F6u3n7NKQO"}],"identifier":"creating-your-own-fractals","label":"Creating your own fractals","html_id":"creating-your-own-fractals","implicit":true,"key":"hasWqxxzT7"},{"type":"paragraph","position":{"start":{"line":486,"column":1},"end":{"line":486,"column":1}},"children":[{"type":"text","value":"What makes fractals more exciting is how much there is to explore once you become familiar with the basics. Now we will wrap up our tutorial by exploring some of the different ways one can experiment in creating unique fractals. I encourage you to try some things out on your own (if you have not done so already).","position":{"start":{"line":486,"column":1},"end":{"line":486,"column":1}},"key":"Oya2rqTZST"}],"key":"pCCHnFwbnr"},{"type":"paragraph","position":{"start":{"line":488,"column":1},"end":{"line":488,"column":1}},"children":[{"type":"text","value":"One of the first places to experiment would be with the function for the generalized Julia set, where we can try passing in different functions as parameters.","position":{"start":{"line":488,"column":1},"end":{"line":488,"column":1}},"key":"TiYml2FPr4"}],"key":"Uz7IfP0Fur"},{"type":"paragraph","position":{"start":{"line":490,"column":1},"end":{"line":490,"column":1}},"children":[{"type":"text","value":"Let’s start by choosing","position":{"start":{"line":490,"column":1},"end":{"line":490,"column":1}},"key":"bUkIMbL3S8"}],"key":"vQBny2Fr7X"},{"type":"paragraph","position":{"start":{"line":492,"column":1},"end":{"line":492,"column":1}},"children":[{"type":"inlineMath","value":"f(z) = tan(z^2)","position":{"start":{"line":492,"column":1},"end":{"line":492,"column":1}},"html":"f(z)=tan(z2)f(z) = tan(z^2)f(z)=tan(z2)","key":"v1L4BWf8LI"}],"key":"yh7N9cP7Bh"}],"key":"odejGdSqaj"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def f(z):\n return np.tan(np.square(z))","key":"BVxm8ERu6C"},{"type":"outputs","id":"X8Px53Fkn3BmyKBIJ1_42","children":[],"key":"u8mXNtjLDA"}],"key":"JqVsL7dN1P"},{"type":"block","children":[],"key":"jeuWa6sNBC"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = general_julia(mesh, f=f, num_iter=15, radius=2.1)\nkwargs = {'title': 'f(z) = tan(z^2)', 'cmap': 'gist_stern'}\n\nplot_fractal(output, **kwargs);","key":"U2m8Z9X6MZ"},{"type":"outputs","id":"LXYw_U58JmS0esX1R6MRe","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"43d6df6d783dcec1841702887e284aa6","path":"/numpy-tutorials/build/43d6df6d783dcec1841702887e284aa6.png"}}},"key":"e3mXKmKfhq"}],"key":"k7YP97mjFO"}],"key":"QHGqnRjs7F"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":506,"column":1},"end":{"line":506,"column":1}},"children":[{"type":"text","value":"What happens if we compose our defined function inside of a sine function?","position":{"start":{"line":506,"column":1},"end":{"line":506,"column":1}},"key":"Nv09EPbiq2"}],"key":"eQ4guPnqxA"},{"type":"paragraph","position":{"start":{"line":508,"column":1},"end":{"line":508,"column":1}},"children":[{"type":"text","value":"Let’s try defining","position":{"start":{"line":508,"column":1},"end":{"line":508,"column":1}},"key":"d4DOYd0oSX"}],"key":"kmvEsV8wYn"},{"type":"paragraph","position":{"start":{"line":510,"column":1},"end":{"line":510,"column":1}},"children":[{"type":"inlineMath","value":"g(z) = sin(f(z)) = sin(tan(z^2))","position":{"start":{"line":510,"column":1},"end":{"line":510,"column":1}},"html":"g(z)=sin(f(z))=sin(tan(z2))g(z) = sin(f(z)) = sin(tan(z^2))g(z)=sin(f(z))=sin(tan(z2))","key":"yd2FxVkJBt"}],"key":"agEdH3ed4z"}],"key":"zznEStChuE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def g(z):\n return np.sin(f(z))","key":"zBLUKREx6i"},{"type":"outputs","id":"xNGyN_zNWdA2JIWclvjXi","children":[],"key":"XMFBx5XjHM"}],"key":"U1C3sVSJ3x"},{"type":"block","children":[],"key":"iTVScYOM0Q"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = general_julia(mesh, f=g, num_iter=15, radius=2.1)\nkwargs = {'title': 'g(z) = sin(tan(z^2))', 'cmap': 'plasma_r'}\n\nplot_fractal(output, **kwargs);","key":"BCbupaCY5T"},{"type":"outputs","id":"PEvyS7ug_jfNXE8XGIach","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"21c42634d859dbfb953a90899045e9c4","path":"/numpy-tutorials/build/21c42634d859dbfb953a90899045e9c4.png"}}},"key":"ZKkV5Hkdk2"}],"key":"MITZER22Rk"}],"key":"RQ4YPip89B"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":524,"column":1},"end":{"line":524,"column":1}},"children":[{"type":"text","value":"Next, let’s create a function that applies both f and g to the inputs each iteration and adds the result together:","position":{"start":{"line":524,"column":1},"end":{"line":524,"column":1}},"key":"M3VJNSmz4N"}],"key":"lvVsxLTkmz"},{"type":"paragraph","position":{"start":{"line":526,"column":1},"end":{"line":526,"column":1}},"children":[{"type":"inlineMath","value":"h(z) = f(z) + g(z) = tan(z^2) + sin(tan(z^2))","position":{"start":{"line":526,"column":1},"end":{"line":526,"column":1}},"html":"h(z)=f(z)+g(z)=tan(z2)+sin(tan(z2))h(z) = f(z) + g(z) = tan(z^2) + sin(tan(z^2))h(z)=f(z)+g(z)=tan(z2)+sin(tan(z2))","key":"xcbOmtHGAz"}],"key":"IdjUjW2clM"}],"key":"FaMIXjhggB"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def h(z):\n return f(z) + g(z)","key":"zQ6Wb1YE5h"},{"type":"outputs","id":"39RkCSxgT798APH9d05BE","children":[],"key":"qwhXkAZKiC"}],"key":"zOW71itBKL"},{"type":"block","children":[],"key":"nGof9V13aI"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = general_julia(small_mesh, f=h, num_iter=10, radius=2.1)\nkwargs = {'title': 'h(z) = tan(z^2) + sin(tan(z^2))', 'figsize': (7, 7), 'extent': [-1, 1, -1, 1], 'cmap': 'jet'}\n\nplot_fractal(output, **kwargs);","key":"XsEd8O9xqQ"},{"type":"outputs","id":"NBpbjAiLcPtrBExiPKsvG","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"8029006171269554ba8689610764fe05","path":"/numpy-tutorials/build/8029006171269554ba8689610764fe05.png"}}},"key":"FulkVv9OFN"}],"key":"HOmeQDfGXc"}],"key":"eD6BtRCDV1"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"children":[{"type":"text","value":"You can even create beautiful fractals through your own errors. Here is one that got created accidently by making a mistake in computing the derivative of a Newton fractal:","position":{"start":{"line":540,"column":1},"end":{"line":540,"column":1}},"key":"VnXv9MKw9D"}],"key":"SHOR45hSd0"}],"key":"hxPzMbYUiI"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"def accident(z):\n return z - (2 * np.power(np.tan(z), 2) / (np.sin(z) * np.cos(z)))","key":"u8tfZQhQsa"},{"type":"outputs","id":"EStZUXeGhxIl7r51Zkrj5","children":[],"key":"oAqnko89KK"}],"key":"p73TdFTNQ3"},{"type":"block","children":[],"key":"vasmb3VE3I"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"output = general_julia(mesh, f=accident, num_iter=15, c=0, radius=np.pi)\nkwargs = {'title': 'Accidental \\\\ fractal', 'cmap': 'Blues'}\n\nplot_fractal(output, **kwargs);","key":"KpHqgiwF2z"},{"type":"outputs","id":"JRnFbS4W496hm6_KvhnF4","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"dd564a4fdaeebef9c713fd619ab7d807","path":"/numpy-tutorials/build/dd564a4fdaeebef9c713fd619ab7d807.png"}}},"key":"C5sFfcu2c6"}],"key":"aovnu85zTo"}],"key":"Mc6KOmWONA"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":554,"column":1},"end":{"line":554,"column":1}},"children":[{"type":"text","value":"Needless to say, there are a nearly endless supply of interesting fractal creations that can be made just by playing around with various combinations of NumPy universal functions and by tinkering with the parameters.","position":{"start":{"line":554,"column":1},"end":{"line":554,"column":1}},"key":"qL5MdNgyCu"}],"key":"WehJuhb2bl"}],"key":"gGjYvQ1gMd"},{"type":"block","position":{"start":{"line":556,"column":1},"end":{"line":556,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":558,"column":1},"end":{"line":558,"column":1}},"children":[{"type":"text","value":"In conclusion","position":{"start":{"line":558,"column":1},"end":{"line":558,"column":1}},"key":"EIRkreAknW"}],"identifier":"in-conclusion","label":"In conclusion","html_id":"in-conclusion","implicit":true,"key":"Lng4dQopFb"},{"type":"paragraph","position":{"start":{"line":560,"column":1},"end":{"line":560,"column":1}},"children":[{"type":"text","value":"We learned a lot about generating fractals today. We saw how complicated fractals requiring many iterations could be computed efficiently using universal functions. We also took advantage of boolean indexing, which allowed for less computations to be made without having to individually verify each value. Finally, we learned a lot about fractals themselves. As a recap:","position":{"start":{"line":560,"column":1},"end":{"line":560,"column":1}},"key":"XpkbSt82oj"}],"key":"C1R8evCzVY"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":562,"column":1},"end":{"line":569,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":562,"column":1},"end":{"line":562,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Fractal images are created by iterating a function over a set of values, and keeping tally of how long it takes for each value to pass a certain threshold","position":{"start":{"line":562,"column":1},"end":{"line":562,"column":1}},"key":"rfEc48M34p"}],"key":"Nt5ypM8oNN"}],"key":"xbekRxnI6T"},{"type":"listItem","spread":true,"position":{"start":{"line":563,"column":1},"end":{"line":563,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The colours in the image correspond to the tally counts of the values","position":{"start":{"line":563,"column":1},"end":{"line":563,"column":1}},"key":"NT0d0cOyQJ"}],"key":"trBISpgX9G"}],"key":"LjBOQ5EDtQ"},{"type":"listItem","spread":true,"position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The filled-in Julia set for ","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"key":"uJT8gluhT7"},{"type":"inlineMath","value":"c","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"html":"ccc","key":"FDEvPrzIBK"},{"type":"text","value":" consists of all complex numbers ","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"key":"VvW7JvTptw"},{"type":"inlineCode","value":"z","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"key":"bVVolJSabO"},{"type":"text","value":" in which ","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"key":"DrG4H4a0HV"},{"type":"inlineMath","value":"f(z) = z^2 + c","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"html":"f(z)=z2+cf(z) = z^2 + cf(z)=z2+c","key":"q2dQFevUJJ"},{"type":"text","value":" converges","position":{"start":{"line":564,"column":1},"end":{"line":564,"column":1}},"key":"yuq5zKTsXs"}],"key":"ofHvXMMFc5"}],"key":"Mt8qL0ygJt"},{"type":"listItem","spread":true,"position":{"start":{"line":565,"column":1},"end":{"line":565,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The Julia set for ","position":{"start":{"line":565,"column":1},"end":{"line":565,"column":1}},"key":"opBT3hDszP"},{"type":"inlineMath","value":"c","position":{"start":{"line":565,"column":1},"end":{"line":565,"column":1}},"html":"ccc","key":"gOVJyPbZh4"},{"type":"text","value":" is the set of complex numbers that make up the boundary of the filled-in Julia set","position":{"start":{"line":565,"column":1},"end":{"line":565,"column":1}},"key":"ZSO5MRODNw"}],"key":"fQRljFNacA"}],"key":"Vq4hB2CIvL"},{"type":"listItem","spread":true,"position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The Mandelbrot set is all values ","position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"key":"O2puMBvKDP"},{"type":"inlineMath","value":"c","position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"html":"ccc","key":"UGxFeL1GD3"},{"type":"text","value":" in which ","position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"key":"SpcTVEFn6m"},{"type":"inlineMath","value":"f(z) = z^2 + c","position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"html":"f(z)=z2+cf(z) = z^2 + cf(z)=z2+c","key":"JXZIFoUWJu"},{"type":"text","value":" converges at 0","position":{"start":{"line":566,"column":1},"end":{"line":566,"column":1}},"key":"QtguE53OjG"}],"key":"Aa57BdL5sC"}],"key":"NN3OhbwXW8"},{"type":"listItem","spread":true,"position":{"start":{"line":567,"column":1},"end":{"line":567,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Newton fractals use functions of the form ","position":{"start":{"line":567,"column":1},"end":{"line":567,"column":1}},"key":"Tv2iLfhBjy"},{"type":"inlineMath","value":"f(z) = z - \\frac{p(z)}{p'(z)}","position":{"start":{"line":567,"column":1},"end":{"line":567,"column":1}},"html":"f(z)=zp(z)p(z)f(z) = z - \\frac{p(z)}{p'(z)}f(z)=zp(z)p(z)","key":"GDDAr2MbcL"}],"key":"wzE5chhgYj"}],"key":"dCLkjMmXc8"},{"type":"listItem","spread":true,"position":{"start":{"line":568,"column":1},"end":{"line":569,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The fractal images can vary as you adjust the number of iterations, radius of convergence, mesh size, colours, function choice and parameter choice","position":{"start":{"line":568,"column":1},"end":{"line":568,"column":1}},"key":"M3usr7CPqE"}],"key":"U9dgOjhN5j"}],"key":"ShcNrFTe9W"}],"key":"kphv59OnAy"}],"key":"tqKSBWjK8p"},{"type":"block","position":{"start":{"line":570,"column":1},"end":{"line":570,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":572,"column":1},"end":{"line":572,"column":1}},"children":[{"type":"text","value":"On your own","position":{"start":{"line":572,"column":1},"end":{"line":572,"column":1}},"key":"JHoXU8ifZr"}],"identifier":"on-your-own","label":"On your own","html_id":"on-your-own","implicit":true,"key":"FAF27I4aOq"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":574,"column":1},"end":{"line":577,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":574,"column":1},"end":{"line":575,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":574,"column":1},"end":{"line":574,"column":1}},"children":[{"type":"text","value":"Play around with the parameters of the generalized Julia set function, try playing with the constant value, number of iterations, function choice, radius, and colour choice.","position":{"start":{"line":574,"column":1},"end":{"line":574,"column":1}},"key":"e8plA736To"}],"key":"iM1Mg7VTPm"}],"key":"KcThPExQd5"},{"type":"listItem","spread":true,"position":{"start":{"line":576,"column":1},"end":{"line":577,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":576,"column":1},"end":{"line":576,"column":1}},"children":[{"type":"text","value":"Visit the “List of fractals by Hausdorff dimension” Wikipedia page (linked in the Further reading section) and try writing a function for a fractal not mentioned in this tutorial.","position":{"start":{"line":576,"column":1},"end":{"line":576,"column":1}},"key":"QIHYOkkq8N"}],"key":"srIyRKFcPv"}],"key":"ypcSLOpyyX"}],"key":"dW7rwYGY6m"}],"key":"gy55lb7ACO"},{"type":"block","position":{"start":{"line":578,"column":1},"end":{"line":578,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":580,"column":1},"end":{"line":580,"column":1}},"children":[{"type":"text","value":"Further reading","position":{"start":{"line":580,"column":1},"end":{"line":580,"column":1}},"key":"dCiaRz5iQ2"}],"identifier":"further-reading","label":"Further reading","html_id":"further-reading","implicit":true,"key":"CPSVN8Xp4z"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":582,"column":1},"end":{"line":586,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":582,"column":1},"end":{"line":582,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Fractal","position":{"start":{"line":582,"column":1},"end":{"line":582,"column":1}},"children":[{"type":"text","value":"More information on the theory behind fractals","position":{"start":{"line":582,"column":1},"end":{"line":582,"column":1}},"key":"mgNgtiALaz"}],"urlSource":"https://en.wikipedia.org/wiki/Fractal","data":{"page":"Fractal","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"PRH4kRfclY"}],"key":"AF6VvHmQ0i"}],"key":"Iier2PISk9"},{"type":"listItem","spread":true,"position":{"start":{"line":583,"column":1},"end":{"line":583,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Julia_set","position":{"start":{"line":583,"column":1},"end":{"line":583,"column":1}},"children":[{"type":"text","value":"Further reading on Julia sets","position":{"start":{"line":583,"column":1},"end":{"line":583,"column":1}},"key":"KStAXj76ef"}],"urlSource":"https://en.wikipedia.org/wiki/Julia_set","data":{"page":"Julia_set","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"S00vSYaOob"}],"key":"GuAiZPE2On"}],"key":"atzFCl1Stv"},{"type":"listItem","spread":true,"position":{"start":{"line":584,"column":1},"end":{"line":584,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Mandelbrot_set","position":{"start":{"line":584,"column":1},"end":{"line":584,"column":1}},"children":[{"type":"text","value":"More details about the Mandelbrot set","position":{"start":{"line":584,"column":1},"end":{"line":584,"column":1}},"key":"eAbueY5ozf"}],"urlSource":"https://en.wikipedia.org/wiki/Mandelbrot_set","data":{"page":"Mandelbrot_set","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"T0JASdIqTm"}],"key":"c4RMsiiGIJ"}],"key":"jIjulf6jw2"},{"type":"listItem","spread":true,"position":{"start":{"line":585,"column":1},"end":{"line":585,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Newton_fractal","position":{"start":{"line":585,"column":1},"end":{"line":585,"column":1}},"children":[{"type":"text","value":"A more complete treatment of Newton Fractals","position":{"start":{"line":585,"column":1},"end":{"line":585,"column":1}},"key":"WYdhOUknYw"}],"urlSource":"https://en.wikipedia.org/wiki/Newton_fractal","data":{"page":"Newton_fractal","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"RJyfc82Wqs"}],"key":"yhTu85pxFu"}],"key":"HZu35ObExl"},{"type":"listItem","spread":true,"position":{"start":{"line":586,"column":1},"end":{"line":586,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension","position":{"start":{"line":586,"column":1},"end":{"line":586,"column":1}},"children":[{"type":"text","value":"A list of different fractals","position":{"start":{"line":586,"column":1},"end":{"line":586,"column":1}},"key":"RpjoaLM3Td"}],"urlSource":"https://en.wikipedia.org/wiki/List_of_fractals_by_Hausdorff_dimension","data":{"page":"List_of_fractals_by_Hausdorff_dimension","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"M5e8FWZxs4"}],"key":"kKLK2VSYuX"}],"key":"uKjknhWcfr"}],"key":"cqcCyWLkrR"}],"key":"CjaLA8LBts"}],"key":"e7Au0zUxjh"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Determining Static Equilibrium in NumPy","short_title":"Static Equilibrium","url":"/tutorial-static-equilibrium","group":"Applications"},"next":{"title":"Analyzing the impact of the lockdown on air quality in Delhi, India","short_title":"Analyzing Air Quality","url":"/tutorial-air-quality-analysis","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-plotting-fractals/index.html b/tutorial-plotting-fractals/index.html new file mode 100644 index 00000000..5b4b0e59 --- /dev/null +++ b/tutorial-plotting-fractals/index.html @@ -0,0 +1,222 @@ +Plotting Fractals - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Plotting Fractals

Fractal picture

Fractals are beautiful, compelling mathematical forms that can be oftentimes created from a relatively simple set of instructions. In nature they can be found in various places, such as coastlines, seashells, and ferns, and even were used in creating certain types of antennas. The mathematical idea of fractals was known for quite some time, but they really began to be truly appreciated in the 1970’s as advancements in computer graphics and some accidental discoveries lead researchers like Benoît Mandelbrot to stumble upon the truly mystifying visualizations that fractals possess.

Today we will learn how to plot these beautiful visualizations and will start to do a bit of exploring for ourselves as we gain familiarity of the mathematics behind fractals and will use the ever powerful NumPy universal functions to perform the necessary calculations efficiently.

What you’ll do

  • Write a function for plotting various Julia sets

  • Create a visualization of the Mandelbrot set

  • Write a function that computes Newton fractals

  • Experiment with variations of general fractal types

What you’ll learn

  • A better intuition for how fractals work mathematically

  • A basic understanding about NumPy universal functions and Boolean Indexing

  • The basics of working with complex numbers in NumPy

  • How to create your own unique fractal visualizations

What you’ll need

  • Matplotlib

  • make_axis_locatable function from mpl_toolkits API

which can be imported as follows:

import numpy as np
+import matplotlib.pyplot as plt
+from mpl_toolkits.axes_grid1 import make_axes_locatable

Warmup

To gain some intuition for what fractals are, we will begin with an example.

Consider the following equation:

f(z)=z21f(z) = z^2 -1

where z is a complex number (i.e of the form a+bia + bi )

For our convenience, we will write a Python function for it

def f(z):
+    return np.square(z) - 1

Note that the square function we used is an example of a NumPy universal function; we will come back to the significance of this decision shortly.

To gain some intuition for the behaviour of the function, we can try plugging in some different values.

For z=0z = 0, we would expect to get -1:

f(0)
np.int64(-1)

Since we used a universal function in our design, we can compute multiple inputs at the same time:

z = [4, 1-0.2j, 1.6]
+f(z)
array([15. +0.j , -0.04-0.4j, 1.56+0.j ])

Some values grow, some values shrink, some don’t experience much change.

To see the behaviour of the function on a larger scale, we can apply the function to a subset of the complex plane and plot the result. To create our subset (or mesh), we can make use of the meshgrid function.

x, y = np.meshgrid(np.linspace(-10, 10, 20), np.linspace(-10, 10, 20))
+mesh = x + (1j * y)  # Make mesh of complex plane

Now we will apply our function to each value contained in the mesh. Since we used a universal function in our design, this means that we can pass in the entire mesh all at once. This is extremely convenient for two reasons: It reduces the amount of code needed to be written and greatly increases the efficiency (as universal functions make use of system level C programming in their computations).

Here we plot the absolute value (or modulus) of each element in the mesh after one “iteration” of the function using a 3D scatterplot:

output = np.abs(f(mesh))  # Take the absolute value of the output (for plotting)
+
+fig = plt.figure()
+ax = plt.axes(projection='3d')
+
+ax.scatter(x, y, output, alpha=0.2)
+
+ax.set_xlabel('Real axis')
+ax.set_ylabel('Imaginary axis')
+ax.set_zlabel('Absolute value')
+ax.set_title('One Iteration: $ f(z) = z^2 - 1$');
<Figure size 640x480 with 1 Axes>

This gives us a rough idea of what one iteration of the function does. Certain areas (notably in the areas closest to (0,0i)(0,0i)) remain rather small while other areas grow quite considerably. Note that we lose information about the output by taking the absolute value, but it is the only way for us to be able to make a plot.

Let’s see what happens when we apply 2 iterations to the mesh:

output = np.abs(f(f(mesh)))
+
+ax = plt.axes(projection='3d')
+
+ax.scatter(x, y, output, alpha=0.2)
+
+ax.set_xlabel('Real axis')
+ax.set_ylabel('Imaginary axis')
+ax.set_zlabel('Absolute value')
+ax.set_title('Two Iterations: $ f(z) = z^2 - 1$');
<Figure size 640x480 with 1 Axes>

Once again, we see that values around the origin remain small, and values with a larger absolute value (or modulus) “explode”.

From first impression, its behaviour appears to be normal, and may even seem mundane. Fractals tend to have more to them then what meets the eye; the exotic behavior shows itself when we begin applying more iterations.

Consider three complex numbers:

z1=0.4+0.4iz_1 = 0.4 + 0.4i ,

z2=z1+0.1z_2 = z_1 + 0.1,

z3=z1+0.1iz_3 = z_1 + 0.1i

Given the shape of our first two plots, we would expect that these values would remain near the origin as we apply iterations to them. Let us see what happens when we apply 10 iterations to each value:

selected_values = np.array([0.4 + 0.4j, 0.41 + 0.4j, 0.4 + 0.41j])
+num_iter = 9
+
+outputs = np.zeros((num_iter+1, selected_values.shape[0]), dtype=complex)
+outputs[0] = selected_values
+
+for i in range(num_iter):
+    outputs[i+1] = f(outputs[i])  # Apply 10 iterations, save each output
+
+fig, axes = plt.subplots(1, selected_values.shape[0], figsize=(16, 6))
+axes[1].set_xlabel('Real axis')
+axes[0].set_ylabel('Imaginary axis')
+
+for ax, data in zip(axes, outputs.T):
+    cycle = ax.scatter(data.real, data.imag, c=range(data.shape[0]), alpha=0.6)
+    ax.set_title(f'Mapping of iterations on {data[0]}')
+
+fig.colorbar(cycle, ax=axes, location="bottom", label='Iteration');
<Figure size 1600x600 with 4 Axes>

To our surprise, the behaviour of the function did not come close to matching our hypothesis. This is a prime example of the chaotic behaviour fractals possess. In the first two plots, the value “exploded” on the last iteration, jumping way beyond the region that it was contained in previously. The third plot on the other hand remained bounded to a small region close to the origin, yielding completely different behaviour despite the tiny change in value.

This leads us to an extremely important question: How many iterations can be applied to each value before they diverge (“explode”)?

As we saw from the first two plots, the further the values were from the origin, the faster they generally exploded. Although the behaviour is uncertain for smaller values (like z1,z2,z3z_1, z_2, z_3), we can assume that if a value surpasses a certain distance from the origin (say 2) that it is doomed to diverge. We will call this threshold the radius.

This allows us to quantify the behaviour of the function for a particular value without having to perform as many computations. Once the radius is surpassed, we are allowed to stop iterating, which gives us a way of answering the question we posed. If we tally how many computations were applied before divergence, we gain insight into the behaviour of the function that would be hard to keep track of otherwise.

Of course, we can do much better and design a function that performs the procedure on an entire mesh.

def divergence_rate(mesh, num_iter=10, radius=2):
+
+    z = mesh.copy()
+    diverge_len = np.zeros(mesh.shape)  # Keep tally of the number of iterations
+
+    # Iterate on element if and only if |element| < radius (Otherwise assume divergence)
+    for i in range(num_iter):
+        conv_mask = np.abs(z) < radius
+        diverge_len[conv_mask] += 1
+        z[conv_mask] = f(z[conv_mask])
+
+    return diverge_len

The behaviour of this function may look confusing at first glance, so it will help to explain some of the notation.

Our goal is to iterate over each value in the mesh and to tally the number of iterations before the value diverges. Since some values will diverge quicker than others, we need a procedure that only iterates over values that have an absolute value that is sufficiently small enough. We also want to stop tallying values once they surpass the radius. For this, we can use Boolean Indexing, a NumPy feature that when paired with universal functions is unbeatable. Boolean Indexing allows for operations to be performed conditionally on a NumPy array without having to resort to looping over and checking for each array value individually.

In our case, we use a loop to apply iterations to our function f(z)=z21f(z) = z^2 -1 and keep tally. Using Boolean indexing, we only apply the iterations to values that have an absolute value less than 2.

With that out of the way, we can go about plotting our first fractal! We will use the imshow function to create a colour-coded visualization of the tallies.

x, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))
+mesh = x + (1j * y)
+
+output = divergence_rate(mesh)
+
+fig, ax = plt.subplots(figsize=(5, 5))
+
+ax.set_title('$f(z) = z^2 -1$')
+ax.set_xlabel('Real axis')
+ax.set_ylabel('Imaginary axis')
+
+im = ax.imshow(output, extent=[-2, 2, -2, 2])
+divider = make_axes_locatable(ax)
+cax = divider.append_axes("right", size="5%", pad=0.1)
+plt.colorbar(im, cax=cax, label='Number of iterations');
<Figure size 500x500 with 2 Axes>

What this stunning visual conveys is the complexity of the function’s behaviour. The yellow region represents values that remain small, while the purple region represents the divergent values. The beautiful pattern that arises on the border of the converging and diverging values is even more fascinating when you realize that it is created from such a simple function.

Julia set

What we just explored was an example of a fractal visualization of a specific Julia Set.

Consider the function f(z)=z2+cf(z) = z^2 + c where cc is a complex number. The filled-in Julia set of cc is the set of all complex numbers z in which the function converges at f(z)f(z). Likewise, the boundary of the filled-in Julia set is what we call the Julia set. In our above visualization, we can see that the yellow region represents an approximation of the filled-in Julia set for c=1c = -1 and the greenish-yellow border would contain the Julia set.

To gain access to a wider range of “Julia fractals”, we can write a function that allows for different values of cc to be passed in:

def julia(mesh, c=-1, num_iter=10, radius=2):
+
+    z = mesh.copy()
+    diverge_len = np.zeros(z.shape)
+
+    for i in range(num_iter):
+        conv_mask = np.abs(z) < radius
+        z[conv_mask] = np.square(z[conv_mask]) + c
+        diverge_len[conv_mask] += 1
+
+    return diverge_len

To make our lives easier, we will create a couple meshes that we will reuse throughout the rest of the examples:

x, y = np.meshgrid(np.linspace(-1, 1, 400), np.linspace(-1, 1, 400))
+small_mesh = x + (1j * y)
+
+x, y = np.meshgrid(np.linspace(-2, 2, 400), np.linspace(-2, 2, 400))
+mesh = x + (1j * y)

We will also write a function that we will use to create our fractal plots:

def plot_fractal(fractal, title='Fractal', figsize=(6, 6), cmap='rainbow', extent=[-2, 2, -2, 2]):
+
+    fig, ax = plt.subplots(figsize=figsize)
+
+    ax.set_title(f'${title}$')
+    ax.set_xlabel('Real axis')
+    ax.set_ylabel('Imaginary axis')
+
+    im = ax.imshow(fractal, extent=extent, cmap=cmap)
+    divider = make_axes_locatable(ax)
+    cax = divider.append_axes("right", size="5%", pad=0.1)
+    plt.colorbar(im, cax=cax, label='Number of iterations')

Using our newly defined functions, we can make a quick plot of the first fractal again:

output = julia(mesh, num_iter=15)
+kwargs = {'title': 'f(z) = z^2 -1'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

We also can explore some different Julia sets by experimenting with different values of cc. It can be surprising how much influence it has on the shape of the fractal.

For example, setting c=π10c = \frac{\pi}{10} gives us a very elegant cloud shape, while setting c = 34+0.4i-\frac{3}{4} + 0.4i yields a completely different pattern.

output = julia(mesh, c=np.pi/10, num_iter=20)
+kwargs = {'title': r'f(z) = z^2 + \dfrac{\pi}{10}', 'cmap': 'plasma'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>
output = julia(mesh, c=-0.75 + 0.4j, num_iter=20)
+kwargs = {'title': r'f(z) = z^2 - \dfrac{3}{4} + 0.4i', 'cmap': 'Greens_r'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

Mandelbrot set

Closely related to the Julia set is the famous Mandelbrot set, which has a slightly different definition. Once again, we define f(z)=z2+cf(z) = z^2 + c where cc is a complex number, but this time our focus is on our choice of cc. We say that cc is an element of the Mandelbrot set if f converges at z=0z = 0. An equivalent definition is to say that cc is an element of the Mandelbrot set if f(c)f(c) can be iterated infinitely and not ‘explode’. We will tweak our Julia function slightly (and rename it appropriately) so that we can plot a visualization of the Mandelbrot set, which possesses an elegant fractal pattern.

def mandelbrot(mesh, num_iter=10, radius=2):
+
+    c = mesh.copy()
+    z = np.zeros(mesh.shape, dtype=np.complex128)
+    diverge_len = np.zeros(z.shape)
+
+    for i in range(num_iter):
+        conv_mask = np.abs(z) < radius
+        z[conv_mask] = np.square(z[conv_mask]) + c[conv_mask]
+        diverge_len[conv_mask] += 1
+
+    return diverge_len
output = mandelbrot(mesh, num_iter=50)
+kwargs = {'title': 'Mandelbrot \\ set', 'cmap': 'hot'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

Generalizing the Julia set

We can generalize our Julia function even further by giving it a parameter for which universal function we would like to pass in. This would allow us to plot fractals of the form f(z)=g(z)+cf(z) = g(z) + c where g is a universal function selected by us.

def general_julia(mesh, c=-1, f=np.square, num_iter=100, radius=2):
+
+    z = mesh.copy()
+    diverge_len = np.zeros(z.shape)
+
+    for i in range(num_iter):
+        conv_mask = np.abs(z) < radius
+        z[conv_mask] = f(z[conv_mask]) + c
+        diverge_len[conv_mask] += 1
+
+    return diverge_len

One cool set of fractals that can be plotted using our general Julia function are ones of the form f(z)=zn+cf(z) = z^n + c for some positive integer nn. A very cool pattern which emerges is that the number of regions that ‘stick out’ matches the degree in which we raise the function to while iterating over it.

fig, axes = plt.subplots(2, 3, figsize=(8, 8))
+base_degree = 2
+
+for deg, ax in enumerate(axes.ravel()):
+    degree = base_degree + deg
+    power = lambda z: np.power(z, degree)  # Create power function for current degree
+
+    diverge_len = general_julia(mesh, f=power, num_iter=15)
+    ax.imshow(diverge_len, extent=[-2, 2, -2, 2], cmap='binary')
+    ax.set_title(f'$f(z) = z^{degree} -1$')
<Figure size 800x800 with 6 Axes>

Needless to say, there is a large amount of exploring that can be done by fiddling with the inputted function, value of cc, number of iterations, radius and even the density of the mesh and choice of colours.

Newton Fractals

Newton fractals are a specific class of fractals, where iterations involve adding or subtracting the ratio of a function (often a polynomial) and its derivative to the input values. Mathematically, it can be expressed as:

z:=zf(z)f(z)z := z - \frac{f(z)}{f'(z)}

We will define a general version of the fractal which will allow for different variations to be plotted by passing in our functions of choice.

def newton_fractal(mesh, f, df, num_iter=10, r=2):
+
+    z = mesh.copy()
+    diverge_len = np.zeros(z.shape)
+
+    for i in range(num_iter):
+        conv_mask = np.abs(z) < r
+        pz = f(z[conv_mask])
+        dp = df(z[conv_mask])
+        z[conv_mask] = z[conv_mask] - pz/dp
+        diverge_len[conv_mask] += 1
+
+    return diverge_len

Now we can experiment with some different functions. For polynomials, we can create our plots quite effortlessly using the NumPy Polynomial class, which has built in functionality for computing derivatives.

For example, let’s try a higher-degree polynomial:

p = np.polynomial.Polynomial([-16, 0, 0, 0, 15, 0, 0, 0, 1])
+p
Loading...

which has the derivative:

p.deriv()
Loading...
output = newton_fractal(mesh, p, p.deriv(), num_iter=15, r=2)
+kwargs = {'title': r'f(z) = z - \dfrac{(z^8 + 15z^4 - 16)}{(8z^7 + 60z^3)}', 'cmap': 'copper'}
+
+plot_fractal(output, **kwargs)
<Figure size 600x600 with 2 Axes>

Beautiful! Let’s try another one:

f(z) = tan2(z)tan^2(z)

dfdz=2tan(z)sec2(z)=2tan(z)cos2(z)\frac{df}{dz} = 2 \cdot tan(z) sec^2(z) =\frac{2 \cdot tan(z)}{cos^2(z)}

This makes f(z)f(z)=tan2(z)cos2(z)2tan(z)=tan(z)cos2(z)2=sin(z)cos(z)2\frac{f(z)}{f'(z)} = tan^2(z) \cdot \frac{cos^2(z)}{2 \cdot tan(z)} = \frac{tan(z)\cdot cos^2(z)}{2} = \frac{sin(z)\cdot cos(z)}{2}

def f_tan(z):
+    return np.square(np.tan(z))
+
+
+def d_tan(z):
+    return 2*np.tan(z) / np.square(np.cos(z))
output = newton_fractal(mesh, f_tan, d_tan, num_iter=15, r=50)
+kwargs = {'title': r'f(z) = z - \dfrac{sin(z)cos(z)}{2}', 'cmap': 'binary'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

Note that you sometimes have to play with the radius in order to get a neat looking fractal.

Finally, we can go a little bit wild with our function selection

f(z)=i=110sini(z)f(z) = \sum_{i=1}^{10} sin^i(z)

dfdz=i=110isini1(z)cos(z)\frac{df}{dz} = \sum_{i=1}^{10} i \cdot sin^{i-1}(z) \cdot cos(z)

def sin_sum(z, n=10):
+    total = np.zeros(z.size, dtype=z.dtype)
+    for i in range(1, n+1):
+        total += np.power(np.sin(z), i)
+    return total
+
+
+def d_sin_sum(z, n=10):
+    total = np.zeros(z.size, dtype=z.dtype)
+    for i in range(1, n+1):
+        total += i * np.power(np.sin(z), i-1) * np.cos(z)
+    return total

We will denote this one ‘Wacky fractal’, as its equation would not be fun to try and put in the title.

output = newton_fractal(small_mesh, sin_sum, d_sin_sum, num_iter=10, r=1)
+kwargs = {'title': 'Wacky \\ fractal', 'figsize': (6, 6), 'extent': [-1, 1, -1, 1], 'cmap': 'terrain'}
+
+plot_fractal(output, **kwargs)
<Figure size 600x600 with 2 Axes>

It is truly fascinating how distinct yet similar these fractals are with each other. This leads us to the final section.

Creating your own fractals

What makes fractals more exciting is how much there is to explore once you become familiar with the basics. Now we will wrap up our tutorial by exploring some of the different ways one can experiment in creating unique fractals. I encourage you to try some things out on your own (if you have not done so already).

One of the first places to experiment would be with the function for the generalized Julia set, where we can try passing in different functions as parameters.

Let’s start by choosing

f(z)=tan(z2)f(z) = tan(z^2)

def f(z):
+    return np.tan(np.square(z))
output = general_julia(mesh, f=f, num_iter=15, radius=2.1)
+kwargs = {'title': 'f(z) = tan(z^2)', 'cmap': 'gist_stern'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

What happens if we compose our defined function inside of a sine function?

Let’s try defining

g(z)=sin(f(z))=sin(tan(z2))g(z) = sin(f(z)) = sin(tan(z^2))

def g(z):
+    return np.sin(f(z))
output = general_julia(mesh, f=g, num_iter=15, radius=2.1)
+kwargs = {'title': 'g(z) = sin(tan(z^2))', 'cmap': 'plasma_r'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

Next, let’s create a function that applies both f and g to the inputs each iteration and adds the result together:

h(z)=f(z)+g(z)=tan(z2)+sin(tan(z2))h(z) = f(z) + g(z) = tan(z^2) + sin(tan(z^2))

def h(z):
+    return f(z) + g(z)
output = general_julia(small_mesh, f=h, num_iter=10, radius=2.1)
+kwargs = {'title': 'h(z) = tan(z^2) + sin(tan(z^2))', 'figsize': (7, 7), 'extent': [-1, 1, -1, 1], 'cmap': 'jet'}
+
+plot_fractal(output, **kwargs);
<Figure size 700x700 with 2 Axes>

You can even create beautiful fractals through your own errors. Here is one that got created accidently by making a mistake in computing the derivative of a Newton fractal:

def accident(z):
+    return z - (2 * np.power(np.tan(z), 2) / (np.sin(z) * np.cos(z)))
output = general_julia(mesh, f=accident, num_iter=15, c=0, radius=np.pi)
+kwargs = {'title': 'Accidental \\ fractal', 'cmap': 'Blues'}
+
+plot_fractal(output, **kwargs);
<Figure size 600x600 with 2 Axes>

Needless to say, there are a nearly endless supply of interesting fractal creations that can be made just by playing around with various combinations of NumPy universal functions and by tinkering with the parameters.

In conclusion

We learned a lot about generating fractals today. We saw how complicated fractals requiring many iterations could be computed efficiently using universal functions. We also took advantage of boolean indexing, which allowed for less computations to be made without having to individually verify each value. Finally, we learned a lot about fractals themselves. As a recap:

  • Fractal images are created by iterating a function over a set of values, and keeping tally of how long it takes for each value to pass a certain threshold

  • The colours in the image correspond to the tally counts of the values

  • The filled-in Julia set for cc consists of all complex numbers z in which f(z)=z2+cf(z) = z^2 + c converges

  • The Julia set for cc is the set of complex numbers that make up the boundary of the filled-in Julia set

  • The Mandelbrot set is all values cc in which f(z)=z2+cf(z) = z^2 + c converges at 0

  • Newton fractals use functions of the form f(z)=zp(z)p(z)f(z) = z - \frac{p(z)}{p'(z)}

  • The fractal images can vary as you adjust the number of iterations, radius of convergence, mesh size, colours, function choice and parameter choice

On your own

  • Play around with the parameters of the generalized Julia set function, try playing with the constant value, number of iterations, function choice, radius, and colour choice.

  • Visit the “List of fractals by Hausdorff dimension” Wikipedia page (linked in the Further reading section) and try writing a function for a fractal not mentioned in this tutorial.

Further reading

\ No newline at end of file diff --git a/tutorial-static-equilibrium.json b/tutorial-static-equilibrium.json new file mode 100644 index 00000000..2edd10a8 --- /dev/null +++ b/tutorial-static-equilibrium.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"2ab41ea8553311d9d802e75c493c6c75c22123dcbab9b5a1dfdd55a36ea63e5d","slug":"tutorial-static-equilibrium","location":"/content/tutorial-static_equilibrium.md","dependencies":[],"frontmatter":{"title":"Determining Static Equilibrium in NumPy","short_title":"Static Equilibrium","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-static_equilibrium.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-static_equilibrium.md","thumbnail":"/numpy-tutorials/build/static_eqbm-fig01-ee029c471a69f4e98c09d962ac7d60dd.png","exports":[{"format":"md","filename":"tutorial-static_equilibrium.md","url":"/numpy-tutorials/build/tutorial-static_equi-40799290de761646754e4500c629c954.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"text","value":"When analyzing physical structures, it is crucial to understand the mechanics keeping them stable. Applied forces on a floor, a beam, or any other structure, create reaction forces and moments. These reactions are the structure resisting movement without breaking. In cases where structures do not move despite having forces applied to them, ","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"we9eDzmwrN"},{"type":"link","url":"https://en.wikipedia.org/wiki/Newton%27s_laws_of_motion#Newton's_second_law","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"text","value":"Newton’s second law","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"YvaVBqFMeY"}],"urlSource":"https://en.wikipedia.org/wiki/Newton%27s_laws_of_motion#Newton's_second_law","data":{"page":"Newton%27s_laws_of_motion#Newton's_second_law","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"SVRgClnF0w"},{"type":"text","value":" states that both the acceleration and sum of forces in all directions in the system must be zero. You can represent and solve this concept with NumPy arrays.","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"FghIszyXeu"}],"key":"DQZwmp3ilM"},{"type":"heading","depth":2,"position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"children":[{"type":"text","value":"What you’ll do:","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"qD0jsnlvcr"}],"identifier":"what-youll-do","label":"What you’ll do:","html_id":"what-youll-do","implicit":true,"key":"O8KhNdcof9"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":20,"column":1},"end":{"line":24,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"In this tutorial, you will use NumPy to create vectors and moments using NumPy arrays","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"key":"qmEbdbDapb"}],"key":"SEXK75PRL8"}],"key":"GJQafmoqrE"},{"type":"listItem","spread":true,"position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Solve problems involving cables and floors holding up structures","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"OoyRnVAoph"}],"key":"sJ9K4WoIPY"}],"key":"paAim0CPLs"},{"type":"listItem","spread":true,"position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Write NumPy matrices to isolate unkowns","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"NXiqBKz7nr"}],"key":"ZsBXpRxXjw"}],"key":"IQhO4oMciq"},{"type":"listItem","spread":true,"position":{"start":{"line":23,"column":1},"end":{"line":24,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Use NumPy functions to perform linear algebra operations","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"U8pBWXynzf"}],"key":"FP2V6p4ygl"}],"key":"gup6pPItmP"}],"key":"hFb3jJgoSc"},{"type":"heading","depth":2,"position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"What you’ll learn:","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"bObAQDB6Ez"}],"identifier":"what-youll-learn","label":"What you’ll learn:","html_id":"what-youll-learn","implicit":true,"key":"kOEUfbEiXK"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":26,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"How to represent points, vectors, and moments with NumPy.","position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"key":"zxhqW7gPDt"}],"key":"v3J3Rl1xr6"}],"key":"UIV7Dm1AhB"},{"type":"listItem","spread":true,"position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"How to find the ","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"sd5WWtjbYh"},{"type":"link","url":"https://en.wikipedia.org/wiki/Normal_(geometry)","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"normal of vectors","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"hkTvx1RxCx"}],"urlSource":"https://en.wikipedia.org/wiki/Normal_(geometry)","data":{"page":"Normal_(geometry)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"GnLAoYJuvN"}],"key":"btEywHGHuE"}],"key":"Ghhk2NOTij"},{"type":"listItem","spread":true,"position":{"start":{"line":28,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Using NumPy to compute matrix calculations","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"key":"srn4sNhbZF"}],"key":"khVIHMREOm"}],"key":"HeMFPAX4Pq"}],"key":"uIiyBBjyK2"},{"type":"heading","depth":2,"position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"What you’ll need:","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"RV4nce4lRq"}],"identifier":"what-youll-need","label":"What you’ll need:","html_id":"what-youll-need","implicit":true,"key":"jMluBK7ewx"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":31,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"NumPy","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"shH8T1i04b"}],"key":"PJ0IchyLrc"}],"key":"g1W4gTFEg0"},{"type":"listItem","spread":true,"position":{"start":{"line":32,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"jpRBBZT9Yp"}],"urlSource":"https://matplotlib.org/","key":"XlAyGBcCfV"}],"key":"xvKYXR8pxG"}],"key":"G7DbLCJmhW"}],"key":"IBKLvIWijK"},{"type":"paragraph","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"imported with the following comands:","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"q4gXI158g0"}],"key":"oilnPLdUS4"}],"key":"hWqluf91A4"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np\nimport matplotlib.pyplot as plt","key":"hLsESdS25f"},{"type":"outputs","id":"BL6cOhxNkjzFSQ_4kzNPZ","children":[],"key":"UDVApDnZQO"}],"key":"RI4ckRLjiJ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"text","value":"In this tutorial you will use the following NumPy tools:","position":{"start":{"line":41,"column":1},"end":{"line":41,"column":1}},"key":"v5yp6ltAHG"}],"key":"ANrT2uOfRp"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":43,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.linalg.norm.html","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"inlineCode","value":"np.linalg.norm","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"GPA6cRdieH"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.linalg.norm.html","key":"n7ufkBMMVV"},{"type":"text","value":" : this function determines the measure of vector magnitude","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"pItJQ0wXaj"}],"key":"m7pRvwhIh6"}],"key":"EdIbpceen4"},{"type":"listItem","spread":true,"position":{"start":{"line":44,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.cross.html","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"children":[{"type":"inlineCode","value":"np.cross","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"key":"ZCjrJEpr3V"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.cross.html","key":"fgRNX7WASh"},{"type":"text","value":" : this function takes two matrices and produces the cross product","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"key":"lDgJR3d30S"}],"key":"ZBoRjL22HK"}],"key":"gt7ooI45sD"}],"key":"aFqFEGwbsb"}],"key":"kZ4xvFOZRs"},{"type":"block","position":{"start":{"line":46,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"text","value":"Solving equilibrium with Newton’s second law","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"qSz5W9Eyf3"}],"identifier":"solving-equilibrium-with-newtons-second-law","label":"Solving equilibrium with Newton’s second law","html_id":"solving-equilibrium-with-newtons-second-law","implicit":true,"key":"hLunqpWW1Z"},{"type":"paragraph","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"children":[{"type":"text","value":"Your model consists of a beam under a sum of forces and moments. You can start analyzing this system with Newton’s second law:","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"HPWkLiNGtA"}],"key":"vVTwciDyt5"},{"type":"math","value":"\\sum{\\text{force}} = \\text{mass} \\times \\text{acceleration}.","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"html":"force=mass×acceleration.\\sum{\\text{force}} = \\text{mass} \\times \\text{acceleration}.force=mass×acceleration.","enumerator":"1","key":"Su0XeSiIMD"},{"type":"paragraph","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"text","value":"In order to simplify the examples looked at, assume they are static, with acceleration ","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"key":"CJ13KXys7K"},{"type":"inlineMath","value":"=0","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"html":"=0=0=0","key":"oywODIzEC9"},{"type":"text","value":". Due to our system existing in three dimensions, consider forces being applied in each of these dimensions. This means that you can represent these forces as vectors. You come to the same conclusion for ","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"key":"gMKX1XVLWI"},{"type":"link","url":"https://en.wikipedia.org/wiki/Moment_(physics)","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"text","value":"moments","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"key":"nCu9z9GR6b"}],"urlSource":"https://en.wikipedia.org/wiki/Moment_(physics)","data":{"page":"Moment_(physics)","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"oBgnMtGPEn"},{"type":"text","value":", which result from forces being applied a certain distance away from an object’s center of mass.","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"key":"XhiOicHajT"}],"key":"UsXkVfU67S"},{"type":"paragraph","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"text","value":"Assume that the force ","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"key":"sRCafocL1L"},{"type":"inlineMath","value":"F","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"html":"FFF","key":"ONSBGhro3O"},{"type":"text","value":" is represented as a three-dimensional vector","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"key":"cxpnmJ9nlZ"}],"key":"V2Gk5SFFoz"},{"type":"math","value":"F = (F_x, F_y, F_z)","position":{"start":{"line":58,"column":1},"end":{"line":58,"column":1}},"html":"F=(Fx,Fy,Fz)F = (F_x, F_y, F_z)F=(Fx,Fy,Fz)","enumerator":"2","key":"UF1h8ZtQfQ"},{"type":"paragraph","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"text","value":"where each of the three components represent the magnitude of the force being applied in each corresponding direction. Assume also that each component in the vector","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"OgQI8EEqlC"}],"key":"jmrL5cOeGr"},{"type":"math","value":"r = (r_x, r_y, r_z)","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"html":"r=(rx,ry,rz)r = (r_x, r_y, r_z)r=(rx,ry,rz)","enumerator":"3","key":"b4EP1Mq4jv"},{"type":"paragraph","position":{"start":{"line":64,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"text","value":"is the distance between the point where each component of the force is applied and the centroid of the system. Then, the moment can be computed by","position":{"start":{"line":64,"column":1},"end":{"line":64,"column":1}},"key":"zVgYJDMmz4"}],"key":"C0bmXTx7CL"},{"type":"math","value":"r \\times F = (r_x, r_y, r_z) \\times (F_x, F_y, F_z).","position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"html":"r×F=(rx,ry,rz)×(Fx,Fy,Fz).r \\times F = (r_x, r_y, r_z) \\times (F_x, F_y, F_z).r×F=(rx,ry,rz)×(Fx,Fy,Fz).","enumerator":"4","key":"NtimOWGzdd"},{"type":"paragraph","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"Start with some simple examples of force vectors","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"J3xUBImb6j"}],"key":"ZYhrHhnHmb"}],"key":"yJI0i7pucB"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"forceA = np.array([1, 0, 0])\nforceB = np.array([0, 1, 0])\nprint(\"Force A =\", forceA)\nprint(\"Force B =\", forceB)","key":"H8711Y9ndf"},{"type":"outputs","id":"h6W1l9CihAahEkdQUay2f","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Force A = [1 0 0]\nForce B = [0 1 0]\n"},"key":"ykILTmsUfk"}],"key":"v8Rwv4Tnjx"}],"key":"a5Xj6XWuQj"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"children":[{"type":"text","value":"This defines ","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"UUhwSmkuFb"},{"type":"inlineCode","value":"forceA","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"k8o6BkbPSf"},{"type":"text","value":" as being a vector with magnitude of 1 in the ","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"JOiAT1VLjU"},{"type":"inlineMath","value":"x","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"html":"xxx","key":"ap0yichFzf"},{"type":"text","value":" direction and ","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"wec7oSXct0"},{"type":"inlineCode","value":"forceB","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"ZTNPPdNfj1"},{"type":"text","value":" as magnitude 1 in the ","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"eHorRtAhY5"},{"type":"inlineMath","value":"y","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"html":"yyy","key":"yeHutXrFjC"},{"type":"text","value":" direction.","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"cCDT8XBhMz"}],"key":"p5g5uA5a7l"},{"type":"paragraph","position":{"start":{"line":79,"column":1},"end":{"line":81,"column":1}},"children":[{"type":"text","value":"It may be helpful to visualize these forces in order to better understand how they interact with each other.\nMatplotlib is a library with visualization tools that can be utilized for this purpose.\nQuiver plots will be used to demonstrate ","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"ONoBIBP48x"},{"type":"link","url":"https://matplotlib.org/gallery/mplot3d/quiver3d.html","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"children":[{"type":"text","value":"three dimensional vectors","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"rw0CCFqtlZ"}],"urlSource":"https://matplotlib.org/gallery/mplot3d/quiver3d.html","key":"wL0jFi6NIM"},{"type":"text","value":", but the library can also be used for ","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"zZveeYfrSi"},{"type":"link","url":"https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.quiver.html","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"children":[{"type":"text","value":"two dimensional demonstrations","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"QfJ5XmhPtp"}],"urlSource":"https://matplotlib.org/stable/api/_as_gen/matplotlib.axes.Axes.quiver.html","key":"BsgOqQa9OP"},{"type":"text","value":".","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"O4bDn1H2RK"}],"key":"J58ZicIQsp"}],"key":"IKSgZ3t9Fi"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig = plt.figure()\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nx, y, z = np.array([0, 0, 0]) # defining the point of application. Make it the origin\n\nu, v, w = forceA # breaking the force vector into individual components\nd3.quiver(x, y, z, u, v, w, color=\"r\", label=\"forceA\")\n\nu, v, w = forceB\nd3.quiver(x, y, z, u, v, w, color=\"b\", label=\"forceB\")\n\nd3.legend()","key":"MpIqQLYvB1"},{"type":"outputs","id":"i7DGjKYi9ZnlPs38q2PBV","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"a4e33f4119a68073bd21963375da536e","path":"/numpy-tutorials/build/a4e33f4119a68073bd21963375da536e.png"}}},"key":"tH7tfgHNLX"}],"key":"kaBOOnFqL0"}],"key":"dSU1r49A4q"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"children":[{"type":"text","value":"There are two forces emanating from a single point. In order to simplify this problem, you can add them together to find the sum of forces. Note that both ","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"W6lk6MwFNV"},{"type":"inlineCode","value":"forceA","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"lWHPgdVVX8"},{"type":"text","value":" and ","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"w5Y1C7IuPb"},{"type":"inlineCode","value":"forceB","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"fFNgbjscF7"},{"type":"text","value":" are three-dimensional vectors, represented by NumPy as arrays with three components. Because NumPy is meant to simplify and optimize operations between vectors, you can easily compute the sum of these two vectors as follows:","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"key":"sNwuYDe7LR"}],"key":"xgdIHKAPaU"}],"key":"noFVowlnKY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"forceC = forceA + forceB\nprint(\"Force C =\", forceC)","key":"QGpAsWFr9D"},{"type":"outputs","id":"5mTO2maTdK0zbmrGYkWF5","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Force C = [1 1 0]\n"},"key":"VO8nftwlCa"}],"key":"WqR3yjtpDM"}],"key":"Yo2ADAB8Q5"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":110,"column":1},"end":{"line":111,"column":1}},"children":[{"type":"text","value":"Force C now acts as a single force that represents both A and B.\nYou can plot it to see the result.","position":{"start":{"line":110,"column":1},"end":{"line":110,"column":1}},"key":"Fx9hFKWIPp"}],"key":"oYXaNZn2bZ"}],"key":"hmZUdCMlps"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig = plt.figure()\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nx, y, z = np.array([0, 0, 0])\n\nu, v, w = forceA\nd3.quiver(x, y, z, u, v, w, color=\"r\", label=\"forceA\")\nu, v, w = forceB\nd3.quiver(x, y, z, u, v, w, color=\"b\", label=\"forceB\")\nu, v, w = forceC\nd3.quiver(x, y, z, u, v, w, color=\"g\", label=\"forceC\")\n\nd3.legend()","key":"xu0Z4W8c45"},{"type":"outputs","id":"Ys11ALHjnFjhn_dmP6eHA","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"38e352e1436e8d0b56dcbf29608cedc9","path":"/numpy-tutorials/build/38e352e1436e8d0b56dcbf29608cedc9.png"}}},"key":"W6I3XtEdDB"}],"key":"FgtwSCuSaL"}],"key":"KAJ2Xc1g6k"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":134,"column":1},"end":{"line":136,"column":1}},"children":[{"type":"text","value":"However, the goal is equilibrium.\nThis means that you want your sum of forces to be ","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"Tp0dpmxJHl"},{"type":"inlineMath","value":"(0, 0, 0)","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"html":"(0,0,0)(0, 0, 0)(0,0,0)","key":"Hmy1twGq6h"},{"type":"text","value":" or else your object will experience acceleration.\nTherefore, there needs to be another force that counteracts the prior ones.","position":{"start":{"line":134,"column":1},"end":{"line":134,"column":1}},"key":"DtgQg96hpG"}],"key":"Yc5CrGrt2E"},{"type":"paragraph","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"children":[{"type":"text","value":"You can write this problem as ","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"key":"brBEXER8QK"},{"type":"inlineMath","value":"A+B+R=0","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"html":"A+B+R=0A+B+R=0A+B+R=0","key":"P0jqLuVxeZ"},{"type":"text","value":", with ","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"key":"eEWvUHAxM7"},{"type":"inlineMath","value":"R","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"html":"RRR","key":"tAzYPtXLZm"},{"type":"text","value":" being the reaction force that solves the problem.","position":{"start":{"line":138,"column":1},"end":{"line":138,"column":1}},"key":"zDcjJuW2b8"}],"key":"VcKfeXRrgr"},{"type":"paragraph","position":{"start":{"line":140,"column":1},"end":{"line":140,"column":1}},"children":[{"type":"text","value":"In this example this would mean:","position":{"start":{"line":140,"column":1},"end":{"line":140,"column":1}},"key":"mqtke5yhui"}],"key":"HFPb0D6YU3"},{"type":"math","value":"(1, 0, 0) + (0, 1, 0) + (R_x, R_y, R_z) = (0, 0, 0)","position":{"start":{"line":142,"column":1},"end":{"line":142,"column":1}},"html":"(1,0,0)+(0,1,0)+(Rx,Ry,Rz)=(0,0,0)(1, 0, 0) + (0, 1, 0) + (R_x, R_y, R_z) = (0, 0, 0)(1,0,0)+(0,1,0)+(Rx,Ry,Rz)=(0,0,0)","enumerator":"5","key":"kU5Gp7pXBA"},{"type":"paragraph","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"text","value":"Broken into ","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"nSKpUZY6a9"},{"type":"inlineMath","value":"x","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"html":"xxx","key":"jYXQv9KsgN"},{"type":"text","value":", ","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"UAOOGJuqmO"},{"type":"inlineMath","value":"y","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"html":"yyy","key":"df5MBRJOFF"},{"type":"text","value":", and ","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"DOFbp4SjTC"},{"type":"inlineMath","value":"z","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"html":"zzz","key":"OxirUfi5aS"},{"type":"text","value":" components this gives you:","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"gcY1k2D6Gm"}],"key":"eJIMNTZXnr"},{"type":"math","value":"\\begin{cases}\n1+0+R_x=0\\\\\n0+1+R_y=0\\\\\n0+0+R_z=0\n\\end{cases}","position":{"start":{"line":146,"column":1},"end":{"line":150,"column":1}},"html":"{1+0+Rx=00+1+Ry=00+0+Rz=0\\begin{cases}\n1+0+R_x=0\\\\\n0+1+R_y=0\\\\\n0+0+R_z=0\n\\end{cases}1+0+Rx=00+1+Ry=00+0+Rz=0","enumerator":"6","key":"CftJxm1O2k"},{"type":"paragraph","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"text","value":"solving for ","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"SbTK2O6FMM"},{"type":"inlineMath","value":"R_x","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"html":"RxR_xRx","key":"bKPx7fQAWJ"},{"type":"text","value":", ","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"BlzSDl3B6F"},{"type":"inlineMath","value":"R_y","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"html":"RyR_yRy","key":"gFQo3sjas3"},{"type":"text","value":", and ","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"ZKS735OX2R"},{"type":"inlineMath","value":"R_z","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"html":"RzR_zRz","key":"UcJP2xFTd0"},{"type":"text","value":" gives you a vector ","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"U9ipF2ZINZ"},{"type":"inlineMath","value":"R","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"html":"RRR","key":"fZCQtRWjR5"},{"type":"text","value":" of ","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"yBrzaPa8AA"},{"type":"inlineMath","value":"(-1, -1, 0)","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"html":"(1,1,0)(-1, -1, 0)(1,1,0)","key":"QWXl6ZUwU2"},{"type":"text","value":".","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"xC0dALzepY"}],"key":"J0tCzoPdYk"},{"type":"paragraph","position":{"start":{"line":155,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"If plotted, the forces seen in prior examples should be nullified.\nOnly if there is no force remaining is the system considered to be in equilibrium.","position":{"start":{"line":155,"column":1},"end":{"line":155,"column":1}},"key":"Jk70cEz1F5"}],"key":"PsSUZ6Pe4H"}],"key":"b2eiDXQFVC"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"R = np.array([-1, -1, 0])\n\nfig = plt.figure()\n\nd3.set_xlim(-1, 1)\nd3.set_ylim(-1, 1)\nd3.set_zlim(-1, 1)\n\nd3 = fig.add_subplot(projection=\"3d\")\n\nx, y, z = np.array([0, 0, 0])\n\nu, v, w = forceA + forceB + R # add them all together for sum of forces\nd3.quiver(x, y, z, u, v, w)","key":"Puzc1CJ8Yl"},{"type":"outputs","id":"bTO9yF6CC9k2tbVnWZun_","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":6,"metadata":{},"data":{"text/plain":{"content":"","content_type":"text/plain"}}},"key":"cilLphFyFM"},{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"ac6102baef814fc32deba9ea495141c6","path":"/numpy-tutorials/build/ac6102baef814fc32deba9ea495141c6.png"}}},"key":"LApR6Mk0Is"}],"key":"AF9KeAvAxS"}],"key":"CXq7LZhqnW"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"children":[{"type":"text","value":"The empty graph signifies that there are no outlying forces. This denotes a system in equilibrium.","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"iZCtytMwXm"}],"key":"m8HMg7dtri"},{"type":"heading","depth":2,"position":{"start":{"line":178,"column":1},"end":{"line":178,"column":1}},"children":[{"type":"text","value":"Solving Equilibrium as a sum of moments","position":{"start":{"line":178,"column":1},"end":{"line":178,"column":1}},"key":"lUEYbvj4td"}],"identifier":"solving-equilibrium-as-a-sum-of-moments","label":"Solving Equilibrium as a sum of moments","html_id":"solving-equilibrium-as-a-sum-of-moments","implicit":true,"key":"evQo6ubIn8"},{"type":"paragraph","position":{"start":{"line":180,"column":1},"end":{"line":181,"column":1}},"children":[{"type":"text","value":"Next let’s move to a more complicated application.\nWhen forces are not all applied at the same point, moments are created.","position":{"start":{"line":180,"column":1},"end":{"line":180,"column":1}},"key":"M95VMFHuMM"}],"key":"HQfaJRuIkR"},{"type":"paragraph","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"children":[{"type":"text","value":"Similar to forces, these moments must all sum to zero, otherwise rotational acceleration will be experienced. Similar to the sum of forces, this creates a linear equation for each of the three coordinate directions in space.","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"h1zdLMUX39"}],"key":"vG4cx57VvC"},{"type":"paragraph","position":{"start":{"line":185,"column":1},"end":{"line":188,"column":1}},"children":[{"type":"text","value":"A simple example of this would be from a force applied to a stationary pole secured in the ground.\nThe pole does not move, so it must apply a reaction force.\nThe pole also does not rotate, so it must also be creating a reaction moment.\nSolve for both the reaction force and moments.","position":{"start":{"line":185,"column":1},"end":{"line":185,"column":1}},"key":"wzDCw6572G"}],"key":"yRqW3LIcRW"},{"type":"paragraph","position":{"start":{"line":190,"column":1},"end":{"line":190,"column":1}},"children":[{"type":"text","value":"Let’s say a 5N force is applied perpendicularly 2m above the base of the pole.","position":{"start":{"line":190,"column":1},"end":{"line":190,"column":1}},"key":"BsBheq9MnQ"}],"key":"AgsTCOrmkP"}],"key":"PmP2XNHij4"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"f = 5 # Force in newtons\nL = 2 # Length of the pole\n\nR = 0 - f\nM = 0 - f * L\nprint(\"Reaction force =\", R)\nprint(\"Reaction moment =\", M)","key":"U8Qx7T6Ss5"},{"type":"outputs","id":"zthBpSDjKU5VrUK-OcfM4","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Reaction force = -5\nReaction moment = -10\n"},"key":"VeG3bpYSXl"}],"key":"a5c99AsNbW"}],"key":"XpU89F1A8K"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":202,"column":1},"end":{"line":202,"column":1}},"children":[{"type":"text","value":"Finding values with physical properties","position":{"start":{"line":202,"column":1},"end":{"line":202,"column":1}},"key":"lmK1FtmtsZ"}],"identifier":"finding-values-with-physical-properties","label":"Finding values with physical properties","html_id":"finding-values-with-physical-properties","implicit":true,"key":"IvNjcrolZR"},{"type":"paragraph","position":{"start":{"line":204,"column":1},"end":{"line":205,"column":1}},"children":[{"type":"text","value":"Let’s say that instead of a force acting perpendicularly to the beam, a force was applied to our pole through a wire that was also attached to the ground.\nGiven the tension in this cord, all you need to solve this problem are the physical locations of these objects.","position":{"start":{"line":204,"column":1},"end":{"line":204,"column":1}},"key":"x5krstFAon"}],"key":"JjvhA3gDsY"},{"type":"image","url":"/numpy-tutorials/build/static_eqbm-fig01-ee029c471a69f4e98c09d962ac7d60dd.png","alt":"Image representing the problem","position":{"start":{"line":207,"column":1},"end":{"line":207,"column":1}},"key":"uTR9SdGMoy","urlSource":"_static/static_eqbm-fig01.png"},{"type":"paragraph","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"children":[{"type":"text","value":"In response to the forces acting upon the pole, the base generated reaction forces in the x and y directions, as well as a reaction moment.","position":{"start":{"line":209,"column":1},"end":{"line":209,"column":1}},"key":"zt4PRJI3hP"}],"key":"FCFZUJrOlI"},{"type":"paragraph","position":{"start":{"line":211,"column":1},"end":{"line":212,"column":1}},"children":[{"type":"text","value":"Denote the base of the pole as the origin.\nNow, say the cord is attached to the ground 3m in the x direction and attached to the pole 2m up, in the z direction.","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"RXjLU92R9c"}],"key":"XeCAOpL3vh"},{"type":"paragraph","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"children":[{"type":"text","value":"Define these points in space as NumPy arrays, and then use those arrays to find directional vectors.","position":{"start":{"line":214,"column":1},"end":{"line":214,"column":1}},"key":"e4CUmRb9cI"}],"key":"aUrD6wRQOE"}],"key":"SmlAS6nSMb"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"poleBase = np.array([0, 0, 0])\ncordBase = np.array([3, 0, 0])\ncordConnection = np.array([0, 0, 2])\n\npoleDirection = cordConnection - poleBase\nprint(\"Pole direction =\", poleDirection)\ncordDirection = cordBase - cordConnection\nprint(\"Cord direction =\", cordDirection)","key":"ifgkkSOrSy"},{"type":"outputs","id":"UdxGNKDIimP1Gi_BSWgtl","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Pole direction = [0 0 2]\nCord direction = [ 3 0 -2]\n"},"key":"TfAq3Vh0vQ"}],"key":"vhHlumFC9X"}],"key":"gjPfZlaK2Y"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":227,"column":1},"end":{"line":228,"column":1}},"children":[{"type":"text","value":"In order to use these vectors in relation to forces you need to convert them into unit vectors.\nUnit vectors have a magnitude of one, and convey only the direction of the forces.","position":{"start":{"line":227,"column":1},"end":{"line":227,"column":1}},"key":"aaeQgSV8EA"}],"key":"eUYsYjwBh7"}],"key":"MxV8NIMr7h"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"cordUnit = cordDirection / np.linalg.norm(cordDirection)\nprint(\"Cord unit vector =\", cordUnit)","key":"Iw7Obhk4CB"},{"type":"outputs","id":"RLMxyoNIXh-yOX1qQeLwm","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Cord unit vector = [ 0.83205029 0. -0.5547002 ]\n"},"key":"gEUKumcP4c"}],"key":"Ms7Z5lMW2h"}],"key":"nwC3ajHJ6F"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":235,"column":1},"end":{"line":235,"column":1}},"children":[{"type":"text","value":"You can then multiply this direction with the magnitude of the force in order to find the force vector.","position":{"start":{"line":235,"column":1},"end":{"line":235,"column":1}},"key":"dzGraRhtAb"}],"key":"t0wQjzvCXR"},{"type":"paragraph","position":{"start":{"line":237,"column":1},"end":{"line":237,"column":1}},"children":[{"type":"text","value":"Let’s say the cord has a tension of 5N:","position":{"start":{"line":237,"column":1},"end":{"line":237,"column":1}},"key":"oIvzlNeDKn"}],"key":"tYWfNR4FMG"}],"key":"x6CE3glqte"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"cordTension = 5\nforceCord = cordUnit * cordTension\nprint(\"Force from the cord =\", forceCord)","key":"oq3CoW9TPm"},{"type":"outputs","id":"DRVYBLUM4zs77OMgbnQ6O","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Force from the cord = [ 4.16025147 0. -2.77350098]\n"},"key":"VlDJvfIkPw"}],"key":"niR2SLjSZT"}],"key":"qJlEB0URji"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"children":[{"type":"text","value":"In order to find the moment you need the cross product of the force vector and the radius.","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"S1zjpDNB0J"}],"key":"HKcxWZUFtG"}],"key":"hM9niflvyW"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"momentCord = np.cross(forceCord, poleDirection)\nprint(\"Moment from the cord =\", momentCord)","key":"t0ng4J81YV"},{"type":"outputs","id":"Cuoybketkz0tIC7ILhCs5","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Moment from the cord = [ 0. -8.32050294 0. ]\n"},"key":"Z2ePJ7APLz"}],"key":"PbzBbd8YxZ"}],"key":"bGxiGZqap4"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":252,"column":1},"end":{"line":252,"column":1}},"children":[{"type":"text","value":"Now all you need to do is find the reaction force and moment.","position":{"start":{"line":252,"column":1},"end":{"line":252,"column":1}},"key":"WpJpJp5nt2"}],"key":"k3Psw5E4qC"}],"key":"PeN66ZyeIG"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"equilibrium = np.array([0, 0, 0])\nR = equilibrium - forceCord\nM = equilibrium - momentCord\nprint(\"Reaction force =\", R)\nprint(\"Reaction moment =\", M)","key":"yyYAaQk8gG"},{"type":"outputs","id":"IKoGR1Q4a-AacDMjCOIH6","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"Reaction force = [-4.16025147 0. 2.77350098]\nReaction moment = [0. 8.32050294 0. ]\n"},"key":"wgj5JMHzG7"}],"key":"TO8ygqrIEG"}],"key":"lYZJ8tyG4Q"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"children":[{"type":"text","value":"Another Example","position":{"start":{"line":262,"column":1},"end":{"line":262,"column":1}},"key":"bvnmSXZgH7"}],"identifier":"another-example","label":"Another Example","html_id":"another-example","implicit":true,"key":"XA8OlOJZb8"},{"type":"paragraph","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"children":[{"type":"text","value":"Let’s look at a slightly more complicated model. In this example you will be observing a beam with two cables and an applied force. This time you need to find both the tension in the cords and the reaction forces of the beam. ","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"IkAyTNBBPx"},{"type":"emphasis","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"children":[{"type":"text","value":"(Source: ","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"Nh0OOYrO70"},{"type":"link","url":"https://www.mheducation.com/highered/product/Vector-Mechanics-for-Engineers-Statics-and-Dynamics-Beer.html","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"children":[{"type":"text","value":"Vector Mechanics for Engineers: Statics and Dynamics","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"pvnx0K07Jz"}],"urlSource":"https://www.mheducation.com/highered/product/Vector-Mechanics-for-Engineers-Statics-and-Dynamics-Beer.html","key":"JN6WHpaGQS"},{"type":"text","value":", Problem 4.106)","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"JslhJKylF5"}],"key":"mOTcluUEVw"}],"key":"aFV39ImYiG"},{"type":"image","url":"/numpy-tutorials/build/problem4-98b2af0b05614d3695278a22cfcda74d.png","alt":"image.png","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"xzKpDy3dFF","urlSource":"_static/problem4.png"},{"type":"paragraph","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"children":[{"type":"text","value":"Define distance ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"CunDuacuya"},{"type":"emphasis","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"children":[{"type":"text","value":"a","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"laKo4LDRN8"}],"key":"XJOzbHJU2X"},{"type":"text","value":" as 3 meters","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"B1DADpA3zO"}],"key":"uIFYbthcLY"},{"type":"paragraph","position":{"start":{"line":271,"column":1},"end":{"line":271,"column":1}},"children":[{"type":"text","value":"As before, start by defining the location of each relevant point as an array.","position":{"start":{"line":271,"column":1},"end":{"line":271,"column":1}},"key":"MsrUSaJp8S"}],"key":"exIhMVli7W"}],"key":"aGhrerrGEl"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"A = np.array([0, 0, 0])\nB = np.array([0, 3, 0])\nC = np.array([0, 6, 0])\nD = np.array([1.5, 0, -3])\nE = np.array([1.5, 0, 3])\nF = np.array([-3, 0, 2])","key":"CVT0QZizBp"},{"type":"outputs","id":"prRYSnKlFQv8M9pwZs36w","children":[],"key":"mH3JqAgfXq"}],"key":"O1PgqF6Apt"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"children":[{"type":"text","value":"From these equations, you start by determining vector directions with unit vectors.","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"jrcG18sh7O"}],"key":"FXpLepHk56"}],"key":"tnjX3nbIZO"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"AB = B - C\nAC = C - A\nBD = D - B\nBE = E - B\nCF = F - C\n\nUnitBD = BD / np.linalg.norm(BD)\nUnitBE = BE / np.linalg.norm(BE)\nUnitCF = CF / np.linalg.norm(CF)\n\nRadBD = np.cross(AB, UnitBD)\nRadBE = np.cross(AB, UnitBE)\nRadCF = np.cross(AC, UnitCF)","key":"T6uRiJSx18"},{"type":"outputs","id":"Q2wAylbw5gssM2MaiZLFA","children":[],"key":"VoKVqlg2uW"}],"key":"IYXOpI44En"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":300,"column":1},"end":{"line":300,"column":1}},"children":[{"type":"text","value":"This lets you represent the tension (T) and reaction (R) forces acting on the system as","position":{"start":{"line":300,"column":1},"end":{"line":300,"column":1}},"key":"JzgFEcuGEB"}],"key":"tFYO9SKfPK"},{"type":"math","value":"\\left[\n\\begin{array}{ccccc}\n~1/3 & 1/3 & 1 & 0 & 0\\\\\n-2/3 & -2/3 & 0 & 1 & 0\\\\\n-2/3 & 2/3 & 0 & 0 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\nR_{x}\\\\\nR_{y}\\\\\nR_{z}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~195\\\\\n390\\\\\n-130\\\\\n\\end{array}\n\\right]","position":{"start":{"line":302,"column":1},"end":{"line":325,"column":1}},"html":"[ 1/31/31002/32/30102/32/3001][ TBDTBERxRyRz]=[ 195390130]\\left[\n\\begin{array}{ccccc}\n~1/3 & 1/3 & 1 & 0 & 0\\\\\n-2/3 & -2/3 & 0 & 1 & 0\\\\\n-2/3 & 2/3 & 0 & 0 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\nR_{x}\\\\\nR_{y}\\\\\nR_{z}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~195\\\\\n390\\\\\n-130\\\\\n\\end{array}\n\\right] 1/32/32/31/32/32/3100010001 TBDTBERxRyRz= 195390130","enumerator":"7","key":"P0Q5k1eCs0"},{"type":"paragraph","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"children":[{"type":"text","value":"and the moments as","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"key":"JUUTJ5RbJg"}],"key":"QABzLPoJDJ"},{"type":"math","value":"\\left[\n\\begin{array}{cc}\n~2 & -2\\\\\n1 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~780\\\\\n1170\\\\\n\\end{array}\n\\right]","position":{"start":{"line":329,"column":1},"end":{"line":347,"column":1}},"html":"[ 2211][ TBDTBE]=[ 7801170]\\left[\n\\begin{array}{cc}\n~2 & -2\\\\\n1 & 1\\\\\n\\end{array}\n\\right]\n\\left[\n\\begin{array}{c}\n~T_{BD}\\\\\nT_{BE}\\\\\n\\end{array}\n\\right]\n=\n\\left[\n\\begin{array}{c}\n~780\\\\\n1170\\\\\n\\end{array}\n\\right][ 2121][ TBDTBE]=[ 7801170]","enumerator":"8","key":"FArSnHTune"},{"type":"paragraph","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"children":[{"type":"text","value":"Where ","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"key":"EuutdRkEOC"},{"type":"inlineMath","value":"T","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"html":"TTT","key":"wtXWkYVnRo"},{"type":"text","value":" is the tension in the respective cord and ","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"key":"w3A1OGCW9e"},{"type":"inlineMath","value":"R","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"html":"RRR","key":"N9Rv1Z4A3W"},{"type":"text","value":" is the reaction force in a respective direction. Then you just have six equations:","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"key":"BAJK3vN3VZ"}],"key":"LTbXd8a9Hx"},{"type":"paragraph","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"children":[{"type":"inlineMath","value":"\\sum F_{x} = 0 = T_{BE}/3+T_{BD}/3-195+R_{x}","position":{"start":{"line":352,"column":1},"end":{"line":352,"column":1}},"html":"Fx=0=TBE/3+TBD/3195+Rx\\sum F_{x} = 0 = T_{BE}/3+T_{BD}/3-195+R_{x}Fx=0=TBE/3+TBD/3195+Rx","key":"ViDRpQVowR"}],"key":"CjqbBinbIp"},{"type":"paragraph","position":{"start":{"line":354,"column":1},"end":{"line":354,"column":1}},"children":[{"type":"inlineMath","value":"\\sum F_{y} = 0 = (-\\frac{2}{3})T_{BE}-\\frac{2}{3}T_{BD}-390+R_{y}","position":{"start":{"line":354,"column":1},"end":{"line":354,"column":1}},"html":"Fy=0=(23)TBE23TBD390+Ry\\sum F_{y} = 0 = (-\\frac{2}{3})T_{BE}-\\frac{2}{3}T_{BD}-390+R_{y}Fy=0=(32)TBE32TBD390+Ry","key":"y1xUptuF2G"}],"key":"QaUJCtcMUP"},{"type":"paragraph","position":{"start":{"line":356,"column":1},"end":{"line":356,"column":1}},"children":[{"type":"inlineMath","value":"\\sum F_{z} = 0 = (-\\frac{2}{3})T_{BE}+\\frac{2}{3}T_{BD}+130+R_{z}","position":{"start":{"line":356,"column":1},"end":{"line":356,"column":1}},"html":"Fz=0=(23)TBE+23TBD+130+Rz\\sum F_{z} = 0 = (-\\frac{2}{3})T_{BE}+\\frac{2}{3}T_{BD}+130+R_{z}Fz=0=(32)TBE+32TBD+130+Rz","key":"cCrZxlKy2z"}],"key":"fPot6aLsoL"},{"type":"paragraph","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"children":[{"type":"inlineMath","value":"\\sum M_{x} = 0 = 780+2T_{BE}-2T_{BD}","position":{"start":{"line":358,"column":1},"end":{"line":358,"column":1}},"html":"Mx=0=780+2TBE2TBD\\sum M_{x} = 0 = 780+2T_{BE}-2T_{BD}Mx=0=780+2TBE2TBD","key":"Dk9l5AnkcR"}],"key":"Bl3p5w4gFe"},{"type":"paragraph","position":{"start":{"line":360,"column":1},"end":{"line":360,"column":1}},"children":[{"type":"inlineMath","value":"\\sum M_{z} = 0 = 1170-T_{BE}-T_{BD}","position":{"start":{"line":360,"column":1},"end":{"line":360,"column":1}},"html":"Mz=0=1170TBETBD\\sum M_{z} = 0 = 1170-T_{BE}-T_{BD}Mz=0=1170TBETBD","key":"bEbIzy0Ijn"}],"key":"o7RBTKqZ9M"},{"type":"paragraph","position":{"start":{"line":363,"column":1},"end":{"line":363,"column":1}},"children":[{"type":"text","value":"You now have five unknowns with five equations, and can solve for:","position":{"start":{"line":363,"column":1},"end":{"line":363,"column":1}},"key":"nc3QTkPquU"}],"key":"iOWhZLT7pL"},{"type":"paragraph","position":{"start":{"line":365,"column":1},"end":{"line":365,"column":1}},"children":[{"type":"inlineMath","value":"\\ T_{BD} = 780N","position":{"start":{"line":365,"column":1},"end":{"line":365,"column":1}},"html":" TBD=780N\\ T_{BD} = 780N TBD=780N","key":"IK2056SFls"}],"key":"GugHYe0zBF"},{"type":"paragraph","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"children":[{"type":"inlineMath","value":"\\ T_{BE} = 390N","position":{"start":{"line":367,"column":1},"end":{"line":367,"column":1}},"html":" TBE=390N\\ T_{BE} = 390N TBE=390N","key":"euoYXtNWLt"}],"key":"MK6o2Obvky"},{"type":"paragraph","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"children":[{"type":"inlineMath","value":"\\ R_{x} = -195N","position":{"start":{"line":369,"column":1},"end":{"line":369,"column":1}},"html":" Rx=195N\\ R_{x} = -195N Rx=195N","key":"YDvG0rC6bC"}],"key":"iEP3K0XyWF"},{"type":"paragraph","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"children":[{"type":"inlineMath","value":"\\ R_{y} = 1170N","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"html":" Ry=1170N\\ R_{y} = 1170N Ry=1170N","key":"jBVYpDO1Db"}],"key":"ia00JaPJYE"},{"type":"paragraph","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"children":[{"type":"inlineMath","value":"\\ R_{z} = 130N","position":{"start":{"line":373,"column":1},"end":{"line":373,"column":1}},"html":" Rz=130N\\ R_{z} = 130N Rz=130N","key":"YchQQThlti"}],"key":"YeXBDH1vrG"}],"key":"GTSEmEAemv"},{"type":"block","position":{"start":{"line":375,"column":1},"end":{"line":375,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"text","value":"Wrapping up","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"YQ4tE68A10"}],"identifier":"wrapping-up","label":"Wrapping up","html_id":"wrapping-up","implicit":true,"key":"iZZGYXTt7q"},{"type":"paragraph","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"children":[{"type":"text","value":"You have learned how to use arrays to represent points, forces, and moments in three dimensional space. Each entry in an array can be used to represent a physical property broken into directional components. These can then be easily manipulated with NumPy functions.","position":{"start":{"line":379,"column":1},"end":{"line":379,"column":1}},"key":"Afkx6ZQLTm"}],"key":"ifOXrcd4MD"},{"type":"heading","depth":3,"position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"children":[{"type":"text","value":"Additional Applications","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"KLRoAfyeKJ"}],"identifier":"additional-applications","label":"Additional Applications","html_id":"additional-applications","implicit":true,"key":"KppCdD5Gnx"},{"type":"paragraph","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"text","value":"This same process can be applied to kinetic problems or in any number of dimensions. The examples done in this tutorial assumed three dimensional problems in static equilibrium. These methods can easily be used in more varied problems. More or less dimensions require larger or smaller arrays to represent. In systems experiencing acceleration, velocity and acceleration can be similarly be represented as vectors as well.","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"F3F14SDgKs"}],"key":"pqOzOqY20Y"},{"type":"heading","depth":3,"position":{"start":{"line":385,"column":1},"end":{"line":385,"column":1}},"children":[{"type":"text","value":"References","position":{"start":{"line":385,"column":1},"end":{"line":385,"column":1}},"key":"waGKLgxTRE"}],"identifier":"references","label":"References","html_id":"references","implicit":true,"key":"MLzL6AzLdF"},{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":387,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":387,"column":1},"end":{"line":387,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://www.mheducation.com/highered/product/Vector-Mechanics-for-Engineers-Statics-and-Dynamics-Beer.html","position":{"start":{"line":387,"column":1},"end":{"line":387,"column":1}},"children":[{"type":"text","value":"Vector Mechanics for Engineers: Statics and Dynamics (Beer & Johnston & Mazurek & et al.)","position":{"start":{"line":387,"column":1},"end":{"line":387,"column":1}},"key":"hgzGBPDJQS"}],"urlSource":"https://www.mheducation.com/highered/product/Vector-Mechanics-for-Engineers-Statics-and-Dynamics-Beer.html","key":"YHydKE82ib"}],"key":"WYr3HM9h99"}],"key":"NPxgVb49dY"},{"type":"listItem","spread":true,"position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/doc/stable/reference/","position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"children":[{"type":"text","value":"NumPy Reference","position":{"start":{"line":388,"column":1},"end":{"line":388,"column":1}},"key":"QhRZVOUx7h"}],"urlSource":"https://numpy.org/doc/stable/reference/","key":"bVkTGXpWfy"}],"key":"VMM6mJ8kuc"}],"key":"nVfTIuejGF"}],"key":"ldpFeyxORa"}],"key":"g5HVRTrNvq"}],"key":"eCOt4cBZNi"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"X-ray image processing","url":"/tutorial-x-ray-image-processing","group":"Applications"},"next":{"title":"Plotting Fractals","url":"/tutorial-plotting-fractals","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-static-equilibrium/index.html b/tutorial-static-equilibrium/index.html new file mode 100644 index 00000000..2e7e3beb --- /dev/null +++ b/tutorial-static-equilibrium/index.html @@ -0,0 +1,194 @@ +Determining Static Equilibrium in NumPy - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Determining Static Equilibrium in NumPy

When analyzing physical structures, it is crucial to understand the mechanics keeping them stable. Applied forces on a floor, a beam, or any other structure, create reaction forces and moments. These reactions are the structure resisting movement without breaking. In cases where structures do not move despite having forces applied to them, Newton’s second law states that both the acceleration and sum of forces in all directions in the system must be zero. You can represent and solve this concept with NumPy arrays.

What you’ll do:

  • In this tutorial, you will use NumPy to create vectors and moments using NumPy arrays

  • Solve problems involving cables and floors holding up structures

  • Write NumPy matrices to isolate unkowns

  • Use NumPy functions to perform linear algebra operations

What you’ll learn:

  • How to represent points, vectors, and moments with NumPy.

  • How to find the normal of vectors

  • Using NumPy to compute matrix calculations

What you’ll need:

imported with the following comands:

import numpy as np
+import matplotlib.pyplot as plt

In this tutorial you will use the following NumPy tools:

  • np.linalg.norm : this function determines the measure of vector magnitude

  • np.cross : this function takes two matrices and produces the cross product

Solving equilibrium with Newton’s second law

Your model consists of a beam under a sum of forces and moments. You can start analyzing this system with Newton’s second law:

force=mass×acceleration.\sum{\text{force}} = \text{mass} \times \text{acceleration}.

In order to simplify the examples looked at, assume they are static, with acceleration =0=0. Due to our system existing in three dimensions, consider forces being applied in each of these dimensions. This means that you can represent these forces as vectors. You come to the same conclusion for moments, which result from forces being applied a certain distance away from an object’s center of mass.

Assume that the force FF is represented as a three-dimensional vector

F=(Fx,Fy,Fz)F = (F_x, F_y, F_z)

where each of the three components represent the magnitude of the force being applied in each corresponding direction. Assume also that each component in the vector

r=(rx,ry,rz)r = (r_x, r_y, r_z)

is the distance between the point where each component of the force is applied and the centroid of the system. Then, the moment can be computed by

r×F=(rx,ry,rz)×(Fx,Fy,Fz).r \times F = (r_x, r_y, r_z) \times (F_x, F_y, F_z).

Start with some simple examples of force vectors

forceA = np.array([1, 0, 0])
+forceB = np.array([0, 1, 0])
+print("Force A =", forceA)
+print("Force B =", forceB)
Force A = [1 0 0]
+Force B = [0 1 0]
+

This defines forceA as being a vector with magnitude of 1 in the xx direction and forceB as magnitude 1 in the yy direction.

It may be helpful to visualize these forces in order to better understand how they interact with each other. +Matplotlib is a library with visualization tools that can be utilized for this purpose. +Quiver plots will be used to demonstrate three dimensional vectors, but the library can also be used for two dimensional demonstrations.

fig = plt.figure()
+
+d3 = fig.add_subplot(projection="3d")
+
+d3.set_xlim(-1, 1)
+d3.set_ylim(-1, 1)
+d3.set_zlim(-1, 1)
+
+x, y, z = np.array([0, 0, 0])  # defining the point of application.  Make it the origin
+
+u, v, w = forceA  # breaking the force vector into individual components
+d3.quiver(x, y, z, u, v, w, color="r", label="forceA")
+
+u, v, w = forceB
+d3.quiver(x, y, z, u, v, w, color="b", label="forceB")
+
+d3.legend()
<Figure size 640x480 with 1 Axes>

There are two forces emanating from a single point. In order to simplify this problem, you can add them together to find the sum of forces. Note that both forceA and forceB are three-dimensional vectors, represented by NumPy as arrays with three components. Because NumPy is meant to simplify and optimize operations between vectors, you can easily compute the sum of these two vectors as follows:

forceC = forceA + forceB
+print("Force C =", forceC)
Force C = [1 1 0]
+

Force C now acts as a single force that represents both A and B. +You can plot it to see the result.

fig = plt.figure()
+
+d3 = fig.add_subplot(projection="3d")
+
+d3.set_xlim(-1, 1)
+d3.set_ylim(-1, 1)
+d3.set_zlim(-1, 1)
+
+x, y, z = np.array([0, 0, 0])
+
+u, v, w = forceA
+d3.quiver(x, y, z, u, v, w, color="r", label="forceA")
+u, v, w = forceB
+d3.quiver(x, y, z, u, v, w, color="b", label="forceB")
+u, v, w = forceC
+d3.quiver(x, y, z, u, v, w, color="g", label="forceC")
+
+d3.legend()
<Figure size 640x480 with 1 Axes>

However, the goal is equilibrium. +This means that you want your sum of forces to be (0,0,0)(0, 0, 0) or else your object will experience acceleration. +Therefore, there needs to be another force that counteracts the prior ones.

You can write this problem as A+B+R=0A+B+R=0, with RR being the reaction force that solves the problem.

In this example this would mean:

(1,0,0)+(0,1,0)+(Rx,Ry,Rz)=(0,0,0)(1, 0, 0) + (0, 1, 0) + (R_x, R_y, R_z) = (0, 0, 0)

Broken into xx, yy, and zz components this gives you:

{1+0+Rx=00+1+Ry=00+0+Rz=0\begin{cases} +1+0+R_x=0\\ +0+1+R_y=0\\ +0+0+R_z=0 +\end{cases}

solving for RxR_x, RyR_y, and RzR_z gives you a vector RR of (1,1,0)(-1, -1, 0).

If plotted, the forces seen in prior examples should be nullified. +Only if there is no force remaining is the system considered to be in equilibrium.

R = np.array([-1, -1, 0])
+
+fig = plt.figure()
+
+d3.set_xlim(-1, 1)
+d3.set_ylim(-1, 1)
+d3.set_zlim(-1, 1)
+
+d3 = fig.add_subplot(projection="3d")
+
+x, y, z = np.array([0, 0, 0])
+
+u, v, w = forceA + forceB + R  # add them all together for sum of forces
+d3.quiver(x, y, z, u, v, w)
<mpl_toolkits.mplot3d.art3d.Line3DCollection at 0x7f665c7d05c0>
<Figure size 640x480 with 1 Axes>

The empty graph signifies that there are no outlying forces. This denotes a system in equilibrium.

Solving Equilibrium as a sum of moments

Next let’s move to a more complicated application. +When forces are not all applied at the same point, moments are created.

Similar to forces, these moments must all sum to zero, otherwise rotational acceleration will be experienced. Similar to the sum of forces, this creates a linear equation for each of the three coordinate directions in space.

A simple example of this would be from a force applied to a stationary pole secured in the ground. +The pole does not move, so it must apply a reaction force. +The pole also does not rotate, so it must also be creating a reaction moment. +Solve for both the reaction force and moments.

Let’s say a 5N force is applied perpendicularly 2m above the base of the pole.

f = 5  # Force in newtons
+L = 2  # Length of the pole
+
+R = 0 - f
+M = 0 - f * L
+print("Reaction force =", R)
+print("Reaction moment =", M)
Reaction force = -5
+Reaction moment = -10
+

Finding values with physical properties

Let’s say that instead of a force acting perpendicularly to the beam, a force was applied to our pole through a wire that was also attached to the ground. +Given the tension in this cord, all you need to solve this problem are the physical locations of these objects.

Image representing the problem

In response to the forces acting upon the pole, the base generated reaction forces in the x and y directions, as well as a reaction moment.

Denote the base of the pole as the origin. +Now, say the cord is attached to the ground 3m in the x direction and attached to the pole 2m up, in the z direction.

Define these points in space as NumPy arrays, and then use those arrays to find directional vectors.

poleBase = np.array([0, 0, 0])
+cordBase = np.array([3, 0, 0])
+cordConnection = np.array([0, 0, 2])
+
+poleDirection = cordConnection - poleBase
+print("Pole direction =", poleDirection)
+cordDirection = cordBase - cordConnection
+print("Cord direction =", cordDirection)
Pole direction = [0 0 2]
+Cord direction = [ 3  0 -2]
+

In order to use these vectors in relation to forces you need to convert them into unit vectors. +Unit vectors have a magnitude of one, and convey only the direction of the forces.

cordUnit = cordDirection / np.linalg.norm(cordDirection)
+print("Cord unit vector =", cordUnit)
Cord unit vector = [ 0.83205029  0.         -0.5547002 ]
+

You can then multiply this direction with the magnitude of the force in order to find the force vector.

Let’s say the cord has a tension of 5N:

cordTension = 5
+forceCord = cordUnit * cordTension
+print("Force from the cord =", forceCord)
Force from the cord = [ 4.16025147  0.         -2.77350098]
+

In order to find the moment you need the cross product of the force vector and the radius.

momentCord = np.cross(forceCord, poleDirection)
+print("Moment from the cord =", momentCord)
Moment from the cord = [ 0.         -8.32050294  0.        ]
+

Now all you need to do is find the reaction force and moment.

equilibrium = np.array([0, 0, 0])
+R = equilibrium - forceCord
+M = equilibrium - momentCord
+print("Reaction force =", R)
+print("Reaction moment =", M)
Reaction force = [-4.16025147  0.          2.77350098]
+Reaction moment = [0.         8.32050294 0.        ]
+

Another Example

Let’s look at a slightly more complicated model. In this example you will be observing a beam with two cables and an applied force. This time you need to find both the tension in the cords and the reaction forces of the beam. (Source: Vector Mechanics for Engineers: Statics and Dynamics, Problem 4.106)

image.png

Define distance a as 3 meters

As before, start by defining the location of each relevant point as an array.

A = np.array([0, 0, 0])
+B = np.array([0, 3, 0])
+C = np.array([0, 6, 0])
+D = np.array([1.5, 0, -3])
+E = np.array([1.5, 0, 3])
+F = np.array([-3, 0, 2])

From these equations, you start by determining vector directions with unit vectors.

AB = B - C
+AC = C - A
+BD = D - B
+BE = E - B
+CF = F - C
+
+UnitBD = BD / np.linalg.norm(BD)
+UnitBE = BE / np.linalg.norm(BE)
+UnitCF = CF / np.linalg.norm(CF)
+
+RadBD = np.cross(AB, UnitBD)
+RadBE = np.cross(AB, UnitBE)
+RadCF = np.cross(AC, UnitCF)

This lets you represent the tension (T) and reaction (R) forces acting on the system as

[ 1/31/31002/32/30102/32/3001][ TBDTBERxRyRz]=[ 195390130]\left[ +\begin{array}{ccccc} +~1/3 & 1/3 & 1 & 0 & 0\\ +-2/3 & -2/3 & 0 & 1 & 0\\ +-2/3 & 2/3 & 0 & 0 & 1\\ +\end{array} +\right] +\left[ +\begin{array}{c} +~T_{BD}\\ +T_{BE}\\ +R_{x}\\ +R_{y}\\ +R_{z}\\ +\end{array} +\right] += +\left[ +\begin{array}{c} +~195\\ +390\\ +-130\\ +\end{array} +\right]

and the moments as

[ 2211][ TBDTBE]=[ 7801170]\left[ +\begin{array}{cc} +~2 & -2\\ +1 & 1\\ +\end{array} +\right] +\left[ +\begin{array}{c} +~T_{BD}\\ +T_{BE}\\ +\end{array} +\right] += +\left[ +\begin{array}{c} +~780\\ +1170\\ +\end{array} +\right]

Where TT is the tension in the respective cord and RR is the reaction force in a respective direction. Then you just have six equations:

Fx=0=TBE/3+TBD/3195+Rx\sum F_{x} = 0 = T_{BE}/3+T_{BD}/3-195+R_{x}

Fy=0=(23)TBE23TBD390+Ry\sum F_{y} = 0 = (-\frac{2}{3})T_{BE}-\frac{2}{3}T_{BD}-390+R_{y}

Fz=0=(23)TBE+23TBD+130+Rz\sum F_{z} = 0 = (-\frac{2}{3})T_{BE}+\frac{2}{3}T_{BD}+130+R_{z}

Mx=0=780+2TBE2TBD\sum M_{x} = 0 = 780+2T_{BE}-2T_{BD}

Mz=0=1170TBETBD\sum M_{z} = 0 = 1170-T_{BE}-T_{BD}

You now have five unknowns with five equations, and can solve for:

 TBD=780N\ T_{BD} = 780N

 TBE=390N\ T_{BE} = 390N

 Rx=195N\ R_{x} = -195N

 Ry=1170N\ R_{y} = 1170N

 Rz=130N\ R_{z} = 130N

Wrapping up

You have learned how to use arrays to represent points, forces, and moments in three dimensional space. Each entry in an array can be used to represent a physical property broken into directional components. These can then be easily manipulated with NumPy functions.

Additional Applications

This same process can be applied to kinetic problems or in any number of dimensions. The examples done in this tutorial assumed three dimensional problems in static equilibrium. These methods can easily be used in more varied problems. More or less dimensions require larger or smaller arrays to represent. In systems experiencing acceleration, velocity and acceleration can be similarly be represented as vectors as well.

References

  1. Vector Mechanics for Engineers: Statics and Dynamics (Beer & Johnston & Mazurek & et al.)

  2. NumPy Reference

\ No newline at end of file diff --git a/tutorial-style-guide.json b/tutorial-style-guide.json new file mode 100644 index 00000000..cf0426c3 --- /dev/null +++ b/tutorial-style-guide.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"fad287dad680784777946fad7a72829688ed76f3b85903c38f3d32581b294db1","slug":"tutorial-style-guide","location":"/content/tutorial-style-guide.md","dependencies":[],"frontmatter":{"title":"Learn to write a NumPy tutorial","short_title":"Style Guide","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-style-guide.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-style-guide.md","thumbnail":"/numpy-tutorials/build/56554e3d11983df8f484e8d7b2c2bdae.png","exports":[{"format":"md","filename":"tutorial-style-guide.md","url":"/numpy-tutorials/build/tutorial-style-guide-40911a2ae7a60825bedee4ac0467c8a7.md"}]},"mdast":{"type":"root","children":[{"type":"block","children":[{"type":"image","url":"/numpy-tutorials/build/56554e3d11983df8f484e8d7b2c2bdae.png","alt":"The Diátaxis framework for documentation dividing tutorials, how-to guides, explanation, and reference","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"key":"TlxN1kKcCG","urlSource":"https://diataxis.fr/_images/diataxis.png"},{"type":"paragraph","children":[{"type":"text","value":"Image credit: Daniele Procida's ","key":"tWUGH6meIS"},{"type":"link","url":"https://diataxis.fr/","children":[{"type":"text","value":"Diátaxis framework","key":"B4zhTdl7PJ"}],"urlSource":"https://diataxis.fr/","key":"tQIbtQfh9v"},{"type":"text","value":", licensed under ","key":"Rfjm4lAsrN"},{"type":"link","url":"https://creativecommons.org/licenses/by-sa/4.0/","children":[{"type":"text","value":"CC-BY-SA 4.0","key":"qHNMiuy52N"}],"urlSource":"https://creativecommons.org/licenses/by-sa/4.0/","key":"Yic0WE5CGD"},{"type":"text","value":".","key":"zlatmpG7c9"}],"key":"nMlxOqG45z"}],"key":"ti2FD25HKy"},{"type":"block","position":{"start":{"line":20,"column":1},"end":{"line":20,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":22,"column":1},"end":{"line":22,"column":1}},"key":"fQolctYEIQ"}],"identifier":"what-youll-do","label":"What you’ll do","html_id":"what-youll-do","implicit":true,"key":"MfQRk27OW3"},{"type":"paragraph","position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"children":[{"type":"text","value":"Guided by a template, you’ll write a NumPy tutorial.","position":{"start":{"line":24,"column":1},"end":{"line":24,"column":1}},"key":"PPVYzcMGuM"}],"key":"Y2FAR6Egxx"},{"type":"heading","depth":2,"position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":26,"column":1},"end":{"line":26,"column":1}},"key":"XAOZY2avga"}],"identifier":"what-youll-learn","label":"What you’ll learn","html_id":"what-youll-learn","implicit":true,"key":"AHpI52q6cC"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":28,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":28,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"children":[{"type":"text","value":"You’ll be able to craft a tutorial that follows a standard format and reflects good teaching practice.","position":{"start":{"line":28,"column":1},"end":{"line":28,"column":1}},"key":"EH8h3ZmP3R"}],"key":"uBOTiYTBNq"}],"key":"lzXfS51rA2"},{"type":"listItem","spread":true,"position":{"start":{"line":30,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"You’ll learn the three standard headings that open a NumPy tutorial -- ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"TBDYfvVwRL"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"What you’ll do,","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"pzOXEX9t8x"}],"key":"DwjBh8OVyl"},{"type":"text","value":" ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"TVciZCfCHj"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"What you’ll learn,","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"Znh9vmeaW7"}],"key":"scyuEZzmgr"},{"type":"text","value":" and ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"HlVQtYvIIr"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"SUZHsWSN4I"}],"key":"l6IuB106l5"},{"type":"text","value":" -- and some optional headings for the bottom -- ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"CrQxby0UUL"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"On your own,","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"pyrhOzy7Ul"}],"key":"l32Agkgi8B"},{"type":"text","value":" ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"ecIo7JNfcS"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"In practice,","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"o0vSmHXszL"}],"key":"NAP5DNvDP8"},{"type":"text","value":" ","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"rz1ECBrXeW"},{"type":"strong","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"children":[{"type":"text","value":"Further reading.","position":{"start":{"line":30,"column":1},"end":{"line":30,"column":1}},"key":"m2bDCuNpfx"}],"key":"U865bLggLX"}],"key":"V5uyBzM90l"}],"key":"bko6ovWITI"},{"type":"listItem","spread":true,"position":{"start":{"line":32,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"text","value":"You’ll know what makes ","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"bbOburqrwZ"},{"type":"strong","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"ChUF6t93af"}],"key":"b2nh49TRNu"},{"type":"text","value":" different from ","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"nbZ8ali2ld"},{"type":"strong","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"children":[{"type":"text","value":"What you’ll do.","position":{"start":{"line":32,"column":1},"end":{"line":32,"column":1}},"key":"zOy4X3CaiU"}],"key":"e1kTHNYf2i"}],"key":"RrPmS4cHGs"}],"key":"uoMODO4WhI"},{"type":"listItem","spread":true,"position":{"start":{"line":34,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"You’ll be able to distinguish a ","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"c3RFB9Nxiv"},{"type":"strong","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"tutorial","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"bXhUtj5pNP"}],"key":"zwVvtZYbXq"},{"type":"text","value":" from a ","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"aTGTzyUy4n"},{"type":"strong","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"text","value":"how-to","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"UM0HEnARfQ"}],"key":"Gq672kJJur"},{"type":"text","value":".","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"MAvcdLkL15"}],"key":"uBRdAMokNk"}],"key":"RpMiD0PIlP"},{"type":"listItem","spread":true,"position":{"start":{"line":36,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"text","value":"You’ll learn what not to put in a ","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"DuhXP5Fh42"},{"type":"strong","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"OYjq3OLKJ7"}],"key":"Cqxx8tTN50"},{"type":"text","value":" section.","position":{"start":{"line":36,"column":1},"end":{"line":36,"column":1}},"key":"P5rNQBfA1C"}],"key":"yUQatUeYw5"}],"key":"KfjuelpfIT"}],"key":"H0iN2TNMno"},{"type":"heading","depth":2,"position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":38,"column":1},"end":{"line":38,"column":1}},"key":"hINvxsATfw"}],"identifier":"what-youll-need","label":"What you’ll need","html_id":"what-youll-need","implicit":true,"key":"gFUQrlsV6b"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":40,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":40,"column":1},"end":{"line":41,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"children":[{"type":"text","value":"This template.","position":{"start":{"line":40,"column":1},"end":{"line":40,"column":1}},"key":"WZxIXnDHJ3"}],"key":"J7sM0E2mwG"}],"key":"yNctVHtyDZ"},{"type":"listItem","spread":true,"position":{"start":{"line":42,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"children":[{"type":"text","value":"A portrait of your intended reader.","position":{"start":{"line":42,"column":1},"end":{"line":42,"column":1}},"key":"TVQVQUkYMN"}],"key":"IYBGzf4CRc"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":43,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Just as schools list prerequisites for higher-level courses, you can assume readers know some things (which you must list, as noted in the next bullet). Overexplaining bogs down the tutorial and obscures the main points.","position":{"start":{"line":43,"column":1},"end":{"line":43,"column":1}},"key":"JDLcIO5wpy"}],"key":"AxnbgZE7dP"}],"key":"jVmucKrd0E"},{"type":"listItem","spread":true,"position":{"start":{"line":44,"column":1},"end":{"line":46,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"But also put yourself in the reader’s place and consider what to explain along the way.","position":{"start":{"line":44,"column":1},"end":{"line":44,"column":1}},"key":"su5mmMtWKK"}],"key":"gmTY8lVgmV"}],"key":"WmTcYP7hLZ"}],"key":"iYyiUqgF8K"}],"key":"s4ExTe9a6X"},{"type":"listItem","spread":true,"position":{"start":{"line":47,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"children":[{"type":"text","value":"“What you’ll need” is a list of:","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"rAqHav2yMg"}],"key":"VKBvMQTjVM"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":49,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"packages that must be present on the user’s machine before they begin. Don’t include ","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"W7WY5uYJ4Y"},{"type":"inlineCode","value":"numpy","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"fsIbzmQUX2"},{"type":"text","value":".","position":{"start":{"line":49,"column":1},"end":{"line":49,"column":1}},"key":"jEpLnolGzZ"}],"key":"HizyZqANnN"}],"key":"Ugh1BEApv3"},{"type":"listItem","spread":true,"position":{"start":{"line":50,"column":1},"end":{"line":52,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"what you assumed the reader knew in the bullet above. Don’t say ","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"Gtj397LzqH"},{"type":"inlineCode","value":"Python","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"GlOHnwpbMV"},{"type":"text","value":"; ","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"i3oxv2fh3J"},{"type":"inlineCode","value":"familiarity with Python iterators","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"c4KFfKD30X"},{"type":"text","value":" is fine.","position":{"start":{"line":50,"column":1},"end":{"line":50,"column":1}},"key":"WuihHX28Ub"}],"key":"sqsyo6n7Rm"}],"key":"hz7MKj7RR6"}],"key":"ldlvBtkosK"}],"key":"ZlP4riErx3"},{"type":"listItem","spread":true,"position":{"start":{"line":53,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"children":[{"type":"text","value":"Informality and enthusiasm. Imagine your reader not out in the audience but next to you.","position":{"start":{"line":53,"column":1},"end":{"line":53,"column":1}},"key":"akTcnCod1c"}],"key":"Cd1UE8C3tC"}],"key":"F5YI8Xi2UW"},{"type":"listItem","spread":true,"position":{"start":{"line":55,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"Willingness to write incomplete sentences for the ","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"YNLVz822Lh"},{"type":"strong","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"children":[{"type":"text","value":"What you’ll need","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"Hm2kQkEc3c"}],"key":"m48W1z7ODn"},{"type":"text","value":" bullets. They don’t begin with the words “You’ll need.”","position":{"start":{"line":55,"column":1},"end":{"line":55,"column":1}},"key":"RFw1nTmnDg"}],"key":"Z0PCgBIJuz"}],"key":"iWLWQwy6k6"},{"type":"listItem","spread":true,"position":{"start":{"line":57,"column":1},"end":{"line":59,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"strong","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"text","value":"Not","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"mG7fqUt622"}],"key":"lrB8AEpVt7"},{"type":"text","value":" required are native English skills. Others can help.","position":{"start":{"line":57,"column":1},"end":{"line":57,"column":1}},"key":"KBI1Wt12as"}],"key":"Jl23aYuOw5"}],"key":"TTnGjou5xT"}],"key":"AHZJPACvP1"},{"type":"thematicBreak","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"ouv83PF5GY"},{"type":"heading","depth":2,"position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"text","value":"After a horizontal rule, start your own headings","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"FWBJIMg0v2"}],"identifier":"after-a-horizontal-rule-start-your-own-headings","label":"After a horizontal rule, start your own headings","html_id":"after-a-horizontal-rule-start-your-own-headings","implicit":true,"key":"IwBW1bdYwb"},{"type":"paragraph","position":{"start":{"line":64,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"text","value":"Your tutorial steps begin here, using headings of your choice. At the end of the tutorial you’ll place another horizontal rule and return to standard headings.","position":{"start":{"line":64,"column":1},"end":{"line":64,"column":1}},"key":"ZnBjXgv80I"}],"key":"onxNHH7Ezr"},{"type":"heading","depth":2,"position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"children":[{"type":"text","value":"Titles have verbs","position":{"start":{"line":67,"column":1},"end":{"line":67,"column":1}},"key":"jsFWLdf0gK"}],"identifier":"titles-have-verbs","label":"Titles have verbs","html_id":"titles-have-verbs","implicit":true,"key":"ZtaUbIWux9"},{"type":"paragraph","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"text","value":"In general, include a verb in the title; thus ","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"BN4yGUPfYA"},{"type":"strong","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"children":[{"type":"text","value":"Learn to write a NumPy tutorial","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"ATPowOwMcS"}],"key":"ufk67ctIpO"},{"type":"text","value":" rather than “Rules for NumPy tutorials.” Consider putting verbs in the headings as well.","position":{"start":{"line":69,"column":1},"end":{"line":69,"column":1}},"key":"HSXOKsR8F5"}],"key":"dHEFkzRF9K"},{"type":"heading","depth":2,"position":{"start":{"line":72,"column":1},"end":{"line":72,"column":1}},"children":[{"type":"text","value":"Titles are lowercase","position":{"start":{"line":72,"column":1},"end":{"line":72,"column":1}},"key":"TbpB8eJDKd"}],"identifier":"titles-are-lowercase","label":"Titles are lowercase","html_id":"titles-are-lowercase","implicit":true,"key":"UCSAdfeqFS"},{"type":"paragraph","position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"children":[{"type":"text","value":"Capitalize the first word, and after that only words that are ordinarily capitalized (so not “Titles Are Lowercase”).","position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"key":"FBC8TdNINX"}],"key":"b5sKfgbVm7"},{"type":"heading","depth":2,"position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"children":[{"type":"text","value":"What to say in “What you’ll learn”","position":{"start":{"line":77,"column":1},"end":{"line":77,"column":1}},"key":"NaTnGxh0KB"}],"identifier":"what-to-say-in-what-youll-learn","label":"What to say in “What you’ll learn”","html_id":"what-to-say-in-what-youll-learn","implicit":true,"key":"pixKx0OpDf"},{"type":"paragraph","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"children":[{"type":"text","value":"Avoid abstraction. “About” is a tipoff: Rather than writing “You’ll learn about NumPy I/O,” write “You’ll learn how to read a comma-delimited text file into a NumPy array.”","position":{"start":{"line":79,"column":1},"end":{"line":79,"column":1}},"key":"JrZAXazA5L"}],"key":"BAuaKQIlbY"},{"type":"heading","depth":2,"position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"children":[{"type":"text","value":"Why are “What you’ll do” and “What you’ll learn” different?","position":{"start":{"line":82,"column":1},"end":{"line":82,"column":1}},"key":"iD1Y1JtoLr"}],"identifier":"why-are-what-youll-do-and-what-youll-learn-different","label":"Why are “What you’ll do” and “What you’ll learn” different?","html_id":"why-are-what-youll-do-and-what-youll-learn-different","implicit":true,"key":"UADzbc2vA8"},{"type":"paragraph","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"strong","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"OTZso8500I"}],"key":"g2oCXFKgMG"},{"type":"text","value":" is typically one sentence listing an end product: “You’ll bake a cake.” This makes the endpoint clear. ","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"GxVPcD3kLx"},{"type":"strong","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"MnvO08z7vJ"}],"key":"jxF85SABG9"},{"type":"text","value":" lists the payoffs, and there may be many: “You’ll learn to follow a recipe. You’ll get practice measuring ingredients. You’ll learn how to tell when a cake is ready to come out of the oven.”","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"key":"IJyO1lOgIp"}],"key":"pWnEpUIzBK"},{"type":"heading","depth":2,"position":{"start":{"line":87,"column":1},"end":{"line":87,"column":1}},"children":[{"type":"text","value":"Avoid asides","position":{"start":{"line":87,"column":1},"end":{"line":87,"column":1}},"key":"p6yBtbIlD9"}],"identifier":"avoid-asides","label":"Avoid asides","html_id":"avoid-asides","implicit":true,"key":"ld0G0YymIY"},{"type":"paragraph","position":{"start":{"line":89,"column":1},"end":{"line":89,"column":1}},"children":[{"type":"text","value":"As explained by expert documentation writer ","position":{"start":{"line":89,"column":1},"end":{"line":89,"column":1}},"key":"KcmpQdskqw"},{"type":"link","url":"https://documentation.divio.com/tutorials","position":{"start":{"line":89,"column":1},"end":{"line":89,"column":1}},"children":[{"type":"text","value":"Daniele Procida","position":{"start":{"line":89,"column":1},"end":{"line":89,"column":1}},"key":"OwIRmLRqY8"}],"urlSource":"https://documentation.divio.com/tutorials","key":"aNU0Y6rvef"},{"type":"text","value":":","position":{"start":{"line":89,"column":1},"end":{"line":89,"column":1}},"key":"LSIOH7Bohk"}],"key":"xyXCoNXqfW"},{"type":"blockquote","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"text","value":"Don’t explain anything the learner doesn’t need to know in order to complete the tutorial.","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"WYWOvZe10M"}],"key":"Y7sHYCn8tH"}],"key":"RLoVRbjkcS"},{"type":"paragraph","position":{"start":{"line":93,"column":1},"end":{"line":94,"column":1}},"children":[{"type":"text","value":"Because tutorial steps are chosen to be clear and easy, they may fall short of\nproduction-grade. Yes, you should share this, but not during the tutorial, which should be straightforward and assured. The ","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"ueNG8GV3RS"},{"type":"inlineCode","value":"In practice","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"ejseIxKCeK"},{"type":"text","value":" section is the place for details, exceptions, alternatives, and similar fine print.","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"sUZU1V0Bu6"}],"key":"MmzQS5YCeg"},{"type":"heading","depth":2,"position":{"start":{"line":97,"column":1},"end":{"line":97,"column":1}},"children":[{"type":"text","value":"Use plots and illustrations","position":{"start":{"line":97,"column":1},"end":{"line":97,"column":1}},"key":"OuDwoE5yXm"}],"identifier":"use-plots-and-illustrations","label":"Use plots and illustrations","html_id":"use-plots-and-illustrations","implicit":true,"key":"Xli5vrUt83"},{"type":"paragraph","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"children":[{"type":"text","value":"Figures are a double win; they amplify your points and make the page inviting. Like English skills, artistic skills (or graphic-toolset skills) aren’t required. Even if you only scan a hand illustration, somebody can polish it.","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"jD5up6MwyY"}],"key":"RCp9IcGjWP"},{"type":"paragraph","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"children":[{"type":"text","value":"An illustration below the title, even if it’s only decorative, makes your page distinctive.","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"key":"KcsaafFN7o"}],"key":"UYIAGrSzDZ"},{"type":"heading","depth":2,"position":{"start":{"line":104,"column":1},"end":{"line":104,"column":1}},"children":[{"type":"text","value":"Use real datasets when possible","position":{"start":{"line":104,"column":1},"end":{"line":104,"column":1}},"key":"RurpcZHdjy"}],"identifier":"use-real-datasets-when-possible","label":"Use real datasets when possible","html_id":"use-real-datasets-when-possible","implicit":true,"key":"dd11K2zptI"},{"type":"paragraph","position":{"start":{"line":106,"column":1},"end":{"line":106,"column":1}},"children":[{"type":"text","value":"Readers are likelier to be engaged by a real use case. Be sure you have rights to the data.","position":{"start":{"line":106,"column":1},"end":{"line":106,"column":1}},"key":"WhsG5TTCy5"}],"key":"KYAKqEJpR9"},{"type":"heading","depth":2,"position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"children":[{"type":"text","value":"Tutorials and how-to’s -- similar but different","position":{"start":{"line":109,"column":1},"end":{"line":109,"column":1}},"key":"hTWTXU6NlT"}],"identifier":"tutorials-and-how-tos-similar-but-different","label":"Tutorials and how-to’s -- similar but different","html_id":"tutorials-and-how-tos-similar-but-different","implicit":true,"key":"yIM38mtYV3"},{"type":"paragraph","position":{"start":{"line":111,"column":1},"end":{"line":111,"column":1}},"children":[{"type":"text","value":"Tutorial readers are out-of-towners who want a feel for the place. Pick any single destination and explain sights along the way.","position":{"start":{"line":111,"column":1},"end":{"line":111,"column":1}},"key":"ljpKHZ5mZu"}],"key":"o4D7UJX3k8"},{"type":"paragraph","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"Unlike how-to readers, who know what they need, tutorial readers don’t know what it is they don’t know. So while tutorials need headings like ","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"GL5eNdFwpC"},{"type":"strong","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"What you’ll do","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"OArhKaH8pb"}],"key":"ettqRGwHHu"},{"type":"text","value":" and ","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"kqABbD14D1"},{"type":"strong","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"What you’ll learn","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"fYWZ7FybML"}],"key":"V9iEcigyTY"},{"type":"text","value":", these headings would never appear in a how-to.","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"qTIdNt3xjD"}],"key":"BBFws1bZrH"},{"type":"heading","depth":2,"position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"children":[{"type":"text","value":"Make use of the Google doc style guide","position":{"start":{"line":115,"column":1},"end":{"line":115,"column":1}},"key":"jD5BKnWcBT"}],"identifier":"make-use-of-the-google-doc-style-guide","label":"Make use of the Google doc style guide","html_id":"make-use-of-the-google-doc-style-guide","implicit":true,"key":"KZ8sTpv4tW"},{"type":"paragraph","position":{"start":{"line":117,"column":1},"end":{"line":117,"column":1}},"children":[{"type":"text","value":"NumPy docs follow the ","position":{"start":{"line":117,"column":1},"end":{"line":117,"column":1}},"key":"bemUS3E2lM"},{"type":"link","url":"https://developers.google.com/style/","position":{"start":{"line":117,"column":1},"end":{"line":117,"column":1}},"children":[{"type":"text","value":"Google developer documentation style guide","position":{"start":{"line":117,"column":1},"end":{"line":117,"column":1}},"key":"j3impogy0Y"}],"urlSource":"https://developers.google.com/style/","key":"t59Ux91Ww1"},{"type":"text","value":". In addition to providing answers to recurring questions (“crossreference” or “cross-reference”?) the guide is filled with suggestions that will strengthen your doc writing.","position":{"start":{"line":117,"column":1},"end":{"line":117,"column":1}},"key":"ioyzu9zN6M"}],"key":"AxJeMgUx3J"},{"type":"heading","depth":2,"position":{"start":{"line":119,"column":1},"end":{"line":119,"column":1}},"children":[{"type":"text","value":"The notebook must be fully executable","position":{"start":{"line":119,"column":1},"end":{"line":119,"column":1}},"key":"QnihcbGZ3w"}],"identifier":"the-notebook-must-be-fully-executable","label":"The notebook must be fully executable","html_id":"the-notebook-must-be-fully-executable","implicit":true,"key":"ioOT5vOK0H"},{"type":"paragraph","position":{"start":{"line":121,"column":1},"end":{"line":122,"column":1}},"children":[{"type":"inlineCode","value":"Run all cells","position":{"start":{"line":121,"column":1},"end":{"line":121,"column":1}},"key":"vjjhWYjuTS"},{"type":"text","value":" should execute all cells to the bottom of the file. If you’re demonstrating a bad expression and want to show the traceback, comment\nthe expression and put the traceback in a text cell.","position":{"start":{"line":121,"column":1},"end":{"line":121,"column":1}},"key":"xCswPCnsPD"}],"key":"g9w6MG0Kn6"},{"type":"paragraph","position":{"start":{"line":124,"column":1},"end":{"line":125,"column":1}},"children":[{"type":"text","value":"(Note that triple backquotes won’t be enough for a traceback that contains ","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"D1e9fl3THe"},{"type":"inlineCode","value":"","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"faBIPSUFhW"},{"type":"text","value":",\nthe angle brackets must be replaced by ","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"Sq6l2PVe92"},{"type":"inlineCode","value":"<","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"jhswVMUgB3"},{"type":"text","value":" and ","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"YKXaomwsfX"},{"type":"inlineCode","value":">","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"QbM3rjMpni"},{"type":"text","value":" as shown in the text cell markdown below.)","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"TNl0qNTWYZ"}],"key":"kNwDWSqUei"}],"key":"pGJqWxaEc0"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# 100/0","key":"fO0UY8SiXm"},{"type":"outputs","id":"8NKaiT9loUvbPGK4dvPC4","children":[],"key":"i2Xp71O7qw"}],"key":"P1bAonmVvn"},{"type":"block","children":[{"type":"div","style":{"backgroundColor":"#fcdcdc"},"children":[{"type":"inlineCode","value":"--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) in ----> 1 100/0\n\nZeroDivisionError: division by zero","key":"WuzKotTyzJ"}],"key":"QRfjiKdx88"}],"key":"MR7YANM1Ed"},{"type":"block","position":{"start":{"line":142,"column":1},"end":{"line":142,"column":1}},"children":[{"type":"thematicBreak","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"key":"ORlrOPf9Ko"},{"type":"heading","depth":2,"position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"children":[{"type":"text","value":"On your own","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"N8JrX8Yvkn"}],"identifier":"on-your-own","label":"On your own","html_id":"on-your-own","implicit":true,"key":"c5oRmQOf5E"},{"type":"paragraph","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"children":[{"type":"text","value":"Close the tutorial section with a horizontal rule. You’re free to take any direction now, but here are three suggested sections.","position":{"start":{"line":148,"column":1},"end":{"line":148,"column":1}},"key":"w3lhpVfFZY"}],"key":"f1IF6WeADw"},{"type":"paragraph","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"children":[{"type":"text","value":"In an optional ","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"Ha0tthfPJ1"},{"type":"inlineCode","value":"On your own","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"bfyXKDe9lF"},{"type":"text","value":" section, you can offer an assignment for readers to exercise their new skills. If it’s a question with an answer, provide it -- perhaps in a footnote to keep it from being a spoiler.","position":{"start":{"line":150,"column":1},"end":{"line":150,"column":1}},"key":"ZzHYirk3Lx"}],"key":"JqCHdyZo9d"},{"type":"heading","depth":2,"position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"text","value":"In practice...","position":{"start":{"line":152,"column":1},"end":{"line":152,"column":1}},"key":"k3qhsmcEz9"}],"identifier":"in-practice","label":"In practice...","html_id":"in-practice","implicit":true,"key":"JOuJfIjQe7"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":154,"column":1},"end":{"line":160,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":154,"column":1},"end":{"line":157,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"children":[{"type":"text","value":"The fine print that you avoided can go in this section.","position":{"start":{"line":154,"column":1},"end":{"line":154,"column":1}},"key":"F8XzzVGqGg"}],"key":"PBLKdJcoAh"}],"key":"pKja6BGhU8"},{"type":"listItem","spread":true,"position":{"start":{"line":158,"column":1},"end":{"line":160,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"children":[{"type":"text","value":"Don’t just say it’s usually done another way; explain why.","position":{"start":{"line":158,"column":1},"end":{"line":158,"column":1}},"key":"wCaVaRyeHc"}],"key":"raNxrGI49i"}],"key":"w7mNH2Pv5X"}],"key":"s4L0bZxeEf"},{"type":"heading","depth":2,"position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"children":[{"type":"text","value":"Further reading","position":{"start":{"line":161,"column":1},"end":{"line":161,"column":1}},"key":"DUb4vcEZyX"}],"identifier":"further-reading","label":"Further reading","html_id":"further-reading","implicit":true,"key":"a3nQf1nE8z"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":163,"column":1},"end":{"line":165,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Ideally, rather than giving bare links, ","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"g1ZtgPOLRw"},{"type":"strong","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"children":[{"type":"text","value":"Further reading","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"cSU9Qo6UfC"}],"key":"h2qGX3ugzz"},{"type":"text","value":" describes the references: ","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"Y8Y9sQYd72"},{"type":"link","url":"https://documentation.divio.com/","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"children":[{"type":"text","value":"The Documentation System","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"GwJbzdf7l6"}],"urlSource":"https://documentation.divio.com/","key":"TBA1j0gdt7"},{"type":"text","value":" is the inspiration for this tutorial, and describes three other kinds of documentation.","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"d5AqqPIzGo"}],"key":"jkF2OQn5gP"}],"key":"gCDAmQOPkM"},{"type":"listItem","spread":true,"position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The Google guide is long; there’s also ","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"d43ZJue2bq"},{"type":"link","url":"https://developers.google.com/style/highlights?hl=pt-br","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"children":[{"type":"text","value":"a summary","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"CSYeGafIft"}],"urlSource":"https://developers.google.com/style/highlights?hl=pt-br","key":"Qv30T0IYeh"},{"type":"text","value":".","position":{"start":{"line":164,"column":1},"end":{"line":164,"column":1}},"key":"ZCFuu05gVq"}],"key":"WfkSEpqPsS"}],"key":"Wr6RcrUKp2"},{"type":"listItem","spread":true,"position":{"start":{"line":165,"column":1},"end":{"line":165,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"NumPy’s website includes a ","position":{"start":{"line":165,"column":1},"end":{"line":165,"column":1}},"key":"MNtPmXjGvx"},{"type":"link","url":"https://numpy.org/devdocs/dev/howto-docs.html","position":{"start":{"line":165,"column":1},"end":{"line":165,"column":1}},"children":[{"type":"text","value":"documentation how-to","position":{"start":{"line":165,"column":1},"end":{"line":165,"column":1}},"key":"E6FTqnmOaE"}],"urlSource":"https://numpy.org/devdocs/dev/howto-docs.html","key":"Gx8JRKgXvx"},{"type":"text","value":".","position":{"start":{"line":165,"column":1},"end":{"line":165,"column":1}},"key":"Xn0eKJ2c2W"}],"key":"AP0uyoPfY9"}],"key":"bK89z1Ebb1"}],"key":"KG1m6U5yGq"}],"key":"slvNqufg84"}],"key":"x8sC37PQmG"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Contributing","short_title":"Contributing","url":"/contributing","group":"Features"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-style-guide/index.html b/tutorial-style-guide/index.html new file mode 100644 index 00000000..1fae0c1b --- /dev/null +++ b/tutorial-style-guide/index.html @@ -0,0 +1,40 @@ +Learn to write a NumPy tutorial - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Learn to write a NumPy tutorial

The Diátaxis framework for documentation dividing tutorials, how-to guides, explanation, and reference

Image credit: Daniele Procida's Diátaxis framework, licensed under CC-BY-SA 4.0.

What you’ll do

Guided by a template, you’ll write a NumPy tutorial.

What you’ll learn

  • You’ll be able to craft a tutorial that follows a standard format and reflects good teaching practice.

  • You’ll learn the three standard headings that open a NumPy tutorial -- What you’ll do, What you’ll learn, and What you’ll need -- and some optional headings for the bottom -- On your own, In practice, Further reading.

  • You’ll know what makes What you’ll learn different from What you’ll do.

  • You’ll be able to distinguish a tutorial from a how-to.

  • You’ll learn what not to put in a What you’ll learn section.

What you’ll need

  • This template.

  • A portrait of your intended reader.

    • Just as schools list prerequisites for higher-level courses, you can assume readers know some things (which you must list, as noted in the next bullet). Overexplaining bogs down the tutorial and obscures the main points.

    • But also put yourself in the reader’s place and consider what to explain along the way.

  • “What you’ll need” is a list of:

    • packages that must be present on the user’s machine before they begin. Don’t include numpy.

    • what you assumed the reader knew in the bullet above. Don’t say Python; familiarity with Python iterators is fine.

  • Informality and enthusiasm. Imagine your reader not out in the audience but next to you.

  • Willingness to write incomplete sentences for the What you’ll need bullets. They don’t begin with the words “You’ll need.”

  • Not required are native English skills. Others can help.


After a horizontal rule, start your own headings

Your tutorial steps begin here, using headings of your choice. At the end of the tutorial you’ll place another horizontal rule and return to standard headings.

Titles have verbs

In general, include a verb in the title; thus Learn to write a NumPy tutorial rather than “Rules for NumPy tutorials.” Consider putting verbs in the headings as well.

Titles are lowercase

Capitalize the first word, and after that only words that are ordinarily capitalized (so not “Titles Are Lowercase”).

What to say in “What you’ll learn”

Avoid abstraction. “About” is a tipoff: Rather than writing “You’ll learn about NumPy I/O,” write “You’ll learn how to read a comma-delimited text file into a NumPy array.”

Why are “What you’ll do” and “What you’ll learn” different?

What you’ll do is typically one sentence listing an end product: “You’ll bake a cake.” This makes the endpoint clear. What you’ll learn lists the payoffs, and there may be many: “You’ll learn to follow a recipe. You’ll get practice measuring ingredients. You’ll learn how to tell when a cake is ready to come out of the oven.”

Avoid asides

As explained by expert documentation writer Daniele Procida:

Don’t explain anything the learner doesn’t need to know in order to complete the tutorial.

Because tutorial steps are chosen to be clear and easy, they may fall short of +production-grade. Yes, you should share this, but not during the tutorial, which should be straightforward and assured. The In practice section is the place for details, exceptions, alternatives, and similar fine print.

Use plots and illustrations

Figures are a double win; they amplify your points and make the page inviting. Like English skills, artistic skills (or graphic-toolset skills) aren’t required. Even if you only scan a hand illustration, somebody can polish it.

An illustration below the title, even if it’s only decorative, makes your page distinctive.

Use real datasets when possible

Readers are likelier to be engaged by a real use case. Be sure you have rights to the data.

Tutorials and how-to’s -- similar but different

Tutorial readers are out-of-towners who want a feel for the place. Pick any single destination and explain sights along the way.

Unlike how-to readers, who know what they need, tutorial readers don’t know what it is they don’t know. So while tutorials need headings like What you’ll do and What you’ll learn, these headings would never appear in a how-to.

Make use of the Google doc style guide

NumPy docs follow the Google developer documentation style guide. In addition to providing answers to recurring questions (“crossreference” or “cross-reference”?) the guide is filled with suggestions that will strengthen your doc writing.

The notebook must be fully executable

Run all cells should execute all cells to the bottom of the file. If you’re demonstrating a bad expression and want to show the traceback, comment +the expression and put the traceback in a text cell.

(Note that triple backquotes won’t be enough for a traceback that contains <text inside angle brackets>, +the angle brackets must be replaced by &lt; and &gt; as shown in the text cell markdown below.)

# 100/0
--------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-10-bbe761e74a70> in <module> ----> 1 100/0 + +ZeroDivisionError: division by zero

On your own

Close the tutorial section with a horizontal rule. You’re free to take any direction now, but here are three suggested sections.

In an optional On your own section, you can offer an assignment for readers to exercise their new skills. If it’s a question with an answer, provide it -- perhaps in a footnote to keep it from being a spoiler.

In practice...

  • The fine print that you avoided can go in this section.

  • Don’t just say it’s usually done another way; explain why.

Further reading

  • Ideally, rather than giving bare links, Further reading describes the references: The Documentation System is the inspiration for this tutorial, and describes three other kinds of documentation.

  • The Google guide is long; there’s also a summary.

  • NumPy’s website includes a documentation how-to.

\ No newline at end of file diff --git a/tutorial-svd.json b/tutorial-svd.json new file mode 100644 index 00000000..fb42c0b5 --- /dev/null +++ b/tutorial-svd.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"fbedc5d5b1c3c4def5da14b1627e32cbd4ab0ce76177a8bb533b0eeef41c81e2","slug":"tutorial-svd","location":"/content/tutorial-svd.md","dependencies":[],"frontmatter":{"title":"Linear algebra on n-dimensional arrays","short_title":"Linear Algebra on n-D arrays","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-svd.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-svd.md","exports":[{"format":"md","filename":"tutorial-svd.md","url":"/numpy-tutorials/build/tutorial-svd-36d73926a5c5ee844d1f1103e1f56d10.md"}]},"mdast":{"type":"root","children":[{"type":"block","position":{"start":{"line":17,"column":1},"end":{"line":17,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"children":[{"type":"text","value":"Prerequisites","position":{"start":{"line":19,"column":1},"end":{"line":19,"column":1}},"key":"ZX6PgIc5Ho"}],"identifier":"prerequisites","label":"Prerequisites","html_id":"prerequisites","implicit":true,"key":"GgZ72WESfv"},{"type":"paragraph","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"text","value":"Before reading this tutorial, you should know a bit of Python. If you would like to refresh your memory, take a look at the ","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"nIpE7c7Kxm"},{"type":"link","url":"https://docs.python.org/3/tutorial/","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"children":[{"type":"text","value":"Python tutorial","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"cED5hKGp3p"}],"urlSource":"https://docs.python.org/3/tutorial/","key":"KyjfaMt2Ga"},{"type":"text","value":".","position":{"start":{"line":21,"column":1},"end":{"line":21,"column":1}},"key":"AuLjf8aJPd"}],"key":"JDUSRagwC4"},{"type":"paragraph","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"If you want to be able to run the examples in this tutorial, you should also have ","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"ArC5EoztWz"},{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"matplotlib","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"EXW0FKFeon"}],"urlSource":"https://matplotlib.org/","key":"S9AijszyEP"},{"type":"text","value":" and ","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"W3pZEREQPS"},{"type":"link","url":"https://scipy.org","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"children":[{"type":"text","value":"SciPy","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"tDbzWFXPgM"}],"urlSource":"https://scipy.org","key":"VQhLLz8oUT"},{"type":"text","value":" installed on your computer.","position":{"start":{"line":23,"column":1},"end":{"line":23,"column":1}},"key":"tgt8di0FVz"}],"key":"EyvQPnx4Z9"},{"type":"heading","depth":2,"position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"Learner profile","position":{"start":{"line":25,"column":1},"end":{"line":25,"column":1}},"key":"MRmTjpZoVm"}],"identifier":"learner-profile","label":"Learner profile","html_id":"learner-profile","implicit":true,"key":"gHOIkNbTJo"},{"type":"paragraph","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"This tutorial is for people who have a basic understanding of linear algebra and arrays in NumPy and want to understand how n-dimensional (","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"TR0gGX1dLX"},{"type":"inlineMath","value":"n>=2","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"html":"n>=2n>=2n>=2","key":"gvJoEaiCNV"},{"type":"text","value":") arrays are represented and can be manipulated. In particular, if you don’t know how to apply common functions to n-dimensional arrays (without using for-loops), or if you want to understand axis and shape properties for n-dimensional arrays, this tutorial might be of help.","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"ozlEsbgiVl"}],"key":"LBmpkDcivg"},{"type":"heading","depth":2,"position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"children":[{"type":"text","value":"Learning Objectives","position":{"start":{"line":29,"column":1},"end":{"line":29,"column":1}},"key":"bbqqMqG2KX"}],"identifier":"learning-objectives","label":"Learning Objectives","html_id":"learning-objectives","implicit":true,"key":"E9irtVTQsl"},{"type":"paragraph","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"children":[{"type":"text","value":"After this tutorial, you should be able to:","position":{"start":{"line":31,"column":1},"end":{"line":31,"column":1}},"key":"TRz9qN2DME"}],"key":"sxYZ1k7Fub"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":33,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Understand the difference between one-, two- and n-dimensional arrays in NumPy;","position":{"start":{"line":33,"column":1},"end":{"line":33,"column":1}},"key":"zos7Fl4dee"}],"key":"ab73nPQ8pA"}],"key":"BzIIp1XSaF"},{"type":"listItem","spread":true,"position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Understand how to apply some linear algebra operations to n-dimensional arrays without using for-loops;","position":{"start":{"line":34,"column":1},"end":{"line":34,"column":1}},"key":"vF3NlauVgH"}],"key":"hVPch1YZra"}],"key":"Kct8U3uTaR"},{"type":"listItem","spread":true,"position":{"start":{"line":35,"column":1},"end":{"line":36,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Understand axis and shape properties for n-dimensional arrays.","position":{"start":{"line":35,"column":1},"end":{"line":35,"column":1}},"key":"b9A4kvhrGT"}],"key":"Zr9NVz7kHo"}],"key":"PfjmJq5nad"}],"key":"Vdza5lyRS5"},{"type":"heading","depth":2,"position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"text","value":"Content","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"tOk7eNzs34"}],"identifier":"content","label":"Content","html_id":"content","implicit":true,"key":"PVC2Nz3Pn7"},{"type":"paragraph","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"children":[{"type":"text","value":"In this tutorial, we will use a ","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"DFBJlXoYkZ"},{"type":"link","url":"https://en.wikipedia.org/wiki/Matrix_decomposition","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"children":[{"type":"text","value":"matrix decomposition","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"qlt7X4GIWq"}],"urlSource":"https://en.wikipedia.org/wiki/Matrix_decomposition","data":{"page":"Matrix_decomposition","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"a0A0cATmCn"},{"type":"text","value":" from linear algebra, the Singular Value Decomposition, to generate a compressed approximation of an image. We’ll use the ","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"YXt0sfx6Le"},{"type":"inlineCode","value":"face","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"IBpEYY2LE3"},{"type":"text","value":" image from the ","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"dYdIzlNLcK"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/datasets.html","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"children":[{"type":"text","value":"scipy.datasets","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"SOoBvWsfTL"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/datasets.html","key":"vNeycYvGHH"},{"type":"text","value":" module:","position":{"start":{"line":39,"column":1},"end":{"line":39,"column":1}},"key":"hoYtCDtAJI"}],"key":"mygVzSMhNB"}],"key":"mUEedRg3Fz"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"from scipy.datasets import face\n\nimg = face()","key":"V16AcpPB5U"},{"type":"outputs","id":"e5rgfo4tZ4K3SGosfJyym","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stderr","text":"Downloading file 'face.dat' from 'https://raw.githubusercontent.com/scipy/dataset-face/main/face.dat' to '/home/runner/.cache/scipy-data'.\n"},"key":"RiTvoMh89V"}],"key":"dSRvAx8K7n"}],"key":"AvwxUSMzcT"},{"type":"block","children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Note","key":"BaojllghAx"}],"key":"KPuY1Uxbi3"},{"type":"paragraph","position":{"start":{"line":48,"column":1},"end":{"line":57,"column":1}},"children":[{"type":"text","value":"If you prefer, you can use your own image as you work through this tutorial.\nIn order to transform your image into a NumPy array that can be manipulated, you\ncan use the ","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"jabEWmrzWV"},{"type":"inlineCode","value":"imread","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"JDfILwjjN9"},{"type":"text","value":" function from the\n","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"vnExUS8pK0"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html#module-matplotlib.pyplot","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"text","value":"matplotlib.pyplot","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"Ak8PjRyRXN"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.html#module-matplotlib.pyplot","key":"Knxn4IEpYB"},{"type":"text","value":" submodule.\nAlternatively, you can use the\n","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"aNhMYB40rP"},{"type":"link","url":"https://imageio.readthedocs.io/en/stable/_autosummary/imageio.v3.imread.html","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"text","value":"imageio.imread","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"H90Qvg0AGK"}],"urlSource":"https://imageio.readthedocs.io/en/stable/_autosummary/imageio.v3.imread.html","key":"JdjTHmOiqu"},{"type":"text","value":"\nfunction from the ","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"jYrACfXQtQ"},{"type":"inlineCode","value":"imageio","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"T3tIudhGra"},{"type":"text","value":" library.\nBe aware that if you use your own image, you’ll likely need to adapt the steps below.\nFor more information on how images are treated when converted to NumPy arrays,\nsee ","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"TzvzgGLT9J"},{"type":"link","url":"https://scikit-image.org/docs/stable/user_guide/numpy_images.html","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"children":[{"type":"text","value":"A crash course on NumPy for images","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"tnrYRsRZAY"}],"urlSource":"https://scikit-image.org/docs/stable/user_guide/numpy_images.html","key":"BVPNA96IrY"},{"type":"text","value":" from the ","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"wsBUckPMPI"},{"type":"inlineCode","value":"scikit-image","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"LTo9HGeEMp"},{"type":"text","value":" documentation.","position":{"start":{"line":48,"column":1},"end":{"line":48,"column":1}},"key":"kGmmeSOmyM"}],"key":"mPhvgcqhGQ"}],"key":"PFWaCExHvz"}],"key":"bvZoeO8PRn"},{"type":"block","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"children":[{"type":"text","value":"Now, ","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"itn7Tbw7pV"},{"type":"inlineCode","value":"img","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"tBMBtOR7C4"},{"type":"text","value":" is a NumPy array, as we can see when using the ","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"hfy9n1UEkW"},{"type":"inlineCode","value":"type","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"Eui5L2hCWb"},{"type":"text","value":" function:","position":{"start":{"line":62,"column":1},"end":{"line":62,"column":1}},"key":"NWiYDHjMz8"}],"key":"E73zEugZts"}],"key":"l2YGpw6FOY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"type(img)","key":"kR2g5ZqraG"},{"type":"outputs","id":"nU_Iql_qzHAVAlxOEoxkI","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":2,"metadata":{},"data":{"text/plain":{"content":"numpy.ndarray","content_type":"text/plain"}}},"key":"jt9bWHZnhY"}],"key":"uPnEqjpJ8B"}],"key":"FZ4wTwmrPO"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"We can see the image using the ","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"NYihsQBwTW"},{"type":"link","url":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html#matplotlib.pyplot.imshow","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"matplotlib​.pyplot​.imshow","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"LJQLvwZMu1"}],"urlSource":"https://matplotlib.org/api/_as_gen/matplotlib.pyplot.imshow.html#matplotlib.pyplot.imshow","key":"pQdAJQ4Fv2"},{"type":"text","value":" function & the special iPython command, ","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"VjdbKc7FYI"},{"type":"inlineCode","value":"%matplotlib inline","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"DI0cvKJn0d"},{"type":"text","value":" to display plots inline:","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"W0DQcgQffR"}],"key":"RFK1ZYzevN"}],"key":"uEdN4cNwZ1"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\n\n%matplotlib inline","key":"lmTpOInRjZ"},{"type":"outputs","id":"_DGSEI5k4Zw-erPdlNh00","children":[],"key":"p0NWR33DkQ"}],"key":"pgXd8U3dbf"},{"type":"block","children":[],"key":"y5FE2ascgV"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.imshow(img)","key":"BMBhvfedcc"},{"type":"outputs","id":"KhsGEMGJg0K7oR1yTiQsI","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"a70fadc37715fe59e0c9ec532ed344ed","path":"/numpy-tutorials/build/a70fadc37715fe59e0c9ec532ed344ed.png"}}},"key":"RM1m47kDAu"}],"key":"CGzs6ITABK"}],"key":"p5wceLnxy6"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":81,"column":1},"end":{"line":81,"column":1}},"children":[{"type":"text","value":"Shape, axis and array properties","position":{"start":{"line":81,"column":1},"end":{"line":81,"column":1}},"key":"q1Mf1hmMHv"}],"identifier":"shape-axis-and-array-properties","label":"Shape, axis and array properties","html_id":"shape-axis-and-array-properties","implicit":true,"key":"o9Bfu8lpH9"},{"type":"paragraph","position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"children":[{"type":"text","value":"Note that, in linear algebra, the dimension of a vector refers to the number of entries in an array. In NumPy, it instead defines the number of axes. For example, a 1D array is a vector such as ","position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"key":"gz7YD9IGaC"},{"type":"inlineCode","value":"[1, 2, 3]","position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"key":"hbWXKy5mdD"},{"type":"text","value":", a 2D array is a matrix, and so forth.","position":{"start":{"line":83,"column":1},"end":{"line":83,"column":1}},"key":"u3Zg9BhhBR"}],"key":"isjSuwJHce"},{"type":"paragraph","position":{"start":{"line":85,"column":1},"end":{"line":85,"column":1}},"children":[{"type":"text","value":"First, let’s check for the shape of the data in our array. Since this image is two-dimensional (the pixels in the image form a rectangle), we might expect a two-dimensional array to represent it (a matrix). However, using the ","position":{"start":{"line":85,"column":1},"end":{"line":85,"column":1}},"key":"p1FeIEBOJ4"},{"type":"inlineCode","value":"shape","position":{"start":{"line":85,"column":1},"end":{"line":85,"column":1}},"key":"XXYIRh6aMx"},{"type":"text","value":" property of this NumPy array gives us a different result:","position":{"start":{"line":85,"column":1},"end":{"line":85,"column":1}},"key":"iKpINXcn2D"}],"key":"FCtUDM0CB4"}],"key":"bJMpsxlVNV"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img.shape","key":"qLvFU625B9"},{"type":"outputs","id":"wtQZCvuwBDUzrbRSYnTUQ","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":5,"metadata":{},"data":{"text/plain":{"content":"(768, 1024, 3)","content_type":"text/plain"}}},"key":"YhA5i4lGMD"}],"key":"UIJAmkBy8q"}],"key":"y9TCbbM0Jc"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"text","value":"The output is a ","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"ZFXrEHUquJ"},{"type":"link","url":"https://docs.python.org/dev/tutorial/datastructures.html#tut-tuples","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"text","value":"tuple","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"pANzN3vX7A"}],"urlSource":"https://docs.python.org/dev/tutorial/datastructures.html#tut-tuples","key":"bT9f5kBQkg"},{"type":"text","value":" with three elements, which means that this is a three-dimensional array. Since this is a color image, and we have used the ","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"UuhruBtDkl"},{"type":"inlineCode","value":"imread","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"JuFO0KnyRB"},{"type":"text","value":" function to read it, the data is organized as a 768×1024 grid of pixels, where each pixel contains 3 values representing color channels (red, green and blue - RGB). You can see this by looking at the shape, where the leftmost number corresponds to the outermost axis (image height), the middle number to the next axis (image width) and the rightmost number to the innermost axis (the color channels).","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"jArT3P6YQM"}],"key":"t23yfCfKfu"},{"type":"paragraph","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"children":[{"type":"text","value":"Furthermore, using the ","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"uYkgfGTHox"},{"type":"inlineCode","value":"ndim","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"oMgfnwhmi6"},{"type":"text","value":" property of this array, we can see that","position":{"start":{"line":93,"column":1},"end":{"line":93,"column":1}},"key":"a7zIMPYCDG"}],"key":"VrMIfYqBqQ"}],"key":"LMOPx67lMR"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img.ndim","key":"ZXYbE4l4Ip"},{"type":"outputs","id":"DiUOoXTGBxonfv0vWA_c4","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":6,"metadata":{},"data":{"text/plain":{"content":"3","content_type":"text/plain"}}},"key":"KCWNOmMqHP"}],"key":"itw4TCzgSn"}],"key":"RhaCct5Nbe"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"children":[{"type":"text","value":"NumPy refers to each dimension as an ","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"cjcC4Vf5Gl"},{"type":"emphasis","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"children":[{"type":"text","value":"axis","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"UPWm0r0fYn"}],"key":"wrUPBqv7Aq"},{"type":"text","value":". Because of how ","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"r8IhRoYNR3"},{"type":"inlineCode","value":"imread","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"qR1OTvLmE2"},{"type":"text","value":" works, the ","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"uAaEdF0UrY"},{"type":"emphasis","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"children":[{"type":"text","value":"first index in the 3rd axis","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"vte0LXOvYH"}],"key":"xPjs5Vm05K"},{"type":"text","value":" is the red pixel data for our image. We can access this by using the syntax","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"key":"LV2yIY2FGO"}],"key":"fWrXak6OK9"}],"key":"lYdrPQIStf"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img[:, :, 0]","key":"r1jMz6sTc9"},{"type":"outputs","id":"TT1Ti6-oHIN5izFLp64Ev","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":7,"metadata":{},"data":{"text/plain":{"content":"array([[121, 138, 153, ..., 119, 131, 139],\n [ 89, 110, 130, ..., 118, 134, 146],\n [ 73, 94, 115, ..., 117, 133, 144],\n ...,\n [ 87, 94, 107, ..., 120, 119, 119],\n [ 85, 95, 112, ..., 121, 120, 120],\n [ 85, 97, 111, ..., 120, 119, 118]],\n shape=(768, 1024), dtype=uint8)","content_type":"text/plain"}}},"key":"agj3ELtOAD"}],"key":"GX8uobmxlx"}],"key":"z6miQGVZZw"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":105,"column":1},"end":{"line":106,"column":1}},"children":[{"type":"text","value":"From the output above, we can see that every value in ","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"Hido7Pc7cE"},{"type":"inlineCode","value":"img[:, :, 0]","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"F1XoKjDjrd"},{"type":"text","value":" is an integer value between 0 and 255, representing the level of red in each corresponding image pixel (keep in mind that this might be different if you\nuse your own image instead of ","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"uH3TvKEIcH"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.datasets.face.html","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"children":[{"type":"text","value":"scipy.datasets.face","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"mGCrWLVlXU"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.datasets.face.html","key":"nviZFJmp2z"},{"type":"text","value":").","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"SL8wZGDL4m"}],"key":"syGPOX9Oc7"},{"type":"paragraph","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"children":[{"type":"text","value":"As expected, this is a 768x1024 matrix:","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"EsjKkIJlEj"}],"key":"lJWvOAFhI5"}],"key":"cbYXxTegTM"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img[:, :, 0].shape","key":"kA2jVklcrf"},{"type":"outputs","id":"6FKE0QwXXMre_NoIjv_QX","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":8,"metadata":{},"data":{"text/plain":{"content":"(768, 1024)","content_type":"text/plain"}}},"key":"TvsLDBeX8k"}],"key":"EJrbajlpxe"}],"key":"vEhswiQ01h"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":114,"column":1},"end":{"line":114,"column":1}},"children":[{"type":"text","value":"Since we are going to perform linear algebra operations on this data, it might be more interesting to have real numbers between 0 and 1 in each entry of the matrices to represent the RGB values. We can do that by setting","position":{"start":{"line":114,"column":1},"end":{"line":114,"column":1}},"key":"JHbgAaU6J6"}],"key":"cWxOLvt8Q1"}],"key":"C0o6lzgOBk"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_array = img / 255","key":"kpnKqdi5LR"},{"type":"outputs","id":"pUzpyIYrFV1gjQ2Mgdzye","children":[],"key":"M0JXk56uZY"}],"key":"DGd2KQjB7b"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":120,"column":1},"end":{"line":120,"column":1}},"children":[{"type":"text","value":"This operation, dividing an array by a scalar, works because of NumPy’s ","position":{"start":{"line":120,"column":1},"end":{"line":120,"column":1}},"key":"aaMlMojMVi"},{"type":"link","url":"https://numpy.org/devdocs/user/theory.broadcasting.html#array-broadcasting-in-numpy","position":{"start":{"line":120,"column":1},"end":{"line":120,"column":1}},"children":[{"type":"text","value":"broadcasting rules","position":{"start":{"line":120,"column":1},"end":{"line":120,"column":1}},"key":"ORTxaPyIy4"}],"urlSource":"https://numpy.org/devdocs/user/theory.broadcasting.html#array-broadcasting-in-numpy","key":"XoOUgz3bbD"},{"type":"text","value":".","position":{"start":{"line":120,"column":1},"end":{"line":120,"column":1}},"key":"XQGljrFGv3"}],"key":"BiZzyVyphb"},{"type":"admonition","kind":"tip","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Tip","key":"ZpKyJ1l2T9"}],"key":"e1hyMbNEiV"},{"type":"paragraph","position":{"start":{"line":123,"column":1},"end":{"line":125,"column":1}},"children":[{"type":"text","value":"In real-world applications, it may be better to use, for example, the\n","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"key":"w3gDoRC5Zm"},{"type":"link","url":"https://scikit-image.org/docs/stable/api/skimage.html#skimage.img_as_float","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"children":[{"type":"text","value":"img_as_float","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"key":"yxy2lf990s"}],"urlSource":"https://scikit-image.org/docs/stable/api/skimage.html#skimage.img_as_float","key":"M41KBclJIN"},{"type":"text","value":"\nutility function from ","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"key":"OoWO5fXDye"},{"type":"inlineCode","value":"scikit-image","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"key":"o6dA7ptUor"},{"type":"text","value":".","position":{"start":{"line":123,"column":1},"end":{"line":123,"column":1}},"key":"wYAzd9LA6O"}],"key":"ZCrS8g6EVH"}],"key":"EcotidBBA4"},{"type":"paragraph","position":{"start":{"line":128,"column":1},"end":{"line":129,"column":1}},"children":[{"type":"text","value":"You can check that the above works by doing some tests; for example, inquiring\nabout maximum and minimum values for this array:","position":{"start":{"line":128,"column":1},"end":{"line":128,"column":1}},"key":"HARmAn8Jut"}],"key":"rtkh5Xx6fw"}],"key":"AVvlH6nLFF"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_array.min(), img_array.max()","key":"CvbuMJo9W5"},{"type":"outputs","id":"rapLz3p0e6AGhjfmsiY_A","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":10,"metadata":{},"data":{"text/plain":{"content":"(np.float64(0.0), np.float64(1.0))","content_type":"text/plain"}}},"key":"wlBX3Itljr"}],"key":"ZlI8MpZVSW"}],"key":"te3q3xUr21"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"children":[{"type":"text","value":"or checking the type of data in the array:","position":{"start":{"line":135,"column":1},"end":{"line":135,"column":1}},"key":"R7AzblrTal"}],"key":"PDUW1d1Xvz"}],"key":"EMCaddxCMZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_array.dtype","key":"MlhH2ANaKN"},{"type":"outputs","id":"g8_XdKGLwP2sKobl1M5rx","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":11,"metadata":{},"data":{"text/plain":{"content":"dtype('float64')","content_type":"text/plain"}}},"key":"asi3iuX4nG"}],"key":"wd8nuAoJUs"}],"key":"YQ4cFJ8hom"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"children":[{"type":"text","value":"Note that we can assign each color channel to a separate matrix using the slice syntax:","position":{"start":{"line":141,"column":1},"end":{"line":141,"column":1}},"key":"Nz9Qlmu3Vv"}],"key":"kN7X6B4F6J"}],"key":"B6xH2k9hyd"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"red_array = img_array[:, :, 0]\ngreen_array = img_array[:, :, 1]\nblue_array = img_array[:, :, 2]","key":"z4OJ8VzuOc"},{"type":"outputs","id":"_BrLWDGn9SKOg_t_HegvW","children":[],"key":"k9C7GOE6ui"}],"key":"xocBa4YIHH"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":149,"column":1},"end":{"line":149,"column":1}},"children":[{"type":"text","value":"Operations on an axis","position":{"start":{"line":149,"column":1},"end":{"line":149,"column":1}},"key":"hOUuWqzsPD"}],"identifier":"operations-on-an-axis","label":"Operations on an axis","html_id":"operations-on-an-axis","implicit":true,"key":"RXbGaeWXgq"},{"type":"paragraph","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"children":[{"type":"text","value":"It is possible to use methods from linear algebra to approximate an existing set of data. Here, we will use the ","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"JMtCJupvHk"},{"type":"link","url":"https://en.wikipedia.org/wiki/Singular_value_decomposition","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"children":[{"type":"text","value":"SVD (Singular Value Decomposition)","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"rm2DL77V25"}],"urlSource":"https://en.wikipedia.org/wiki/Singular_value_decomposition","data":{"page":"Singular_value_decomposition","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"SnkHY2K2Ci"},{"type":"text","value":" to try to rebuild an image that uses less singular value information than the original one, while still retaining some of its features.","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"PmFqKPJYuk"}],"key":"vmcMuWva9P"}],"key":"VdrOEuQ0zV"},{"type":"block","position":{"start":{"line":153,"column":1},"end":{"line":153,"column":1}},"children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Note","key":"LwcpXev3Fe"}],"key":"BEY2Wrbc2A"},{"type":"paragraph","position":{"start":{"line":156,"column":1},"end":{"line":166,"column":1}},"children":[{"type":"text","value":"We will use NumPy’s linear algebra module,\n","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"wXEW2g6sVX"},{"type":"link","url":"https://numpy.org/devdocs/reference/routines.linalg.html#module-numpy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"numpy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"W9bQ7lZcwG"}],"urlSource":"https://numpy.org/devdocs/reference/routines.linalg.html#module-numpy.linalg","key":"cOrjjxuHzf"},{"type":"text","value":",\nto perform the operations in this tutorial.\nMost of the linear algebra functions in this module can also be found in\n","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"wl4zIEBLAg"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/linalg.html#module-scipy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"scipy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"gEdfEXjqm1"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/linalg.html#module-scipy.linalg","key":"jiUVaX3Qpn"},{"type":"text","value":",\nand users are encouraged to use the ","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"iMV6yyy7Vc"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/index.html#module-scipy","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"scipy","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"HCfzoRVT6w"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/index.html#module-scipy","key":"RgndqjR1Ty"},{"type":"text","value":"\nmodule for real-world applications.\nHowever, some functions in the\n","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"HCf97Z9wuV"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/linalg.html#module-scipy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"scipy.linalg","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"nD31WN2Xn1"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/linalg.html#module-scipy.linalg","key":"vXlflw4UkQ"},{"type":"text","value":"\nmodule, such as the SVD function, only support 2D arrays.\nFor more information on this, check the ","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"c8sXxCrPYK"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/tutorial/linalg.html","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"children":[{"type":"text","value":"scipy.linalg page","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"k3JXTHZ41r"}],"urlSource":"https://docs.scipy.org/doc/scipy/tutorial/linalg.html","key":"KjKRL5ROLy"},{"type":"text","value":".","position":{"start":{"line":156,"column":1},"end":{"line":156,"column":1}},"key":"TxFavuE7NT"}],"key":"AO287xTX6l"}],"key":"afSuFpgI9v"}],"key":"z9Kq0w97ur"},{"type":"block","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":171,"column":1},"end":{"line":171,"column":1}},"children":[{"type":"text","value":"In order to extract information from a given matrix, we can use the SVD to obtain 3 arrays which can be multiplied to obtain the original matrix. From the theory of linear algebra, given a matrix ","position":{"start":{"line":171,"column":1},"end":{"line":171,"column":1}},"key":"R6clb305yq"},{"type":"inlineMath","value":"A","position":{"start":{"line":171,"column":1},"end":{"line":171,"column":1}},"html":"AAA","key":"V2deXSMjgx"},{"type":"text","value":", the following product can be computed:","position":{"start":{"line":171,"column":1},"end":{"line":171,"column":1}},"key":"kZdB68iuEr"}],"key":"IdFFJ0t1Dj"},{"type":"math","value":"U \\Sigma V^T = A","position":{"start":{"line":173,"column":1},"end":{"line":173,"column":1}},"html":"UΣVT=AU \\Sigma V^T = AUΣVT=A","enumerator":"1","key":"bvsqQhq2QF"},{"type":"paragraph","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"qIitLIBxNL"},{"type":"inlineMath","value":"U","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"UUU","key":"xpTdgnJP9c"},{"type":"text","value":" and ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"jXArW37TXQ"},{"type":"inlineMath","value":"V^T","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"VTV^TVT","key":"bc0b8iriS4"},{"type":"text","value":" are square and ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"kX3INSVgzo"},{"type":"inlineMath","value":"\\Sigma","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"Σ\\SigmaΣ","key":"d866iQsvjF"},{"type":"text","value":" is the same size as ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"hbR6eliIgR"},{"type":"inlineMath","value":"A","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"AAA","key":"UdaMXqiJg6"},{"type":"text","value":". ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"O2uqWBzh8J"},{"type":"inlineMath","value":"\\Sigma","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"Σ\\SigmaΣ","key":"ziEwp9igWD"},{"type":"text","value":" is a diagonal matrix and contains the ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"seJj7u0o6p"},{"type":"link","url":"https://en.wikipedia.org/wiki/Singular_value","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"children":[{"type":"text","value":"singular values","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"fFIbW6b6Iw"}],"urlSource":"https://en.wikipedia.org/wiki/Singular_value","data":{"page":"Singular_value","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"LJaCmAN642"},{"type":"text","value":" of ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"mhhtPERwt5"},{"type":"inlineMath","value":"A","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"AAA","key":"MekZ16fsHb"},{"type":"text","value":", organized from largest to smallest. These values are always non-negative and can be used as an indicator of the “importance” of some features represented by the matrix ","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"sHl568UK9h"},{"type":"inlineMath","value":"A","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"html":"AAA","key":"rBG07rx2ky"},{"type":"text","value":".","position":{"start":{"line":175,"column":1},"end":{"line":175,"column":1}},"key":"FdZwiI5Vh5"}],"key":"Izkno2bXsY"},{"type":"paragraph","position":{"start":{"line":177,"column":1},"end":{"line":178,"column":1}},"children":[{"type":"text","value":"Let’s see how this works in practice with just one matrix first. Note that according to ","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"key":"glmiPWMYxM"},{"type":"link","url":"https://en.wikipedia.org/wiki/Grayscale#Colorimetric_(perceptual_luminance-preserving)_conversion_to_grayscale","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"children":[{"type":"text","value":"colorimetry","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"key":"iNjNbXN9r7"}],"urlSource":"https://en.wikipedia.org/wiki/Grayscale#Colorimetric_(perceptual_luminance-preserving)_conversion_to_grayscale","data":{"page":"Grayscale#Colorimetric_(perceptual_luminance-preserving)_conversion_to_grayscale","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"dcqAlelMKM"},{"type":"text","value":",\nit is possible to obtain a fairly reasonable grayscale version of our color image if we apply the formula","position":{"start":{"line":177,"column":1},"end":{"line":177,"column":1}},"key":"gmnBZ0CFMs"}],"key":"FxxuBMGsRf"},{"type":"math","value":"Y = 0.2126 R + 0.7152 G + 0.0722 B","position":{"start":{"line":180,"column":1},"end":{"line":180,"column":1}},"html":"Y=0.2126R+0.7152G+0.0722BY = 0.2126 R + 0.7152 G + 0.0722 BY=0.2126R+0.7152G+0.0722B","enumerator":"2","key":"b1hjBHMQ48"},{"type":"paragraph","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"children":[{"type":"text","value":"where ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"bb0UlJ3Ajh"},{"type":"inlineMath","value":"Y","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"html":"YYY","key":"xqkSaSzvvx"},{"type":"text","value":" is the array representing the grayscale image, and ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"cqzfzWtp1t"},{"type":"inlineMath","value":"R","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"html":"RRR","key":"K2eXyUd0mv"},{"type":"text","value":", ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"eWScex7LUo"},{"type":"inlineMath","value":"G","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"html":"GGG","key":"Jx7LbIfkM7"},{"type":"text","value":" and ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"x5GPOaFEdA"},{"type":"inlineMath","value":"B","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"html":"BBB","key":"MJYDtYi3OJ"},{"type":"text","value":" are the red, green and blue channel arrays we had originally. Notice we can use the ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"sPtKQzKk3o"},{"type":"inlineCode","value":"@","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"VhgL9T0zsu"},{"type":"text","value":" operator (the matrix multiplication operator for NumPy arrays, see ","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"jga6rvsgi5"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"children":[{"type":"text","value":"numpy.matmul","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"fCcMaRQn8g"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","key":"Yq73XzJ2Dh"},{"type":"text","value":") for this:","position":{"start":{"line":182,"column":1},"end":{"line":182,"column":1}},"key":"jrMTykpViS"}],"key":"GhITGJfuAr"}],"key":"hqSI0QPRlt"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_gray = img_array @ [0.2126, 0.7152, 0.0722]","key":"U9G6Z3Njnc"},{"type":"outputs","id":"GQGaTKFAK7mcEjRDW0yHk","children":[],"key":"t0d2nq8sdy"}],"key":"FVzivpxclZ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":188,"column":1},"end":{"line":188,"column":1}},"children":[{"type":"text","value":"Now, ","position":{"start":{"line":188,"column":1},"end":{"line":188,"column":1}},"key":"ZcFFoEUHeh"},{"type":"inlineCode","value":"img_gray","position":{"start":{"line":188,"column":1},"end":{"line":188,"column":1}},"key":"DCf7ucojD3"},{"type":"text","value":" has shape","position":{"start":{"line":188,"column":1},"end":{"line":188,"column":1}},"key":"Bb2mg7YuXZ"}],"key":"bA8QgRPWBd"}],"key":"WoA2DiVrr6"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_gray.shape","key":"fUfKCeZ2nE"},{"type":"outputs","id":"JYJbDXx4xbbVjfr6l9ik1","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":14,"metadata":{},"data":{"text/plain":{"content":"(768, 1024)","content_type":"text/plain"}}},"key":"eskAOG6yiY"}],"key":"cOkVQ08G3j"}],"key":"otCGLRdUH9"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"children":[{"type":"text","value":"To see if this makes sense in our image, we should use a colormap from ","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"dMGSRXgX6b"},{"type":"inlineCode","value":"matplotlib","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"TYufdWymBM"},{"type":"text","value":" corresponding to the color we wish to see in out image (otherwise, ","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"K7orISJxJz"},{"type":"inlineCode","value":"matplotlib","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"cd8l6Od57m"},{"type":"text","value":" will default to a colormap that does not correspond to the real data).","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"JJHq5soiDv"}],"key":"fdr7VcCtqf"},{"type":"paragraph","position":{"start":{"line":196,"column":1},"end":{"line":196,"column":1}},"children":[{"type":"text","value":"In our case, we are approximating the grayscale portion of the image, so we will use the colormap ","position":{"start":{"line":196,"column":1},"end":{"line":196,"column":1}},"key":"XKTITizLLz"},{"type":"inlineCode","value":"gray","position":{"start":{"line":196,"column":1},"end":{"line":196,"column":1}},"key":"GWDLmNiJOj"},{"type":"text","value":":","position":{"start":{"line":196,"column":1},"end":{"line":196,"column":1}},"key":"b7rqhd3op4"}],"key":"pnJx3UjUg3"}],"key":"d4ueFP5XYs"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.imshow(img_gray, cmap=\"gray\")","key":"efUuxCiMI9"},{"type":"outputs","id":"YI1WsURge2MdNQbGTaenB","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"ae5ff618bce8ea0c89ecbfbdcc1d1f5a","path":"/numpy-tutorials/build/ae5ff618bce8ea0c89ecbfbdcc1d1f5a.png"}}},"key":"lxKxXmcvKB"}],"key":"U0GXQ7jWLs"}],"key":"HVYQ6o3zPL"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"children":[{"type":"text","value":"Now, applying the ","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"jTe7LrXBUe"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.linalg.svd.html#numpy.linalg.svd","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"children":[{"type":"text","value":"linalg.svd","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"oBu9To8OCp"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.linalg.svd.html#numpy.linalg.svd","key":"U051PnP4wc"},{"type":"text","value":" function to this matrix, we obtain the following decomposition:","position":{"start":{"line":203,"column":1},"end":{"line":203,"column":1}},"key":"MDQ8egQwHh"}],"key":"iYwPRef2SV"}],"key":"zu6qD0TWJ4"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np\nU, s, Vt = np.linalg.svd(img_gray)","key":"jcD62Kw8JS"},{"type":"outputs","id":"GpvExn95t0FN9KZ9HP5ce","children":[],"key":"fwcP9LAAMx"}],"key":"snZmQFxKr6"},{"type":"block","children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Note","key":"EZ7GC10tce"}],"key":"Pb1SOew8Jt"},{"type":"paragraph","position":{"start":{"line":211,"column":1},"end":{"line":213,"column":1}},"children":[{"type":"text","value":"If you are using your own image, this command might take a while to run,\ndepending on the size of your image and your hardware.\nDon’t worry, this is normal! The SVD can be a pretty intensive computation.","position":{"start":{"line":211,"column":1},"end":{"line":211,"column":1}},"key":"voat07GHt5"}],"key":"CzxlYnGhDA"}],"key":"JRwhMlB5dy"}],"key":"mUjKoYzb96"},{"type":"block","position":{"start":{"line":216,"column":1},"end":{"line":216,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":218,"column":1},"end":{"line":218,"column":1}},"children":[{"type":"text","value":"Let’s check that this is what we expected:","position":{"start":{"line":218,"column":1},"end":{"line":218,"column":1}},"key":"ba6aAIOpkB"}],"key":"h4xNYVSQM2"}],"key":"q6ZXj18sYI"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"U.shape, s.shape, Vt.shape","key":"NJj6Mtt7q3"},{"type":"outputs","id":"Q2pmsxWRlur9uHrWHeXIW","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":17,"metadata":{},"data":{"text/plain":{"content":"((768, 768), (768,), (1024, 1024))","content_type":"text/plain"}}},"key":"uzIzmkOPnq"}],"key":"J5LtetJmBi"}],"key":"YjzC7RKFLE"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":224,"column":1},"end":{"line":225,"column":1}},"children":[{"type":"text","value":"Note that ","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"udcCO1Ddt8"},{"type":"inlineCode","value":"s","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"IKMlaL9Lyf"},{"type":"text","value":" has a particular shape: it has only one dimension. This means that some linear algebra functions that expect 2d arrays might not work. For example, from the theory, one might expect ","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"hac0JQ87L9"},{"type":"inlineCode","value":"s","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"Lk0otphj92"},{"type":"text","value":" and ","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"MlSc4TQrK8"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"Sy32bj1ISE"},{"type":"text","value":" to be\ncompatible for multiplication. However, this is not true as ","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"FehftNultk"},{"type":"inlineCode","value":"s","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"CL9EQ7GYFx"},{"type":"text","value":" does not have a second axis:","position":{"start":{"line":224,"column":1},"end":{"line":224,"column":1}},"key":"PZfnKYi0b5"}],"key":"hsonyNCNSv"}],"key":"SqmcB6VITg"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"s @ Vt","visibility":"show","key":"Gplavn5sEy"},{"type":"outputs","id":"UweXLQq5Xo9rxEPyfL494","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"error","traceback":"\u001b[31m---------------------------------------------------------------------------\u001b[39m\n\u001b[31mValueError\u001b[39m Traceback (most recent call last)\n\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[18]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43ms\u001b[49m\u001b[43m \u001b[49m\u001b[43m@\u001b[49m\u001b[43m \u001b[49m\u001b[43mVt\u001b[49m\n\n\u001b[31mValueError\u001b[39m: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 1024 is different from 768)","ename":"ValueError","evalue":"matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 1024 is different from 768)"},"key":"qnDm8CDpkz"}],"visibility":"show","key":"uQxzFpWlWS"}],"data":{"tags":["raises-exception"]},"visibility":"show","key":"LEEsOqCSGy"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"children":[{"type":"text","value":"results in a ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"fZHlzCjhK9"},{"type":"inlineCode","value":"ValueError","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"oCwnHD0Mle"},{"type":"text","value":". This happens because having a one-dimensional array for ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"sFeVJyDpBx"},{"type":"inlineCode","value":"s","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"hkKD2ZcYrO"},{"type":"text","value":", in this case, is much more economic in practice than building a diagonal matrix with the same data. To reconstruct the original matrix, we can rebuild the diagonal matrix ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"wc8erqJ4La"},{"type":"inlineMath","value":"\\Sigma","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"html":"Σ\\SigmaΣ","key":"rye6MrW0OX"},{"type":"text","value":" with the elements of ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"aT7eTUUdPx"},{"type":"inlineCode","value":"s","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"EMceQQ8ItJ"},{"type":"text","value":" in its diagonal and with the appropriate dimensions for multiplying: in our case, ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"kA4RWhbQYF"},{"type":"inlineMath","value":"\\Sigma","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"html":"Σ\\SigmaΣ","key":"EJFjbsRKfg"},{"type":"text","value":" should be 768x1024 since ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"nZzL1TXZqt"},{"type":"inlineCode","value":"U","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"Hsq1oiIINz"},{"type":"text","value":" is 768x768 and ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"UbA6Drt23g"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"xlvLjC7AZi"},{"type":"text","value":" is 1024x1024. In order to add the singular values to the diagonal of ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"MCaEJwTKnj"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"T5gwILCl5W"},{"type":"text","value":", we will use the ","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"XITaKEIU3f"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.fill_diagonal.html","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"children":[{"type":"text","value":"fill_diagonal","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"UCCxWmQJZV"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.fill_diagonal.html","key":"SMbAnaFyZJ"},{"type":"text","value":" function from NumPy:","position":{"start":{"line":232,"column":1},"end":{"line":232,"column":1}},"key":"k4hmceCFcY"}],"key":"hg0sRGqYsE"}],"key":"OSKlyK5PRD"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"Sigma = np.zeros((U.shape[1], Vt.shape[0]))\nnp.fill_diagonal(Sigma, s)","key":"CfU3jCOdjW"},{"type":"outputs","id":"5hfoy_U-XJAgAKTzktdtW","children":[],"key":"EluRKCklBM"}],"key":"ATBHcIVHou"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"children":[{"type":"text","value":"Now, we want to check if the reconstructed ","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"key":"TQcWvSungt"},{"type":"inlineCode","value":"U @ Sigma @ Vt","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"key":"EdNkUagf8x"},{"type":"text","value":" is close to the original ","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"key":"zWoPsW82nn"},{"type":"inlineCode","value":"img_gray","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"key":"kZqOvSHpzF"},{"type":"text","value":" matrix.","position":{"start":{"line":239,"column":1},"end":{"line":239,"column":1}},"key":"lLy1g5vvYF"}],"key":"rlVI8PNfiK"}],"key":"n1uwEZmMEl"},{"type":"block","position":{"start":{"line":241,"column":1},"end":{"line":241,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"children":[{"type":"text","value":"Approximation","position":{"start":{"line":243,"column":1},"end":{"line":243,"column":1}},"key":"orGvDPEuMF"}],"identifier":"approximation","label":"Approximation","html_id":"approximation","implicit":true,"key":"F7m9tGumyf"},{"type":"paragraph","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"children":[{"type":"text","value":"The ","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"YFQm2ZPjTA"},{"type":"link","url":"https://numpy.org/devdocs/reference/routines.linalg.html#module-numpy.linalg","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"children":[{"type":"text","value":"linalg","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"KMnwdTDPda"}],"urlSource":"https://numpy.org/devdocs/reference/routines.linalg.html#module-numpy.linalg","key":"neCfpux1zw"},{"type":"text","value":" module includes a ","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"Ea2rpaHNzb"},{"type":"inlineCode","value":"norm","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"I68iDdbdf6"},{"type":"text","value":" function, which computes the norm of a vector or matrix represented in a NumPy array. For example, from the SVD explanation above, we would expect the norm of the difference between ","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"HMfZVJCthY"},{"type":"inlineCode","value":"img_gray","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"lF9FcOSGGG"},{"type":"text","value":" and the reconstructed SVD product to be small. As expected, you should see something like","position":{"start":{"line":245,"column":1},"end":{"line":245,"column":1}},"key":"u3ytLU1pTW"}],"key":"QyW3YwxLH4"}],"key":"nt8mFfiClG"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.linalg.norm(img_gray - U @ Sigma @ Vt)","key":"WpyWBuRqbI"},{"type":"outputs","id":"yRvoFbSbkoLVeUkBREKFG","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":20,"metadata":{},"data":{"text/plain":{"content":"np.float64(1.4314854759568272e-12)","content_type":"text/plain"}}},"key":"ydnpgREWsa"}],"key":"wAu4vKECz2"}],"key":"uA5RnraHo5"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":251,"column":1},"end":{"line":251,"column":1}},"children":[{"type":"text","value":"(The actual result of this operation might be different depending on your architecture and linear algebra setup. Regardless, you should see a small number.)","position":{"start":{"line":251,"column":1},"end":{"line":251,"column":1}},"key":"higmWqoMZQ"}],"key":"PgkkLfEIEQ"},{"type":"paragraph","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"children":[{"type":"text","value":"We could also have used the ","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"key":"EZytBnG0Mr"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.allclose.html#numpy.allclose","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"children":[{"type":"text","value":"numpy.allclose","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"key":"i7gR5JeYkW"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.allclose.html#numpy.allclose","key":"iEUSAEzAwY"},{"type":"text","value":" function to make sure the reconstructed product is, in fact, ","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"key":"LlynWFdvH9"},{"type":"emphasis","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"children":[{"type":"text","value":"close","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"key":"qbedEHrIcJ"}],"key":"ntWK8VVDDy"},{"type":"text","value":" to our original matrix (the difference between the two arrays is small):","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"key":"j83BAW4rQ9"}],"key":"Zp6VCsiUqw"}],"key":"nbEQgS5F44"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"np.allclose(img_gray, U @ Sigma @ Vt)","key":"n8EvNipvDQ"},{"type":"outputs","id":"K01mUFNU-S2ILzYwOUJr4","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":21,"metadata":{},"data":{"text/plain":{"content":"True","content_type":"text/plain"}}},"key":"S9BRav8FDv"}],"key":"RLb1DQigfH"}],"key":"szk8PVaqxS"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":259,"column":1},"end":{"line":259,"column":1}},"children":[{"type":"text","value":"To see if an approximation is reasonable, we can check the values in ","position":{"start":{"line":259,"column":1},"end":{"line":259,"column":1}},"key":"r3n1B55FCu"},{"type":"inlineCode","value":"s","position":{"start":{"line":259,"column":1},"end":{"line":259,"column":1}},"key":"SsNiOyCirs"},{"type":"text","value":":","position":{"start":{"line":259,"column":1},"end":{"line":259,"column":1}},"key":"AApqjWmF5O"}],"key":"EFpWECT5ln"}],"key":"x0AHmS8LEX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.plot(s)","key":"x4IQLMWsti"},{"type":"outputs","id":"N3g7THyIENHrBHG9Ve3uh","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"5bffdb870c5e856cb5ffe56f0d2e9372","path":"/numpy-tutorials/build/5bffdb870c5e856cb5ffe56f0d2e9372.png"}}},"key":"bj9I6C8Liz"}],"key":"ZtHzh70gFj"}],"key":"h6z4H8Yy9f"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"children":[{"type":"text","value":"In the graph, we can see that although we have 768 singular values in ","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"i5HpdsSdY7"},{"type":"inlineCode","value":"s","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"f0NVmO0bO1"},{"type":"text","value":", most of those (after the 150th entry or so) are pretty small. So it might make sense to use only the information related to the first (say, 50) ","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"IM1YSDGgde"},{"type":"emphasis","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"children":[{"type":"text","value":"singular values","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"wsgu9Fg8Gm"}],"key":"zUJQFHKJGh"},{"type":"text","value":" to build a more economical approximation to our image.","position":{"start":{"line":266,"column":1},"end":{"line":266,"column":1}},"key":"N0CpiGZXAP"}],"key":"KJIByEb8bc"},{"type":"paragraph","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"children":[{"type":"text","value":"The idea is to consider all but the first ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"x0wq4Abs9s"},{"type":"inlineCode","value":"k","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"LqLGWJn0JK"},{"type":"text","value":" singular values in ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"MJFNmAsjvV"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"BGMVMyO49v"},{"type":"text","value":" (which are the same as in ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"iqgU6YfRDq"},{"type":"inlineCode","value":"s","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"QRLsm8FRJc"},{"type":"text","value":") as zeros, keeping ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"hvLTnoHSnN"},{"type":"inlineCode","value":"U","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"uevHnIsreo"},{"type":"text","value":" and ","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"QfRnkjO5ei"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"WcwZouRTS7"},{"type":"text","value":" intact, and computing the product of these matrices as the approximation.","position":{"start":{"line":268,"column":1},"end":{"line":268,"column":1}},"key":"pxTGgABiIn"}],"key":"RD7B4NLd4l"},{"type":"paragraph","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"children":[{"type":"text","value":"For example, if we choose","position":{"start":{"line":270,"column":1},"end":{"line":270,"column":1}},"key":"fr1MM7qK6e"}],"key":"XYNwIW7Viy"}],"key":"Au9HFhRIr4"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"k = 10","key":"of1SrnCGph"},{"type":"outputs","id":"cONg4YnB-BMzCrTPJKUZR","children":[],"key":"U86RpGJ6LB"}],"key":"hjHLmFOaNA"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":276,"column":1},"end":{"line":276,"column":1}},"children":[{"type":"text","value":"we can build the approximation by doing","position":{"start":{"line":276,"column":1},"end":{"line":276,"column":1}},"key":"RaOw9bvfmJ"}],"key":"NkVuva3eZK"}],"key":"zns9EMFLW5"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"approx = U @ Sigma[:, :k] @ Vt[:k, :]","key":"SVTQx8j2sJ"},{"type":"outputs","id":"HtBtiXW_IR2lUO3h_eRui","children":[],"key":"qVOhvfaEPc"}],"key":"WjhnelZAjP"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"children":[{"type":"text","value":"Note that we had to use only the first ","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"H24svA7oaj"},{"type":"inlineCode","value":"k","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"a9rmcG8LPQ"},{"type":"text","value":" rows of ","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"FeRDhCIYM9"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"TaWbLEVX4L"},{"type":"text","value":", since all other rows would be multiplied by the zeros corresponding to the singular values we eliminated from this approximation.","position":{"start":{"line":282,"column":1},"end":{"line":282,"column":1}},"key":"ma5OgPxVvw"}],"key":"svnluxGu9M"}],"key":"wf3VoQnMqk"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.imshow(approx, cmap=\"gray\")","key":"qOZKarTfW5"},{"type":"outputs","id":"RoEwh7aNSxm432sopwYso","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"0731d9ff394c572db56e83187ed9a359","path":"/numpy-tutorials/build/0731d9ff394c572db56e83187ed9a359.png"}}},"key":"brf4cE7QV5"}],"key":"WgeUfTavQR"}],"key":"iJqS9EPgq8"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"children":[{"type":"text","value":"Now, you can go ahead and repeat this experiment with other values of ","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"ZSAtzwwWWt"},{"type":"inlineCode","value":"k","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"KR3j2DtVda"},{"type":"text","value":", and each of your experiments should give you a slightly better (or worse) image depending on the value you choose.","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"cN07x2xVWC"}],"key":"dN4zPY0jg0"}],"key":"Nz1eayN9DA"},{"type":"block","position":{"start":{"line":291,"column":1},"end":{"line":291,"column":1}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":293,"column":1},"end":{"line":293,"column":1}},"children":[{"type":"text","value":"Applying to all colors","position":{"start":{"line":293,"column":1},"end":{"line":293,"column":1}},"key":"vRW9ceiPXS"}],"identifier":"applying-to-all-colors","label":"Applying to all colors","html_id":"applying-to-all-colors","implicit":true,"key":"ruU3vRsnXR"},{"type":"paragraph","position":{"start":{"line":295,"column":1},"end":{"line":296,"column":1}},"children":[{"type":"text","value":"Now we want to do the same kind of operation, but to all three colors. Our first instinct might be to repeat the same operation we did above to each color matrix individually. However, NumPy’s ","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"key":"y6JBOyz9VR"},{"type":"emphasis","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"children":[{"type":"text","value":"broadcasting","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"key":"X5fYtCGeVh"}],"key":"Xw475hhZMS"},{"type":"text","value":" takes care of this\nfor us.","position":{"start":{"line":295,"column":1},"end":{"line":295,"column":1}},"key":"yDlLWdi0kA"}],"key":"A1JzjcQIXS"},{"type":"paragraph","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"children":[{"type":"text","value":"If our array has more than two dimensions, then the SVD can be applied to all axes at once. However, the linear algebra functions in NumPy expect to see an array of the form ","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"tIHoYsxSqv"},{"type":"inlineCode","value":"(n, M, N)","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"JR5lAxnu9S"},{"type":"text","value":", where the first axis ","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"DG68I3wZ25"},{"type":"inlineCode","value":"n","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"fkBdcZHJv9"},{"type":"text","value":" represents the number of ","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"Bcp0QvwuNc"},{"type":"inlineCode","value":"MxN","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"bQUQzVi4I0"},{"type":"text","value":" matrices in the stack.","position":{"start":{"line":298,"column":1},"end":{"line":298,"column":1}},"key":"sFDKd470W2"}],"key":"kOwAYba7sh"},{"type":"paragraph","position":{"start":{"line":300,"column":1},"end":{"line":300,"column":1}},"children":[{"type":"text","value":"In our case,","position":{"start":{"line":300,"column":1},"end":{"line":300,"column":1}},"key":"jqiqHyu0aJ"}],"key":"hR4QuirG3F"}],"key":"JnaUoeSOc5"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"img_array.shape","key":"F9SXEzfQ8S"},{"type":"outputs","id":"8Ra-L6gk8qJvX0IjqXNbK","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":26,"metadata":{},"data":{"text/plain":{"content":"(768, 1024, 3)","content_type":"text/plain"}}},"key":"jBp1kO3WlY"}],"key":"svCNdA2l03"}],"key":"WctfvMhG5s"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"children":[{"type":"text","value":"so we need to permutate the axis on this array to get a shape like ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"luL1NW0b6e"},{"type":"inlineCode","value":"(3, 768, 1024)","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"wZLSeQU6zM"},{"type":"text","value":". Fortunately, the ","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"VGblmQALJo"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.transpose.html#numpy.transpose","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"children":[{"type":"text","value":"numpy.transpose","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"a1kYcLlLW4"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.transpose.html#numpy.transpose","key":"eyHcOKiJih"},{"type":"text","value":" function can do that for us:","position":{"start":{"line":306,"column":1},"end":{"line":306,"column":1}},"key":"HJEWEFXiWt"}],"key":"Nlr7MtfnC8"}],"key":"GQ8Iy8BYwO"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# The values in the tuple indicate the original dim, and the order the new axis\n# so axis 2 -> 0, 0 -> 1, and 1 -> 2\nimg_array_transposed = np.transpose(img_array, (2, 0, 1))\nimg_array_transposed.shape","key":"miPI0zyUR8"},{"type":"outputs","id":"BFV1JtZAVubfrl4gpASdG","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":27,"metadata":{},"data":{"text/plain":{"content":"(3, 768, 1024)","content_type":"text/plain"}}},"key":"sxv3AIfvl3"}],"key":"x9C1ZMGHBM"}],"key":"PqAVTYKToo"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":315,"column":1},"end":{"line":315,"column":1}},"children":[{"type":"text","value":"Now we are ready to apply the SVD:","position":{"start":{"line":315,"column":1},"end":{"line":315,"column":1}},"key":"UkajXIU01m"}],"key":"s2W9RjxdPJ"}],"key":"R0ELxHIwq1"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"U, s, Vt = np.linalg.svd(img_array_transposed)","key":"z9dnXIqlbJ"},{"type":"outputs","id":"QORZbXbSmb2_RL0ib0WzR","children":[],"key":"JTnOEFKVtD"}],"key":"mWcO8WfaFR"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":321,"column":1},"end":{"line":321,"column":1}},"children":[{"type":"text","value":"Finally, to obtain the full approximated image, we need to reassemble these matrices into the approximation. Now, note that","position":{"start":{"line":321,"column":1},"end":{"line":321,"column":1}},"key":"sRkVnYXo6y"}],"key":"tr3O7NQ6WK"}],"key":"Kj3RVYT8u2"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"U.shape, s.shape, Vt.shape","key":"DGT35xqALi"},{"type":"outputs","id":"k-K--44LboMwLXrNmqup8","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":29,"metadata":{},"data":{"text/plain":{"content":"((3, 768, 768), (3, 768), (3, 1024, 1024))","content_type":"text/plain"}}},"key":"j14455BdsF"}],"key":"QEA7XNQvRT"}],"key":"L3hkSs9BnE"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"children":[{"type":"text","value":"To build the final approximation matrix, we must understand how multiplication across different axes works.","position":{"start":{"line":327,"column":1},"end":{"line":327,"column":1}},"key":"yRgY2k7nHf"}],"key":"Z46hMOJlGZ"}],"key":"MO11MYVOsI"},{"type":"block","position":{"start":{"line":329,"column":1},"end":{"line":329,"column":1}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":331,"column":1},"end":{"line":331,"column":1}},"children":[{"type":"text","value":"Products with n-dimensional arrays","position":{"start":{"line":331,"column":1},"end":{"line":331,"column":1}},"key":"TyBaQWnV5r"}],"identifier":"products-with-n-dimensional-arrays","label":"Products with n-dimensional arrays","html_id":"products-with-n-dimensional-arrays","implicit":true,"key":"iF53oXp8Rw"},{"type":"paragraph","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"children":[{"type":"text","value":"If you have worked before with only one- or two-dimensional arrays in NumPy, you might use ","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"bD59ZweAxr"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.dot.html#numpy.dot","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"children":[{"type":"text","value":"numpy.dot","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"VMBw7SrUVR"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.dot.html#numpy.dot","key":"P2yz4BScDH"},{"type":"text","value":" and ","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"QyyK3f8d7b"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"children":[{"type":"text","value":"numpy.matmul","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"sC2tk3fW48"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","key":"GJK2clbWIR"},{"type":"text","value":" (or the ","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"JixuueP8qr"},{"type":"inlineCode","value":"@","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"N3YvrzIGAn"},{"type":"text","value":" operator) interchangeably. However, for n-dimensional arrays, they work in very different ways. For more details, check the documentation on ","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"Od43hOx1vT"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"children":[{"type":"text","value":"numpy.matmul","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"BheO3GsFlX"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.matmul.html#numpy.matmul","key":"njLAtuQ7HB"},{"type":"text","value":".","position":{"start":{"line":333,"column":1},"end":{"line":333,"column":1}},"key":"TSRQNtQwjF"}],"key":"FtSZr2yOyz"},{"type":"paragraph","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"children":[{"type":"text","value":"Now, to build our approximation, we first need to make sure that our singular values are ready for multiplication, so we build our ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"B0gojYlgwP"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"q3pYmjrR2Q"},{"type":"text","value":" matrix similarly to what we did before. The ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"ne4TJnNorr"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"FBDgdveZEZ"},{"type":"text","value":" array must have dimensions ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"cBUF9J54tb"},{"type":"inlineCode","value":"(3, 768, 1024)","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"MPsdFhVMJN"},{"type":"text","value":". In order to add the singular values to the diagonal of ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"N6vtMylpHq"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"TZirdUwolp"},{"type":"text","value":", we will again use the ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"zkdBgiiXA1"},{"type":"link","url":"https://numpy.org/devdocs/reference/generated/numpy.fill_diagonal.html","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"children":[{"type":"text","value":"fill_diagonal","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"fcXNdm8lU4"}],"urlSource":"https://numpy.org/devdocs/reference/generated/numpy.fill_diagonal.html","key":"HzDUvz9cWw"},{"type":"text","value":" function, using each of the 3 rows in ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"gz93aWYTZw"},{"type":"inlineCode","value":"s","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"J9s8IR336i"},{"type":"text","value":" as the diagonal for each of the 3 matrices in ","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"jgsUWlf6w9"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"EXJonnWbsp"},{"type":"text","value":":","position":{"start":{"line":335,"column":1},"end":{"line":335,"column":1}},"key":"OHs9hdcLXg"}],"key":"kEQlsMvBAY"}],"key":"WJMvP9gmB5"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"Sigma = np.zeros((3, 768, 1024))\nfor j in range(3):\n np.fill_diagonal(Sigma[j, :, :], s[j, :])","key":"N7WXhaGktO"},{"type":"outputs","id":"nnJXZ8tT01edvXncBiP3t","children":[],"key":"NgyhEP0xQR"}],"key":"fbnDrlUTnw"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":343,"column":1},"end":{"line":343,"column":1}},"children":[{"type":"text","value":"Now, if we wish to rebuild the full SVD (with no approximation), we can do","position":{"start":{"line":343,"column":1},"end":{"line":343,"column":1}},"key":"AICx7w8o3w"}],"key":"cC1WwdIbOF"}],"key":"We4TuvTotT"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"reconstructed = U @ Sigma @ Vt","key":"gUWHY4VtC3"},{"type":"outputs","id":"CKHN8ysnim9yTRudunS2H","children":[],"key":"sSWP7xJFJM"}],"key":"af7tRrGi6X"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"children":[{"type":"text","value":"Note that","position":{"start":{"line":349,"column":1},"end":{"line":349,"column":1}},"key":"IjdjaHxwPG"}],"key":"j0lNGc3KR8"}],"key":"R3eMo0JTe8"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"reconstructed.shape","key":"X5Kd2Y9AJ8"},{"type":"outputs","id":"Ntf5LLmfrJVUc-xJUiYRr","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":32,"metadata":{},"data":{"text/plain":{"content":"(3, 768, 1024)","content_type":"text/plain"}}},"key":"VxdojtuFhK"}],"key":"dpFalTJQLP"}],"key":"oIvspPZ2SZ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":355,"column":1},"end":{"line":355,"column":1}},"children":[{"type":"text","value":"The reconstructed image should be indistinguishable from the original one, except for differences due to floating point errors from the reconstruction. Recall that our original image consisted of floating point values in the range ","position":{"start":{"line":355,"column":1},"end":{"line":355,"column":1}},"key":"NpovfF1p1Q"},{"type":"inlineCode","value":"[0., 1.]","position":{"start":{"line":355,"column":1},"end":{"line":355,"column":1}},"key":"xJYlCxoto2"},{"type":"text","value":". The accumulation of floating point error from the reconstruction can result in values slightly outside this original range:","position":{"start":{"line":355,"column":1},"end":{"line":355,"column":1}},"key":"nvPIaIjz90"}],"key":"qZkYO0gjNW"}],"key":"PO4iCSwskE"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"reconstructed.min(), reconstructed.max()","key":"ZN2J5N1aGD"},{"type":"outputs","id":"wQIFQOL_B5CFTAFYcjzB1","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":33,"metadata":{},"data":{"text/plain":{"content":"(np.float64(-5.0176876542629145e-15), np.float64(1.0000000000000049))","content_type":"text/plain"}}},"key":"BaIwTTJ4t3"}],"key":"lq6EFwoIq2"}],"key":"PB2eS9oAeS"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"children":[{"type":"text","value":"Since ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"g20h7WRdqj"},{"type":"inlineCode","value":"imshow","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"tVR2t9hPaC"},{"type":"text","value":" expects values in the range, we can use ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"OKyHdrMNsO"},{"type":"inlineCode","value":"clip","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"qF51deTpvO"},{"type":"text","value":" to excise the floating point error:","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"b5pEFhyHP8"}],"key":"D0mT2cbzw3"}],"key":"ZcHXFMRG4S"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"reconstructed = np.clip(reconstructed, 0, 1)\n\nfig, ax = plt.subplots()\nax.imshow(np.transpose(reconstructed, (1, 2, 0)))","key":"VaFZMXa4nu"},{"type":"outputs","id":"XQIpZwQrVooKddDg2zvIU","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"77afc43dcd6aa9aa05c2dbe6889dec36","path":"/numpy-tutorials/build/77afc43dcd6aa9aa05c2dbe6889dec36.png"}}},"key":"IG9gbwyRmG"}],"key":"IGgzbd1z1s"}],"key":"ZjTIsddnyM"},{"type":"block","children":[{"type":"admonition","kind":"note","children":[{"type":"admonitionTitle","children":[{"type":"text","value":"Note","key":"MdItvrIOaO"}],"key":"fbIunFblzA"},{"type":"paragraph","position":{"start":{"line":371,"column":1},"end":{"line":374,"column":1}},"children":[{"type":"text","value":"In fact, ","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"iv2njVA9HR"},{"type":"inlineCode","value":"imshow","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"WnrQDIf3wp"},{"type":"text","value":" peforms this clipping under-the-hood, so if you skip the first\nline in the previous code cell, you might see a warning message saying\n","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"xqef6yZ7cV"},{"type":"inlineCode","value":"\"Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\"","position":{"start":{"line":371,"column":1},"end":{"line":371,"column":1}},"key":"kG7H5tMKeg"}],"key":"NagV5KKF9h"}],"key":"uL02nDBq9D"},{"type":"paragraph","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"children":[{"type":"text","value":"Now, to do the approximation, we must choose only the first ","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"L6dFVpzmau"},{"type":"inlineCode","value":"k","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"YgsqLRYYHa"},{"type":"text","value":" singular values for each color channel. This can be done using the following syntax:","position":{"start":{"line":377,"column":1},"end":{"line":377,"column":1}},"key":"Si7h2uZT5g"}],"key":"Nee1diTgeD"}],"key":"wOl6MsELlG"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"approx_img = U @ Sigma[..., :k] @ Vt[..., :k, :]","key":"EaRxvzocnn"},{"type":"outputs","id":"XAebqeGC1dCu6K3wuH7YM","children":[],"key":"qe90pzq9EG"}],"key":"Ctrq9B5oX0"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":383,"column":1},"end":{"line":384,"column":1}},"children":[{"type":"text","value":"You can see that we have selected only the first ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"DwYRPoUeuS"},{"type":"inlineCode","value":"k","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"wBGfSynF3t"},{"type":"text","value":" components of the last axis for ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"LfVQ0XpC3N"},{"type":"inlineCode","value":"Sigma","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"r15fB1VuNp"},{"type":"text","value":" (this means that we have used only the first ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"fBvNdMxbkD"},{"type":"inlineCode","value":"k","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"AwIq1L80nX"},{"type":"text","value":" columns of each of the three matrices in the stack), and that we have selected only the first ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"JSruSqCaHt"},{"type":"inlineCode","value":"k","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"ZAY8d0rlz3"},{"type":"text","value":" components in the second-to-last axis of ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"S4ECfrWKww"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"jqDe3jAYIB"},{"type":"text","value":" (this means we have selected only the first ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"zacLO0QfvD"},{"type":"inlineCode","value":"k","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"Md1UrkCwlc"},{"type":"text","value":" rows from every matrix in the stack ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"gu5yuJMyCw"},{"type":"inlineCode","value":"Vt","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"qIpYBqsbXu"},{"type":"text","value":" and all columns). If you are unfamiliar with the ellipsis syntax, it is a\nplaceholder for other axes. For more details, see the documentation on ","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"EXZxkKH1gM"},{"type":"link","url":"https://numpy.org/devdocs/user/basics.indexing.html#basics-indexing","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"text","value":"Indexing","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"ncwAgTl0sV"}],"urlSource":"https://numpy.org/devdocs/user/basics.indexing.html#basics-indexing","key":"tZSMGIw7FC"},{"type":"text","value":".","position":{"start":{"line":383,"column":1},"end":{"line":383,"column":1}},"key":"MQgROaY4iD"}],"key":"AKDLmfaukA"},{"type":"paragraph","position":{"start":{"line":386,"column":1},"end":{"line":386,"column":1}},"children":[{"type":"text","value":"Now,","position":{"start":{"line":386,"column":1},"end":{"line":386,"column":1}},"key":"OR7HE19txR"}],"key":"DeW2rerr5t"}],"key":"FYwgIIGhSI"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"approx_img.shape","key":"ZAuDBOBIgD"},{"type":"outputs","id":"UI6tlxGNFpcbTaBLIx43a","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":36,"metadata":{},"data":{"text/plain":{"content":"(3, 768, 1024)","content_type":"text/plain"}}},"key":"JeejofJQ5J"}],"key":"sVL2lmNhm8"}],"key":"sp4nkGTULp"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"children":[{"type":"text","value":"which is not the right shape for showing the image. Finally, reordering the axes back to our original shape of ","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"NJLXkTMgE6"},{"type":"inlineCode","value":"(768, 1024, 3)","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"wTefC9mBvE"},{"type":"text","value":", we can see our approximation:","position":{"start":{"line":392,"column":1},"end":{"line":392,"column":1}},"key":"mF2uYpWCgI"}],"key":"ZK6vm0ew1m"}],"key":"m3sY1HG8Ox"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, ax = plt.subplots()\nax.imshow(np.transpose(np.clip(approx_img, 0, 1), (1, 2, 0)))","key":"qo1qcc7u8j"},{"type":"outputs","id":"ks3X8x0mmwbAsxoRB7MwP","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"b2bc20c3465b9a9bf572f1764b65f59b","path":"/numpy-tutorials/build/b2bc20c3465b9a9bf572f1764b65f59b.png"}}},"key":"CGd3HJ4EL0"}],"key":"K0xQDiCrSq"}],"key":"lJV9pytC3S"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"children":[{"type":"text","value":"Even though the image is not as sharp, using a small number of ","position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"key":"ifRjCVaOkR"},{"type":"inlineCode","value":"k","position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"key":"zEN2Hx7OnY"},{"type":"text","value":" singular values (compared to the original set of 768 values), we can recover many of the distinguishing features from this image.","position":{"start":{"line":399,"column":1},"end":{"line":399,"column":1}},"key":"TkciJretbs"}],"key":"Vno2oGq6nM"}],"key":"mzbyohFhKH"},{"type":"block","position":{"start":{"line":401,"column":1},"end":{"line":401,"column":1}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"children":[{"type":"text","value":"Final words","position":{"start":{"line":403,"column":1},"end":{"line":403,"column":1}},"key":"SvnXI5JzKM"}],"identifier":"final-words","label":"Final words","html_id":"final-words","implicit":true,"key":"arWZxEVCSo"},{"type":"paragraph","position":{"start":{"line":405,"column":1},"end":{"line":406,"column":1}},"children":[{"type":"text","value":"Of course, this is not the best method to ","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"key":"LituGahFUj"},{"type":"emphasis","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"children":[{"type":"text","value":"approximate","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"key":"j2zZ9jMOQ4"}],"key":"BU0E1sVQNi"},{"type":"text","value":" an image. However, there is, in fact, a result in linear algebra that says that the approximation we built above is the best we can get to the original matrix in\nterms of the norm of the difference. For more information, see ","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"key":"lW3WgxouTu"},{"type":"emphasis","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"children":[{"type":"text","value":"G. H. Golub and C. F. Van Loan, Matrix Computations, Baltimore, MD, Johns Hopkins University Press, 1985","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"key":"IQ06lk1Esu"}],"key":"mUbEZT9CLn"},{"type":"text","value":".","position":{"start":{"line":405,"column":1},"end":{"line":405,"column":1}},"key":"TTPlSStNAD"}],"key":"xZ0WU5C9pd"},{"type":"heading","depth":2,"position":{"start":{"line":408,"column":1},"end":{"line":408,"column":1}},"children":[{"type":"text","value":"Further reading","position":{"start":{"line":408,"column":1},"end":{"line":408,"column":1}},"key":"GRbh68bmUQ"}],"identifier":"further-reading","label":"Further reading","html_id":"further-reading","implicit":true,"key":"y0m4ohoxrk"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":410,"column":1},"end":{"line":414,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":410,"column":1},"end":{"line":410,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://docs.python.org/dev/tutorial/index.html","position":{"start":{"line":410,"column":1},"end":{"line":410,"column":1}},"children":[{"type":"text","value":"Python tutorial","position":{"start":{"line":410,"column":1},"end":{"line":410,"column":1}},"key":"uYivpU3brR"}],"urlSource":"https://docs.python.org/dev/tutorial/index.html","key":"Gp2vtJPtq5"}],"key":"yXrCqNZuUK"}],"key":"YLMN23ExIN"},{"type":"listItem","spread":true,"position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://numpy.org/devdocs/reference/index.html#reference","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"children":[{"type":"text","value":"NumPy Reference","position":{"start":{"line":411,"column":1},"end":{"line":411,"column":1}},"key":"sbVi9wZBrd"}],"urlSource":"https://numpy.org/devdocs/reference/index.html#reference","key":"teC3GkQR7F"}],"key":"ZFkpdKqgiG"}],"key":"JLoQvtFZls"},{"type":"listItem","spread":true,"position":{"start":{"line":412,"column":1},"end":{"line":412,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://docs.scipy.org/doc/scipy/tutorial/index.html","position":{"start":{"line":412,"column":1},"end":{"line":412,"column":1}},"children":[{"type":"text","value":"SciPy Tutorial","position":{"start":{"line":412,"column":1},"end":{"line":412,"column":1}},"key":"hCuJBhPPMs"}],"urlSource":"https://docs.scipy.org/doc/scipy/tutorial/index.html","key":"bbWCi5erLI"}],"key":"d0kkmgF79G"}],"key":"JnjrAC5eAD"},{"type":"listItem","spread":true,"position":{"start":{"line":413,"column":1},"end":{"line":413,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://scipy-lectures.org","position":{"start":{"line":413,"column":1},"end":{"line":413,"column":1}},"children":[{"type":"text","value":"SciPy Lecture Notes","position":{"start":{"line":413,"column":1},"end":{"line":413,"column":1}},"key":"B1zLEHogS3"}],"urlSource":"https://scipy-lectures.org","key":"lfItTn99s7"}],"key":"J0IXSCbyIN"}],"key":"qOvEEHuURs"},{"type":"listItem","spread":true,"position":{"start":{"line":414,"column":1},"end":{"line":414,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"http://mathesaurus.sf.net/","position":{"start":{"line":414,"column":1},"end":{"line":414,"column":1}},"children":[{"type":"text","value":"A matlab, R, IDL, NumPy/SciPy dictionary","position":{"start":{"line":414,"column":1},"end":{"line":414,"column":1}},"key":"ycFPgbooZf"}],"urlSource":"http://mathesaurus.sf.net/","key":"wq3duHVHZ9"}],"key":"aveLGKGO2m"}],"key":"MN64VKTkJR"}],"key":"JLktME7KHj"}],"key":"tLqQuuRggA"}],"key":"ilJkRxhjFx"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Analyzing the impact of the lockdown on air quality in Delhi, India","short_title":"Analyzing Air Quality","url":"/tutorial-air-quality-analysis","group":"Applications"},"next":{"title":"Saving and sharing your NumPy arrays","short_title":"Sharing Array Data","url":"/save-load-arrays","group":"Features"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-svd/index.html b/tutorial-svd/index.html new file mode 100644 index 00000000..00058d74 --- /dev/null +++ b/tutorial-svd/index.html @@ -0,0 +1,101 @@ +Linear algebra on n-dimensional arrays - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Linear algebra on n-dimensional arrays

Prerequisites

Before reading this tutorial, you should know a bit of Python. If you would like to refresh your memory, take a look at the Python tutorial.

If you want to be able to run the examples in this tutorial, you should also have matplotlib and SciPy installed on your computer.

Learner profile

This tutorial is for people who have a basic understanding of linear algebra and arrays in NumPy and want to understand how n-dimensional (n>=2n>=2) arrays are represented and can be manipulated. In particular, if you don’t know how to apply common functions to n-dimensional arrays (without using for-loops), or if you want to understand axis and shape properties for n-dimensional arrays, this tutorial might be of help.

Learning Objectives

After this tutorial, you should be able to:

  • Understand the difference between one-, two- and n-dimensional arrays in NumPy;

  • Understand how to apply some linear algebra operations to n-dimensional arrays without using for-loops;

  • Understand axis and shape properties for n-dimensional arrays.

Content

In this tutorial, we will use a matrix decomposition from linear algebra, the Singular Value Decomposition, to generate a compressed approximation of an image. We’ll use the face image from the scipy.datasets module:

from scipy.datasets import face
+
+img = face()
Downloading file 'face.dat' from 'https://raw.githubusercontent.com/scipy/dataset-face/main/face.dat' to '/home/runner/.cache/scipy-data'.
+

Now, img is a NumPy array, as we can see when using the type function:

type(img)
numpy.ndarray

We can see the image using the matplotlib.pyplot.imshow function & the special iPython command, %matplotlib inline to display plots inline:

import matplotlib.pyplot as plt
+
+%matplotlib inline
fig, ax = plt.subplots()
+ax.imshow(img)
<Figure size 640x480 with 1 Axes>

Shape, axis and array properties

Note that, in linear algebra, the dimension of a vector refers to the number of entries in an array. In NumPy, it instead defines the number of axes. For example, a 1D array is a vector such as [1, 2, 3], a 2D array is a matrix, and so forth.

First, let’s check for the shape of the data in our array. Since this image is two-dimensional (the pixels in the image form a rectangle), we might expect a two-dimensional array to represent it (a matrix). However, using the shape property of this NumPy array gives us a different result:

img.shape
(768, 1024, 3)

The output is a tuple with three elements, which means that this is a three-dimensional array. Since this is a color image, and we have used the imread function to read it, the data is organized as a 768×1024 grid of pixels, where each pixel contains 3 values representing color channels (red, green and blue - RGB). You can see this by looking at the shape, where the leftmost number corresponds to the outermost axis (image height), the middle number to the next axis (image width) and the rightmost number to the innermost axis (the color channels).

Furthermore, using the ndim property of this array, we can see that

img.ndim
3

NumPy refers to each dimension as an axis. Because of how imread works, the first index in the 3rd axis is the red pixel data for our image. We can access this by using the syntax

img[:, :, 0]
array([[121, 138, 153, ..., 119, 131, 139], + [ 89, 110, 130, ..., 118, 134, 146], + [ 73, 94, 115, ..., 117, 133, 144], + ..., + [ 87, 94, 107, ..., 120, 119, 119], + [ 85, 95, 112, ..., 121, 120, 120], + [ 85, 97, 111, ..., 120, 119, 118]], + shape=(768, 1024), dtype=uint8)

From the output above, we can see that every value in img[:, :, 0] is an integer value between 0 and 255, representing the level of red in each corresponding image pixel (keep in mind that this might be different if you +use your own image instead of scipy.datasets.face).

As expected, this is a 768x1024 matrix:

img[:, :, 0].shape
(768, 1024)

Since we are going to perform linear algebra operations on this data, it might be more interesting to have real numbers between 0 and 1 in each entry of the matrices to represent the RGB values. We can do that by setting

img_array = img / 255

This operation, dividing an array by a scalar, works because of NumPy’s broadcasting rules.

You can check that the above works by doing some tests; for example, inquiring +about maximum and minimum values for this array:

img_array.min(), img_array.max()
(np.float64(0.0), np.float64(1.0))

or checking the type of data in the array:

img_array.dtype
dtype('float64')

Note that we can assign each color channel to a separate matrix using the slice syntax:

red_array = img_array[:, :, 0]
+green_array = img_array[:, :, 1]
+blue_array = img_array[:, :, 2]

Operations on an axis

It is possible to use methods from linear algebra to approximate an existing set of data. Here, we will use the SVD (Singular Value Decomposition) to try to rebuild an image that uses less singular value information than the original one, while still retaining some of its features.

In order to extract information from a given matrix, we can use the SVD to obtain 3 arrays which can be multiplied to obtain the original matrix. From the theory of linear algebra, given a matrix AA, the following product can be computed:

UΣVT=AU \Sigma V^T = A

where UU and VTV^T are square and Σ\Sigma is the same size as AA. Σ\Sigma is a diagonal matrix and contains the singular values of AA, organized from largest to smallest. These values are always non-negative and can be used as an indicator of the “importance” of some features represented by the matrix AA.

Let’s see how this works in practice with just one matrix first. Note that according to colorimetry, +it is possible to obtain a fairly reasonable grayscale version of our color image if we apply the formula

Y=0.2126R+0.7152G+0.0722BY = 0.2126 R + 0.7152 G + 0.0722 B

where YY is the array representing the grayscale image, and RR, GG and BB are the red, green and blue channel arrays we had originally. Notice we can use the @ operator (the matrix multiplication operator for NumPy arrays, see numpy.matmul) for this:

img_gray = img_array @ [0.2126, 0.7152, 0.0722]

Now, img_gray has shape

img_gray.shape
(768, 1024)

To see if this makes sense in our image, we should use a colormap from matplotlib corresponding to the color we wish to see in out image (otherwise, matplotlib will default to a colormap that does not correspond to the real data).

In our case, we are approximating the grayscale portion of the image, so we will use the colormap gray:

fig, ax = plt.subplots()
+ax.imshow(img_gray, cmap="gray")
<Figure size 640x480 with 1 Axes>

Now, applying the linalg.svd function to this matrix, we obtain the following decomposition:

import numpy as np
+U, s, Vt = np.linalg.svd(img_gray)

Let’s check that this is what we expected:

U.shape, s.shape, Vt.shape
((768, 768), (768,), (1024, 1024))

Note that s has a particular shape: it has only one dimension. This means that some linear algebra functions that expect 2d arrays might not work. For example, from the theory, one might expect s and Vt to be +compatible for multiplication. However, this is not true as s does not have a second axis:

s @ Vt
---------------------------------------------------------------------------
+ValueError                                Traceback (most recent call last)
+Cell In[18], line 1
+----> 1 s @ Vt
+
+ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 1024 is different from 768)

results in a ValueError. This happens because having a one-dimensional array for s, in this case, is much more economic in practice than building a diagonal matrix with the same data. To reconstruct the original matrix, we can rebuild the diagonal matrix Σ\Sigma with the elements of s in its diagonal and with the appropriate dimensions for multiplying: in our case, Σ\Sigma should be 768x1024 since U is 768x768 and Vt is 1024x1024. In order to add the singular values to the diagonal of Sigma, we will use the fill_diagonal function from NumPy:

Sigma = np.zeros((U.shape[1], Vt.shape[0]))
+np.fill_diagonal(Sigma, s)

Now, we want to check if the reconstructed U @ Sigma @ Vt is close to the original img_gray matrix.

Approximation

The linalg module includes a norm function, which computes the norm of a vector or matrix represented in a NumPy array. For example, from the SVD explanation above, we would expect the norm of the difference between img_gray and the reconstructed SVD product to be small. As expected, you should see something like

np.linalg.norm(img_gray - U @ Sigma @ Vt)
np.float64(1.4314854759568272e-12)

(The actual result of this operation might be different depending on your architecture and linear algebra setup. Regardless, you should see a small number.)

We could also have used the numpy.allclose function to make sure the reconstructed product is, in fact, close to our original matrix (the difference between the two arrays is small):

np.allclose(img_gray, U @ Sigma @ Vt)
True

To see if an approximation is reasonable, we can check the values in s:

fig, ax = plt.subplots()
+ax.plot(s)
<Figure size 640x480 with 1 Axes>

In the graph, we can see that although we have 768 singular values in s, most of those (after the 150th entry or so) are pretty small. So it might make sense to use only the information related to the first (say, 50) singular values to build a more economical approximation to our image.

The idea is to consider all but the first k singular values in Sigma (which are the same as in s) as zeros, keeping U and Vt intact, and computing the product of these matrices as the approximation.

For example, if we choose

k = 10

we can build the approximation by doing

approx = U @ Sigma[:, :k] @ Vt[:k, :]

Note that we had to use only the first k rows of Vt, since all other rows would be multiplied by the zeros corresponding to the singular values we eliminated from this approximation.

fig, ax = plt.subplots()
+ax.imshow(approx, cmap="gray")
<Figure size 640x480 with 1 Axes>

Now, you can go ahead and repeat this experiment with other values of k, and each of your experiments should give you a slightly better (or worse) image depending on the value you choose.

Applying to all colors

Now we want to do the same kind of operation, but to all three colors. Our first instinct might be to repeat the same operation we did above to each color matrix individually. However, NumPy’s broadcasting takes care of this +for us.

If our array has more than two dimensions, then the SVD can be applied to all axes at once. However, the linear algebra functions in NumPy expect to see an array of the form (n, M, N), where the first axis n represents the number of MxN matrices in the stack.

In our case,

img_array.shape
(768, 1024, 3)

so we need to permutate the axis on this array to get a shape like (3, 768, 1024). Fortunately, the numpy.transpose function can do that for us:

# The values in the tuple indicate the original dim, and the order the new axis
+# so axis 2 -> 0, 0 -> 1, and 1 -> 2
+img_array_transposed = np.transpose(img_array, (2, 0, 1))
+img_array_transposed.shape
(3, 768, 1024)

Now we are ready to apply the SVD:

U, s, Vt = np.linalg.svd(img_array_transposed)

Finally, to obtain the full approximated image, we need to reassemble these matrices into the approximation. Now, note that

U.shape, s.shape, Vt.shape
((3, 768, 768), (3, 768), (3, 1024, 1024))

To build the final approximation matrix, we must understand how multiplication across different axes works.

Products with n-dimensional arrays

If you have worked before with only one- or two-dimensional arrays in NumPy, you might use numpy.dot and numpy.matmul (or the @ operator) interchangeably. However, for n-dimensional arrays, they work in very different ways. For more details, check the documentation on numpy.matmul.

Now, to build our approximation, we first need to make sure that our singular values are ready for multiplication, so we build our Sigma matrix similarly to what we did before. The Sigma array must have dimensions (3, 768, 1024). In order to add the singular values to the diagonal of Sigma, we will again use the fill_diagonal function, using each of the 3 rows in s as the diagonal for each of the 3 matrices in Sigma:

Sigma = np.zeros((3, 768, 1024))
+for j in range(3):
+    np.fill_diagonal(Sigma[j, :, :], s[j, :])

Now, if we wish to rebuild the full SVD (with no approximation), we can do

reconstructed = U @ Sigma @ Vt

Note that

reconstructed.shape
(3, 768, 1024)

The reconstructed image should be indistinguishable from the original one, except for differences due to floating point errors from the reconstruction. Recall that our original image consisted of floating point values in the range [0., 1.]. The accumulation of floating point error from the reconstruction can result in values slightly outside this original range:

reconstructed.min(), reconstructed.max()
(np.float64(-5.0176876542629145e-15), np.float64(1.0000000000000049))

Since imshow expects values in the range, we can use clip to excise the floating point error:

reconstructed = np.clip(reconstructed, 0, 1)
+
+fig, ax = plt.subplots()
+ax.imshow(np.transpose(reconstructed, (1, 2, 0)))
<Figure size 640x480 with 1 Axes>

Now, to do the approximation, we must choose only the first k singular values for each color channel. This can be done using the following syntax:

approx_img = U @ Sigma[..., :k] @ Vt[..., :k, :]

You can see that we have selected only the first k components of the last axis for Sigma (this means that we have used only the first k columns of each of the three matrices in the stack), and that we have selected only the first k components in the second-to-last axis of Vt (this means we have selected only the first k rows from every matrix in the stack Vt and all columns). If you are unfamiliar with the ellipsis syntax, it is a +placeholder for other axes. For more details, see the documentation on Indexing.

Now,

approx_img.shape
(3, 768, 1024)

which is not the right shape for showing the image. Finally, reordering the axes back to our original shape of (768, 1024, 3), we can see our approximation:

fig, ax = plt.subplots()
+ax.imshow(np.transpose(np.clip(approx_img, 0, 1), (1, 2, 0)))
<Figure size 640x480 with 1 Axes>

Even though the image is not as sharp, using a small number of k singular values (compared to the original set of 768 values), we can recover many of the distinguishing features from this image.

Final words

Of course, this is not the best method to approximate an image. However, there is, in fact, a result in linear algebra that says that the approximation we built above is the best we can get to the original matrix in +terms of the norm of the difference. For more information, see G. H. Golub and C. F. Van Loan, Matrix Computations, Baltimore, MD, Johns Hopkins University Press, 1985.

Further reading

\ No newline at end of file diff --git a/tutorial-x-ray-image-processing.json b/tutorial-x-ray-image-processing.json new file mode 100644 index 00000000..9ff969ef --- /dev/null +++ b/tutorial-x-ray-image-processing.json @@ -0,0 +1 @@ +{"version":3,"kind":"Notebook","sha256":"ee4fbf278f075b3b24d40223ccf04a6b7ecf7e4977db763d2a82e24ceac89af3","slug":"tutorial-x-ray-image-processing","location":"/content/tutorial-x-ray-image-processing.md","dependencies":[],"frontmatter":{"title":"X-ray image processing","kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"jupytext":{"text_representation":{"extension":".md","format_name":"myst","format_version":"0.13","jupytext_version":"1.11.1"}},"content_includes_title":false,"authors":[{"id":"Numpy Community","name":"Numpy Community"}],"github":"https://github.com/numpy/numpy-tutorials","numbering":{"title":{"offset":1}},"source_url":"https://github.com/numpy/numpy-tutorials/blob/main/content/tutorial-x-ray-image-processing.md","edit_url":"https://github.com/numpy/numpy-tutorials/edit/main/content/tutorial-x-ray-image-processing.md","thumbnail":"/numpy-tutorials/build/tutorial-x-ray-image-cb14ad1cb4fb37f341c5954e91e694b8.png","exports":[{"format":"md","filename":"tutorial-x-ray-image-processing.md","url":"/numpy-tutorials/build/tutorial-x-ray-image-0ba55d5c74fee47794485ec3f6818e75.md"}]},"mdast":{"type":"root","children":[{"type":"block","position":{"start":{"line":16,"column":1},"end":{"line":16,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":18,"column":1},"end":{"line":25,"column":1}},"children":[{"type":"text","value":"This tutorial demonstrates how to read and process X-ray images with NumPy,\nimageio, Matplotlib and SciPy. You will learn how to load medical images, focus\non certain parts, and visually compare them using the\n","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"XCnlTs38Np"},{"type":"link","url":"https://en.wikipedia.org/wiki/Gaussian_filter","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Gaussian","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"hGtuwfcyQH"}],"urlSource":"https://en.wikipedia.org/wiki/Gaussian_filter","data":{"page":"Gaussian_filter","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"wvjOCy9bOE"},{"type":"text","value":",\n","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"WqJIfLkzN9"},{"type":"link","url":"https://en.wikipedia.org/wiki/Laplace_distribution","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Laplacian-Gaussian","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"wBoJVHC0Y3"}],"urlSource":"https://en.wikipedia.org/wiki/Laplace_distribution","data":{"page":"Laplace_distribution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"zoK9DOV5Da"},{"type":"text","value":",\n","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"E4esUEdTKj"},{"type":"link","url":"https://en.wikipedia.org/wiki/Sobel_operator","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Sobel","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"LwGAix7sXE"}],"urlSource":"https://en.wikipedia.org/wiki/Sobel_operator","data":{"page":"Sobel_operator","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"A0bOzeluTu"},{"type":"text","value":", and\n","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"nYN9srniZr"},{"type":"link","url":"https://en.wikipedia.org/wiki/Canny_edge_detector","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"children":[{"type":"text","value":"Canny","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"ZxdVCqg3iC"}],"urlSource":"https://en.wikipedia.org/wiki/Canny_edge_detector","data":{"page":"Canny_edge_detector","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"AocU4L8dEA"},{"type":"text","value":" filters for edge\ndetection.","position":{"start":{"line":18,"column":1},"end":{"line":18,"column":1}},"key":"bCPETnywCD"}],"key":"d9i5yOFrtc"},{"type":"paragraph","position":{"start":{"line":27,"column":1},"end":{"line":35,"column":1}},"children":[{"type":"text","value":"X-ray image analysis can be part of your data analysis and machine learning workflow\nwhen, for example, you’re building an algorithm that helps\n","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"DPrBi2AWAi"},{"type":"link","url":"https://www.kaggle.com/c/rsna-pneumonia-detection-challenge","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"detect pneumonia","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"eiD7IVbxcV"}],"urlSource":"https://www.kaggle.com/c/rsna-pneumonia-detection-challenge","key":"op9A2tOhgB"},{"type":"text","value":"\nas part of a ","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"efxvA3SONO"},{"type":"link","url":"https://www.kaggle.com","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"Kaggle","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"jGjuJiTUJ2"}],"urlSource":"https://www.kaggle.com","key":"tBL9RZVBEO"},{"type":"text","value":"\n","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"Nb43ZMlcbt"},{"type":"link","url":"https://www.kaggle.com/eduardomineo/u-net-lung-segmentation-montgomery-shenzhen","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"competition","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"m9d4hIqINI"}],"urlSource":"https://www.kaggle.com/eduardomineo/u-net-lung-segmentation-montgomery-shenzhen","key":"XuWAeg4VPN"},{"type":"text","value":".\nIn the healthcare industry, medical image processing and analysis is\nparticularly important when images are estimated to account for\n","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"AB18PPHJ31"},{"type":"link","url":"https://www-03.ibm.com/press/us/en/pressrelease/51146.wss","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"children":[{"type":"text","value":"at least 90%","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"vIpoSbUUq6"}],"urlSource":"https://www-03.ibm.com/press/us/en/pressrelease/51146.wss","key":"E3ICflK5pM"},{"type":"text","value":" of all\nmedical data.","position":{"start":{"line":27,"column":1},"end":{"line":27,"column":1}},"key":"dZG9nVbCLC"}],"key":"kRrKjKmwPY"},{"type":"paragraph","position":{"start":{"line":37,"column":1},"end":{"line":45,"column":1}},"children":[{"type":"text","value":"You’ll be working with radiology images from the\n","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"fVm452A1fe"},{"type":"link","url":"https://arxiv.org/abs/1705.02315","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"text","value":"ChestX-ray8","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"MbfzhXSEAN"}],"urlSource":"https://arxiv.org/abs/1705.02315","key":"JvIOY8gMX4"},{"type":"text","value":"\ndataset provided by the ","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"kYwsyKAUeQ"},{"type":"link","url":"https://nih.gov","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"text","value":"National Institutes of Health (NIH)","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"RGGrd6loB3"}],"urlSource":"https://nih.gov","key":"FKc4IOL8sI"},{"type":"text","value":".\nChestX-ray8 contains over 100,000 de-identified X-ray images in the PNG format\nfrom more than 30,000 patients. You can find ChestX-ray8’s files on NIH’s public\nBox ","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"MGXcoXToet"},{"type":"link","url":"https://nihcc.app.box.com/v/ChestXray-NIHCC","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"text","value":"repository","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"iG4ptpLxV9"}],"urlSource":"https://nihcc.app.box.com/v/ChestXray-NIHCC","key":"SY5PjixBgs"},{"type":"text","value":" in the ","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"kg1pymmHpD"},{"type":"inlineCode","value":"/images","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"IsXRIx2BP8"},{"type":"text","value":"\nfolder. (For more details, refer to the research\n","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"j1gs9Skzf7"},{"type":"link","url":"http://openaccess.thecvf.com/content_cvpr_2017/papers/Wang_ChestX-ray8_Hospital-Scale_Chest_CVPR_2017_paper.pdf","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"children":[{"type":"text","value":"paper","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"FzPeReuLUt"}],"urlSource":"http://openaccess.thecvf.com/content_cvpr_2017/papers/Wang_ChestX-ray8_Hospital-Scale_Chest_CVPR_2017_paper.pdf","key":"jw8HjhxSy7"},{"type":"text","value":"\npublished at CVPR (a computer vision conference) in 2017.)","position":{"start":{"line":37,"column":1},"end":{"line":37,"column":1}},"key":"FEKIeAjUZ6"}],"key":"mCdW1gjTKv"},{"type":"paragraph","position":{"start":{"line":47,"column":1},"end":{"line":50,"column":1}},"children":[{"type":"text","value":"For your convenience, a small number of PNG images have been saved to this\ntutorial’s repository under ","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"p6TQZYFP5I"},{"type":"inlineCode","value":"tutorial-x-ray-image-processing/","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"sghQkOubnn"},{"type":"text","value":", since\nChestX-ray8 contains gigabytes of data and you may find it challenging to\ndownload it in batches.","position":{"start":{"line":47,"column":1},"end":{"line":47,"column":1}},"key":"W641mFrn7x"}],"key":"u66b8qp67u"},{"type":"image","url":"/numpy-tutorials/build/tutorial-x-ray-image-cb14ad1cb4fb37f341c5954e91e694b8.png","alt":"A series of 9 x-ray images of the same region of a patient's chest is shown with different types of image processing filters applied to each image. Each x-ray shows different types of biological detail.","position":{"start":{"line":52,"column":1},"end":{"line":52,"column":1}},"key":"JLLoRk4vmU","urlSource":"_static/tutorial-x-ray-image-processing.png"}],"key":"ftwW9NyOn3"},{"type":"block","position":{"start":{"line":54,"column":1},"end":{"line":54,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"children":[{"type":"text","value":"Prerequisites","position":{"start":{"line":56,"column":1},"end":{"line":56,"column":1}},"key":"Cuti2wu2Zc"}],"identifier":"prerequisites","label":"Prerequisites","html_id":"prerequisites","implicit":true,"key":"HTeRZrOXd8"}],"key":"FSiH2Mz0Ag"},{"type":"block","position":{"start":{"line":58,"column":1},"end":{"line":58,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":60,"column":1},"end":{"line":64,"column":1}},"children":[{"type":"text","value":"The reader should have some knowledge of Python, NumPy arrays, and Matplotlib.\nTo refresh the memory, you can take the\n","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"R0WCy6rsZw"},{"type":"link","url":"https://docs.python.org/dev/tutorial/index.html","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"text","value":"Python","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"f6nPVlE5xg"}],"urlSource":"https://docs.python.org/dev/tutorial/index.html","key":"lh0Z0wjEbK"},{"type":"text","value":" and Matplotlib\n","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"TIuySPC2sB"},{"type":"link","url":"https://matplotlib.org/tutorials/introductory/pyplot.html","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"text","value":"PyPlot","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"fDmwMzaIfT"}],"urlSource":"https://matplotlib.org/tutorials/introductory/pyplot.html","key":"pKpfZX30GG"},{"type":"text","value":" tutorials,\nand the NumPy ","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"fEDl3GD4YA"},{"type":"link","url":"https://numpy.org/devdocs/user/quickstart.html","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"children":[{"type":"text","value":"quickstart","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"PateNyeRm6"}],"urlSource":"https://numpy.org/devdocs/user/quickstart.html","key":"CXdaWgO1f5"},{"type":"text","value":".","position":{"start":{"line":60,"column":1},"end":{"line":60,"column":1}},"key":"e5iSJwgqKr"}],"key":"sVHllYfyBW"},{"type":"paragraph","position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"children":[{"type":"text","value":"The following packages are used in this tutorial:","position":{"start":{"line":66,"column":1},"end":{"line":66,"column":1}},"key":"MARURdbcAM"}],"key":"V3pTZQICmZ"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":68,"column":1},"end":{"line":77,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":68,"column":1},"end":{"line":73,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://imageio.github.io","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"imageio","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"xyStgADkZK"}],"urlSource":"https://imageio.github.io","key":"xlCRPvnlKj"},{"type":"text","value":" for reading and writing image data. The\nhealthcare industry usually works with the\n","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"uXWF0JNQOh"},{"type":"link","url":"https://en.wikipedia.org/wiki/DICOM","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"DICOM","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"BZ5NgzOayK"}],"urlSource":"https://en.wikipedia.org/wiki/DICOM","data":{"page":"DICOM","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"dILr0t2QCb"},{"type":"text","value":" format for medical imaging and\n","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"NlMVXzqD8d"},{"type":"link","url":"https://imageio.readthedocs.io/en/stable/_autosummary/imageio.plugins.dicom.html","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"children":[{"type":"text","value":"imageio","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"VLhT9LO5YQ"}],"urlSource":"https://imageio.readthedocs.io/en/stable/_autosummary/imageio.plugins.dicom.html","key":"BAaZ5Pom4b"},{"type":"text","value":" should be\nwell-suited for reading that format. For simplicity, in this tutorial you’ll be\nworking with PNG files.","position":{"start":{"line":68,"column":1},"end":{"line":68,"column":1}},"key":"jPlnJIWlzv"}],"key":"hQgSDKbeMg"}],"key":"xgb8bOSwqZ"},{"type":"listItem","spread":true,"position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://matplotlib.org/","position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"children":[{"type":"text","value":"Matplotlib","position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"key":"yNsOkMGGkQ"}],"urlSource":"https://matplotlib.org/","key":"KevWmDtO6l"},{"type":"text","value":" for data visualization.","position":{"start":{"line":74,"column":1},"end":{"line":74,"column":1}},"key":"BywSgkXdJU"}],"key":"lY51fEST9n"}],"key":"yUgbnSO9O9"},{"type":"listItem","spread":true,"position":{"start":{"line":75,"column":1},"end":{"line":77,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://www.scipy.org","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"children":[{"type":"text","value":"SciPy","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"A2yXCtPnAV"}],"urlSource":"https://www.scipy.org","key":"PyetJO0Pka"},{"type":"text","value":" for multi-dimensional image processing via\n","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"PG3bsu4SBR"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/ndimage.html","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"children":[{"type":"inlineCode","value":"ndimage","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"pFm5P3TwSj"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/ndimage.html","key":"vpXQIpde9X"},{"type":"text","value":".","position":{"start":{"line":75,"column":1},"end":{"line":75,"column":1}},"key":"iXTtIirl24"}],"key":"fXNtc2C469"}],"key":"bIACt8mZFg"}],"key":"ZWYnNXNHY0"},{"type":"paragraph","position":{"start":{"line":78,"column":1},"end":{"line":82,"column":1}},"children":[{"type":"text","value":"This tutorial can be run locally in an isolated environment, such as\n","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"NKm49lf8mM"},{"type":"link","url":"https://virtualenv.pypa.io/en/stable/","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"Virtualenv","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"FM7mGDvohB"}],"urlSource":"https://virtualenv.pypa.io/en/stable/","key":"Wbt5wOSDPt"},{"type":"text","value":" or\n","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"cqykIEXNOh"},{"type":"link","url":"https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"conda","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"bswPqN5XiN"}],"urlSource":"https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html","key":"PgzrLzL7n7"},{"type":"text","value":".\nYou can use ","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"A0Zagm8fBe"},{"type":"link","url":"https://jupyter.org/install","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"children":[{"type":"text","value":"Jupyter Notebook or JupyterLab","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"Ghk3wxlbtD"}],"urlSource":"https://jupyter.org/install","key":"o7AcZZn41K"},{"type":"text","value":" to run\neach notebook cell.","position":{"start":{"line":78,"column":1},"end":{"line":78,"column":1}},"key":"oGIlE0PTo5"}],"key":"imuznaFf0C"}],"key":"mZLaNiEpCH"},{"type":"block","position":{"start":{"line":84,"column":1},"end":{"line":84,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"children":[{"type":"text","value":"Table of contents","position":{"start":{"line":86,"column":1},"end":{"line":86,"column":1}},"key":"gQl73Uvnsr"}],"identifier":"table-of-contents","label":"Table of contents","html_id":"table-of-contents","implicit":true,"key":"fN76Bkso0c"}],"key":"rXRv7XmdTm"},{"type":"block","position":{"start":{"line":88,"column":1},"end":{"line":88,"column":1}},"children":[{"type":"list","ordered":true,"start":1,"spread":false,"position":{"start":{"line":90,"column":1},"end":{"line":96,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":90,"column":1},"end":{"line":90,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Examine an X-ray with ","position":{"start":{"line":90,"column":1},"end":{"line":90,"column":1}},"key":"pkkeJY0pc5"},{"type":"inlineCode","value":"imageio","position":{"start":{"line":90,"column":1},"end":{"line":90,"column":1}},"key":"I7YoVU538h"}],"key":"d0wMHE8nKG"}],"key":"kFaUVnxLUs"},{"type":"listItem","spread":true,"position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Combine images into a multi-dimensional array to demonstrate progression","position":{"start":{"line":91,"column":1},"end":{"line":91,"column":1}},"key":"iCZh5Z9qiz"}],"key":"wJN6Fbg1nu"}],"key":"UaDd2Xqo5s"},{"type":"listItem","spread":true,"position":{"start":{"line":92,"column":1},"end":{"line":93,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and\nCanny filters","position":{"start":{"line":92,"column":1},"end":{"line":92,"column":1}},"key":"crMFSnGG7b"}],"key":"hAfHM5HCbR"}],"key":"wYCxSUGpj3"},{"type":"listItem","spread":true,"position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Apply masks to X-rays with ","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"key":"aF1hq49xpa"},{"type":"inlineCode","value":"np.where()","position":{"start":{"line":94,"column":1},"end":{"line":94,"column":1}},"key":"Ng8IkKfOCp"}],"key":"Dt9IvpTLPF"}],"key":"up5eMgGxzn"},{"type":"listItem","spread":true,"position":{"start":{"line":95,"column":1},"end":{"line":96,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"Compare the results","position":{"start":{"line":95,"column":1},"end":{"line":95,"column":1}},"key":"ENLa4PCIFY"}],"key":"ai6xmSisvm"}],"key":"ClWQOGYMax"}],"key":"zrqrVRuDOh"},{"type":"thematicBreak","position":{"start":{"line":97,"column":1},"end":{"line":97,"column":1}},"key":"SusnEdwWNX"}],"key":"ZC1JXEKVXT"},{"type":"block","position":{"start":{"line":99,"column":1},"end":{"line":99,"column":1}},"children":[{"type":"heading","depth":2,"position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"children":[{"type":"text","value":"Examine an X-ray with ","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"key":"v5MPKh4y9B"},{"type":"inlineCode","value":"imageio","position":{"start":{"line":101,"column":1},"end":{"line":101,"column":1}},"key":"JP2esRlTBL"}],"identifier":"examine-an-x-ray-with-imageio","label":"Examine an X-ray with imageio","html_id":"examine-an-x-ray-with-imageio","implicit":true,"key":"W7DPpCZDs4"}],"key":"fBypbtUk65"},{"type":"block","position":{"start":{"line":103,"column":1},"end":{"line":103,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":105,"column":1},"end":{"line":106,"column":1}},"children":[{"type":"text","value":"Let’s begin with a simple example using just one X-ray image from the\nChestX-ray8 dataset.","position":{"start":{"line":105,"column":1},"end":{"line":105,"column":1}},"key":"AcToF8phJY"}],"key":"uTz8uLfb6T"},{"type":"paragraph","position":{"start":{"line":108,"column":1},"end":{"line":109,"column":1}},"children":[{"type":"text","value":"The file — ","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"rSQuZhvnvh"},{"type":"inlineCode","value":"00000011_001.png","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"sAJLJFOyDf"},{"type":"text","value":" — has been downloaded for you and saved in the\n","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"aYWXXptyAJ"},{"type":"inlineCode","value":"/tutorial-x-ray-image-processing","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"MtnUdWLJ0p"},{"type":"text","value":" folder.","position":{"start":{"line":108,"column":1},"end":{"line":108,"column":1}},"key":"DYeDBpF4SS"}],"key":"O6ieidrYw1"}],"key":"igjbR9dyfM"},{"type":"block","position":{"start":{"line":111,"column":1},"end":{"line":111,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"strong","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"iC6C6FlEot"}],"key":"IlUClysnIX"},{"type":"text","value":" Load the image with ","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"W7u0AIZDNF"},{"type":"inlineCode","value":"imageio","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"ygaMHruyHH"},{"type":"text","value":":","position":{"start":{"line":113,"column":1},"end":{"line":113,"column":1}},"key":"QOo2NYQx1g"}],"key":"L45FKBbwfG"}],"key":"iKwIXFd5EY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import os\nimport imageio\n\nDIR = \"tutorial-x-ray-image-processing\"\n\nxray_image = imageio.v3.imread(os.path.join(DIR, \"00000011_001.png\"))","key":"CtYSDVIs6X"},{"type":"outputs","id":"zcBIcsH3YDcqzhYS-KvYR","children":[],"key":"Jutm9v1fMf"}],"key":"bJePwCS6KX"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":124,"column":1},"end":{"line":125,"column":1}},"children":[{"type":"strong","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"MT0EQc8qMf"}],"key":"gYBTJxjBOR"},{"type":"text","value":" Check that its shape is 1024x1024 pixels and that the array is made up of\n8-bit integers:","position":{"start":{"line":124,"column":1},"end":{"line":124,"column":1}},"key":"QUT9gDEGNu"}],"key":"Lo6gK6SeIL"}],"key":"yEmxsvrnVG"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(xray_image.shape)\nprint(xray_image.dtype)","key":"sGJVjAGd4E"},{"type":"outputs","id":"3-P51IGaH6OG863d_EtFu","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"(1024, 1024)\nuint8\n"},"key":"hc9sLsbmHa"}],"key":"jgCtZhKL7g"}],"key":"GjiNToYfy7"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"children":[{"type":"strong","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"key":"OcTjogrrCj"}],"key":"qL7yeQMNVQ"},{"type":"text","value":" Import ","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"key":"CsZCZzwmjz"},{"type":"inlineCode","value":"matplotlib","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"key":"WfRUlURy1P"},{"type":"text","value":" and display the image in a grayscale colormap:","position":{"start":{"line":132,"column":1},"end":{"line":132,"column":1}},"key":"wnierWBOve"}],"key":"YBbZYfE8oZ"}],"key":"liAAtNNAjd"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import matplotlib.pyplot as plt\n\nfig, ax = plt.subplots()\nax.imshow(xray_image, cmap=\"gray\")\nax.set_axis_off()","key":"nawDW2Ndqh"},{"type":"outputs","id":"uGPbFstp2899TQZz4GHWh","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"fc8dfdefc8ba5e886ebffcc7531bd808","path":"/numpy-tutorials/build/fc8dfdefc8ba5e886ebffcc7531bd808.png"}}},"key":"NhZILLenbB"}],"key":"rVMfcJEh6Q"}],"key":"eMgxlyEkJS"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":142,"column":1},"end":{"line":142,"column":1}},"children":[{"type":"text","value":"Combine images into a multidimensional array to demonstrate progression","position":{"start":{"line":142,"column":1},"end":{"line":142,"column":1}},"key":"uTTfXBUTIC"}],"identifier":"combine-images-into-a-multidimensional-array-to-demonstrate-progression","label":"Combine images into a multidimensional array to demonstrate progression","html_id":"combine-images-into-a-multidimensional-array-to-demonstrate-progression","implicit":true,"key":"hQ3u6gI5VE"}],"key":"ct7o3ktuIT"},{"type":"block","position":{"start":{"line":144,"column":1},"end":{"line":144,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":146,"column":1},"end":{"line":149,"column":1}},"children":[{"type":"text","value":"In the next example, instead of 1 image you’ll use 9 X-ray 1024x1024-pixel\nimages from the ChestX-ray8 dataset that have been downloaded and extracted\nfrom one of the dataset files. They are numbered from ","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"U3LXDkpNRd"},{"type":"inlineCode","value":"...000.png","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"dfMlPZrGRT"},{"type":"text","value":" to\n","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"Cg6IVo7cD5"},{"type":"inlineCode","value":"...008.png","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"JiasZS2kow"},{"type":"text","value":" and let’s assume they belong to the same patient.","position":{"start":{"line":146,"column":1},"end":{"line":146,"column":1}},"key":"Cd69KTO6BG"}],"key":"iXrCGvAzm6"},{"type":"paragraph","position":{"start":{"line":151,"column":1},"end":{"line":152,"column":1}},"children":[{"type":"strong","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"YbKRgFE48a"}],"key":"KyWv0EG6c4"},{"type":"text","value":" Import NumPy, read in each of the X-rays, and create a three-dimensional\narray where the first dimension corresponds to image number:","position":{"start":{"line":151,"column":1},"end":{"line":151,"column":1}},"key":"LdIbgXelSS"}],"key":"tIHHRZ1Ie4"}],"key":"t87V6PdWZb"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"import numpy as np\nnum_imgs = 9\n\ncombined_xray_images_1 = np.array(\n [imageio.v3.imread(os.path.join(DIR, f\"00000011_00{i}.png\")) for i in range(num_imgs)]\n)","key":"CC1p7Ntr5M"},{"type":"outputs","id":"lW7lAy6ihmYSqplP2iNCU","children":[],"key":"IwKtk3EFr2"}],"key":"ydIwViTi0Y"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"children":[{"type":"strong","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"AHsAigmTHg"}],"key":"gcL4hJauEV"},{"type":"text","value":" Check the shape of the new X-ray image array containing 9 stacked images:","position":{"start":{"line":163,"column":1},"end":{"line":163,"column":1}},"key":"esEcj7cgMJ"}],"key":"wDJBACNpQd"}],"key":"BlBFuc3AmS"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"combined_xray_images_1.shape","key":"NVVa1mrO3X"},{"type":"outputs","id":"1M5pK5wut43QhG2Zjn_f8","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"execute_result","execution_count":5,"metadata":{},"data":{"text/plain":{"content":"(9, 1024, 1024)","content_type":"text/plain"}}},"key":"xwNS1UfSzN"}],"key":"tXeicZcCI6"}],"key":"gvRflBesFB"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":169,"column":1},"end":{"line":170,"column":1}},"children":[{"type":"text","value":"Note that the shape in the first dimension matches ","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"tckWtpF7ku"},{"type":"inlineCode","value":"num_imgs","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"IAGQeklDh8"},{"type":"text","value":", so the\n","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"ooEnE3gPVS"},{"type":"inlineCode","value":"combined_xray_images_1","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"md60dMpclW"},{"type":"text","value":" array can be interpreted as a stack of 2D images.","position":{"start":{"line":169,"column":1},"end":{"line":169,"column":1}},"key":"eYjsMsMaAj"}],"key":"ilicyKTnnB"},{"type":"paragraph","position":{"start":{"line":172,"column":1},"end":{"line":173,"column":1}},"children":[{"type":"strong","position":{"start":{"line":172,"column":1},"end":{"line":172,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":172,"column":1},"end":{"line":172,"column":1}},"key":"KFVvmoJ5Nc"}],"key":"zC5QfjHRei"},{"type":"text","value":" You can now display the “health progress” by plotting each of frames next\nto each other using Matplotlib:","position":{"start":{"line":172,"column":1},"end":{"line":172,"column":1}},"key":"hZbI6QiLw7"}],"key":"kg0HKGA0Mb"}],"key":"k4LkvcO68y"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=num_imgs, figsize=(30, 30))\n\nfor img, ax in zip(combined_xray_images_1, axes):\n ax.imshow(img, cmap='gray')\n ax.axis('off')","key":"tZIxmM8XC9"},{"type":"outputs","id":"FCmhPBekAOeNjjOn0HaYC","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"097761922f88943bda1d623b56078c43","path":"/numpy-tutorials/build/097761922f88943bda1d623b56078c43.png"}}},"key":"pQFDZgOdxw"}],"key":"kJSjQGv53E"}],"key":"qz3ceNcfHJ"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":183,"column":1},"end":{"line":185,"column":1}},"children":[{"type":"strong","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"children":[{"type":"text","value":"4.","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"M1AmEXRMyf"}],"key":"tYnTSM7xTs"},{"type":"text","value":" In addition, it can be helpful to show the progress as an animation.\nLet’s create a GIF file with ","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"TnAjyMiQL8"},{"type":"inlineCode","value":"imageio.mimwrite()","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"yFeRriPGfn"},{"type":"text","value":" and display the result in the\nnotebook:","position":{"start":{"line":183,"column":1},"end":{"line":183,"column":1}},"key":"bV4qqWpwAF"}],"key":"Z2UU8DUqDC"}],"key":"ZBYCNGjVF3"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"GIF_PATH = os.path.join(DIR, \"xray_image.gif\")\nimageio.mimwrite(GIF_PATH, combined_xray_images_1, format= \".gif\", duration=1000)","key":"LVXOV3jinA"},{"type":"outputs","id":"XzXtvAz3zewCJciPd7_2L","children":[],"key":"cQ6CWzP9Ng"}],"key":"y74FjB52rj"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":192,"column":1},"end":{"line":193,"column":1}},"children":[{"type":"text","value":"Which gives us:\n","position":{"start":{"line":192,"column":1},"end":{"line":192,"column":1}},"key":"AYBIQSjH4X"},{"type":"image","url":"/numpy-tutorials/build/xray_image-dc8ce0dff30fc52a9cc2cc445183627f.gif","alt":"An animated gif repeatedly cycles through a series of 8 x-rays, showing the same viewpoint of the patient's chest at different points in time. The patient's bones and internal organs can be visually compared from frame to frame.","position":{"start":{"line":192,"column":1},"end":{"line":192,"column":1}},"key":"d8kJXYvyqC","urlSource":"tutorial-x-ray-image-processing/xray_image.gif"}],"key":"j9nXt31Ijl"},{"type":"heading","depth":2,"position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"children":[{"type":"text","value":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters","position":{"start":{"line":194,"column":1},"end":{"line":194,"column":1}},"key":"Sv2PLYFcCm"}],"identifier":"edge-detection-using-the-laplacian-gaussian-gaussian-gradient-sobel-and-canny-filters","label":"Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters","html_id":"edge-detection-using-the-laplacian-gaussian-gaussian-gradient-sobel-and-canny-filters","implicit":true,"key":"n7wGI67Hox"}],"key":"J0rnFC6gYe"},{"type":"block","position":{"start":{"line":196,"column":1},"end":{"line":196,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":198,"column":1},"end":{"line":202,"column":1}},"children":[{"type":"text","value":"When processing biomedical data, it can be useful to emphasize the 2D\n","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"key":"t8WaJTYEQ3"},{"type":"link","url":"https://en.wikipedia.org/wiki/Edge_detection","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"children":[{"type":"text","value":"“edges”","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"key":"hDtAt5LJbq"}],"urlSource":"https://en.wikipedia.org/wiki/Edge_detection","data":{"page":"Edge_detection","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"UeNYcXjYWm"},{"type":"text","value":" to focus on particular\nfeatures in an image. To do that, using\n","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"key":"gUTv64yNQQ"},{"type":"link","url":"https://en.wikipedia.org/wiki/Image_gradient","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"children":[{"type":"text","value":"image gradients","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"key":"DOKvaUQ4mJ"}],"urlSource":"https://en.wikipedia.org/wiki/Image_gradient","data":{"page":"Image_gradient","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"jVkRrDZH1h"},{"type":"text","value":" can be\nparticularly helpful when detecting the change of color pixel intensity.","position":{"start":{"line":198,"column":1},"end":{"line":198,"column":1}},"key":"uNY4gKz2S3"}],"key":"TZpFd45NGF"}],"key":"BkoHk4hHS7"},{"type":"block","position":{"start":{"line":204,"column":1},"end":{"line":204,"column":1}},"children":[{"type":"heading","depth":3,"position":{"start":{"line":206,"column":1},"end":{"line":206,"column":1}},"children":[{"type":"text","value":"The Laplace filter with Gaussian second derivatives","position":{"start":{"line":206,"column":1},"end":{"line":206,"column":1}},"key":"MvdVz1ZuCN"}],"identifier":"the-laplace-filter-with-gaussian-second-derivatives","label":"The Laplace filter with Gaussian second derivatives","html_id":"the-laplace-filter-with-gaussian-second-derivatives","implicit":true,"key":"waRX44DaYe"},{"type":"paragraph","position":{"start":{"line":208,"column":1},"end":{"line":215,"column":1}},"children":[{"type":"text","value":"Let’s start with an n-dimensional\n","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"sd25y8X7S7"},{"type":"link","url":"https://en.wikipedia.org/wiki/Laplace_distribution","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"children":[{"type":"text","value":"Laplace","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"HazbuXDwrA"}],"urlSource":"https://en.wikipedia.org/wiki/Laplace_distribution","data":{"page":"Laplace_distribution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"hJiP1AxODp"},{"type":"text","value":" filter\n(“Laplacian-Gaussian”) that uses\n","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"vn8cCatfVY"},{"type":"link","url":"https://en.wikipedia.org/wiki/Normal_distribution","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"children":[{"type":"text","value":"Gaussian","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"LrZXtNK34w"}],"urlSource":"https://en.wikipedia.org/wiki/Normal_distribution","data":{"page":"Normal_distribution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"OyWik0qEUj"},{"type":"text","value":" second\nderivatives. This Laplacian method focuses on pixels with rapid intensity change\nin values and is combined with Gaussian smoothing to\n","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"PX8BJ6WZF7"},{"type":"link","url":"https://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"children":[{"type":"text","value":"remove noise","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"AODE9zgF31"}],"urlSource":"https://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm","key":"jlUZ5p7pRL"},{"type":"text","value":". Let’s examine\nhow it can be useful in analyzing 2D X-ray images.","position":{"start":{"line":208,"column":1},"end":{"line":208,"column":1}},"key":"gXda6yLO5c"}],"key":"oqSxFlBabf"}],"key":"kmn7Xzs0ea"},{"type":"block","position":{"start":{"line":217,"column":1},"end":{"line":217,"column":1}},"children":[{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":219,"column":1},"end":{"line":224,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":219,"column":1},"end":{"line":224,"column":1}},"children":[{"type":"paragraph","children":[{"type":"text","value":"The implementation of the Laplacian-Gaussian filter is relatively\nstraightforward: 1) import the ","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"ztovzMcoCV"},{"type":"inlineCode","value":"ndimage","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"NX4HQYkxjf"},{"type":"text","value":" module from SciPy; and 2) call\n","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"eXfo8vKrTx"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_laplace.html","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"children":[{"type":"inlineCode","value":"scipy.ndimage.gaussian_laplace()","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"fONSNdwBqg"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_laplace.html","key":"mACGEkWxUv"},{"type":"text","value":"\nwith a sigma (scalar) parameter, which affects the standard deviations of the\nGaussian filter (you’ll use ","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"fWeLEFqbYn"},{"type":"inlineCode","value":"1","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"JnICX3W0yU"},{"type":"text","value":" in the example below):","position":{"start":{"line":219,"column":1},"end":{"line":219,"column":1}},"key":"qfBoYDyZIw"}],"key":"wUXtIePtvE"}],"key":"jUyQ1RkivQ"}],"key":"NDifAd3Myh"}],"key":"jdpt96XhqZ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"from scipy import ndimage\n\nxray_image_laplace_gaussian = ndimage.gaussian_laplace(xray_image, sigma=1)","key":"H5mDvuOJeq"},{"type":"outputs","id":"519TT0uVd7gc8ajZLe_mT","children":[],"key":"GDfMUUR8Hj"}],"key":"Z3tztGZpNo"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":231,"column":1},"end":{"line":231,"column":1}},"children":[{"type":"text","value":"Display the original X-ray and the one with the Laplacian-Gaussian filter:","position":{"start":{"line":231,"column":1},"end":{"line":231,"column":1}},"key":"BbLFtEuPts"}],"key":"cecOwTDMOb"}],"key":"t6kqn45gSY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Laplacian-Gaussian (edges)\")\naxes[1].imshow(xray_image_laplace_gaussian, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")","key":"H65IpKJDNH"},{"type":"outputs","id":"5kne61sW9kedIQ_Qsu39k","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"148e401c7918fe835f37bb19bbaa47a1","path":"/numpy-tutorials/build/148e401c7918fe835f37bb19bbaa47a1.png"}}},"key":"CpKg8SObs8"}],"key":"QzdbWbAJAm"}],"key":"UD8n3ezt44"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"children":[{"type":"text","value":"The Gaussian gradient magnitude method","position":{"start":{"line":244,"column":1},"end":{"line":244,"column":1}},"key":"DwstdNbfE3"}],"identifier":"the-gaussian-gradient-magnitude-method","label":"The Gaussian gradient magnitude method","html_id":"the-gaussian-gradient-magnitude-method","implicit":true,"key":"ejiwi6CrjJ"},{"type":"paragraph","position":{"start":{"line":246,"column":1},"end":{"line":251,"column":1}},"children":[{"type":"text","value":"Another method for edge detection that can be useful is the\n","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"key":"eHdHqp4GzM"},{"type":"link","url":"https://en.wikipedia.org/wiki/Normal_distribution","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"children":[{"type":"text","value":"Gaussian","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"key":"mBWVnxAvGW"}],"urlSource":"https://en.wikipedia.org/wiki/Normal_distribution","data":{"page":"Normal_distribution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"F53x7aI66F"},{"type":"text","value":" (gradient) filter.\nIt computes the multidimensional gradient magnitude with Gaussian derivatives\nand helps by remove\n","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"key":"gp3Xp6xuSr"},{"type":"link","url":"https://www.cs.cornell.edu/courses/cs6670/2011sp/lectures/lec02_filter.pdf","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"children":[{"type":"text","value":"high-frequency","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"key":"ZQHBWbN9gB"}],"urlSource":"https://www.cs.cornell.edu/courses/cs6670/2011sp/lectures/lec02_filter.pdf","key":"mUqHjD1uwP"},{"type":"text","value":"\nimage components.","position":{"start":{"line":246,"column":1},"end":{"line":246,"column":1}},"key":"HhVCVszkBH"}],"key":"j3diijVSpY"}],"key":"Sp4rVH6uvU"},{"type":"block","position":{"start":{"line":253,"column":1},"end":{"line":253,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":255,"column":1},"end":{"line":257,"column":1}},"children":[{"type":"strong","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"CoJb6nh1o0"}],"key":"ZRZaLkw1GA"},{"type":"text","value":" Call ","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"pdiz0R8RJv"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_gradient_magnitude.html","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"children":[{"type":"inlineCode","value":"scipy.ndimage.gaussian_gradient_magnitude()","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"x2iWI0sXpF"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.gaussian_gradient_magnitude.html","key":"g7rRr4TwJa"},{"type":"text","value":"\nwith a sigma (scalar) parameter (for standard deviations; you’ll use ","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"PZkz5BnuKA"},{"type":"inlineCode","value":"2","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"l9YY3w7jcj"},{"type":"text","value":" in the\nexample below):","position":{"start":{"line":255,"column":1},"end":{"line":255,"column":1}},"key":"Ivg86IsdqU"}],"key":"REN3nn2Ij5"}],"key":"qzj75K2mgO"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x_ray_image_gaussian_gradient = ndimage.gaussian_gradient_magnitude(xray_image, sigma=2)","key":"pwYRNL4y8I"},{"type":"outputs","id":"dFp4-7a_dTyZsLVJF8Ywp","children":[],"key":"Kdf6Vc94JR"}],"key":"g7AjV9N7Rj"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"children":[{"type":"strong","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"feHt6XQUQA"}],"key":"xqtQIC90zx"},{"type":"text","value":" Display the original X-ray and the one with the Gaussian gradient filter:","position":{"start":{"line":263,"column":1},"end":{"line":263,"column":1}},"key":"YcWJbwifoj"}],"key":"B392amc1GG"}],"key":"aHtvO8Zf6P"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Gaussian gradient (edges)\")\naxes[1].imshow(x_ray_image_gaussian_gradient, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")","key":"RxYNLUikos"},{"type":"outputs","id":"0cVWnCDFxrzlhw0JoEc-Z","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"9aa344b7da03996ff0db35a1e22c3516","path":"/numpy-tutorials/build/9aa344b7da03996ff0db35a1e22c3516.png"}}},"key":"qiZOyZSjhY"}],"key":"KNcwdioHXx"}],"key":"YtC31VbUMI"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":276,"column":1},"end":{"line":276,"column":1}},"children":[{"type":"text","value":"The Sobel-Feldman operator (the Sobel filter)","position":{"start":{"line":276,"column":1},"end":{"line":276,"column":1}},"key":"xQwCmSGhfb"}],"identifier":"the-sobel-feldman-operator-the-sobel-filter","label":"The Sobel-Feldman operator (the Sobel filter)","html_id":"the-sobel-feldman-operator-the-sobel-filter","implicit":true,"key":"yVlIpP0oSr"},{"type":"paragraph","position":{"start":{"line":278,"column":1},"end":{"line":285,"column":1}},"children":[{"type":"text","value":"To find regions of high spatial frequency (the edges or the edge maps) along the\nhorizontal and vertical axes of a 2D X-ray image, you can use the\n","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"p8LX5QspzS"},{"type":"link","url":"https://en.wikipedia.org/wiki/Sobel_operator","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"children":[{"type":"text","value":"Sobel-Feldman operator (Sobel filter)","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"PTdewxSjxL"}],"urlSource":"https://en.wikipedia.org/wiki/Sobel_operator","data":{"page":"Sobel_operator","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"aQUTmwRTpZ"},{"type":"text","value":"\ntechnique. The Sobel filter applies two 3x3 kernel matrices — one for each axis\n— onto the X-ray through a ","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"b4h0KJwAme"},{"type":"link","url":"https://en.wikipedia.org/wiki/Kernel_(image_processing)#Convolution","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"children":[{"type":"text","value":"convolution","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"mZN18z6Ssy"}],"urlSource":"https://en.wikipedia.org/wiki/Kernel_(image_processing)#Convolution","data":{"page":"Kernel_(image_processing)#Convolution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"AtDHA6PquM"},{"type":"text","value":".\nThen, these two points (gradients) are combined using the\n","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"iREuGIroRs"},{"type":"link","url":"https://en.wikipedia.org/wiki/Pythagorean_theorem","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"children":[{"type":"text","value":"Pythagorean theorem","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"kqvoBs3RQZ"}],"urlSource":"https://en.wikipedia.org/wiki/Pythagorean_theorem","data":{"page":"Pythagorean_theorem","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"xFjahexEIN"},{"type":"text","value":" to\nproduce a gradient magnitude.","position":{"start":{"line":278,"column":1},"end":{"line":278,"column":1}},"key":"SXUm2Toeat"}],"key":"pJ9LbRNX7t"}],"key":"j5EQSf4tov"},{"type":"block","position":{"start":{"line":287,"column":1},"end":{"line":287,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":289,"column":1},"end":{"line":295,"column":1}},"children":[{"type":"strong","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"NpjWgcF0iY"}],"key":"hBPqMHCDGV"},{"type":"text","value":" Use the Sobel filters — (","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"PwapDRUCZT"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.sobel.html","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"children":[{"type":"inlineCode","value":"scipy.ndimage.sobel()","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"jwOCELz1ql"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.sobel.html","key":"aDnHXMVCXq"},{"type":"text","value":")\n— on x- and y-axes of the X-ray. Then, calculate the distance between ","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"u3A5DyqAdL"},{"type":"inlineCode","value":"x","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"zVBJ1VDvMK"},{"type":"text","value":" and\n","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"KNS2nlMAIx"},{"type":"inlineCode","value":"y","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"PtowzSt9Tt"},{"type":"text","value":" (with the Sobel filters applied to them) using the\n","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"AGSS8jxQpx"},{"type":"link","url":"https://en.wikipedia.org/wiki/Pythagorean_theorem","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"children":[{"type":"text","value":"Pythagorean theorem","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"S0vXa3aOm1"}],"urlSource":"https://en.wikipedia.org/wiki/Pythagorean_theorem","data":{"page":"Pythagorean_theorem","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"BvElcZWBT8"},{"type":"text","value":" and\nNumPy’s ","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"q8WoT24MJM"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.hypot.html","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"children":[{"type":"inlineCode","value":"np.hypot()","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"ujGCdMWo2O"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.hypot.html","key":"W01auU8sCi"},{"type":"text","value":"\nto obtain the magnitude. Finally, normalize the rescaled image for the pixel\nvalues to be between 0 and 255.","position":{"start":{"line":289,"column":1},"end":{"line":289,"column":1}},"key":"w7m9sVaaPw"}],"key":"FFiD0WsZHK"},{"type":"paragraph","position":{"start":{"line":297,"column":1},"end":{"line":300,"column":1}},"children":[{"type":"link","url":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"children":[{"type":"text","value":"Image normalization","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"rINwxUcpFu"}],"urlSource":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","data":{"page":"Normalization_%28image_processing%29","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"TMwSemk5yv"},{"type":"text","value":"\nfollows the ","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"VhN1rro9qQ"},{"type":"inlineCode","value":"output_channel = 255.0 * (input_channel - min_value) / (max_value - min_value)","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"g1XBbLVZMi"},{"type":"text","value":"\n","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"r0PpFQbHO3"},{"type":"link","url":"http://dev.ipol.im/~nmonzon/Normalization.pdf","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"children":[{"type":"text","value":"formula","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"fnd8y0K9z6"}],"urlSource":"http://dev.ipol.im/~nmonzon/Normalization.pdf","key":"b9bkXqOnzn"},{"type":"text","value":". Because you’re\nusing a grayscale image, you need to normalize just one channel.","position":{"start":{"line":297,"column":1},"end":{"line":297,"column":1}},"key":"fBoa83Twsp"}],"key":"eWVLbtAskr"}],"key":"H14eQwlFkX"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"x_sobel = ndimage.sobel(xray_image, axis=0)\ny_sobel = ndimage.sobel(xray_image, axis=1)\n\nxray_image_sobel = np.hypot(x_sobel, y_sobel)\n\nxray_image_sobel *= 255.0 / np.max(xray_image_sobel)","key":"BUMfxdUdiR"},{"type":"outputs","id":"4_0wFT0gGWhfJyQoWEcn9","children":[],"key":"iIN3fJ4gYE"}],"key":"LpdhNoilqc"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":311,"column":1},"end":{"line":313,"column":1}},"children":[{"type":"strong","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"WjzYJO3ANC"}],"key":"EWa0LpkWGs"},{"type":"text","value":" Change the new image array data type to the 32-bit floating-point format\nfrom ","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"fZlAEWvL3P"},{"type":"inlineCode","value":"float16","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"JKcVKyypMx"},{"type":"text","value":" to ","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"Nqnrtan6wv"},{"type":"link","url":"https://github.com/matplotlib/matplotlib/issues/15432","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"children":[{"type":"text","value":"make it compatible","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"rQUPTpsGuB"}],"urlSource":"https://github.com/matplotlib/matplotlib/issues/15432","data":{"kind":"issue","org":"matplotlib","repo":"matplotlib","issue_number":"15432"},"internal":false,"protocol":"github","key":"dbdsaLQHa5"},{"type":"text","value":"\nwith Matplotlib:","position":{"start":{"line":311,"column":1},"end":{"line":311,"column":1}},"key":"Ijnm4jquny"}],"key":"OVrXIUXBUk"}],"key":"Patg25Fodz"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type - before: \", xray_image_sobel.dtype)\n\nxray_image_sobel = xray_image_sobel.astype(\"float32\")\n\nprint(\"The data type - after: \", xray_image_sobel.dtype)","key":"XXkYZmqTfq"},{"type":"outputs","id":"aAZ1_p9XJ_WvzLyP-An5F","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type - before: float16\nThe data type - after: float32\n"},"key":"CYHzj02QPl"}],"key":"s3dTwpZRMq"}],"key":"pPfWiSjUWi"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":323,"column":1},"end":{"line":325,"column":1}},"children":[{"type":"strong","position":{"start":{"line":323,"column":1},"end":{"line":323,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":323,"column":1},"end":{"line":323,"column":1}},"key":"Y7X2rqikJj"}],"key":"UHs95zr5Po"},{"type":"text","value":" Display the original X-ray and the one with the Sobel “edge” filter\napplied. Note that both the grayscale and ","position":{"start":{"line":323,"column":1},"end":{"line":323,"column":1}},"key":"Ncx7zVlUVD"},{"type":"inlineCode","value":"CMRmap","position":{"start":{"line":323,"column":1},"end":{"line":323,"column":1}},"key":"jtlutCGwDl"},{"type":"text","value":" colormaps are used to help\nemphasize the edges:","position":{"start":{"line":323,"column":1},"end":{"line":323,"column":1}},"key":"U7qp1tqsbU"}],"key":"dzmntfdHV6"}],"key":"PKiJjfe0vY"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(15, 15))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Sobel (edges) - grayscale\")\naxes[1].imshow(xray_image_sobel, cmap=\"gray\")\naxes[2].set_title(\"Sobel (edges) - CMRmap\")\naxes[2].imshow(xray_image_sobel, cmap=\"CMRmap\")\nfor i in axes:\n i.axis(\"off\")","key":"iX9GtYM3WL"},{"type":"outputs","id":"MioSG3-koAf7iKkBQSXnO","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"80de5099287a440db16b0d06207362e9","path":"/numpy-tutorials/build/80de5099287a440db16b0d06207362e9.png"}}},"key":"OODb0U0STy"}],"key":"VqkbW1RZgi"}],"key":"C4G9cUSmPB"},{"type":"block","children":[{"type":"heading","depth":3,"position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"children":[{"type":"text","value":"The Canny filter","position":{"start":{"line":340,"column":1},"end":{"line":340,"column":1}},"key":"ACLsLWiSj5"}],"identifier":"the-canny-filter","label":"The Canny filter","html_id":"the-canny-filter","implicit":true,"key":"Jy8aIfqmCy"},{"type":"paragraph","position":{"start":{"line":342,"column":1},"end":{"line":343,"column":1}},"children":[{"type":"text","value":"You can also consider using another well-known filter for edge detection called\nthe ","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"eLnqkwkpNS"},{"type":"link","url":"https://en.wikipedia.org/wiki/Canny_edge_detector","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"children":[{"type":"text","value":"Canny filter","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"XqSgzvb4f2"}],"urlSource":"https://en.wikipedia.org/wiki/Canny_edge_detector","data":{"page":"Canny_edge_detector","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"aRzFFUYG6Y"},{"type":"text","value":".","position":{"start":{"line":342,"column":1},"end":{"line":342,"column":1}},"key":"BwAR2YCOiv"}],"key":"Vx3rMmGTQ0"},{"type":"paragraph","position":{"start":{"line":345,"column":1},"end":{"line":357,"column":1}},"children":[{"type":"text","value":"First, you apply a ","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"dRTey6ySLS"},{"type":"link","url":"https://en.wikipedia.org/wiki/Gaussian_filter","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"Gaussian","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"AfSHhqegmB"}],"urlSource":"https://en.wikipedia.org/wiki/Gaussian_filter","data":{"page":"Gaussian_filter","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"e9mpfBn2EQ"},{"type":"text","value":"\nfilter to remove the noise in an image. In this example, you’re using using the\n","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"X6wkxuVCAa"},{"type":"link","url":"https://en.wikipedia.org/wiki/Fourier_transform","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"Fourier","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"zg7rYv4Q0P"}],"urlSource":"https://en.wikipedia.org/wiki/Fourier_transform","data":{"page":"Fourier_transform","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"bXslcLTjHR"},{"type":"text","value":" filter which\nsmoothens the X-ray through a ","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"NkM0CE6dpl"},{"type":"link","url":"https://en.wikipedia.org/wiki/Convolution","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"convolution","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"Io4B7tWytf"}],"urlSource":"https://en.wikipedia.org/wiki/Convolution","data":{"page":"Convolution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"a6S31IBlyr"},{"type":"text","value":"\nprocess. Next, you apply the ","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"nk3UGpY9R8"},{"type":"link","url":"https://en.wikipedia.org/wiki/Prewitt_operator","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"Prewitt filter","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"XK4RPC2xoM"}],"urlSource":"https://en.wikipedia.org/wiki/Prewitt_operator","data":{"page":"Prewitt_operator","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"QKdXPn1R2l"},{"type":"text","value":"\non each of the 2 axes of the image to help detect some of the edges — this will\nresult in 2 gradient values. Similar to the Sobel filter, the Prewitt operator\nalso applies two 3x3 kernel matrices — one for each axis — onto the X-ray\nthrough a ","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"KPolYbtAWf"},{"type":"link","url":"https://en.wikipedia.org/wiki/Kernel_(image_processing)#Convolution","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"convolution","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"ZNhXXeTOYf"}],"urlSource":"https://en.wikipedia.org/wiki/Kernel_(image_processing)#Convolution","data":{"page":"Kernel_(image_processing)#Convolution","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"L5IAQpO0n7"},{"type":"text","value":".\nIn the end, you compute the magnitude between the two gradients using the\n","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"YashiwIsgC"},{"type":"link","url":"https://en.wikipedia.org/wiki/Pythagorean_theorem","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"Pythagorean theorem","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"Z0ri0SGoIl"}],"urlSource":"https://en.wikipedia.org/wiki/Pythagorean_theorem","data":{"page":"Pythagorean_theorem","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"IRWLP2sp8A"},{"type":"text","value":" and\n","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"KNRVnTZLJg"},{"type":"link","url":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"children":[{"type":"text","value":"normalize","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"oIN2OBQyhI"}],"urlSource":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","data":{"page":"Normalization_%28image_processing%29","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"LuI5J4MnUR"},{"type":"text","value":"\nthe images, as before.","position":{"start":{"line":345,"column":1},"end":{"line":345,"column":1}},"key":"HttBtvC7r0"}],"key":"UgJA76TCx9"}],"key":"xnTEVJhmzc"},{"type":"block","position":{"start":{"line":359,"column":1},"end":{"line":359,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":361,"column":1},"end":{"line":366,"column":1}},"children":[{"type":"strong","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"FLE7yeZ4TY"}],"key":"FYjeVLWOos"},{"type":"text","value":" Use SciPy’s Fourier filters — ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"E3n516awZR"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.fourier_gaussian.html","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"children":[{"type":"inlineCode","value":"scipy.ndimage.fourier_gaussian()","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"bIIIADtgME"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.fourier_gaussian.html","key":"iWaGoPsv1i"},{"type":"text","value":"\n— with a small ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"SHSTjTgyZe"},{"type":"inlineCode","value":"sigma","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"PmoWlIqaNO"},{"type":"text","value":" value to remove some of the noise from the X-ray. Then,\ncalculate two gradients using ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"sNelW1Kr0L"},{"type":"link","url":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.prewitt.html","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"children":[{"type":"inlineCode","value":"scipy.ndimage.prewitt()","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"ojBFjYc2g1"}],"urlSource":"https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.prewitt.html","key":"AHmTTULMMJ"},{"type":"text","value":".\nNext, measure the distance between the gradients using NumPy’s ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"SUL2WP94WZ"},{"type":"inlineCode","value":"np.hypot()","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"FlYgELjLkv"},{"type":"text","value":".\nFinally, ","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"uAa6uVouLX"},{"type":"link","url":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"children":[{"type":"text","value":"normalize","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"mS3GSMBnGD"}],"urlSource":"https://en.wikipedia.org/wiki/Normalization_%28image_processing%29","data":{"page":"Normalization_%28image_processing%29","wiki":"https://en.wikipedia.org/","lang":"en"},"internal":false,"protocol":"wiki","key":"TQ8ytOOGas"},{"type":"text","value":"\nthe rescaled image, as before.","position":{"start":{"line":361,"column":1},"end":{"line":361,"column":1}},"key":"koQ8aHVj2J"}],"key":"AMEhqGBKPI"}],"key":"deke1GtJh1"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fourier_gaussian = ndimage.fourier_gaussian(xray_image, sigma=0.05)\n\nx_prewitt = ndimage.prewitt(fourier_gaussian, axis=0)\ny_prewitt = ndimage.prewitt(fourier_gaussian, axis=1)\n\nxray_image_canny = np.hypot(x_prewitt, y_prewitt)\n\nxray_image_canny *= 255.0 / np.max(xray_image_canny)\n\nprint(\"The data type - \", xray_image_canny.dtype)","key":"XsbAmIHqnJ"},{"type":"outputs","id":"4QFQE2GgGlFyjHXJikcfv","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type - float64\n"},"key":"ze66juHzM3"}],"key":"d22Y26ycEE"}],"key":"h5JtnqWQQe"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":381,"column":1},"end":{"line":383,"column":1}},"children":[{"type":"strong","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"NFWe0rCSqP"}],"key":"BOgTSDx5bm"},{"type":"text","value":" Plot the original X-ray image and the ones with the edges detected with\nthe help of the Canny filter technique. The edges can be emphasized using the\n","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"cRyroePs02"},{"type":"inlineCode","value":"prism","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"CFq4bYq94Q"},{"type":"text","value":", ","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"YE8AIJURQd"},{"type":"inlineCode","value":"nipy_spectral","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"o5g3Yag7oy"},{"type":"text","value":", and ","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"qFPbv34thT"},{"type":"inlineCode","value":"terrain","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"fQyXkgBmxA"},{"type":"text","value":" Matplotlib colormaps.","position":{"start":{"line":381,"column":1},"end":{"line":381,"column":1}},"key":"z8rCGeg072"}],"key":"caJyhOwh1W"}],"key":"fbR2QhXgT9"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=4, figsize=(20, 15))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Canny (edges) - prism\")\naxes[1].imshow(xray_image_canny, cmap=\"prism\")\naxes[2].set_title(\"Canny (edges) - nipy_spectral\")\naxes[2].imshow(xray_image_canny, cmap=\"nipy_spectral\")\naxes[3].set_title(\"Canny (edges) - terrain\")\naxes[3].imshow(xray_image_canny, cmap=\"terrain\")\nfor i in axes:\n i.axis(\"off\")","key":"i5wnpd6Q43"},{"type":"outputs","id":"2F68qS0JVfwR3WskBnsvo","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"bcb00ac61238a86996231612f51e72d3","path":"/numpy-tutorials/build/bcb00ac61238a86996231612f51e72d3.png"}}},"key":"HEkxzt6JAi"}],"key":"NHIgkiGUGZ"}],"key":"iQB2BqbZpZ"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":400,"column":1},"end":{"line":400,"column":1}},"children":[{"type":"text","value":"Apply masks to X-rays with ","position":{"start":{"line":400,"column":1},"end":{"line":400,"column":1}},"key":"P3ukCq7fhm"},{"type":"inlineCode","value":"np.where()","position":{"start":{"line":400,"column":1},"end":{"line":400,"column":1}},"key":"jLbiHmBxt4"}],"identifier":"apply-masks-to-x-rays-with-np-where","label":"Apply masks to X-rays with np.where()","html_id":"apply-masks-to-x-rays-with-np-where","implicit":true,"key":"ThZCzXuqTH"}],"key":"HBqLj1KwIS"},{"type":"block","position":{"start":{"line":402,"column":1},"end":{"line":402,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":404,"column":1},"end":{"line":407,"column":1}},"children":[{"type":"text","value":"To screen out only certain pixels in X-ray images to help detect particular\nfeatures, you can apply masks with NumPy’s\n","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"CxzOhHpT3K"},{"type":"link","url":"https://numpy.org/doc/stable/reference/generated/numpy.where.html","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"children":[{"type":"inlineCode","value":"np.where(condition: array_like (bool), x: array_like, y: ndarray)","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"n9Y0cNznyp"}],"urlSource":"https://numpy.org/doc/stable/reference/generated/numpy.where.html","key":"cavzXUyESt"},{"type":"text","value":"\nthat returns ","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"oEQbA2arhk"},{"type":"inlineCode","value":"x","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"oYfGstW0Mb"},{"type":"text","value":" when ","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"jWjzsfb9BF"},{"type":"inlineCode","value":"True","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"rJCmdrSZiP"},{"type":"text","value":" and ","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"jKI1Ko1Ql8"},{"type":"inlineCode","value":"y","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"jIPvAeXzIT"},{"type":"text","value":" when ","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"wqg5LMTWEK"},{"type":"inlineCode","value":"False","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"GyEAIhgAum"},{"type":"text","value":".","position":{"start":{"line":404,"column":1},"end":{"line":404,"column":1}},"key":"PBTIjCBEEx"}],"key":"GKbwhaxBSL"},{"type":"paragraph","position":{"start":{"line":409,"column":1},"end":{"line":411,"column":1}},"children":[{"type":"text","value":"Identifying regions of interest — certain sets of pixels in an image — can be\nuseful and masks serve as boolean arrays of the same shape as the original\nimage.","position":{"start":{"line":409,"column":1},"end":{"line":409,"column":1}},"key":"yTvKgd1Ms0"}],"key":"HqgTBYr3XY"}],"key":"T8Ig2OftP0"},{"type":"block","position":{"start":{"line":413,"column":1},"end":{"line":413,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":415,"column":1},"end":{"line":416,"column":1}},"children":[{"type":"strong","position":{"start":{"line":415,"column":1},"end":{"line":415,"column":1}},"children":[{"type":"text","value":"1.","position":{"start":{"line":415,"column":1},"end":{"line":415,"column":1}},"key":"MgVd2wfNjO"}],"key":"qVtceYjAmI"},{"type":"text","value":" Retrieve some basics statistics about the pixel values in the original\nX-ray image you’ve been working with:","position":{"start":{"line":415,"column":1},"end":{"line":415,"column":1}},"key":"lcVYOThssq"}],"key":"iHPeDB5cdG"}],"key":"pOIn3JwnXp"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"print(\"The data type of the X-ray image is: \", xray_image.dtype)\nprint(\"The minimum pixel value is: \", np.min(xray_image))\nprint(\"The maximum pixel value is: \", np.max(xray_image))\nprint(\"The average pixel value is: \", np.mean(xray_image))\nprint(\"The median pixel value is: \", np.median(xray_image))","key":"aqiLyzIDnH"},{"type":"outputs","id":"iqwd0FgM4dqsXUJl3fJww","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"stream","name":"stdout","text":"The data type of the X-ray image is: uint8\nThe minimum pixel value is: 0\nThe maximum pixel value is: 255\nThe average pixel value is: 172.52233219146729\nThe median pixel value is: 195.0\n"},"key":"mT66GgzaGH"}],"key":"TFAQIHdqkh"}],"key":"Br6XfsR21M"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":426,"column":1},"end":{"line":429,"column":1}},"children":[{"type":"strong","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"children":[{"type":"text","value":"2.","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"aURiYqJP8q"}],"key":"CUJFGSzdru"},{"type":"text","value":" The array data type is ","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"P0j0pqU1SK"},{"type":"inlineCode","value":"uint8","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"clswzNnZuW"},{"type":"text","value":" and the minimum/maximum value results\nsuggest that all 256 colors (from ","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"fvP2IBXhKH"},{"type":"inlineCode","value":"0","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"D3KaxSz4Lt"},{"type":"text","value":" to ","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"DliMOtGFQR"},{"type":"inlineCode","value":"255","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"mGAaFGdW5J"},{"type":"text","value":") are used in the X-ray. Let’s\nvisualize the ","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"G4ozPBSFRc"},{"type":"emphasis","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"children":[{"type":"text","value":"pixel intensity distribution","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"JIK2rgliPU"}],"key":"mP8kReYLEf"},{"type":"text","value":" of the original raw X-ray image\nwith ","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"te2tzTZBDY"},{"type":"inlineCode","value":"ndimage.histogram()","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"ytD67NRUkP"},{"type":"text","value":" and Matplotlib:","position":{"start":{"line":426,"column":1},"end":{"line":426,"column":1}},"key":"A05msYCtJf"}],"key":"uN3XsrOY4p"}],"key":"sVUtB2ZgZl"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"pixel_intensity_distribution = ndimage.histogram(\n xray_image, min=np.min(xray_image), max=np.max(xray_image), bins=256\n)\n\nfig, ax = plt.subplots()\nax.plot(pixel_intensity_distribution)\nax.set_title(\"Pixel intensity distribution\")","key":"WIA8eWGcWh"},{"type":"outputs","id":"mYVoWOUCq1J4Wjx7yq0vB","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"22b9a0a62cd1293f64b2f8fd1b183678","path":"/numpy-tutorials/build/22b9a0a62cd1293f64b2f8fd1b183678.png"}}},"key":"RfoFOHTrhK"}],"key":"sCVDmqqM20"}],"key":"En4FROuCnA"},{"type":"block","children":[{"type":"paragraph","position":{"start":{"line":441,"column":1},"end":{"line":442,"column":1}},"children":[{"type":"text","value":"As the pixel intensity distribution suggests, there are many low (between around\n0 and 20) and very high (between around 200 and 240) pixel values.","position":{"start":{"line":441,"column":1},"end":{"line":441,"column":1}},"key":"ZL1mm2fojd"}],"key":"MF8Fttqhn1"},{"type":"paragraph","position":{"start":{"line":444,"column":1},"end":{"line":446,"column":1}},"children":[{"type":"strong","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"children":[{"type":"text","value":"3.","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"key":"XH3OYIxXTk"}],"key":"AWkURFW4RI"},{"type":"text","value":" You can create different conditional masks with NumPy’s ","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"key":"QlUpd0uHgh"},{"type":"inlineCode","value":"np.where()","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"key":"EeB9yuHeWt"},{"type":"text","value":" —\nfor example, let’s have only those values of the image with the pixels exceeding\na certain threshold:","position":{"start":{"line":444,"column":1},"end":{"line":444,"column":1}},"key":"mJSN3a1OXI"}],"key":"W6CueCjjSl"}],"key":"oa0gJ2zw2Z"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# The threshold is \"greater than 150\"\n# Return the original image if true, `0` otherwise\nxray_image_mask_noisy = np.where(xray_image > 150, xray_image, 0)\n\nfig, ax = plt.subplots()\nax.imshow(xray_image_mask_noisy, cmap=\"gray\")\nax.set_axis_off()","key":"IdzmG55KAi"},{"type":"outputs","id":"VqVm2gFmrXUHKVZbX6PdU","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"1a1b90da54c31fed129c30fe10488118","path":"/numpy-tutorials/build/1a1b90da54c31fed129c30fe10488118.png"}}},"key":"z0wXX7JCoJ"}],"key":"oGPlsx67dy"}],"key":"Oj19jKvtC9"},{"type":"block","children":[],"key":"pIRCtiMSfR"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"# The threshold is \"greater than 150\"\n# Return `1` if true, `0` otherwise\nxray_image_mask_less_noisy = np.where(xray_image > 150, 1, 0)\n\nfig, ax = plt.subplots()\nax.imshow(xray_image_mask_less_noisy, cmap=\"gray\")\nax.set_axis_off()","key":"s9bkkAayoY"},{"type":"outputs","id":"W4S0uZe3EAXN9Bb5Kq6C0","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"1a2284319e0d322678f64affd6559fb8","path":"/numpy-tutorials/build/1a2284319e0d322678f64affd6559fb8.png"}}},"key":"v8dk0W1JDi"}],"key":"fbq9uxqmmu"}],"key":"KwzaJPrlTX"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":468,"column":1},"end":{"line":468,"column":1}},"children":[{"type":"text","value":"Compare the results","position":{"start":{"line":468,"column":1},"end":{"line":468,"column":1}},"key":"J9StWMuxf2"}],"identifier":"compare-the-results","label":"Compare the results","html_id":"compare-the-results","implicit":true,"key":"GURjKLLAVl"}],"key":"tf8MnaYvvT"},{"type":"block","position":{"start":{"line":470,"column":1},"end":{"line":470,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":472,"column":1},"end":{"line":473,"column":1}},"children":[{"type":"text","value":"Let’s display some of the results of processed X-ray images you’ve worked with\nso far:","position":{"start":{"line":472,"column":1},"end":{"line":472,"column":1}},"key":"iH8VW2DYRG"}],"key":"PZ0eoin87o"}],"key":"FL4a1iayoQ"},{"type":"block","kind":"notebook-code","children":[{"type":"code","lang":"python","executable":true,"value":"fig, axes = plt.subplots(nrows=1, ncols=9, figsize=(30, 30))\n\naxes[0].set_title(\"Original\")\naxes[0].imshow(xray_image, cmap=\"gray\")\naxes[1].set_title(\"Laplace-Gaussian (edges)\")\naxes[1].imshow(xray_image_laplace_gaussian, cmap=\"gray\")\naxes[2].set_title(\"Gaussian gradient (edges)\")\naxes[2].imshow(x_ray_image_gaussian_gradient, cmap=\"gray\")\naxes[3].set_title(\"Sobel (edges) - grayscale\")\naxes[3].imshow(xray_image_sobel, cmap=\"gray\")\naxes[4].set_title(\"Sobel (edges) - hot\")\naxes[4].imshow(xray_image_sobel, cmap=\"hot\")\naxes[5].set_title(\"Canny (edges) - prism)\")\naxes[5].imshow(xray_image_canny, cmap=\"prism\")\naxes[6].set_title(\"Canny (edges) - nipy_spectral)\")\naxes[6].imshow(xray_image_canny, cmap=\"nipy_spectral\")\naxes[7].set_title(\"Mask (> 150, noisy)\")\naxes[7].imshow(xray_image_mask_noisy, cmap=\"gray\")\naxes[8].set_title(\"Mask (> 150, less noisy)\")\naxes[8].imshow(xray_image_mask_less_noisy, cmap=\"gray\")\nfor i in axes:\n i.axis(\"off\")","key":"wFdcOpkoON"},{"type":"outputs","id":"X0rPjSx63XPZWj3Lqdqmm","children":[{"type":"output","children":[],"jupyter_data":{"output_type":"display_data","metadata":{},"data":{"text/plain":{"content":"
","content_type":"text/plain"},"image/png":{"content_type":"image/png","hash":"32cf3b00cac9e8a53719f5386506d010","path":"/numpy-tutorials/build/32cf3b00cac9e8a53719f5386506d010.png"}}},"key":"tygoBBQdQP"}],"key":"Kj3rGnL4fw"}],"key":"ViiBlTqnoa"},{"type":"block","children":[{"type":"heading","depth":2,"position":{"start":{"line":500,"column":1},"end":{"line":500,"column":1}},"children":[{"type":"text","value":"Next steps","position":{"start":{"line":500,"column":1},"end":{"line":500,"column":1}},"key":"yuA5w2U8oO"}],"identifier":"next-steps","label":"Next steps","html_id":"next-steps","implicit":true,"key":"xba9v7j0RF"}],"key":"FtSaZoHB0J"},{"type":"block","position":{"start":{"line":502,"column":1},"end":{"line":502,"column":1}},"children":[{"type":"paragraph","position":{"start":{"line":504,"column":1},"end":{"line":509,"column":1}},"children":[{"type":"text","value":"If you want to use your own samples, you can use\n","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"key":"ia4dGbPglR"},{"type":"link","url":"https://openi.nlm.nih.gov/detailedresult?img=CXR3666_IM-1824-1001&query=chest%20infection&it=xg&req=4&npos=32","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"children":[{"type":"text","value":"this image","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"key":"jSFQq5n1NE"}],"urlSource":"https://openi.nlm.nih.gov/detailedresult?img=CXR3666_IM-1824-1001&query=chest%20infection&it=xg&req=4&npos=32","key":"EcDCdZZU11"},{"type":"text","value":"\nor search for various other ones on the ","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"key":"s7AbDD0lxd"},{"type":"link","url":"https://openi.nlm.nih.gov","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"children":[{"type":"emphasis","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"children":[{"type":"text","value":"Openi","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"key":"XcXURMbLsr"}],"key":"F28spi5J6S"}],"urlSource":"https://openi.nlm.nih.gov","key":"vquG85M5Dx"},{"type":"text","value":"\ndatabase. Openi contains many biomedical images and it can be especially helpful\nif you have low bandwidth and/or are restricted by the amount of data you can\ndownload.","position":{"start":{"line":504,"column":1},"end":{"line":504,"column":1}},"key":"FvrT3LdjBt"}],"key":"v925zzMXqT"},{"type":"paragraph","position":{"start":{"line":511,"column":1},"end":{"line":512,"column":1}},"children":[{"type":"text","value":"To learn more about image processing in the context of biomedical image data or\nsimply edge detection, you may find the following material useful:","position":{"start":{"line":511,"column":1},"end":{"line":511,"column":1}},"key":"xRHhJ6VYkc"}],"key":"J2CmR9tC1s"},{"type":"list","ordered":false,"spread":false,"position":{"start":{"line":514,"column":1},"end":{"line":521,"column":1}},"children":[{"type":"listItem","spread":true,"position":{"start":{"line":514,"column":1},"end":{"line":514,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://scipy-lectures.org/advanced/image_processing/index.html","position":{"start":{"line":514,"column":1},"end":{"line":514,"column":1}},"children":[{"type":"text","value":"Image manipulation and processing using Numpy and Scipy","position":{"start":{"line":514,"column":1},"end":{"line":514,"column":1}},"key":"mwmwWbanZk"}],"urlSource":"https://scipy-lectures.org/advanced/image_processing/index.html","key":"qlkcClgyBn"},{"type":"text","value":" (Scipy Lecture Notes)","position":{"start":{"line":514,"column":1},"end":{"line":514,"column":1}},"key":"C2VjxUyntN"}],"key":"q9UZhVGACd"}],"key":"Wo3ohC8zCP"},{"type":"listItem","spread":true,"position":{"start":{"line":515,"column":1},"end":{"line":515,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://s3.amazonaws.com/assets.datacamp.com/production/course_7032/slides/chapter2.pdf","position":{"start":{"line":515,"column":1},"end":{"line":515,"column":1}},"children":[{"type":"text","value":"Intensity values","position":{"start":{"line":515,"column":1},"end":{"line":515,"column":1}},"key":"G1EzWQNu7X"}],"urlSource":"https://s3.amazonaws.com/assets.datacamp.com/production/course_7032/slides/chapter2.pdf","key":"VUaZ7dHgwE"},{"type":"text","value":" (presentation, DataCamp)","position":{"start":{"line":515,"column":1},"end":{"line":515,"column":1}},"key":"HDFIvsDZA4"}],"key":"FpQYRn1PF0"}],"key":"mOlP4zApmC"},{"type":"listItem","spread":true,"position":{"start":{"line":516,"column":1},"end":{"line":516,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://makersportal.com/blog/2019/4/23/image-processing-with-raspberry-pi-and-python-part-ii-spatial-statistics-and-correlations","position":{"start":{"line":516,"column":1},"end":{"line":516,"column":1}},"children":[{"type":"text","value":"Object detection with Raspberry Pi and Python","position":{"start":{"line":516,"column":1},"end":{"line":516,"column":1}},"key":"MdrQ9R15Kv"}],"urlSource":"https://makersportal.com/blog/2019/4/23/image-processing-with-raspberry-pi-and-python-part-ii-spatial-statistics-and-correlations","key":"kbZ4enCodH"},{"type":"text","value":" (Maker Portal)","position":{"start":{"line":516,"column":1},"end":{"line":516,"column":1}},"key":"COvOb4WfCm"}],"key":"BAUUf6lcDU"}],"key":"pXZ9rqFvIL"},{"type":"listItem","spread":true,"position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://www.kaggle.com/eduardomineo/u-net-lung-segmentation-montgomery-shenzhen","position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"children":[{"type":"text","value":"X-ray data preparation and segmentation","position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"key":"libiZ2N8MK"}],"urlSource":"https://www.kaggle.com/eduardomineo/u-net-lung-segmentation-montgomery-shenzhen","key":"yBARoyHJN9"},{"type":"text","value":" with deep learning (a Kaggle-hosted Jupyter notebook)","position":{"start":{"line":517,"column":1},"end":{"line":517,"column":1}},"key":"SGXLc705Mf"}],"key":"h6pA18fxAy"}],"key":"wKLWjgA3YQ"},{"type":"listItem","spread":true,"position":{"start":{"line":518,"column":1},"end":{"line":518,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://www.cs.cornell.edu/courses/cs6670/2011sp/lectures/lec02_filter.pdf","position":{"start":{"line":518,"column":1},"end":{"line":518,"column":1}},"children":[{"type":"text","value":"Image filtering","position":{"start":{"line":518,"column":1},"end":{"line":518,"column":1}},"key":"gUHW0D7V6B"}],"urlSource":"https://www.cs.cornell.edu/courses/cs6670/2011sp/lectures/lec02_filter.pdf","key":"BrSDMnBDbx"},{"type":"text","value":" (lecture slides, CS6670: Computer Vision, Cornell University)","position":{"start":{"line":518,"column":1},"end":{"line":518,"column":1}},"key":"GrQjb9qc1Y"}],"key":"Wt2iQnwkus"}],"key":"t8MnGBYarF"},{"type":"listItem","spread":true,"position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://scikit-image.org/docs/0.25.x/auto_examples/edges/plot_edge_filter.html","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"children":[{"type":"text","value":"Edge detection in Python","position":{"start":{"line":519,"column":1},"end":{"line":519,"column":1}},"key":"qH6Te36XyK"}],"urlSource":"https://scikit-image.org/docs/0.25.x/auto_examples/edges/plot_edge_filter.html","key":"MLuXgKwBxk"}],"key":"zJ9QWgvz2A"}],"key":"z4d3IPPwMy"},{"type":"listItem","spread":true,"position":{"start":{"line":520,"column":1},"end":{"line":520,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://datacarpentry.github.io/image-processing/edge-detection.html","position":{"start":{"line":520,"column":1},"end":{"line":520,"column":1}},"children":[{"type":"text","value":"Edge detection","position":{"start":{"line":520,"column":1},"end":{"line":520,"column":1}},"key":"Yui2jf8glP"}],"urlSource":"https://datacarpentry.github.io/image-processing/edge-detection.html","key":"se0hkuksyC"},{"type":"text","value":" with Scikit-Image (Data Carpentry)","position":{"start":{"line":520,"column":1},"end":{"line":520,"column":1}},"key":"RZo3XyhwS6"}],"key":"NSfhUlGZo9"}],"key":"MnU4tfIf4m"},{"type":"listItem","spread":true,"position":{"start":{"line":521,"column":1},"end":{"line":521,"column":1}},"children":[{"type":"paragraph","children":[{"type":"link","url":"https://www.cs.cmu.edu/~16385/s17/Slides/4.0_Image_Gradients_and_Gradient_Filtering.pdf","position":{"start":{"line":521,"column":1},"end":{"line":521,"column":1}},"children":[{"type":"text","value":"Image gradients and gradient filtering","position":{"start":{"line":521,"column":1},"end":{"line":521,"column":1}},"key":"KCgO45niDJ"}],"urlSource":"https://www.cs.cmu.edu/~16385/s17/Slides/4.0_Image_Gradients_and_Gradient_Filtering.pdf","key":"SirgD2X1ww"},{"type":"text","value":" (lecture slides, 16-385 Computer Vision, Carnegie Mellon University)","position":{"start":{"line":521,"column":1},"end":{"line":521,"column":1}},"key":"LJggLfV6Uc"}],"key":"AeNxQ1hq59"}],"key":"CC1rML1qi5"}],"key":"qw48ATyluE"}],"key":"Kdk0x8WDQW"}],"key":"xWHyATBQtu"},"references":{"cite":{"order":[],"data":{}}},"footer":{"navigation":{"prev":{"title":"Deep learning on MNIST","url":"/tutorial-deep-learning-on-mnist","group":"Applications"},"next":{"title":"Determining Static Equilibrium in NumPy","short_title":"Static Equilibrium","url":"/tutorial-static-equilibrium","group":"Applications"}}},"domain":"http://localhost:3000"} \ No newline at end of file diff --git a/tutorial-x-ray-image-processing/index.html b/tutorial-x-ray-image-processing/index.html new file mode 100644 index 00000000..1269c4fd --- /dev/null +++ b/tutorial-x-ray-image-processing/index.html @@ -0,0 +1,296 @@ +X-ray image processing - Numpy Tutorials
Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

X-ray image processing

This tutorial demonstrates how to read and process X-ray images with NumPy, +imageio, Matplotlib and SciPy. You will learn how to load medical images, focus +on certain parts, and visually compare them using the +Gaussian, +Laplacian-Gaussian, +Sobel, and +Canny filters for edge +detection.

X-ray image analysis can be part of your data analysis and machine learning workflow +when, for example, you’re building an algorithm that helps +detect pneumonia +as part of a Kaggle +competition. +In the healthcare industry, medical image processing and analysis is +particularly important when images are estimated to account for +at least 90% of all +medical data.

You’ll be working with radiology images from the +ChestX-ray8 +dataset provided by the National Institutes of Health (NIH). +ChestX-ray8 contains over 100,000 de-identified X-ray images in the PNG format +from more than 30,000 patients. You can find ChestX-ray8’s files on NIH’s public +Box repository in the /images +folder. (For more details, refer to the research +paper +published at CVPR (a computer vision conference) in 2017.)

For your convenience, a small number of PNG images have been saved to this +tutorial’s repository under tutorial-x-ray-image-processing/, since +ChestX-ray8 contains gigabytes of data and you may find it challenging to +download it in batches.

A series of 9 x-ray images of the same region of a patient's chest is shown with different types of image processing filters applied to each image. Each x-ray shows different types of biological detail.

Prerequisites

The reader should have some knowledge of Python, NumPy arrays, and Matplotlib. +To refresh the memory, you can take the +Python and Matplotlib +PyPlot tutorials, +and the NumPy quickstart.

The following packages are used in this tutorial:

  • imageio for reading and writing image data. The +healthcare industry usually works with the +DICOM format for medical imaging and +imageio should be +well-suited for reading that format. For simplicity, in this tutorial you’ll be +working with PNG files.

  • Matplotlib for data visualization.

  • SciPy for multi-dimensional image processing via +ndimage.

This tutorial can be run locally in an isolated environment, such as +Virtualenv or +conda. +You can use Jupyter Notebook or JupyterLab to run +each notebook cell.

Table of contents

  1. Examine an X-ray with imageio

  2. Combine images into a multi-dimensional array to demonstrate progression

  3. Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and +Canny filters

  4. Apply masks to X-rays with np.where()

  5. Compare the results


Examine an X-ray with imageio

Let’s begin with a simple example using just one X-ray image from the +ChestX-ray8 dataset.

The file — 00000011_001.png — has been downloaded for you and saved in the +/tutorial-x-ray-image-processing folder.

1. Load the image with imageio:

import os
+import imageio
+
+DIR = "tutorial-x-ray-image-processing"
+
+xray_image = imageio.v3.imread(os.path.join(DIR, "00000011_001.png"))

2. Check that its shape is 1024x1024 pixels and that the array is made up of +8-bit integers:

print(xray_image.shape)
+print(xray_image.dtype)
(1024, 1024)
+uint8
+

3. Import matplotlib and display the image in a grayscale colormap:

import matplotlib.pyplot as plt
+
+fig, ax = plt.subplots()
+ax.imshow(xray_image, cmap="gray")
+ax.set_axis_off()
<Figure size 640x480 with 1 Axes>

Combine images into a multidimensional array to demonstrate progression

In the next example, instead of 1 image you’ll use 9 X-ray 1024x1024-pixel +images from the ChestX-ray8 dataset that have been downloaded and extracted +from one of the dataset files. They are numbered from ...000.png to +...008.png and let’s assume they belong to the same patient.

1. Import NumPy, read in each of the X-rays, and create a three-dimensional +array where the first dimension corresponds to image number:

import numpy as np
+num_imgs = 9
+
+combined_xray_images_1 = np.array(
+    [imageio.v3.imread(os.path.join(DIR, f"00000011_00{i}.png")) for i in range(num_imgs)]
+)

2. Check the shape of the new X-ray image array containing 9 stacked images:

combined_xray_images_1.shape
(9, 1024, 1024)

Note that the shape in the first dimension matches num_imgs, so the +combined_xray_images_1 array can be interpreted as a stack of 2D images.

3. You can now display the “health progress” by plotting each of frames next +to each other using Matplotlib:

fig, axes = plt.subplots(nrows=1, ncols=num_imgs, figsize=(30, 30))
+
+for img, ax in zip(combined_xray_images_1, axes):
+    ax.imshow(img, cmap='gray')
+    ax.axis('off')
<Figure size 3000x3000 with 9 Axes>

4. In addition, it can be helpful to show the progress as an animation. +Let’s create a GIF file with imageio.mimwrite() and display the result in the +notebook:

GIF_PATH = os.path.join(DIR, "xray_image.gif")
+imageio.mimwrite(GIF_PATH, combined_xray_images_1, format= ".gif", duration=1000)

Which gives us: +An animated gif repeatedly cycles through a series of 8 x-rays, showing the same viewpoint of the patient's chest at different points in time. The patient's bones and internal organs can be visually compared from frame to frame.

Edge detection using the Laplacian-Gaussian, Gaussian gradient, Sobel, and Canny filters

When processing biomedical data, it can be useful to emphasize the 2D +“edges” to focus on particular +features in an image. To do that, using +image gradients can be +particularly helpful when detecting the change of color pixel intensity.

The Laplace filter with Gaussian second derivatives

Let’s start with an n-dimensional +Laplace filter +(“Laplacian-Gaussian”) that uses +Gaussian second +derivatives. This Laplacian method focuses on pixels with rapid intensity change +in values and is combined with Gaussian smoothing to +remove noise. Let’s examine +how it can be useful in analyzing 2D X-ray images.

  • The implementation of the Laplacian-Gaussian filter is relatively +straightforward: 1) import the ndimage module from SciPy; and 2) call +scipy.ndimage.gaussian_laplace() +with a sigma (scalar) parameter, which affects the standard deviations of the +Gaussian filter (you’ll use 1 in the example below):

from scipy import ndimage
+
+xray_image_laplace_gaussian = ndimage.gaussian_laplace(xray_image, sigma=1)

Display the original X-ray and the one with the Laplacian-Gaussian filter:

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))
+
+axes[0].set_title("Original")
+axes[0].imshow(xray_image, cmap="gray")
+axes[1].set_title("Laplacian-Gaussian (edges)")
+axes[1].imshow(xray_image_laplace_gaussian, cmap="gray")
+for i in axes:
+    i.axis("off")
<Figure size 1000x1000 with 2 Axes>

The Gaussian gradient magnitude method

Another method for edge detection that can be useful is the +Gaussian (gradient) filter. +It computes the multidimensional gradient magnitude with Gaussian derivatives +and helps by remove +high-frequency +image components.

1. Call scipy.ndimage.gaussian_gradient_magnitude() +with a sigma (scalar) parameter (for standard deviations; you’ll use 2 in the +example below):

x_ray_image_gaussian_gradient = ndimage.gaussian_gradient_magnitude(xray_image, sigma=2)

2. Display the original X-ray and the one with the Gaussian gradient filter:

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 10))
+
+axes[0].set_title("Original")
+axes[0].imshow(xray_image, cmap="gray")
+axes[1].set_title("Gaussian gradient (edges)")
+axes[1].imshow(x_ray_image_gaussian_gradient, cmap="gray")
+for i in axes:
+    i.axis("off")
<Figure size 1000x1000 with 2 Axes>

The Sobel-Feldman operator (the Sobel filter)

To find regions of high spatial frequency (the edges or the edge maps) along the +horizontal and vertical axes of a 2D X-ray image, you can use the +Sobel-Feldman operator (Sobel filter) +technique. The Sobel filter applies two 3x3 kernel matrices — one for each axis +— onto the X-ray through a convolution. +Then, these two points (gradients) are combined using the +Pythagorean theorem to +produce a gradient magnitude.

1. Use the Sobel filters — (scipy.ndimage.sobel()) +— on x- and y-axes of the X-ray. Then, calculate the distance between x and +y (with the Sobel filters applied to them) using the +Pythagorean theorem and +NumPy’s np.hypot() +to obtain the magnitude. Finally, normalize the rescaled image for the pixel +values to be between 0 and 255.

Image normalization +follows the output_channel = 255.0 * (input_channel - min_value) / (max_value - min_value) +formula. Because you’re +using a grayscale image, you need to normalize just one channel.

x_sobel = ndimage.sobel(xray_image, axis=0)
+y_sobel = ndimage.sobel(xray_image, axis=1)
+
+xray_image_sobel = np.hypot(x_sobel, y_sobel)
+
+xray_image_sobel *= 255.0 / np.max(xray_image_sobel)

2. Change the new image array data type to the 32-bit floating-point format +from float16 to make it compatible +with Matplotlib:

print("The data type - before: ", xray_image_sobel.dtype)
+
+xray_image_sobel = xray_image_sobel.astype("float32")
+
+print("The data type - after: ", xray_image_sobel.dtype)
The data type - before:  float16
+The data type - after:  float32
+

3. Display the original X-ray and the one with the Sobel “edge” filter +applied. Note that both the grayscale and CMRmap colormaps are used to help +emphasize the edges:

fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(15, 15))
+
+axes[0].set_title("Original")
+axes[0].imshow(xray_image, cmap="gray")
+axes[1].set_title("Sobel (edges) - grayscale")
+axes[1].imshow(xray_image_sobel, cmap="gray")
+axes[2].set_title("Sobel (edges) - CMRmap")
+axes[2].imshow(xray_image_sobel, cmap="CMRmap")
+for i in axes:
+    i.axis("off")
<Figure size 1500x1500 with 3 Axes>

The Canny filter

You can also consider using another well-known filter for edge detection called +the Canny filter.

First, you apply a Gaussian +filter to remove the noise in an image. In this example, you’re using using the +Fourier filter which +smoothens the X-ray through a convolution +process. Next, you apply the Prewitt filter +on each of the 2 axes of the image to help detect some of the edges — this will +result in 2 gradient values. Similar to the Sobel filter, the Prewitt operator +also applies two 3x3 kernel matrices — one for each axis — onto the X-ray +through a convolution. +In the end, you compute the magnitude between the two gradients using the +Pythagorean theorem and +normalize +the images, as before.

1. Use SciPy’s Fourier filters — scipy.ndimage.fourier_gaussian() +— with a small sigma value to remove some of the noise from the X-ray. Then, +calculate two gradients using scipy.ndimage.prewitt(). +Next, measure the distance between the gradients using NumPy’s np.hypot(). +Finally, normalize +the rescaled image, as before.

fourier_gaussian = ndimage.fourier_gaussian(xray_image, sigma=0.05)
+
+x_prewitt = ndimage.prewitt(fourier_gaussian, axis=0)
+y_prewitt = ndimage.prewitt(fourier_gaussian, axis=1)
+
+xray_image_canny = np.hypot(x_prewitt, y_prewitt)
+
+xray_image_canny *= 255.0 / np.max(xray_image_canny)
+
+print("The data type - ", xray_image_canny.dtype)
The data type -  float64
+

2. Plot the original X-ray image and the ones with the edges detected with +the help of the Canny filter technique. The edges can be emphasized using the +prism, nipy_spectral, and terrain Matplotlib colormaps.

fig, axes = plt.subplots(nrows=1, ncols=4, figsize=(20, 15))
+
+axes[0].set_title("Original")
+axes[0].imshow(xray_image, cmap="gray")
+axes[1].set_title("Canny (edges) - prism")
+axes[1].imshow(xray_image_canny, cmap="prism")
+axes[2].set_title("Canny (edges) - nipy_spectral")
+axes[2].imshow(xray_image_canny, cmap="nipy_spectral")
+axes[3].set_title("Canny (edges) - terrain")
+axes[3].imshow(xray_image_canny, cmap="terrain")
+for i in axes:
+    i.axis("off")
<Figure size 2000x1500 with 4 Axes>

Apply masks to X-rays with np.where()

To screen out only certain pixels in X-ray images to help detect particular +features, you can apply masks with NumPy’s +np.where(condition: array_like (bool), x: array_like, y: ndarray) +that returns x when True and y when False.

Identifying regions of interest — certain sets of pixels in an image — can be +useful and masks serve as boolean arrays of the same shape as the original +image.

1. Retrieve some basics statistics about the pixel values in the original +X-ray image you’ve been working with:

print("The data type of the X-ray image is: ", xray_image.dtype)
+print("The minimum pixel value is: ", np.min(xray_image))
+print("The maximum pixel value is: ", np.max(xray_image))
+print("The average pixel value is: ", np.mean(xray_image))
+print("The median pixel value is: ", np.median(xray_image))
The data type of the X-ray image is:  uint8
+The minimum pixel value is:  0
+The maximum pixel value is:  255
+The average pixel value is:  172.52233219146729
+The median pixel value is:  195.0
+

2. The array data type is uint8 and the minimum/maximum value results +suggest that all 256 colors (from 0 to 255) are used in the X-ray. Let’s +visualize the pixel intensity distribution of the original raw X-ray image +with ndimage.histogram() and Matplotlib:

pixel_intensity_distribution = ndimage.histogram(
+    xray_image, min=np.min(xray_image), max=np.max(xray_image), bins=256
+)
+
+fig, ax = plt.subplots()
+ax.plot(pixel_intensity_distribution)
+ax.set_title("Pixel intensity distribution")
<Figure size 640x480 with 1 Axes>

As the pixel intensity distribution suggests, there are many low (between around +0 and 20) and very high (between around 200 and 240) pixel values.

3. You can create different conditional masks with NumPy’s np.where() — +for example, let’s have only those values of the image with the pixels exceeding +a certain threshold:

# The threshold is "greater than 150"
+# Return the original image if true, `0` otherwise
+xray_image_mask_noisy = np.where(xray_image > 150, xray_image, 0)
+
+fig, ax = plt.subplots()
+ax.imshow(xray_image_mask_noisy, cmap="gray")
+ax.set_axis_off()
<Figure size 640x480 with 1 Axes>
# The threshold is "greater than 150"
+# Return `1` if true, `0` otherwise
+xray_image_mask_less_noisy = np.where(xray_image > 150, 1, 0)
+
+fig, ax = plt.subplots()
+ax.imshow(xray_image_mask_less_noisy, cmap="gray")
+ax.set_axis_off()
<Figure size 640x480 with 1 Axes>

Compare the results

Let’s display some of the results of processed X-ray images you’ve worked with +so far:

fig, axes = plt.subplots(nrows=1, ncols=9, figsize=(30, 30))
+
+axes[0].set_title("Original")
+axes[0].imshow(xray_image, cmap="gray")
+axes[1].set_title("Laplace-Gaussian (edges)")
+axes[1].imshow(xray_image_laplace_gaussian, cmap="gray")
+axes[2].set_title("Gaussian gradient (edges)")
+axes[2].imshow(x_ray_image_gaussian_gradient, cmap="gray")
+axes[3].set_title("Sobel (edges) - grayscale")
+axes[3].imshow(xray_image_sobel, cmap="gray")
+axes[4].set_title("Sobel (edges) - hot")
+axes[4].imshow(xray_image_sobel, cmap="hot")
+axes[5].set_title("Canny (edges) - prism)")
+axes[5].imshow(xray_image_canny, cmap="prism")
+axes[6].set_title("Canny (edges) - nipy_spectral)")
+axes[6].imshow(xray_image_canny, cmap="nipy_spectral")
+axes[7].set_title("Mask (> 150, noisy)")
+axes[7].imshow(xray_image_mask_noisy, cmap="gray")
+axes[8].set_title("Mask (> 150, less noisy)")
+axes[8].imshow(xray_image_mask_less_noisy, cmap="gray")
+for i in axes:
+    i.axis("off")
<Figure size 3000x3000 with 9 Axes>

Next steps

If you want to use your own samples, you can use +this image +or search for various other ones on the Openi +database. Openi contains many biomedical images and it can be especially helpful +if you have low bandwidth and/or are restricted by the amount of data you can +download.

To learn more about image processing in the context of biomedical image data or +simply edge detection, you may find the following material useful:

\ No newline at end of file